[Butia-devel-list] protocolo USB4Butia

Alan Jhonn Aguiar Schwyn alanjas en hotmail.com
Mar Ago 27 12:15:35 UYT 2013


Ahhh.. eso.. Parafraseando.. PyBot is not Bobot (aunque se parezcan) jajaj
Para qué necesitan esa metadata? Están haciendo algo que levanta dinámicamente las funciones?
En el sistema anterior de drivers de PyBot, yo había copiado el sistema de bobot: un diccionarioque tenía esa metadata y una función.. pero lo abandoné a algo mas simple:
En el driver se define una función python que recibe como primer parámetro el "device" correspondiente.Si la función se llama xyz, pybot automáticamente, cuando levanta los drivers, sabe que existeuna función xyz para ese módulo/device.
Ejemplo de la función getValue de un botón:
GET_VALUE = 0x01
def getValue(dev):    dev.send([GET_VALUE])    raw = dev.read(2)    return raw[1]
Por ahora no encontré algo que me diera dinámicamente los parámetros de una función (sin hacer cosasmuy raras :-).
Además hay un tema que nunca supe resolver: los tipos. Cuando uno usa el server y el cliente, siempretermina llegando al server una string (a través del socket). Luego todo se convierte a enteros exceptuandoalguna función particular (como loopBack).Lo que si sería bueno, es tener la cantidad de parámentros de entrada y de salida.
Adjunto un diagrama que hice una vez y nunca terminé. Quizás alguien encuentre algo mas eficienteentre la conversión de tipos.
From: furquez en gmail.com
Date: Mon, 26 Aug 2013 22:23:10 -0300
Subject: Re: [Butia-devel-list] protocolo USB4Butia
To: alanjas en hotmail.com
CC: aaguirre en fing.edu.uy; butia-devel-l en fing.edu.uy; fandrade9 en gmail.com; xxopxe en gmail.com

Qué significa la "metadata necesaria" ??

los parametros, tipos y que cosa retorna, en bobot si camina con el firmware 7, Nosotros estamos teniendo problemas con eso :)
saludosNico



El 26 de agosto de 2013 22:20, Alan Jhonn Aguiar Schwyn <alanjas en hotmail.com> escribió:





Qué significa la "metadata necesaria" ??PyBot obtiene dinámicamente el nombre de las funciones de los drivers.. qué mas?

From: aaguirre en fing.edu.uy


Date: Mon, 26 Aug 2013 20:00:37 -0300
Subject: Re: [Butia-devel-list] protocolo USB4Butia
To: alanjas en hotmail.com
CC: fandrade9 en gmail.com; xxopxe en gmail.com; butia-devel-l en fing.edu.uy



el protocolo está acá: http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/index.php/Usb4all

Alan, estoy haciendo describe de los módulos y no me da la metadata necesaria en pybot. 

saludos

2013/8/26 Alan Jhonn Aguiar Schwyn <alanjas en hotmail.com>





Está en la documentación de la USB4all..
En PyBot están los mensajes con el admin en "baseboard.py", ahí estánlas funciones principales: get_user_modules_size, get_user_module_line,



get_handler_size, get_handler_type, etc..
El protocolo es:
handler .. tamaño_del_paquete .. byte_nulo .. código_operación .. parámentros (si tiene)




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



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



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




Esto significa que el firmware actual tiene 0x08 user módules.
Quizás haya que poner algo en la wiki de esto?

From: fandrade9 en gmail.com




Date: Mon, 26 Aug 2013 12:40:40 -0300
To: xxopxe en gmail.com
CC: aaguirre en fing.edu.uy; butia-devel-l en fing.edu.uy




Subject: Re: [Butia-devel-list] protocolo USB4Butia

Ahh, no sabía. Pero bueno, la parte del paquete usb4all (andler, modules, opcode, parametros...) donde está?




salu2x


Fede



2013/8/26 Jorge <xxopxe en gmail.com>



  
    
  
  
    aaaaah, cierto. :)

      

      On 26/08/13 00:30, Andres Aguirre wrote:

    
    
      si, pero solo para recordar que por ahora no
        tenemos checksum ni sync :)
        

        
      
      

        

        2013/8/25 Jorge <xxopxe en gmail.com>

          
            
              Sospecho que se refiere al paquete usb4butia mismo,
                el que tiene aquello handler, modules, etc.

                    

                    J.
                
                  

                    

                    On 25/08/13 22:57, Andres Aguirre wrote:

                  
                
              
              
                
                  
                    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 pedís para leer un flujo de bytes de
                      determinado largo y podes confiar que lo que llegó
                      esta consistente. A lo mejor vos tenes en mente
                      cuando usábamos el arduino mega, donde venía
                      físicamente por el cable USB los datos pero seguía
                      siendo un serial tonto. Digamos que el estándar
                      USB es un serial más inteligente ;) 
                       saludos
                      

                      
                      

                        

                        2013/8/25 Federico
                          Andrade - InCo <fandrade en fing.edu.uy>

                          
                            
                              ¿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
                              etc
                              ???

                                    

                                  
                              
                                  
                                    Federico Andrade -
                                      InCo

                                    
                                  
                                
                            

_______________________________________________

                            Butia-devel-l site list

                            Butia-devel-l en fing.edu.uy

                            https://www.fing.edu.uy/mailman/listinfo/butia-devel-l

                          
                        
                        

                      
                    
                    

                    
                    

                    _______________________________________________
Butia-devel-l site list
Butia-devel-l en fing.edu.uy
https://www.fing.edu.uy/mailman/listinfo/butia-devel-l
                  
                  

                
              
            
            

            _______________________________________________

            Butia-devel-l site list

            Butia-devel-l en fing.edu.uy

            https://www.fing.edu.uy/mailman/listinfo/butia-devel-l

          
        
        

      
    
    

  


_______________________________________________

Butia-devel-l site list

Butia-devel-l en fing.edu.uy

https://www.fing.edu.uy/mailman/listinfo/butia-devel-l



_______________________________________________
Butia-devel-l site list
Butia-devel-l en fing.edu.uy
https://www.fing.edu.uy/mailman/listinfo/butia-devel-l 		 	   		  

 		 	   		  

_______________________________________________

Butia-devel-l site list

Butia-devel-l en fing.edu.uy

https://www.fing.edu.uy/mailman/listinfo/butia-devel-l

 		 	   		  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: https://www.fing.edu.uy/pipermail/butia-devel-l/attachments/20130827/b002b9f4/attachment.html 
------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre     : pybot structure.png
Tipo       : image/png
Tamaño     : 18039 bytes
Descripción: no disponible
Url        : https://www.fing.edu.uy/pipermail/butia-devel-l/attachments/20130827/b002b9f4/attachment.png 


Más información sobre la lista de distribución Butia-devel-l