main.c 1 KB
/*
 * Arduino program example
 */

////
// Include files
////
#include <stdio.h>
#include <stdbool.h>
#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");*/
}