]> git.llucax.com Git - z.facultad/66.09/etherled.git/blob - src/elp.h
Alguna modificación al informe que ya no recuerdo.
[z.facultad/66.09/etherled.git] / src / elp.h
1 // vim: set et sw=4 sts=4 :     
2
3 #ifndef _ELP_H_
4 #define _ELP_H_
5
6 #include "types.h"
7
8 /** @file
9  * Protocolo de etherled (elp == Etherled Protocol).
10  *
11  * Ver archivo protocolo.txt en la documentación.
12  */
13
14 /** Puerto UDP usado por el protocolo ELP */
15 #define ELP_PORT 9876u
16
17 /** Variables del comando */
18 #define ELP_VAR_OFF     0
19 #define ELP_VAR_MATRIX  1
20 #define ELP_VAR_PAUSE   2
21 #define ELP_VAR_DELAY   3
22
23 /** Comando recibido/a enviar */
24 extern struct elp_command_t
25 {
26     byte id:  3; ///< Identificador del paquete
27     byte var: 4; ///< Variable a leer/escribir
28     byte set: 1; ///< SET (1) / GET (0)
29 }
30 elp_command;
31
32 /** Tamaño de la cabecera ELP */
33 #define ELP_HEADER_SIZE (sizeof(struct elp_command_t))
34
35 /** Procesa un comando ELP.
36  * @precond Se ejecutó netdev_recv_start().
37  * @returns cantidad de bytes escritos, 0 indica error o comando no soportado.
38  */
39 byte elp_read_process_command();
40
41 /** Escribe la respuesta al comando.
42  * @precond Se ejecutó netdev_send_start().
43  */
44 void elp_write_response();
45
46 #endif /* _ELP_H_ */