mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-19 14:25:20 +03:00
Apply CMS simplified tuning settings on exit if there are changes.
This commit is contained in:
parent
64d1694105
commit
e42c3f2b7f
1 changed files with 33 additions and 44 deletions
|
@ -280,54 +280,46 @@ static const void *cmsx_simplifiedTuningOnExit(displayPort_t *pDisp, const OSD_E
|
|||
|
||||
pidProfile_t *pidProfile = currentPidProfile;
|
||||
|
||||
pidProfile->simplified_pids_mode = cmsx_simplified_pids_mode;
|
||||
pidProfile->simplified_master_multiplier = cmsx_simplified_master_multiplier;
|
||||
pidProfile->simplified_roll_pitch_ratio = cmsx_simplified_roll_pitch_ratio;
|
||||
pidProfile->simplified_i_gain = cmsx_simplified_i_gain;
|
||||
pidProfile->simplified_d_gain = cmsx_simplified_d_gain;
|
||||
pidProfile->simplified_pi_gain = cmsx_simplified_pi_gain;
|
||||
const bool anySettingChanged = pidProfile->simplified_pids_mode != cmsx_simplified_pids_mode
|
||||
|| pidProfile->simplified_master_multiplier != cmsx_simplified_master_multiplier
|
||||
|| pidProfile->simplified_roll_pitch_ratio != cmsx_simplified_roll_pitch_ratio
|
||||
|| pidProfile->simplified_i_gain != cmsx_simplified_i_gain
|
||||
|| pidProfile->simplified_d_gain != cmsx_simplified_d_gain
|
||||
|| pidProfile->simplified_pi_gain != cmsx_simplified_pi_gain
|
||||
#ifdef USE_D_MIN
|
||||
pidProfile->simplified_dmin_ratio = cmsx_simplified_dmin_ratio;
|
||||
|| pidProfile->simplified_dmin_ratio != cmsx_simplified_dmin_ratio
|
||||
#endif
|
||||
pidProfile->simplified_feedforward_gain = cmsx_simplified_feedforward_gain;
|
||||
pidProfile->simplified_pitch_pi_gain = cmsx_simplified_pitch_pi_gain;
|
||||
|| pidProfile->simplified_feedforward_gain != cmsx_simplified_feedforward_gain
|
||||
|| pidProfile->simplified_pitch_pi_gain != cmsx_simplified_pitch_pi_gain
|
||||
|| pidProfile->simplified_dterm_filter != cmsx_simplified_dterm_filter
|
||||
|| pidProfile->simplified_dterm_filter_multiplier != cmsx_simplified_dterm_filter_multiplier
|
||||
|| gyroConfigMutable()->simplified_gyro_filter != cmsx_simplified_gyro_filter
|
||||
|| gyroConfigMutable()->simplified_gyro_filter_multiplier != cmsx_simplified_gyro_filter_multiplier;
|
||||
|
||||
pidProfile->simplified_dterm_filter = cmsx_simplified_dterm_filter;
|
||||
pidProfile->simplified_dterm_filter_multiplier = cmsx_simplified_dterm_filter_multiplier;
|
||||
gyroConfigMutable()->simplified_gyro_filter = cmsx_simplified_gyro_filter;
|
||||
gyroConfigMutable()->simplified_gyro_filter_multiplier = cmsx_simplified_gyro_filter_multiplier;
|
||||
if (anySettingChanged) {
|
||||
pidProfile->simplified_pids_mode = cmsx_simplified_pids_mode;
|
||||
pidProfile->simplified_master_multiplier = cmsx_simplified_master_multiplier;
|
||||
pidProfile->simplified_roll_pitch_ratio = cmsx_simplified_roll_pitch_ratio;
|
||||
pidProfile->simplified_i_gain = cmsx_simplified_i_gain;
|
||||
pidProfile->simplified_d_gain = cmsx_simplified_d_gain;
|
||||
pidProfile->simplified_pi_gain = cmsx_simplified_pi_gain;
|
||||
#ifdef USE_D_MIN
|
||||
pidProfile->simplified_dmin_ratio = cmsx_simplified_dmin_ratio;
|
||||
#endif
|
||||
pidProfile->simplified_feedforward_gain = cmsx_simplified_feedforward_gain;
|
||||
pidProfile->simplified_pitch_pi_gain = cmsx_simplified_pitch_pi_gain;
|
||||
|
||||
pidProfile->simplified_dterm_filter = cmsx_simplified_dterm_filter;
|
||||
pidProfile->simplified_dterm_filter_multiplier = cmsx_simplified_dterm_filter_multiplier;
|
||||
gyroConfigMutable()->simplified_gyro_filter = cmsx_simplified_gyro_filter;
|
||||
gyroConfigMutable()->simplified_gyro_filter_multiplier = cmsx_simplified_gyro_filter_multiplier;
|
||||
|
||||
applySimplifiedTuning(currentPidProfile);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const void *cmsx_applySimplifiedTuning(displayPort_t *pDisp, const void *self)
|
||||
{
|
||||
UNUSED(pDisp);
|
||||
UNUSED(self);
|
||||
|
||||
pidProfile_t *pidProfile = currentPidProfile;
|
||||
pidProfile->simplified_master_multiplier = cmsx_simplified_master_multiplier;
|
||||
pidProfile->simplified_pids_mode = cmsx_simplified_pids_mode;
|
||||
pidProfile->simplified_roll_pitch_ratio = cmsx_simplified_roll_pitch_ratio;
|
||||
pidProfile->simplified_i_gain = cmsx_simplified_i_gain;
|
||||
pidProfile->simplified_d_gain = cmsx_simplified_d_gain;
|
||||
pidProfile->simplified_pi_gain = cmsx_simplified_pi_gain;
|
||||
#ifdef USE_D_MIN
|
||||
pidProfile->simplified_dmin_ratio = cmsx_simplified_dmin_ratio;
|
||||
#endif
|
||||
pidProfile->simplified_feedforward_gain = cmsx_simplified_feedforward_gain;
|
||||
pidProfile->simplified_pitch_pi_gain = cmsx_simplified_pitch_pi_gain;
|
||||
|
||||
pidProfile->simplified_dterm_filter = cmsx_simplified_dterm_filter;
|
||||
pidProfile->simplified_dterm_filter_multiplier = cmsx_simplified_dterm_filter_multiplier;
|
||||
gyroConfigMutable()->simplified_gyro_filter = cmsx_simplified_gyro_filter;
|
||||
gyroConfigMutable()->simplified_gyro_filter_multiplier = cmsx_simplified_gyro_filter_multiplier;
|
||||
|
||||
applySimplifiedTuning(currentPidProfile);
|
||||
|
||||
return MENU_CHAIN_BACK;
|
||||
}
|
||||
|
||||
static const OSD_Entry cmsx_menuSimplifiedTuningEntries[] =
|
||||
{
|
||||
{ "-- SIMPLIFIED PID --", OME_Label, NULL, NULL, 0},
|
||||
|
@ -353,9 +345,6 @@ static const OSD_Entry cmsx_menuSimplifiedTuningEntries[] =
|
|||
{ "DTERM TUNING", OME_TAB, NULL, &(OSD_TAB_t) { &cmsx_simplified_dterm_filter, 1, lookupTableOffOn }, 0 },
|
||||
{ "DTERM MULT", OME_FLOAT, NULL, &(OSD_FLOAT_t) { &cmsx_simplified_dterm_filter_multiplier, SIMPLIFIED_TUNING_MIN, SIMPLIFIED_TUNING_MAX, 5, 10 }, 0 },
|
||||
|
||||
{ "-- GENERAL --", OME_Label, NULL, NULL, 0},
|
||||
{ "APPLY TUNING", OME_Funcall, cmsx_applySimplifiedTuning, NULL, 0 },
|
||||
|
||||
{ "BACK", OME_Back, NULL, NULL, 0 },
|
||||
{ NULL, OME_END, NULL, NULL, 0 }
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue