Add RUN/STOP parser state
This commit is contained in:
87
src/parser.c
87
src/parser.c
@@ -49,9 +49,17 @@ void CMD_Parse(char ch)
|
|||||||
// Placeholder
|
// Placeholder
|
||||||
switch (state) {
|
switch (state) {
|
||||||
case 0:
|
case 0:
|
||||||
if (ch == 'T')
|
if (ch == 'T') // TEMP
|
||||||
state = 1;
|
state = 1;
|
||||||
|
if (ch == 'D') // DEWP
|
||||||
|
state = 5;
|
||||||
|
if (ch == 'R') // RUN
|
||||||
|
state = 9;
|
||||||
|
if (ch == 'S') // STOP
|
||||||
|
state = 12;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
// Parse 'TEMP'
|
||||||
case 1:
|
case 1:
|
||||||
if (ch == 'E')
|
if (ch == 'E')
|
||||||
state = 2;
|
state = 2;
|
||||||
@@ -74,8 +82,85 @@ void CMD_Parse(char ch)
|
|||||||
if (ch == ' ') {
|
if (ch == ' ') {
|
||||||
// XXX: Just so the web server can show something...
|
// XXX: Just so the web server can show something...
|
||||||
USART_Printf("[CORE] Parsed 'CMD_SET_TEMP' token.\r\n");
|
USART_Printf("[CORE] Parsed 'CMD_SET_TEMP' token.\r\n");
|
||||||
|
}
|
||||||
|
// TODO: Parse float value
|
||||||
|
state = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Parse 'DEWP'
|
||||||
|
case 5:
|
||||||
|
if (ch == 'E')
|
||||||
|
state = 6;
|
||||||
|
else
|
||||||
|
state = 0;
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
if (ch == 'W')
|
||||||
|
state = 7;
|
||||||
|
else
|
||||||
|
state = 0;
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
if (ch == 'P')
|
||||||
|
state = 8;
|
||||||
|
else
|
||||||
|
state = 0;
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
if (ch == ' ') {
|
||||||
|
// XXX: Just so the web server can show something...
|
||||||
USART_Printf("[CORE] Parsed 'CMD_SET_DEWP' token.\r\n");
|
USART_Printf("[CORE] Parsed 'CMD_SET_DEWP' token.\r\n");
|
||||||
}
|
}
|
||||||
|
// TODO: Parse float value
|
||||||
state = 0;
|
state = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Parse 'RUN'
|
||||||
|
case 9:
|
||||||
|
if (ch == 'U')
|
||||||
|
state = 10;
|
||||||
|
else
|
||||||
|
state = 0;
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
if (ch == 'N')
|
||||||
|
state = 11;
|
||||||
|
else
|
||||||
|
state = 0;
|
||||||
|
break;
|
||||||
|
case 11:
|
||||||
|
if (ch == '\n') {
|
||||||
|
// XXX: Just so the web server can show something...
|
||||||
|
USART_Printf("[CORE] Parsed 'CMD_RUN' token.\r\n");
|
||||||
|
}
|
||||||
|
state = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
// Parse 'STOP'
|
||||||
|
case 12:
|
||||||
|
if (ch == 'T')
|
||||||
|
state = 13;
|
||||||
|
else
|
||||||
|
state = 0;
|
||||||
|
break;
|
||||||
|
case 13:
|
||||||
|
if (ch == 'O')
|
||||||
|
state = 14;
|
||||||
|
else
|
||||||
|
state = 0;
|
||||||
|
break;
|
||||||
|
case 14:
|
||||||
|
if (ch == 'P')
|
||||||
|
state = 15;
|
||||||
|
else
|
||||||
|
state = 0;
|
||||||
|
break;
|
||||||
|
case 15:
|
||||||
|
if (ch == '\n') {
|
||||||
|
// XXX: Just so the web server can show something...
|
||||||
|
USART_Printf("[CORE] Parsed 'CMD_STOP' token.\r\n");
|
||||||
|
}
|
||||||
|
state = 0;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user