|
|
(No se muestran 2 ediciones intermedias del mismo usuario) |
Línea 1: |
Línea 1: |
| | | |
− |
| |
− | == 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.<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>
| |
− |
| |
− | [[Archivo:pybot_driver_grey.png|Captura del código del driver de grises]]
| |
− |
| |
− | Esta es una captura del código del driver de los hack points (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.
| |
− | 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]
| |