mirror of https://github.com/ArduPilot/ardupilot
Plane: Quadplane: force convertions of Q_M_PMW_* params if invalid and add arming check
This commit is contained in:
parent
eed14b3688
commit
34609d327d
|
@ -167,6 +167,10 @@ bool AP_Arming_Plane::quadplane_checks(bool display_failure)
|
||||||
check_failed(ARMING_CHECK_PARAMETERS, display_failure, "Bad parameter: %s", failure_msg);
|
check_failed(ARMING_CHECK_PARAMETERS, display_failure, "Bad parameter: %s", failure_msg);
|
||||||
ret = false;
|
ret = false;
|
||||||
}
|
}
|
||||||
|
if (!plane.quadplane.motors->check_mot_pwm_params()) {
|
||||||
|
check_failed(ARMING_CHECK_PARAMETERS, display_failure, "Check Q_M_PWM_MIN/MAX");
|
||||||
|
ret = false;
|
||||||
|
}
|
||||||
|
|
||||||
if ((plane.quadplane.options & QuadPlane::OPTION_ONLY_ARM_IN_QMODE_OR_AUTO) != 0) {
|
if ((plane.quadplane.options & QuadPlane::OPTION_ONLY_ARM_IN_QMODE_OR_AUTO) != 0) {
|
||||||
if (!plane.control_mode->is_vtol_mode() && (plane.control_mode != &plane.mode_auto) && (plane.control_mode != &plane.mode_guided)) {
|
if (!plane.control_mode->is_vtol_mode() && (plane.control_mode != &plane.mode_auto) && (plane.control_mode != &plane.mode_guided)) {
|
||||||
|
|
|
@ -534,14 +534,16 @@ const AP_Param::ConversionInfo q_conversion_table[] = {
|
||||||
{ Parameters::k_param_quadplane, 1467, AP_PARAM_FLOAT, "Q_TILT_FIX_ANGLE" },
|
{ Parameters::k_param_quadplane, 1467, AP_PARAM_FLOAT, "Q_TILT_FIX_ANGLE" },
|
||||||
{ Parameters::k_param_quadplane, 1531, AP_PARAM_FLOAT, "Q_TILT_FIX_GAIN" },
|
{ Parameters::k_param_quadplane, 1531, AP_PARAM_FLOAT, "Q_TILT_FIX_GAIN" },
|
||||||
|
|
||||||
{ Parameters::k_param_quadplane, 22, AP_PARAM_INT16, "Q_M_PWM_MIN" },
|
|
||||||
{ Parameters::k_param_quadplane, 23, AP_PARAM_INT16, "Q_M_PWM_MAX" },
|
|
||||||
|
|
||||||
// PARAMETER_CONVERSION - Added: Jan-2022
|
// PARAMETER_CONVERSION - Added: Jan-2022
|
||||||
{ Parameters::k_param_quadplane, 33, AP_PARAM_FLOAT, "Q_WVANE_GAIN" }, // Moved from quadplane to weathervane library
|
{ Parameters::k_param_quadplane, 33, AP_PARAM_FLOAT, "Q_WVANE_GAIN" }, // Moved from quadplane to weathervane library
|
||||||
{ Parameters::k_param_quadplane, 34, AP_PARAM_FLOAT, "Q_WVANE_ANG_MIN" }, // Q_WVANE_MINROLL moved from quadplane to weathervane library
|
{ Parameters::k_param_quadplane, 34, AP_PARAM_FLOAT, "Q_WVANE_ANG_MIN" }, // Q_WVANE_MINROLL moved from quadplane to weathervane library
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// PARAMETER_CONVERSION - Added: Oct-2021
|
||||||
|
const AP_Param::ConversionInfo mot_pwm_conversion_table[] = {
|
||||||
|
{ Parameters::k_param_quadplane, 22, AP_PARAM_INT16, "Q_M_PWM_MIN" },
|
||||||
|
{ Parameters::k_param_quadplane, 23, AP_PARAM_INT16, "Q_M_PWM_MAX" },
|
||||||
|
};
|
||||||
|
|
||||||
QuadPlane::QuadPlane(AP_AHRS &_ahrs) :
|
QuadPlane::QuadPlane(AP_AHRS &_ahrs) :
|
||||||
ahrs(_ahrs)
|
ahrs(_ahrs)
|
||||||
|
@ -716,6 +718,12 @@ bool QuadPlane::setup(void)
|
||||||
motors->set_update_rate(rc_speed);
|
motors->set_update_rate(rc_speed);
|
||||||
attitude_control->parameter_sanity_check();
|
attitude_control->parameter_sanity_check();
|
||||||
|
|
||||||
|
// Try to convert mot PWM params, if still invalid force conversion
|
||||||
|
AP_Param::convert_old_parameters(&mot_pwm_conversion_table[0], ARRAY_SIZE(mot_pwm_conversion_table));
|
||||||
|
if (!motors->check_mot_pwm_params()) {
|
||||||
|
AP_Param::convert_old_parameters(&mot_pwm_conversion_table[0], ARRAY_SIZE(mot_pwm_conversion_table), AP_Param::CONVERT_FLAG_FORCE);
|
||||||
|
}
|
||||||
|
|
||||||
// setup the trim of any motors used by AP_Motors so I/O board
|
// setup the trim of any motors used by AP_Motors so I/O board
|
||||||
// failsafe will disable motors
|
// failsafe will disable motors
|
||||||
uint32_t mask = plane.quadplane.motors->get_motor_mask();
|
uint32_t mask = plane.quadplane.motors->get_motor_mask();
|
||||||
|
|
Loading…
Reference in New Issue