<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Ahhh.. eso.. Parafraseando.. PyBot is not Bobot (aunque se parezcan) jajaj<div><br></div><div>Para qué necesitan esa metadata? Están haciendo algo que levanta dinámicamente las funciones?</div><div><br></div><div>En el sistema anterior de drivers de PyBot, yo había copiado el sistema de bobot: un diccionario</div><div>que tenía esa metadata y una función.. pero lo abandoné a algo mas simple:</div><div><br></div><div>En el driver se define una función python que recibe como primer parámetro el "device" correspondiente.</div><div>Si la función se llama xyz, pybot automáticamente, cuando levanta los drivers, sabe que existe</div><div>una función xyz para ese módulo/device.</div><div><br></div><div>Ejemplo de la función getValue de un botón:</div><div><br></div><div>GET_VALUE = 0x01</div><div><br></div><div><div>def getValue(dev):</div><div>&nbsp; &nbsp; dev.send([GET_VALUE])</div><div>&nbsp; &nbsp; raw = dev.read(2)</div></div><div>&nbsp; &nbsp; return raw[1]</div><div><br></div><div>Por ahora no encontré algo que me diera dinámicamente los parámetros de una función (sin hacer cosas</div><div>muy raras :-).</div><div><br></div><div>Además hay un tema que nunca supe resolver: los tipos. Cuando uno usa el server y el cliente, siempre</div><div>termina llegando al server una string (a través del socket). Luego todo se convierte a enteros exceptuando</div><div>alguna función particular (como loopBack).</div><div>Lo que si sería bueno, es tener la cantidad de parámentros de entrada y de salida.</div><div><br></div><div>Adjunto un diagrama que hice una vez y nunca terminé. Quizás alguien encuentre algo mas eficiente</div><div>entre la conversión de tipos.</div><div><br><div><hr id="stopSpelling">From: furquez@gmail.com<br>Date: Mon, 26 Aug 2013 22:23:10 -0300<br>Subject: Re: [Butia-devel-list] protocolo USB4Butia<br>To: alanjas@hotmail.com<br>CC: aaguirre@fing.edu.uy; butia-devel-l@fing.edu.uy; fandrade9@gmail.com; xxopxe@gmail.com<br><br><div dir="ltr"><blockquote class="ecxgmail_quote" style="border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex;">Qué significa la "metadata necesaria" ??</blockquote>

los parametros, tipos y que cosa retorna, en bobot si camina con el firmware 7, Nosotros estamos teniendo problemas con eso :)<div><br></div><div>saludos</div><div>Nico</div></div><div class="ecxgmail_extra"><br><br><div class="ecxgmail_quote">

El 26 de agosto de 2013 22:20, Alan Jhonn Aguiar Schwyn <span dir="ltr">&lt;<a href="mailto:alanjas@hotmail.com" target="_blank">alanjas@hotmail.com</a>&gt;</span> escribió:<br><blockquote class="ecxgmail_quote" style="border-left:1px #ccc solid;padding-left:1ex;">




<div><div dir="ltr">Qué significa la "metadata necesaria" ??<div>PyBot obtiene dinámicamente el nombre de las funciones de los drivers.. qué mas?<br><br><div><hr>From: <a href="mailto:aaguirre@fing.edu.uy" target="_blank">aaguirre@fing.edu.uy</a><br>

Date: Mon, 26 Aug 2013 20:00:37 -0300<div class="ecxim"><br>Subject: Re: [Butia-devel-list] protocolo USB4Butia<br></div>To: <a href="mailto:alanjas@hotmail.com" target="_blank">alanjas@hotmail.com</a><br>CC: <a href="mailto:fandrade9@gmail.com" target="_blank">fandrade9@gmail.com</a>; <a href="mailto:xxopxe@gmail.com" target="_blank">xxopxe@gmail.com</a>; <a href="mailto:butia-devel-l@fing.edu.uy" target="_blank">butia-devel-l@fing.edu.uy</a><div>

<div class="h5"><br><br><div dir="ltr">el protocolo está acá:&nbsp;<a href="http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/index.php/Usb4all" target="_blank">http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/index.php/Usb4all</a><div>

Alan, estoy haciendo describe de los módulos y no me da la metadata necesaria en pybot.&nbsp;</div>

