mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-23 16:25:31 +03:00
Refactor MSP command processing to reduce code size.
This commit is contained in:
parent
bf4188a70c
commit
f2bdc86c61
1 changed files with 11 additions and 22 deletions
|
@ -100,7 +100,6 @@ static bool mspSerialProcessReceivedData(mspPort_t *mspPort, uint8_t c)
|
||||||
default:
|
default:
|
||||||
case MSP_IDLE: // Waiting for '$' character
|
case MSP_IDLE: // Waiting for '$' character
|
||||||
if (c == '$') {
|
if (c == '$') {
|
||||||
mspPort->mspVersion = MSP_V1;
|
|
||||||
mspPort->c_state = MSP_HEADER_START;
|
mspPort->c_state = MSP_HEADER_START;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -109,12 +108,17 @@ static bool mspSerialProcessReceivedData(mspPort_t *mspPort, uint8_t c)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MSP_HEADER_START: // Waiting for 'M' (MSPv1 / MSPv2_over_v1) or 'X' (MSPv2 native)
|
case MSP_HEADER_START: // Waiting for 'M' (MSPv1 / MSPv2_over_v1) or 'X' (MSPv2 native)
|
||||||
|
mspPort->offset = 0;
|
||||||
|
mspPort->checksum1 = 0;
|
||||||
|
mspPort->checksum2 = 0;
|
||||||
switch (c) {
|
switch (c) {
|
||||||
case 'M':
|
case 'M':
|
||||||
mspPort->c_state = MSP_HEADER_M;
|
mspPort->c_state = MSP_HEADER_M;
|
||||||
|
mspPort->mspVersion = MSP_V1;
|
||||||
break;
|
break;
|
||||||
case 'X':
|
case 'X':
|
||||||
mspPort->c_state = MSP_HEADER_X;
|
mspPort->c_state = MSP_HEADER_X;
|
||||||
|
mspPort->mspVersion = MSP_V2_NATIVE;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
mspPort->c_state = MSP_IDLE;
|
mspPort->c_state = MSP_IDLE;
|
||||||
|
@ -123,20 +127,13 @@ static bool mspSerialProcessReceivedData(mspPort_t *mspPort, uint8_t c)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MSP_HEADER_M: // Waiting for '<' / '>'
|
case MSP_HEADER_M: // Waiting for '<' / '>'
|
||||||
|
mspPort->c_state = MSP_HEADER_V1;
|
||||||
switch (c) {
|
switch (c) {
|
||||||
case '<': // COMMAND
|
case '<':
|
||||||
mspPort->packetType = MSP_PACKET_COMMAND;
|
mspPort->packetType = MSP_PACKET_COMMAND;
|
||||||
mspPort->c_state = MSP_HEADER_V1;
|
|
||||||
mspPort->offset = 0;
|
|
||||||
mspPort->checksum1 = 0;
|
|
||||||
mspPort->checksum2 = 0;
|
|
||||||
break;
|
break;
|
||||||
case '>': // REPLY
|
case '>':
|
||||||
mspPort->packetType = MSP_PACKET_REPLY;
|
mspPort->packetType = MSP_PACKET_REPLY;
|
||||||
mspPort->c_state = MSP_HEADER_V1;
|
|
||||||
mspPort->offset = 0;
|
|
||||||
mspPort->checksum1 = 0;
|
|
||||||
mspPort->checksum2 = 0;
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
mspPort->c_state = MSP_IDLE;
|
mspPort->c_state = MSP_IDLE;
|
||||||
|
@ -145,21 +142,13 @@ static bool mspSerialProcessReceivedData(mspPort_t *mspPort, uint8_t c)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MSP_HEADER_X:
|
case MSP_HEADER_X:
|
||||||
|
mspPort->c_state = MSP_HEADER_V2_NATIVE;
|
||||||
switch (c) {
|
switch (c) {
|
||||||
case '<': // COMMAND
|
case '<':
|
||||||
mspPort->packetType = MSP_PACKET_COMMAND;
|
mspPort->packetType = MSP_PACKET_COMMAND;
|
||||||
mspPort->offset = 0;
|
|
||||||
mspPort->checksum2 = 0;
|
|
||||||
mspPort->mspVersion = MSP_V2_NATIVE;
|
|
||||||
mspPort->c_state = MSP_HEADER_V2_NATIVE;
|
|
||||||
break;
|
break;
|
||||||
case '>': // REPLY
|
case '>':
|
||||||
mspPort->packetType = MSP_PACKET_REPLY;
|
mspPort->packetType = MSP_PACKET_REPLY;
|
||||||
mspPort->c_state = MSP_HEADER_V1;
|
|
||||||
mspPort->offset = 0;
|
|
||||||
mspPort->checksum2 = 0;
|
|
||||||
mspPort->mspVersion = MSP_V2_NATIVE;
|
|
||||||
mspPort->c_state = MSP_HEADER_V2_NATIVE;
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
mspPort->c_state = MSP_IDLE;
|
mspPort->c_state = MSP_IDLE;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue