Merge pull request #10987 from mikeller/add_simplified_tuning_on_reset

This commit is contained in:
Michael Keller 2021-10-10 16:12:56 +13:00 committed by GitHub
commit ea3e64d49a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 42 additions and 9 deletions

View File

@ -3095,14 +3095,29 @@ static void cliVtxInfo(const char *cmdName, char *cmdline)
}
#endif // USE_VTX_TABLE
#ifdef USE_SIMPLIFIED_TUNING
static void cliApplySimplifiedTuning(const char *cmdName, char *cmdline)
#if defined(USE_SIMPLIFIED_TUNING)
static void applySimplifiedTuningAllProfiles(void)
{
UNUSED(cmdName);
UNUSED(cmdline);
for (unsigned pidProfileIndex = 0; pidProfileIndex < PID_PROFILE_COUNT; pidProfileIndex++) {
applySimplifiedTuning(pidProfilesMutable(pidProfileIndex));
}
}
applySimplifiedTuning(currentPidProfile);
cliPrintLine("Applied tuning based on simplified tuning settings.");
static void cliSimplifiedTuning(const char *cmdName, char *cmdline)
{
if (strcasecmp(cmdline, "apply") == 0) {
applySimplifiedTuningAllProfiles();
cliPrintLine("Applied simplified tuning.");
} else if (strcasecmp(cmdline, "disable") == 0) {
for (unsigned pidProfileIndex = 0; pidProfileIndex < PID_PROFILE_COUNT; pidProfileIndex++) {
disableSimplifiedTuning(pidProfilesMutable(pidProfileIndex));
}
cliPrintLine("Disabled simplified tuning.");
} else {
cliShowParseError(cmdName);
}
}
#endif
@ -4260,6 +4275,10 @@ bool resetConfigToCustomDefaults(void)
cliProcessCustomDefaults(true);
#if defined(USE_SIMPLIFIED_TUNING)
applySimplifiedTuningAllProfiles();
#endif
return prepareSave();
}
@ -4414,6 +4433,10 @@ static void cliDefaults(const char *cmdName, char *cmdline)
}
#endif
#if defined(USE_SIMPLIFIED_TUNING)
applySimplifiedTuningAllProfiles();
#endif
if (parameterGroupId) {
restoreConfigs(parameterGroupId);
}
@ -6460,9 +6483,6 @@ static void cliHelp(const char *cmdName, char *cmdline);
// should be sorted a..z for bsearch()
const clicmd_t cmdTable[] = {
CLI_COMMAND_DEF("adjrange", "configure adjustment ranges", "<index> <unused> <range channel> <start> <end> <function> <select channel> [<center> <scale>]", cliAdjustmentRange),
#ifdef USE_SIMPLIFIED_TUNING
CLI_COMMAND_DEF("apply_simplified_tuning", "applies tuning based on simplified tuning settings", NULL, cliApplySimplifiedTuning),
#endif
CLI_COMMAND_DEF("aux", "configure modes", "<index> <mode> <aux> <start> <end> <logic>", cliAux),
#ifdef USE_CLI_BATCH
CLI_COMMAND_DEF("batch", "start or end a batch of commands", "start | end", cliBatch),
@ -6593,6 +6613,9 @@ const clicmd_t cmdTable[] = {
#if defined(USE_SIGNATURE)
CLI_COMMAND_DEF("signature", "get / set the board type signature", "[signature]", cliSignature),
#endif
#if defined(USE_SIMPLIFIED_TUNING)
CLI_COMMAND_DEF("simplified_tuning", "applies or disables simplified tuning", "apply | disable", cliSimplifiedTuning),
#endif
#ifdef USE_SERVOS
CLI_COMMAND_DEF("smix", "servo mixer", "<rule> <servo> <source> <rate> <speed> <min> <max> <box>\r\n"
"\treset\r\n"

View File

@ -95,4 +95,13 @@ void applySimplifiedTuning(pidProfile_t *pidProfile)
calculateNewGyroFilterValues();
}
}
void disableSimplifiedTuning(pidProfile_t *pidProfile)
{
pidProfile->simplified_pids_mode = PID_SIMPLIFIED_TUNING_OFF;
pidProfile->simplified_dterm_filter = false;
gyroConfigMutable()->simplified_gyro_filter = false;
}
#endif // USE_SIMPLIFIED_TUNING

View File

@ -37,3 +37,4 @@ typedef enum {
} pidSimplifiedTuningMode_e;
void applySimplifiedTuning(pidProfile_t *pidProfile);
void disableSimplifiedTuning(pidProfile_t *pidProfile);