/* * Arduino program example */ //// // Include files //// #include #include #include "arduino.h" #define MAX_SERIAL 1024 //// // Global variables // my variables int i; long now; bool decod; unsigned char decoded_packet[MAX_SERIAL]; int j; int nb_0C; // //// //// // Handler functions /// void setup(void){ i = 0; j = 0; decod = false; nb_0C = 0; } void loop(void){ if(millis() > now+300){ led((i-1 + LEDS_NB) % LEDS_NB, 0); led(i % LEDS_NB, 1); i = (i+1) % LEDS_NB; } } void serialInHandler(unsigned char byte){ if(byte == '\xdb') { decod = true; } else if(byte == '\x0c') nb_0C += 1; else if(decod){ if(byte == '\xdc') decoded_packet[j] = '\xc0'; else if(byte== '\xdd') decoded_packet[j] = '\xdb'; j += 1; decod = false; }else{ decoded_packet[j] = byte; j += 1; } if(nb_0C == 2){ printf("le packet décodé est de taille %d:\n", j); nb_0C = 0; } /*for(int i = 0; i < j; i++) printf("%02x ", decoded_packet[i]); printf("\n");*/ }