Handle numeric arguments for TEMP/DEWP commands

This commit is contained in:
2024-08-28 00:26:45 +02:00
parent 8e45de2b82
commit b90545b148
4 changed files with 155 additions and 57 deletions

View File

@@ -2,22 +2,63 @@
#include "serial.h"
#include "parser.h"
bool running;
int main(void)
{
unsigned long i;
char ch;
unsigned long i = 1;
running = true;
USART_Init();
for (i = 1;; i++) {
if (i >= 99999) i = 1;
USART_Printf("[CORE] Fetching sensors #%05lu...\r\n", i);
for (;;) {
// Process rx ring buffer
while ((ch = USART_GetChar())) {
CMD_Parse(ch);
}
Sleep(3000);
if (!running)
continue;
// TODO: Main program
if (i >= 99999) i = 1;
USART_Printf("[CORE] Fetching sensors #%05lu...\r\n", i++);
}
return 0;
}
void Enable(void)
{
USART_Printf("[CORE] Parsed 'CMD_RUN' token.\r\n");
running = true;
}
void Disable(void)
{
USART_Printf("[CORE] Parsed 'CMD_STOP' token.\r\n");
running = false;
}
void SetTemp(long val)
{
USART_Printf("[CORE] Parsed 'CMD_SET_TEMP', VAL='%ld'.\r\n", val);
if (val < 10) {
USART_Printf("[CORE] Error: Given temperature is too low.\r\n");
} else if (val > 40) {
USART_Printf("[CORE] Error: Given temperature is too high.\r\n");
}
}
void SetDewp(long val)
{
USART_Printf("[CORE] Parsed 'CMD_SET_DEWP', VAL='%ld'.\r\n", val);
if (val < 10) {
USART_Printf("[CORE] Error: Given dew point is too low.\r\n");
} else if (val > 80) {
USART_Printf("[CORE] Error: Given dew point is too high.\r\n");
}
}