Hola a todos,
Estoy tratando de comunicar un arduido y una pc utilizando una XBee protoshield y una tarjeta XBIB-DEV REV. 4 conectada a la pc.
En mi código utilizo la libreria XBee.h, y los XBees utilizan el modo API enviando paquetes TX 16 y recibiendo paquetes RX 16
El paquet que envío desde el XBIB-DEV conectado a la PC hacia el arduino es el siguiente:
0x 7E 00 11 01 01 00 04 01 00 00 00 00 00 00 00 00 00 00 00 00 F8
Siendo la carga útil o "data" del paquete:
0x 01 00 00 00 00 00 00 00 00 00 00 00 00
Estoy tratando que el arduino realice diferentes acciones según el "data" del paquete recibido, para esto utilizo una estructura switch case:
switch (data){
case 0x01000000000000000000000000:
xbee.send(tx);
flashLed(statusLed, 1, 100);
Serial.print(" Send 1 ");
break;
case 0x02000000000000000000000000:
xbee.send(tx);
flashLed(statusLed, 1, 100);
Serial.print(" Send 2 ");
break;
case 0x03000000000000000000000000:
xbee.send(tx);
flashLed(statusLed, 1, 100);
Serial.print(" send 3 ");
break;
}
pero cuando trato de compilar me salen estos errores:
error: previously used here
error: duplicate case value
data está definido como int16_t data = 0;
Creo que el valor de "data" es demasiado grande para el arduino, de ser así ¿Como puedo manejar paquetes largos? ¿Como puedo leer la variable "data", separar el paquete y leer únicamente el byte de mi interés (en este ejemplo leer únicamente el primer byte 0x01, 0x02, etc)?
Por favor ayuda, cualquier consejo será útil =(