Diferencia entre revisiones de «Pybot»

De Proyecto Butiá
Saltar a: navegación, buscar
(Drivers en PyBot)
(Drivers en PyBot)
Línea 6: Línea 6:
 
van dentro de /drivers/hotplug.<br>
 
van dentro de /drivers/hotplug.<br>
 
Cada función en el driver se define como una función Python utilizando el "def" y recibe como primer parámetro el dispositivo ("dev") con el cual se va a comunicar.<br>
 
Cada función en el driver se define como una función Python utilizando el "def" y recibe como primer parámetro el dispositivo ("dev") con el cual se va a comunicar.<br>
Este es el ejemplo del driver del sensor de grises:<br>
+
Este es el ejemplo del driver del sensor de grises, el cuál tiene dos funciones: getVersion y getValue<br>
  
 
[[Archivo:pybot_driver_grey.png|Captura del código del driver de grises]]
 
[[Archivo:pybot_driver_grey.png|Captura del código del driver de grises]]
Línea 14: Línea 14:
 
[[Archivo:pybot_driver_hackp_setmode.png|Captura parcial del código del driver de hackp]]
 
[[Archivo:pybot_driver_hackp_setmode.png|Captura parcial del código del driver de hackp]]
  
Como se puede observar, la función setMode recibe como primer argumento el "dev" y luego el resto de los parámetros: el número de "pin" y el "value" que es el modo.
+
Como se puede observar, la función "setMode" recibe como primer argumento el "dev" y luego el resto de los parámetros: el número de "pin" y el "value" que es el modo.
 
Se guarda en "msg" la lista con el "código de operación" SET_MODE y se le agregan los otros parámetros.
 
Se guarda en "msg" la lista con el "código de operación" SET_MODE y se le agregan los otros parámetros.
  

Revisión del 22:05 7 abr 2013


Drivers en PyBot

Los drivers de PyBot son escritos en python. Dentro de la carpeta /drivers se encuentran todos aquellos que no son PNP (plug and play). Los módulos que son abiertos automáticamente por la placa, por ejemplo cuando uno conecta un sensor de grises, van dentro de /drivers/hotplug.
Cada función en el driver se define como una función Python utilizando el "def" y recibe como primer parámetro el dispositivo ("dev") con el cual se va a comunicar.
Este es el ejemplo del driver del sensor de grises, el cuál tiene dos funciones: getVersion y getValue

Captura del código del driver de grises

Esta es una captura del código del driver de los hack points (hackp):

Captura parcial del código del driver de hackp

Como se puede observar, la función "setMode" recibe como primer argumento el "dev" y luego el resto de los parámetros: el número de "pin" y el "value" que es el modo. Se guarda en "msg" la lista con el "código de operación" SET_MODE y se le agregan los otros parámetros.

   msg = [SET_MODE, pin, value]

Esto se le envía al módulo con la función "send":

   dev.send(msg)

Luego se leen 2 bytes: el primero, como en todas las funciones es el mismo "código de operación" que fue enviado y el segundo es en este caso, el código de error (si es -1, hubo un error).

   raw = dev.read(2)

Y solo se retorna el segundo byte que es el el importante:

   return raw[1]