Fix CLI vtx command parsing, range checks, and output order in diff

Change to use vtxTableConfig PG settings for validation rather than the current runtime values for bands, channels and power levels. Fixes command parsing when restoring a `diff` as the `vtxtable` runtime values won't be available until after the reboot.

Fix "off by one" range check for power level that was preventing use of the highest power level configured in `vtxtable`.

Reverse the order of the `vtxtable` and `vtx` outputs in a `diff`/`dump` so that `vtxtable` settings will be applied first as the `vtx` settings are dependent on them.
This commit is contained in:
Bruce Luckcuck 2019-12-17 09:15:32 -05:00
parent 4c58889915
commit 682e989057
1 changed files with 7 additions and 7 deletions

View File

@ -2583,7 +2583,7 @@ static void cliVtx(char *cmdline)
ptr = nextArg(ptr);
if (ptr) {
val = atoi(ptr);
if (val >= 0 && val <= vtxTableBandCount) {
if (val >= 0 && val <= vtxTableConfig()->bands) {
cac->band = val;
validArgumentCount++;
}
@ -2591,7 +2591,7 @@ static void cliVtx(char *cmdline)
ptr = nextArg(ptr);
if (ptr) {
val = atoi(ptr);
if (val >= 0 && val <= vtxTableChannelCount) {
if (val >= 0 && val <= vtxTableConfig()->channels) {
cac->channel = val;
validArgumentCount++;
}
@ -2599,7 +2599,7 @@ static void cliVtx(char *cmdline)
ptr = nextArg(ptr);
if (ptr) {
val = atoi(ptr);
if (val >= 0 && val < vtxTablePowerLevels) {
if (val >= 0 && val <= vtxTableConfig()->powerLevels) {
cac->power= val;
validArgumentCount++;
}
@ -6099,14 +6099,14 @@ static void printConfig(char *cmdline, bool doDiff)
printRxRange(dumpMask, rxChannelRangeConfigs_CopyArray, rxChannelRangeConfigs(0), "rxrange");
#ifdef USE_VTX_CONTROL
printVtx(dumpMask, &vtxConfig_Copy, vtxConfig(), "vtx");
#endif
#ifdef USE_VTX_TABLE
printVtxTable(dumpMask, &vtxTableConfig_Copy, vtxTableConfig(), "vtxtable");
#endif
#ifdef USE_VTX_CONTROL
printVtx(dumpMask, &vtxConfig_Copy, vtxConfig(), "vtx");
#endif
printRxFailsafe(dumpMask, rxFailsafeChannelConfigs_CopyArray, rxFailsafeChannelConfigs(0), "rxfail");
}