IO - Send flight termination circuit breaker state to IO through PX4IO_P_SETUP_ENABLE_FLIGHTTERM

This commit is contained in:
bresch
2019-06-05 16:53:08 +02:00
committed by Beat Küng
parent 796631db20
commit 6fb1b4886c
4 changed files with 8 additions and 1 deletions
+2
View File
@@ -1031,6 +1031,8 @@ PX4IO::task_main()
/* Check if the flight termination circuit breaker has been updated */
_cb_flighttermination = circuit_breaker_enabled("CBRK_FLIGHTTERM", CBRK_FLIGHTTERM_KEY);
/* Tell IO that it can terminate the flight if FMU is not responding */
(void)io_reg_set(PX4IO_PAGE_SETUP, PX4IO_P_SETUP_ENABLE_FLIGHTTERM, !_cb_flighttermination);
param_get(param_find("RC_RSSI_PWM_CHAN"), &_rssi_pwm_chan);
param_get(param_find("RC_RSSI_PWM_MAX"), &_rssi_pwm_max);
+2
View File
@@ -240,6 +240,8 @@ enum { /* DSM bind states */
#define PX4IO_P_SETUP_AIRMODE 27 /* air-mode */
#define PX4IO_P_SETUP_ENABLE_FLIGHTTERM 28 /* flight termination circuit breaker */
#define PX4IO_THERMAL_IGNORE UINT16_MAX
#define PX4IO_THERMAL_OFF 0
#define PX4IO_THERMAL_FULL 10000
+1
View File
@@ -133,6 +133,7 @@ extern uint16_t r_page_servo_disarmed[]; /* PX4IO_PAGE_DISARMED_PWM */
#define r_setup_thr_fac r_page_setup[PX4IO_P_SETUP_THR_MDL_FAC]
#define r_setup_slew_max r_page_setup[PX4IO_P_SETUP_MOTOR_SLEW_MAX]
#define r_setup_airmode r_page_setup[PX4IO_P_SETUP_AIRMODE]
#define r_setup_flightterm r_page_setup[PX4IO_P_SETUP_ENABLE_FLIGHTTERM]
#define r_control_values (&r_page_controls[0])
+3 -1
View File
@@ -181,7 +181,8 @@ volatile uint16_t r_page_setup[] = {
[PX4IO_P_SETUP_MOTOR_SLEW_MAX] = 0,
[PX4IO_P_SETUP_AIRMODE] = 0,
[PX4IO_P_SETUP_THR_MDL_FAC] = 0,
[PX4IO_P_SETUP_THERMAL] = PX4IO_THERMAL_IGNORE
[PX4IO_P_SETUP_THERMAL] = PX4IO_THERMAL_IGNORE,
[PX4IO_P_SETUP_ENABLE_FLIGHTTERM] = 0
};
#define PX4IO_P_SETUP_FEATURES_VALID (PX4IO_P_SETUP_FEATURES_SBUS1_OUT | \
@@ -712,6 +713,7 @@ registers_set_one(uint8_t page, uint8_t offset, uint16_t value)
case PX4IO_P_SETUP_MOTOR_SLEW_MAX:
case PX4IO_P_SETUP_AIRMODE:
case PX4IO_P_SETUP_THERMAL:
case PX4IO_P_SETUP_ENABLE_FLIGHTTERM:
r_page_setup[offset] = value;
break;