void process_char(uint8 c){ if(c=='\n' || c == '\r'){ if(keylen>0) process_keyvalue(); keylen = valuelen = 0; state = STATE_WAITING_KEY; }else{ if(state == STATE_WAITING_KEY){ if(c=='#'){ state = STATE_IN_COMMENT; }else if(is_alpha(c)){ key[keylen++] = c; state = STATE_IN_KEY; } }else if(state == STATE_IN_KEY){ if(is_alpha(c)){ if(keylen<sizeof(key)) key[keylen++] = c; }else{ state = STATE_WAITING_VALUE; valuelen = 0; } }else if(state == STATE_WAITING_VALUE){ if(is_alpha(c)){ value[valuelen++] = c; state = STATE_IN_VALUE; } }else if(state == STATE_IN_VALUE){ if(valuelen<sizeof(value)) value[valuelen++] = c; } } }
void process_char(uint8 c){ static char uart_str[50]; if(c=='\n' || c == '\r'){ if(keylen>0){ uint8 ret = process_keyvalue(); if(ret == 0){ UART_Print("Read "); for(uint8 i=0;i<keylen;i++){ UART_Print(key[i]); } UART_Print(" "); for(uint8 i=0;i<valuelen;i++){ UART_Print(value[i]); } UART_Print("\n\r"); }else if(ret==1){ UART_Print("Unrecognised key: \""); for(uint8 i=0;i<keylen;i++){ UART_Print(key[i]); } UART_Print("\"\n\r"); }else if(ret==2){ UART_Print("Expected value after key: \""); for(uint8 i=0;i<keylen;i++){ UART_Print(key[i]); } UART_Print("\"\n\r"); } } keylen = valuelen = 0; state = STATE_WAITING_KEY; }else{ if(state == STATE_WAITING_KEY){ if(c=='#'){ state = STATE_IN_COMMENT; }else if(is_alpha(c)){ key[keylen++] = c; state = STATE_IN_KEY; } }else if(state == STATE_IN_KEY){ if(is_alpha(c)){ if(keylen<sizeof(key)) key[keylen++] = c; }else{ state = STATE_WAITING_VALUE; valuelen = 0; } }else if(state == STATE_WAITING_VALUE){ if(is_alpha(c)){ value[valuelen++] = c; state = STATE_IN_VALUE; } }else if(state == STATE_IN_VALUE){ if(valuelen<sizeof(value)) value[valuelen++] = c; } } }