rcommand.cpp: code sanitization

This commit is contained in:
cyberman54 2021-01-03 22:40:49 +01:00
parent 2352d7d743
commit 59e3876296

View File

@ -379,42 +379,41 @@ void set_saveconfig(uint8_t val[]) {
saveConfig(false); saveConfig(false);
}; };
// assign previously defined functions to set of numeric remote commands
// format: {opcode, function, number of function arguments}
static const cmd_t table[] = {
{0x01, set_rssi, 1}, {0x02, set_countmode, 1},
{0x03, set_gps, 1}, {0x04, set_display, 1},
{0x05, set_loradr, 1}, {0x06, set_lorapower, 1},
{0x07, set_loraadr, 1}, {0x08, set_screensaver, 1},
{0x09, set_reset, 1}, {0x0a, set_sendcycle, 1},
{0x0b, set_wifichancycle, 1}, {0x0c, set_blescantime, 1},
{0x0d, set_macfilter, 1}, {0x0e, set_blescan, 1},
{0x0f, set_wifiant, 1}, {0x10, set_rgblum, 1},
{0x11, set_monitor, 1}, {0x12, set_beacon, 7},
{0x13, set_sensor, 2}, {0x14, set_payloadmask, 1},
{0x15, set_bme, 1}, {0x16, set_batt, 1},
{0x17, set_wifiscan, 1}, {0x18, set_enscount, 1},
{0x19, set_sleepcycle, 1}, {0x20, set_loadconfig, 0},
{0x21, set_saveconfig, 0}, {0x80, get_config, 0},
{0x81, get_status, 0}, {0x83, get_batt, 0},
{0x84, get_gps, 0}, {0x85, get_bme, 0},
{0x86, get_time, 0}, {0x87, set_time, 0},
{0x99, set_flush, 0}};
static const uint8_t cmdtablesize =
sizeof(table) / sizeof(table[0]); // number of commands in command table
// check and execute remote command // check and execute remote command
void rcmd_execute(const uint8_t cmd[], const uint8_t cmdlength) { void rcmd_execute(const uint8_t cmd[], const uint8_t cmdlength) {
// assign previously defined functions to set of numeric remote commands
// format: {opcode, function, number of function arguments}
const cmd_t table[] = {
{0x01, set_rssi, 1}, {0x02, set_countmode, 1},
{0x03, set_gps, 1}, {0x04, set_display, 1},
{0x05, set_loradr, 1}, {0x06, set_lorapower, 1},
{0x07, set_loraadr, 1}, {0x08, set_screensaver, 1},
{0x09, set_reset, 1}, {0x0a, set_sendcycle, 1},
{0x0b, set_wifichancycle, 1}, {0x0c, set_blescantime, 1},
{0x0d, set_macfilter, 1}, {0x0e, set_blescan, 1},
{0x0f, set_wifiant, 1}, {0x10, set_rgblum, 1},
{0x11, set_monitor, 1}, {0x12, set_beacon, 7},
{0x13, set_sensor, 2}, {0x14, set_payloadmask, 1},
{0x15, set_bme, 1}, {0x16, set_batt, 1},
{0x17, set_wifiscan, 1}, {0x18, set_enscount, 1},
{0x19, set_sleepcycle, 1}, {0x20, set_loadconfig, 0},
{0x21, set_saveconfig, 0}, {0x80, get_config, 0},
{0x81, get_status, 0}, {0x83, get_batt, 0},
{0x84, get_gps, 0}, {0x85, get_bme, 0},
{0x86, get_time, 0}, {0x87, set_time, 0},
{0x99, set_flush, 0}};
if (cmdlength == 0) if (cmdlength == 0)
return; return;
uint8_t foundcmd[cmdlength], cursor = 0; uint8_t foundcmd[cmdlength], cursor = 0;
int i =
sizeof(table) / sizeof(table[0]); // number of commands in command table
while (cursor < cmdlength) { while (cursor < cmdlength) {
int i = cmdtablesize;
while (i--) { while (i--) {
if (cmd[cursor] == table[i].opcode) { // lookup command in opcode table if (cmd[cursor] == table[i].opcode) { // lookup command in opcode table
cursor++; // strip 1 byte opcode cursor++; // strip 1 byte opcode
@ -429,9 +428,10 @@ void rcmd_execute(const uint8_t cmd[], const uint8_t cmdlength) {
"Remote command x%02X called with missing parameter(s), " "Remote command x%02X called with missing parameter(s), "
"skipped", "skipped",
table[i].opcode); table[i].opcode);
break; // command found -> exit table lookup loop break; // command found -> exit table lookup loop
} // end of command validation } // end of command validation
} // end of command table lookup loop } // end of command table lookup loop
if (i < 0) { // command not found -> exit parser if (i < 0) { // command not found -> exit parser
ESP_LOGI(TAG, "Unknown remote command x%02X, ignored", cmd[cursor]); ESP_LOGI(TAG, "Unknown remote command x%02X, ignored", cmd[cursor]);
break; break;