Browse Source

IO RSSI handling: Make 0-RSSI value consistent for all input sources

sbg
Lorenz Meier 10 years ago
parent
commit
4440c6383c
  1. 17
      src/modules/px4iofirmware/controls.c

17
src/modules/px4iofirmware/controls.c

@ -196,6 +196,11 @@ controls_tick() { @@ -196,6 +196,11 @@ controls_tick() {
}
#endif
/* zero RSSI if signal is lost */
if (!(r_raw_rc_flags & (PX4IO_P_RAW_RC_FLAGS_RC_OK))) {
rssi = 0;
}
perf_begin(c_gather_dsm);
bool dsm_updated, st24_updated, sumd_updated;
(void)dsm_port_input(&rssi, &dsm_updated, &st24_updated, &sumd_updated);
@ -227,19 +232,17 @@ controls_tick() { @@ -227,19 +232,17 @@ controls_tick() {
r_raw_rc_flags &= ~(PX4IO_P_RAW_RC_FLAGS_FRAME_DROP);
}
/* set RSSI to an emulated value if ADC RSSI is off */
if (!(r_setup_features & PX4IO_P_SETUP_FEATURES_ADC_RSSI)) {
rssi = sbus_rssi;
}
if (sbus_failsafe) {
r_raw_rc_flags |= PX4IO_P_RAW_RC_FLAGS_FAILSAFE;
/* set RSSI to 0 if the decoder senses complete drop, independent of the ADC value */
rssi = 0;
} else {
r_raw_rc_flags &= ~(PX4IO_P_RAW_RC_FLAGS_FAILSAFE);
}
/* set RSSI to an emulated value if ADC RSSI is off */
if (!(r_setup_features & PX4IO_P_SETUP_FEATURES_ADC_RSSI)) {
rssi = sbus_rssi;
}
}
perf_end(c_gather_sbus);

Loading…
Cancel
Save