|
| 1 | +##Librería de linea de comandos para Arduino y otros microcontroladores. |
| 2 | + |
| 3 | +Esta librería permite **controlar nuestros programas y dispositivos con simples comandos de texto** de manera similar a la terminal en Mac OSX o linux y la linea de comandos de Windows. Los comandos pueden transmitirse al microcontrolador mediante un puerto serie, un socket TCP/IP o una conexión USB CDC. |
| 4 | + |
| 5 | +### Uso básico de la librería |
| 6 | + |
| 7 | +Para utilizar la librería debemos llamar a la función de inicialización que le dice a la librería que funciones debe usar para leer y escribir sobre el medio (serial, TCP/IP, etc.) |
| 8 | + |
| 9 | +```c |
| 10 | +// Initialize command line interface (CLI) |
| 11 | +// We pass the function pointers to the read and write functions that we implement below |
| 12 | +// We can also pass a char pointer to display a custom start message |
| 13 | +shell_init(shell_reader, shell_writer, 0); |
| 14 | +``` |
| 15 | +
|
| 16 | +Luego, el programador debe registrar los comandos y las funciones a las que estará asociada cada una de las cadenas de texto válido. |
| 17 | +
|
| 18 | +```c |
| 19 | + // Add commands to the shell |
| 20 | +shell_register(command_mycommand, "mycommand"); |
| 21 | +shell_register(command_othercommand, "othercommand"); |
| 22 | +``` |
| 23 | + |
| 24 | +Finalmente, dentro del ciclo principal de cada aplicación, el programador debe asegurarse de llamar a la función shell_task(), ya que dentro de esta se responde a los comandos introducidos y es la encargada de ejecutar las funciones que asociamos a cada cadena. |
| 25 | + |
| 26 | +```c |
| 27 | + // This should always be called to process user input |
| 28 | +shell_task(); |
| 29 | +``` |
| 30 | + |
| 31 | +Los programas (funciones) que implementan cada uno de los comandos se deben escribir con el prototipo estándar de C y reciben los parámetros para realizar su función de manera similar a una utilidad de linea de comandos. |
| 32 | + |
| 33 | +```c |
| 34 | +int command_func(int argc, char ** argv); |
| 35 | +``` |
| 36 | +
|
| 37 | +### Objetivos de este proyecto |
| 38 | +
|
| 39 | +Buscamos que la librería cumpla con los siguientes puntos: |
| 40 | +
|
| 41 | +* El código debe ser portable a otras plataformas |
| 42 | +* la librería debe ser compacta |
| 43 | +* Debe facilitar para agregar comandos |
| 44 | +
|
| 45 | +###Dispositivos Soportados |
| 46 | +
|
| 47 | +* Microcontroladores PIC (PIC16F, PIC18F, PIC24F, dsPIC) |
| 48 | +* Arduino UNO R3 |
| 49 | +* Prácticamente cualquier dispositivo que tenga un compilador de C respetable |
0 commit comments