[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