avr: flush the ctrl Tx buffer when decoding a new command
This commit is contained in:
parent
9c5842f262
commit
20a13be0d3
|
@ -109,11 +109,16 @@ uint8_t ctrlGetFromRxBuffer(uint8_t* pdata)
|
|||
}
|
||||
}
|
||||
|
||||
void ctrlFlushReceiveBuffer(void)
|
||||
void ctrlFlushRxBuffer(void)
|
||||
{
|
||||
ctrlRxBuffer.datalength = 0;
|
||||
}
|
||||
|
||||
void ctrlFlushTxBuffer(void)
|
||||
{
|
||||
ctrlTxBuffer.datalength = 0;
|
||||
}
|
||||
|
||||
uint8_t ctrlReadCharFromRxBuffer(uint8_t* pdata)
|
||||
{
|
||||
uint8_t high_hex, low_hex;
|
||||
|
@ -200,6 +205,8 @@ void ctrlDecode(void)
|
|||
{
|
||||
uint8_t cmd[2];
|
||||
|
||||
ctrlFlushTxBuffer();
|
||||
|
||||
if (ctrlGetFromRxBuffer(cmd) && ctrlGetFromRxBuffer(cmd+1)) {
|
||||
ctrlAddToTxBuffer(cmd[0]);
|
||||
ctrlAddToTxBuffer(cmd[1]);
|
||||
|
@ -219,7 +226,7 @@ void ctrlDecode(void)
|
|||
ctrlAddToTxBuffer('.');
|
||||
}
|
||||
|
||||
ctrlFlushReceiveBuffer();
|
||||
ctrlFlushRxBuffer();
|
||||
}
|
||||
|
||||
void ctrlCmdGet(uint8_t cmd)
|
||||
|
|
|
@ -90,7 +90,13 @@ uint8_t ctrlGetFromRxBuffer(uint8_t* data);
|
|||
* Flush the ctrl Rx buffer.
|
||||
*
|
||||
*/
|
||||
void ctrlFlushReceiveBuffer(void);
|
||||
void ctrlFlushRxBuffer(void);
|
||||
|
||||
/**
|
||||
* Flush the ctrl Tx buffer.
|
||||
*
|
||||
*/
|
||||
void ctrlFlushTxBuffer(void);
|
||||
|
||||
/**
|
||||
* Loop all bytes from the ctrl Rx to Tx buffer.
|
||||
|
@ -98,7 +104,32 @@ void ctrlFlushReceiveBuffer(void);
|
|||
*/
|
||||
void ctrlRxToTxLoop(void);
|
||||
|
||||
/**
|
||||
* Decode the message in the ctrl Rx buffer and dispatch to either ctrlCmdGet,
|
||||
* ctrlCmdSet or ctrlCmdCommit.
|
||||
*
|
||||
*/
|
||||
void ctrlDecode(void);
|
||||
|
||||
/**
|
||||
* Execute the get command with parameters present in the ctrl Rx buffer.
|
||||
* The command's reply is written to the ctrl Tx buffer.
|
||||
*
|
||||
* @param cmd get command issued
|
||||
*/
|
||||
void ctrlCmdGet(uint8_t cmd);
|
||||
|
||||
/**
|
||||
* Execute the set command with parameters present in the ctrl Rx buffer.
|
||||
* The command's reply is written to the ctrl Tx buffer. In case of a set
|
||||
* command this will typically only be the two-letter command ID issued.
|
||||
*
|
||||
* @param cmd set command issued
|
||||
*/
|
||||
void ctrlCmdSet(uint8_t cmd);
|
||||
|
||||
/**
|
||||
* Commit all previous changes by writing the datastructures to EEPROM.
|
||||
*
|
||||
*/
|
||||
void ctrlCmdCommit(void);
|
||||
|
|
Loading…
Reference in New Issue