mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-11-05 00:11:35 +08:00
sensors and px4io driver: Guard against failsafe trigger for inverted remotes
This commit is contained in:
@@ -948,8 +948,8 @@ PX4IO::task_main()
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* send RC throttle failsafe value to IO */
|
/* send RC throttle failsafe value to IO */
|
||||||
float failsafe_param_val;
|
int32_t failsafe_param_val;
|
||||||
param_t failsafe_param = param_find("RC_FS_THR");
|
param_t failsafe_param = param_find("RC_FAILS_THR");
|
||||||
|
|
||||||
if (failsafe_param > 0)
|
if (failsafe_param > 0)
|
||||||
|
|
||||||
|
|||||||
@@ -675,4 +675,4 @@ PARAM_DEFINE_FLOAT(RC_SCALE_YAW, 2.0f);
|
|||||||
* @max 2200
|
* @max 2200
|
||||||
* @group Radio Calibration
|
* @group Radio Calibration
|
||||||
*/
|
*/
|
||||||
PARAM_DEFINE_FLOAT(RC_FS_THR, 0);
|
PARAM_DEFINE_INT32(RC_FAILS_THR, 0);
|
||||||
|
|||||||
@@ -263,7 +263,7 @@ private:
|
|||||||
float rc_scale_yaw;
|
float rc_scale_yaw;
|
||||||
float rc_scale_flaps;
|
float rc_scale_flaps;
|
||||||
|
|
||||||
float rc_fs_thr;
|
int32_t rc_fs_thr;
|
||||||
|
|
||||||
float battery_voltage_scaling;
|
float battery_voltage_scaling;
|
||||||
float battery_current_scaling;
|
float battery_current_scaling;
|
||||||
@@ -527,7 +527,7 @@ Sensors::Sensors() :
|
|||||||
_parameter_handles.rc_scale_flaps = param_find("RC_SCALE_FLAPS");
|
_parameter_handles.rc_scale_flaps = param_find("RC_SCALE_FLAPS");
|
||||||
|
|
||||||
/* RC failsafe */
|
/* RC failsafe */
|
||||||
_parameter_handles.rc_fs_thr = param_find("RC_FS_THR");
|
_parameter_handles.rc_fs_thr = param_find("RC_FAILS_THR");
|
||||||
|
|
||||||
/* gyro offsets */
|
/* gyro offsets */
|
||||||
_parameter_handles.gyro_offset[0] = param_find("SENS_GYRO_XOFF");
|
_parameter_handles.gyro_offset[0] = param_find("SENS_GYRO_XOFF");
|
||||||
@@ -1309,8 +1309,8 @@ Sensors::rc_poll()
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* check for failsafe */
|
/* check for failsafe */
|
||||||
if (rc_input.rc_failsafe || ((rc_input.values[_rc.function[THROTTLE]] < _parameters.min[i]) && (rc_input.values[_rc.function[THROTTLE]] < _parameters.rc_fs_thr))
|
if (_parameters.rc_fs_thr && (rc_input.rc_failsafe || ((rc_input.values[_rc.function[THROTTLE]] < _parameters.min[i]) && (rc_input.values[_rc.function[THROTTLE]] < _parameters.rc_fs_thr))
|
||||||
|| ((rc_input.values[_rc.function[THROTTLE]] > _parameters.max[i]) && (rc_input.values[_rc.function[THROTTLE]] > _parameters.rc_fs_thr))) {
|
|| ((rc_input.values[_rc.function[THROTTLE]] > _parameters.max[i]) && (rc_input.values[_rc.function[THROTTLE]] > _parameters.rc_fs_thr)))) {
|
||||||
/* do not publish manual control setpoints when there are none */
|
/* do not publish manual control setpoints when there are none */
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user