<div>saludos</div></div><div><br><br><div>2013/8/26 Alan Jhonn Aguiar Schwyn <span dir="ltr">&lt;<a href="mailto:alanjas@hotmail.com" target="_blank">alanjas@hotmail.com</a>&gt;</span><br>

<blockquote style="border-left:1px #ccc solid;padding-left:1ex;">


<div><div dir="ltr">Está en la documentación de la USB4all..<div><br></div><div>En PyBot están los mensajes con el admin en "baseboard.py", ahí están</div><div>las funciones principales:&nbsp;get_user_modules_size,&nbsp;get_user_module_line,</div>



<div>get_handler_size,&nbsp;get_handler_type, etc..</div><div><br></div><div>El protocolo es:</div><div><br></div><div>handler .. tamaño_del_paquete .. byte_nulo .. código_operación .. parámentros (si tiene)</div><div><br></div>



<div>Ejemplo: obtener la cantidad de módulos "instanciables" (para el LISTI), es</div><div>decir, la cantidad de user modules del firmware:</div><div><br></div><div>handler = 0 (es una función del admin y el admin tiene handler 0)</div>



<div>tamaño = 4 bytes<br>código de operación: 0x05</div><div><br></div><div>el paquete que mando por USB es:</div><div><br></div><div>[0x00, 0x04, 0x00, 0x05]</div><div><br></div><div>luego leo del usb lo que retorna la función: mismo "encabezado" (los 3 primeros bytes)</div>



<div>luego el código de operación y por último, el valor esperado:</div><div><br></div><div>baseboard.read(5)</div><div><br></div><div>y eso devuelve:</div><div><br></div><div>[0x00, 0x04, 0x00, 0x05, 0x08]</div><div><br>



</div><div>Esto significa que el firmware actual tiene 0x08 user módules.</div><div><br></div><div>Quizás haya que poner algo en la wiki de esto?<br><br><div><hr>From: <a href="mailto:fandrade9@gmail.com" target="_blank">fandrade9@gmail.com</a><br>



Date: Mon, 26 Aug 2013 12:40:40 -0300<br>To: <a href="mailto:xxopxe@gmail.com" target="_blank">xxopxe@gmail.com</a><br>CC: <a href="mailto:aaguirre@fing.edu.uy" target="_blank">aaguirre@fing.edu.uy</a>; <a href="mailto:butia-devel-l@fing.edu.uy" target="_blank">butia-devel-l@fing.edu.uy</a><br>



Subject: Re: [Butia-devel-list] protocolo USB4Butia<div><div><br><br><div dir="ltr">Ahh, no sabía. Pero bueno, la parte del paquete usb4all (andler, modules, opcode, parametros...) donde está?<br></div><div><br clear="all">



<div><div dir="ltr"><div><span style="color:rgb(56,118,29);"><span>salu2x<br>

</span></span></div><span style="color:rgb(56,118,29);"><span>Fede</span></span><br></div></div>
<br><br><div>2013/8/26 Jorge <span dir="ltr">&lt;<a href="mailto:xxopxe@gmail.com" target="_blank">xxopxe@gmail.com</a>&gt;</span><br><blockquote style="border-left:1px #ccc solid;padding-left:1ex;">


  
    
  
  <div>
    <div>aaaaah, cierto. :)<div><div><br>
      <br>
      On 26/08/13 00:30, Andres Aguirre wrote:<br>
    </div></div></div><div><div>
    <blockquote>
      <div dir="ltr">si, pero solo para recordar que por ahora no
        tenemos checksum ni sync :)
        <div><br>
        </div>
      </div>
      <div><br>
        <br>
        <div>2013/8/25 Jorge <span dir="ltr">&lt;<a href="mailto:xxopxe@gmail.com" target="_blank">xxopxe@gmail.com</a>&gt;</span><br>
          <blockquote style="border-left:1px #ccc solid;padding-left:1ex;">
            <div>
              <div>Sospecho que se refiere al paquete usb4butia mismo,
                el que tiene aquello handler, modules, etc.<span><font color="#888888"><br>
                    <br>
                    J.</font></span>
                <div>
                  <div><br>
                    <br>
                    On 25/08/13 22:57, Andres Aguirre wrote:<br>
                  </div>
                </div>
              </div>
              <div>
                <div>
                  <blockquote>
                    <div dir="ltr">En USB puro eso se encarga de hacerlo
                      el stack USB que viene en el sistema operativo. A
                      nivel de usuario no tenes que hacerlo,
                      simplemente&nbsp;pedís&nbsp;para leer un flujo de bytes de
                      determinado largo y podes confiar que lo que llegó
                      esta consistente. A lo mejor vos&nbsp;tenes&nbsp;en mente
                      cuando&nbsp;usábamos&nbsp;el arduino mega, donde venía
                      físicamente por el cable USB los datos pero&nbsp;seguía
                      siendo un serial tonto. Digamos que el estándar
                      USB es un serial más inteligente ;)&nbsp;
                      <div> saludos</div>
                      <div><br>
                      </div>
                      <div><br>
                        <br>
                        <div>2013/8/25 Federico
                          Andrade - InCo <span dir="ltr">&lt;<a href="mailto:fandrade@fing.edu.uy" target="_blank">fandrade@fing.edu.uy</a>&gt;</span><br>
                          <blockquote style="border-left:1px #ccc solid;padding-left:1ex;">
                            <div dir="ltr">
                              <div dir="ltr">¿donde está el código parte
                                de protocolo (armado y desarmado del
                                paquete) usb4butia del butia en pybot?es
                                decir, la parte que te fijas si el
                                paquete tiene sync, checksum ok,
                                desescapeas, etc</div>
                              <div dir="ltr">etc</div>
                              <div dir="ltr">???<span><font color="#888888"><br>
                                    <br>
                                  </font></span></div>
                              <span><font color="#888888">
                                  <div>
                                    <div dir="ltr">Federico Andrade -
                                      InCo<br>
                                    </div>
                                  </div>
                                </font></span></div>
                            <br>
