1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-17 13:25:30 +03:00

Fixed setting of negative values in CLI.

This commit is contained in:
mikeller 2017-04-22 23:45:28 +12:00
parent de7e81918c
commit 485a8ef37f
2 changed files with 9 additions and 19 deletions

View file

@ -288,23 +288,20 @@ static void cliPrintLinef(const char *format, ...)
static void printValuePointer(const clivalue_t *var, const void *valuePointer, bool full) static void printValuePointer(const clivalue_t *var, const void *valuePointer, bool full)
{ {
cliVar_t value = { .uint16 = 0 }; int value = 0;
switch (var->type & VALUE_TYPE_MASK) { switch (var->type & VALUE_TYPE_MASK) {
case VAR_UINT8: case VAR_UINT8:
value.uint8 = *(uint8_t *)valuePointer; value = *(uint8_t *)valuePointer;
break; break;
case VAR_INT8: case VAR_INT8:
value.int8 = *(int8_t *)valuePointer; value = *(int8_t *)valuePointer;
break; break;
case VAR_UINT16: case VAR_UINT16:
value.uint16 = *(uint16_t *)valuePointer;
break;
case VAR_INT16: case VAR_INT16:
value.int16 = *(int16_t *)valuePointer; value = *(int16_t *)valuePointer;
break; break;
} }
@ -316,7 +313,7 @@ static void printValuePointer(const clivalue_t *var, const void *valuePointer, b
} }
break; break;
case MODE_LOOKUP: case MODE_LOOKUP:
cliPrint(lookupTables[var->config.lookup.tableIndex].values[value.uint16]); cliPrint(lookupTables[var->config.lookup.tableIndex].values[value]);
break; break;
} }
} }
@ -334,9 +331,6 @@ static bool valuePtrEqualsDefault(uint8_t type, const void *ptr, const void *ptr
break; break;
case VAR_UINT16: case VAR_UINT16:
result = *(uint16_t *)ptr == *(uint16_t *)ptrDefault;
break;
case VAR_INT16: case VAR_INT16:
result = *(int16_t *)ptr == *(int16_t *)ptrDefault; result = *(int16_t *)ptr == *(int16_t *)ptrDefault;
break; break;
@ -443,9 +437,6 @@ static void cliSetVar(const clivalue_t *var, const cliVar_t value)
break; break;
case VAR_UINT16: case VAR_UINT16:
*(uint16_t *)ptr = value.uint16;
break;
case VAR_INT16: case VAR_INT16:
*(int16_t *)ptr = value.int16; *(int16_t *)ptr = value.int16;
break; break;
@ -2548,12 +2539,12 @@ static void cliSet(char *cmdline)
if (strncasecmp(cmdline, valueTable[i].name, strlen(valueTable[i].name)) == 0 && variableNameLength == strlen(valueTable[i].name)) { if (strncasecmp(cmdline, valueTable[i].name, strlen(valueTable[i].name)) == 0 && variableNameLength == strlen(valueTable[i].name)) {
bool changeValue = false; bool changeValue = false;
cliVar_t value = { .uint16 = 0 }; cliVar_t value = { .int16 = 0 };
switch (valueTable[i].type & VALUE_MODE_MASK) { switch (valueTable[i].type & VALUE_MODE_MASK) {
case MODE_DIRECT: { case MODE_DIRECT: {
value.uint16 = atoi(eqptr); value.int16 = atoi(eqptr);
if (value.uint16 >= valueTable[i].config.minmax.min && value.uint16 <= valueTable[i].config.minmax.max) { if (value.int16 >= valueTable[i].config.minmax.min && value.int16 <= valueTable[i].config.minmax.max) {
changeValue = true; changeValue = true;
} }
} }
@ -2565,7 +2556,7 @@ static void cliSet(char *cmdline)
matched = strcasecmp(tableEntry->values[tableValueIndex], eqptr) == 0; matched = strcasecmp(tableEntry->values[tableValueIndex], eqptr) == 0;
if (matched) { if (matched) {
value.uint16 = tableValueIndex; value.int16 = tableValueIndex;
changeValue = true; changeValue = true;
} }
} }

View file

@ -96,7 +96,6 @@ typedef union {
int8_t int8; int8_t int8;
uint8_t uint8; uint8_t uint8;
int16_t int16; int16_t int16;
uint16_t uint16;
} cliVar_t; } cliVar_t;
typedef struct cliMinMaxConfig_s { typedef struct cliMinMaxConfig_s {