From 682e98905702c8eb1bad9ee36cc19299ad46aaf2 Mon Sep 17 00:00:00 2001 From: Bruce Luckcuck Date: Tue, 17 Dec 2019 09:15:32 -0500 Subject: [PATCH] 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. --- src/main/cli/cli.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/cli/cli.c b/src/main/cli/cli.c index 8c06ce4ce..3af6ab1ff 100644 --- a/src/main/cli/cli.c +++ b/src/main/cli/cli.c @@ -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"); }