if (fCommand){
/*estructura de comandos
1 byte= comando: R:leer, W:escribir
2 byte= decimal parametro: 0 a 9
3 byte= unidad parametro: 0 a 9
4 byte= caracter fin comando 0x0A si es lectura
caracter = si es escritura
5 byte= centena valor parametro;
6 byte= decena valor parametro;
7 byte= unidad valor parametro;
8 byte= caracter fin de comando 0x0A
*/
fCommand=0;
switch (rx_index){
case 0://primer byte recibido (COMANDO)
if (rx_char == 'R') fLeer =1;
else if (rx_char == 'W')fEsc=1;
else if (rx_char == 'M')fMon=1;
parNro=0;
break;
case 1://segundo byte (DECIMAL PARAMETRO)
parNro = (rx_char - 0x30)*10;
break;
case 2://segundo byte (UNIDAD PARAMETRO)
parNro = (rx_Char-0x30)+parNro;
BREAK;
case 3://caracter "=" si es escritura
break;
case 4://centena de valor a setear
ParVal= (rx_char - 0x30)*100;
break;
case 5://decena de valor a setear
ParVal= (rx_char - 0x30)*10 + ParVal;
break;
case 6://centena de valor a setear
ParVal= (rx_char - 0x30)+ ParVal;
break;
}
rx_index++;
if (rx_char == 0x0A){
if (fLeer) printf("Parametro Nro: %u\r\n",ParNro);
if (fEsc) printf("Par/Val: %u, %u\r\n",ParNro,ParVal);
parNro=0;
rx_index=0;
fLeer=0;
fEsc=0;
}
enable_interrupts(INT_RB6);
}