Browse Source

Copter: rangefinder.enabled false if no range finders are configured

master
Randy Mackay 9 years ago
parent
commit
e489c3184c
  1. 2
      ArduCopter/Copter.h
  2. 2
      ArduCopter/sensors.cpp
  3. 2
      ArduCopter/switches.cpp

2
ArduCopter/Copter.h

@ -177,7 +177,7 @@ private:
int16_t alt_cm; // tilt compensated altitude (in cm) from rangefinder int16_t alt_cm; // tilt compensated altitude (in cm) from rangefinder
uint32_t last_healthy_ms; uint32_t last_healthy_ms;
LowPassFilterFloat alt_cm_filt; // altitude filter LowPassFilterFloat alt_cm_filt; // altitude filter
} rangefinder_state = { true, false, 0, 0 }; } rangefinder_state = { false, false, 0, 0 };
#endif #endif
AP_RPM rpm_sensor; AP_RPM rpm_sensor;

2
ArduCopter/sensors.cpp

@ -31,6 +31,7 @@ void Copter::init_rangefinder(void)
#if RANGEFINDER_ENABLED == ENABLED #if RANGEFINDER_ENABLED == ENABLED
rangefinder.init(); rangefinder.init();
rangefinder_state.alt_cm_filt.set_cutoff_frequency(RANGEFINDER_WPNAV_FILT_HZ); rangefinder_state.alt_cm_filt.set_cutoff_frequency(RANGEFINDER_WPNAV_FILT_HZ);
rangefinder_state.enabled = (rangefinder.num_sensors() >= 1);
#endif #endif
} }
@ -68,6 +69,7 @@ void Copter::read_rangefinder(void)
wp_nav.set_rangefinder_alt(rangefinder_state.enabled, rangefinder_state.alt_healthy, rangefinder_state.alt_cm_filt.get()); wp_nav.set_rangefinder_alt(rangefinder_state.enabled, rangefinder_state.alt_healthy, rangefinder_state.alt_cm_filt.get());
#else #else
rangefinder_state.enabled = false;
rangefinder_state.alt_healthy = false; rangefinder_state.alt_healthy = false;
rangefinder_state.alt_cm = 0; rangefinder_state.alt_cm = 0;
#endif #endif

2
ArduCopter/switches.cpp

@ -348,7 +348,7 @@ void Copter::do_aux_switch_function(int8_t ch_function, uint8_t ch_flag)
case AUXSW_RANGEFINDER: case AUXSW_RANGEFINDER:
// enable or disable the rangefinder // enable or disable the rangefinder
#if RANGEFINDER_ENABLED == ENABLED #if RANGEFINDER_ENABLED == ENABLED
if (ch_flag == AUX_SWITCH_HIGH) { if ((ch_flag == AUX_SWITCH_HIGH) && (rangefinder.num_sensors() >= 1)) {
rangefinder_state.enabled = true; rangefinder_state.enabled = true;
}else{ }else{
rangefinder_state.enabled = false; rangefinder_state.enabled = false;

Loading…
Cancel
Save