Reduce RXBUF size to match parser and space out log messages
This commit is contained in:
@@ -5,8 +5,8 @@
|
|||||||
#include <avr/interrupt.h>
|
#include <avr/interrupt.h>
|
||||||
|
|
||||||
#define USART_BAUDRATE 9600
|
#define USART_BAUDRATE 9600
|
||||||
#define USART_RXBUF_SIZE 512
|
#define USART_RXBUF_SIZE 128
|
||||||
#define USART_TXBUF_SIZE 512
|
#define USART_TXBUF_SIZE 128
|
||||||
|
|
||||||
#define USART_RXBUF_MASK (USART_RXBUF_SIZE - 1)
|
#define USART_RXBUF_MASK (USART_RXBUF_SIZE - 1)
|
||||||
#define USART_TXBUF_MASK (USART_TXBUF_SIZE - 1)
|
#define USART_TXBUF_MASK (USART_TXBUF_SIZE - 1)
|
||||||
@@ -41,6 +41,7 @@ char USART_Getc(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
rxtail = (rxtail + 1) & USART_RXBUF_MASK;
|
rxtail = (rxtail + 1) & USART_RXBUF_MASK;
|
||||||
|
|
||||||
return rxbuf[rxtail];
|
return rxbuf[rxtail];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,9 +16,6 @@ static char *tail = cmdbuf + CMD_MAX_LEN - 1;
|
|||||||
static char *head = cmdbuf;
|
static char *head = cmdbuf;
|
||||||
|
|
||||||
static bool ParseLine(cmd_t *out);
|
static bool ParseLine(cmd_t *out);
|
||||||
static void StartTimer(void);
|
|
||||||
static bool IsTimedOut(void);
|
|
||||||
static void StopTimer(void);
|
|
||||||
|
|
||||||
bool CMD_Parse(char ch, cmd_t *out)
|
bool CMD_Parse(char ch, cmd_t *out)
|
||||||
{
|
{
|
||||||
@@ -30,16 +27,10 @@ bool CMD_Parse(char ch, cmd_t *out)
|
|||||||
// means that after a command that is too long, the
|
// means that after a command that is too long, the
|
||||||
// next command will not be parsed properly.
|
// next command will not be parsed properly.
|
||||||
|
|
||||||
if (head == cmdbuf) {
|
if (ch == '\n' || ch == '\r') {
|
||||||
StartTimer();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IsTimedOut() ||
|
|
||||||
(ch == '\n' || ch == '\r')) {
|
|
||||||
is_valid = ParseLine(out);
|
is_valid = ParseLine(out);
|
||||||
tail = cmdbuf + CMD_MAX_LEN - 1;
|
tail = cmdbuf + CMD_MAX_LEN - 1;
|
||||||
head = cmdbuf;
|
head = cmdbuf;
|
||||||
StopTimer();
|
|
||||||
|
|
||||||
return is_valid;
|
return is_valid;
|
||||||
}
|
}
|
||||||
@@ -87,20 +78,3 @@ static bool ParseLine(cmd_t *out)
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void StartTimer(void)
|
|
||||||
{
|
|
||||||
TCNT0 = 0x00;
|
|
||||||
TCCR0 = BIT(CS00) | BIT(CS02);
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool IsTimedOut(void)
|
|
||||||
{
|
|
||||||
return false; // TIFR & BIT(TOV0)
|
|
||||||
}
|
|
||||||
|
|
||||||
static void StopTimer(void)
|
|
||||||
{
|
|
||||||
TCNT0 = 0x00;
|
|
||||||
TIFR = BIT(TOV0);
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
#include <avr/interrupt.h>
|
#include <avr/interrupt.h>
|
||||||
|
|
||||||
|
// TODO: Check parser and circular buffer for edge cases.
|
||||||
// TODO: Implement command parser timeout for large input.
|
// TODO: Implement command parser timeout for large input.
|
||||||
// TODO: Config header for chip specifics like EEPROM size.
|
// TODO: Config header for chip specifics like EEPROM size.
|
||||||
// TODO: Check thermistor conversion results /w thermometer.
|
// TODO: Check thermistor conversion results /w thermometer.
|
||||||
@@ -174,6 +175,7 @@ static void SetTarget(float t, float td)
|
|||||||
{
|
{
|
||||||
mem_block_t mem;
|
mem_block_t mem;
|
||||||
|
|
||||||
|
Print("\r\n");
|
||||||
Info("=======================================");
|
Info("=======================================");
|
||||||
Info("Setting temperature target to '%.2fC'.", t);
|
Info("Setting temperature target to '%.2fC'.", t);
|
||||||
Info("Setting dewpoint target to '%.2fC'.", td);
|
Info("Setting dewpoint target to '%.2fC'.", td);
|
||||||
@@ -201,6 +203,7 @@ static void GetSensorState(void)
|
|||||||
word raw;
|
word raw;
|
||||||
float t[6], rh[3], dp[3];
|
float t[6], rh[3], dp[3];
|
||||||
|
|
||||||
|
Print("\r\n");
|
||||||
Info("Reading sensor values...");
|
Info("Reading sensor values...");
|
||||||
|
|
||||||
I2C_SetChannel(AHT01);
|
I2C_SetChannel(AHT01);
|
||||||
|
|||||||
Reference in New Issue
Block a user