parse_command checks prefix-numbers and prefix id

This commit is contained in:
MichaelDvP
2022-05-08 11:19:12 +02:00
parent 6277fbbea1
commit c0aa263f2b

View File

@@ -193,17 +193,22 @@ const char * Command::parse_command_string(const char * command, int8_t & id) {
return nullptr; return nullptr;
} }
if (!strncmp(command, "hc", 2) && strlen(command) >= 3) { // check prefix and valid number range, also check 'id'
if (!strncmp(command, "hc", 2) && command[2] >= '1' && command[2] <= '8') {
id = command[2] - '0'; id = command[2] - '0';
command += 3; command += 3;
} else if (!strncmp(command, "wwc", 3) && strlen(command) >= 4) { } else if (!strncmp(command, "wwc", 3) && command[3] == '1' && command[4] == '0') {
if (command[3] == '1' && command[4] == '0') { id = 19;
id = 19; // wwc10
command += 5; command += 5;
} else { } else if (!strncmp(command, "wwc", 3) && command[3] >= '1' && command[3] <= '9') {
id = command[3] - '0' + 8; // wwc1 has id 9 id = command[3] - '0' + 8;
command += 4; command += 4;
} } else if (!strncmp(command, "id", 2) && command[2] == '1' && command[3] >= '0' && command[3] <= '9') {
id = command[3] - '0' + 10;
command += 4;
} else if (!strncmp(command, "id", 2) && command[2] >= '1' && command[2] <= '9') {
id = command[2] - '0';
command += 3;
} }
// remove separator // remove separator
if (command[0] == '/' || command[0] == '.' || command[0] == '_') { if (command[0] == '/' || command[0] == '.' || command[0] == '_') {