_______________________________________________<br>
                            Butia-devel-l site list<br>
                            <a href="mailto:Butia-devel-l@fing.edu.uy" target="_blank">Butia-devel-l@fing.edu.uy</a><br>
                            <a href="https://www.fing.edu.uy/mailman/listinfo/butia-devel-l" target="_blank">https://www.fing.edu.uy/mailman/listinfo/butia-devel-l</a><br>
                          </blockquote>
                        </div>
                        <br>
                      </div>
                    </div>
                    <br>
                    <fieldset></fieldset>
                    <br>
                    <pre>_______________________________________________
Butia-devel-l site list
<a href="mailto:Butia-devel-l@fing.edu.uy" target="_blank">Butia-devel-l@fing.edu.uy</a>
<a href="https://www.fing.edu.uy/mailman/listinfo/butia-devel-l" target="_blank">https://www.fing.edu.uy/mailman/listinfo/butia-devel-l</a></pre>
                  </blockquote>
                  <br>
                </div>
              </div>
            </div>
            <br>
            _______________________________________________<br>
            Butia-devel-l site list<br>
            <a href="mailto:Butia-devel-l@fing.edu.uy" target="_blank">Butia-devel-l@fing.edu.uy</a><br>
            <a href="https://www.fing.edu.uy/mailman/listinfo/butia-devel-l" target="_blank">https://www.fing.edu.uy/mailman/listinfo/butia-devel-l</a><br>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
  </div></div></div>

<br>_______________________________________________<br>
Butia-devel-l site list<br>
<a href="mailto:Butia-devel-l@fing.edu.uy" target="_blank">Butia-devel-l@fing.edu.uy</a><br>
<a href="https://www.fing.edu.uy/mailman/listinfo/butia-devel-l" target="_blank">https://www.fing.edu.uy/mailman/listinfo/butia-devel-l</a><br></blockquote></div><br></div>
<br>_______________________________________________
Butia-devel-l site list
<a href="mailto:Butia-devel-l@fing.edu.uy" target="_blank">Butia-devel-l@fing.edu.uy</a>
<a href="https://www.fing.edu.uy/mailman/listinfo/butia-devel-l" target="_blank">https://www.fing.edu.uy/mailman/listinfo/butia-devel-l</a></div></div></div></div>                                               </div></div>
</blockquote></div><br></div></div></div></div></div>                                               </div></div>
<br>_______________________________________________<br>
Butia-devel-l site list<br>
<a href="mailto:Butia-devel-l@fing.edu.uy">Butia-devel-l@fing.edu.uy</a><br>
<a href="https://www.fing.edu.uy/mailman/listinfo/butia-devel-l" target="_blank">https://www.fing.edu.uy/mailman/listinfo/butia-devel-l</a><br></blockquote></div><br></div></div></div>                                               </div></body>
</html>