Diferencia entre revisiones de «Toribio»

De Proyecto Butiá
Saltar a: navegación, buscar
m (Aquí trasladada a Toribio)
m (Bobot:)
Línea 11: Línea 11:
  
 
serial -----------serialcomm---------comms_serial---|
 
serial -----------serialcomm---------comms_serial---|
             #       (C)                (lua)      |                        |---- drivers (lua)
+
             :       (C)                (lua)      |                        |---- drivers (lua)
 
           libusb0.1                                |                        |
 
           libusb0.1                                |                        |
 
                                                     |------------bobot------------- drivers (lua)
 
                                                     |------------bobot------------- drivers (lua)
 
           stdio                                    |            (lua)        |
 
           stdio                                    |            (lua)        |
             #                                       |              |          |---- drivers (lua)
+
             :                                       |              |          |---- drivers (lua)
 
usb---------------libusb--------------comms_usb-----|              |
 
usb---------------libusb--------------comms_usb-----|              |
 
               (C+liblua.h)              (lua)                    |
 
               (C+liblua.h)              (lua)                    |
Línea 29: Línea 29:
  
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
 
  
 
== Toribio ==
 
== Toribio ==

Revisión del 13:01 10 feb 2012

Bobot:

Resumen de componentes en bobot, y formas de comuniaciones

         OS               .so library              lua modules                lua module
  xxxxxxxxxxxxxxxxx      xxxxxxxxxxxxxxx     xxxxxxxxxxxxxxxxxxxxxx   xxxxxxxxxxxxxxxxxxxxxx


serial -----------serialcomm---------comms_serial---|
            :        (C)                 (lua)      |                         |---- drivers (lua)
          libusb0.1                                 |                         |
                                                    |------------bobot------------- drivers (lua)
          stdio                                     |            (lua)        |
            :                                       |              |          |---- drivers (lua)
usb---------------libusb--------------comms_usb-----|              |
               (C+liblua.h)               (lua)                    |
                                                                   |
                                                                   |---------------butialo, other apps.
                                                                   |
                                                                   |---------------bobot-server-----------------userapps
                                                                                        (lua)


                                                                     xxxxxxxxxxxxxxxxxxxxx    xxxxxxxxxxxxxxxxxxxx
                                                                           lua module                socket

Toribio

                     OS                fd (PIPE)            lua+Lumen
              xxxxxxxxxxxxxxxx    xxxxxxxxxxxxxxxx    xxxxxxxxxxxxxxxxxxx

                                                                 |---- drivers (lua)
                                                                 |
usb, serial, hid? ---------- bridge ------------ toribio ------------- drivers (lua)
                       #       (C)             (lua+Lumen)       |
                       #                            |            |---- drivers (lua)
               (stdio, libusb1, ...?)               |
                                                    |
                                                    |---------------butialo, other apps.
                                                    |                                                    
                                                    |---------------bobot-server-----------------userapps
                                                                       (lua)

                                                      xxxxxxxxxxxxxxxxxxxxx    xxxxxxxxxxxxxxxxxxxx
                                                             lua Lumen                socket

Propuesta actual...

                   POSIX            lua library          Lumen tasks
              xxxxxxxxxxxxxxxx    xxxxxxxxxxxxxxxx    xxxxxxxxxxxxxxxxxxx

                                                                 |---- drivers (lua)
                                                                 |
          fd ---------------- nixio ------------ toribio ------------- drivers (lua)
                               (C)             (lua+Lumen)       |
                                                    |            |---- drivers (lua)
                                                    |
                                                    |
                                                    |---------------butialo, other apps.
                                                    |                                                    
                                                    |---------------bobot-server-----------------userapps
                                                                       (lua)

                                                      xxxxxxxxxxxxxxxxxxxxx    xxxxxxxxxxxxxxxxxxxx
                                                           Lumen task                socket


USB4ALL:

Se proponen algunos cambios a la plataforma usb4all. Las ideas principales detras de estos cambios son;

  • convertir a usb4all en un protocolo stateless. Actualmente, las comunicaciones son de la forma solicitud/respuesta. La respuesta solo se puede interpretar manteniendo el estado de la solicitud originante. Para convertirlo en stateless, hay que agregar información a las respuestas de forma de poder interpretarlo completamente sin tener que recordar las comunicaciones anteriores.
  • Fácil de portar impementaciones de usb4all clásico. Las implementaciones alternativas deben seguir funcionando con solo agregar infomracion extra a los paquetes. La lógica original debe seguir siendo valida.
  • Esto abre las puertas a comunicaciones asincrónicas desde la placa al host.

Puntualmente, los cambios son:


Paquete de respuesta de open Agregar nombre de modulo, etc.

OPEN(8bits) | INEP(8bits) | OUTEP(8bits) | MODULE(8bytes) | HANDLER(8bits)


Paquete de respuesta de close Agregar handler.

CLOSE(8bits) | HANDLER(8bits) | STATUS(8bits)


Respuesta de consulta de un modulo

GET_USER_MODULES_LINE (8bits) | LINE(8bits) | MODULE(8bytes)