mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-14 20:10:18 +03:00
Merge pull request #7714 from etracer65/revise_cli_vtx_command
Fix CLI vtx command parsing to allow reset
This commit is contained in:
commit
f2db4bae11
1 changed files with 20 additions and 4 deletions
|
@ -2312,8 +2312,9 @@ static void cliVtx(char *cmdline)
|
||||||
ptr = nextArg(ptr);
|
ptr = nextArg(ptr);
|
||||||
if (ptr) {
|
if (ptr) {
|
||||||
val = atoi(ptr);
|
val = atoi(ptr);
|
||||||
// FIXME Use VTX API to get min/max
|
// FIXME Use VTX API to get max
|
||||||
if (val >= VTX_SETTINGS_MIN_BAND && val <= VTX_SETTINGS_MAX_BAND) {
|
// We check for the min value in final validation below
|
||||||
|
if (val >= 0 && val <= VTX_SETTINGS_MAX_BAND) {
|
||||||
cac->band = val;
|
cac->band = val;
|
||||||
validArgumentCount++;
|
validArgumentCount++;
|
||||||
}
|
}
|
||||||
|
@ -2321,15 +2322,30 @@ static void cliVtx(char *cmdline)
|
||||||
ptr = nextArg(ptr);
|
ptr = nextArg(ptr);
|
||||||
if (ptr) {
|
if (ptr) {
|
||||||
val = atoi(ptr);
|
val = atoi(ptr);
|
||||||
// FIXME Use VTX API to get min/max
|
// FIXME Use VTX API to get max
|
||||||
if (val >= VTX_SETTINGS_MIN_CHANNEL && val <= VTX_SETTINGS_MAX_CHANNEL) {
|
// We check for the min value in final validation below
|
||||||
|
if (val >= 0 && val <= VTX_SETTINGS_MAX_CHANNEL) {
|
||||||
cac->channel = val;
|
cac->channel = val;
|
||||||
validArgumentCount++;
|
validArgumentCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ptr = processChannelRangeArgs(ptr, &cac->range, &validArgumentCount);
|
ptr = processChannelRangeArgs(ptr, &cac->range, &validArgumentCount);
|
||||||
|
|
||||||
|
bool parseError = false;
|
||||||
if (validArgumentCount != 5) {
|
if (validArgumentCount != 5) {
|
||||||
|
parseError = true;
|
||||||
|
} else {
|
||||||
|
// check for an empty activation condition for reset
|
||||||
|
vtxChannelActivationCondition_t emptyCac;
|
||||||
|
memset(&emptyCac, 0, sizeof(emptyCac));
|
||||||
|
if (memcmp(cac, &emptyCac, sizeof(emptyCac)) != 0
|
||||||
|
// FIXME Use VTX API to get min
|
||||||
|
&& ((cac->band < VTX_SETTINGS_MIN_BAND) || (cac->channel < VTX_SETTINGS_MIN_CHANNEL))) {
|
||||||
|
parseError = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (parseError) {
|
||||||
memset(cac, 0, sizeof(vtxChannelActivationCondition_t));
|
memset(cac, 0, sizeof(vtxChannelActivationCondition_t));
|
||||||
cliShowParseError();
|
cliShowParseError();
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue