Ejemplo n.º 1
0
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;
        }
    }
}
Ejemplo n.º 2
0
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;
        }
    }
}