Browse Source

Copter: use rangefinder class's valid_range_count

Also read_rangefinder directly updates rangefinder_alt variable instead of returning distance
No functional change
master
Randy Mackay 9 years ago
parent
commit
ba38b0234f
  1. 2
      ArduCopter/ArduCopter.cpp
  2. 2
      ArduCopter/Copter.h
  3. 20
      ArduCopter/sensors.cpp

2
ArduCopter/ArduCopter.cpp

@ -614,7 +614,7 @@ void Copter::update_altitude() @@ -614,7 +614,7 @@ void Copter::update_altitude()
read_barometer();
// read in rangefinder altitude
rangefinder_alt = read_rangefinder();
read_rangefinder();
// write altitude info to dataflash logs
if (should_log(MASK_LOG_CTUN)) {

2
ArduCopter/Copter.h

@ -946,7 +946,7 @@ private: @@ -946,7 +946,7 @@ private:
void init_barometer(bool full_calibration);
void read_barometer(void);
void init_rangefinder(void);
int16_t read_rangefinder(void);
void read_rangefinder(void);
bool rangefinder_alt_ok();
void init_compass();
void init_optflow();

20
ArduCopter/sensors.cpp

@ -34,7 +34,7 @@ void Copter::init_rangefinder(void) @@ -34,7 +34,7 @@ void Copter::init_rangefinder(void)
}
// return rangefinder altitude in centimeters
int16_t Copter::read_rangefinder(void)
void Copter::read_rangefinder(void)
{
#if RANGEFINDER_ENABLED == ENABLED
rangefinder.update();
@ -42,19 +42,12 @@ int16_t Copter::read_rangefinder(void) @@ -42,19 +42,12 @@ int16_t Copter::read_rangefinder(void)
// exit immediately if rangefinder is disabled
if (rangefinder.status() != RangeFinder::RangeFinder_Good) {
rangefinder_alt_health = 0;
return 0;
return;
}
int16_t temp_alt = rangefinder.distance_cm();
rangefinder_alt_health = rangefinder.range_valid_count();
if (temp_alt >= rangefinder.min_distance_cm() &&
temp_alt <= rangefinder.max_distance_cm() * RANGEFINDER_RELIABLE_DISTANCE_PCT) {
if (rangefinder_alt_health < RANGEFINDER_HEALTH_MAX) {
rangefinder_alt_health++;
}
}else{
rangefinder_alt_health = 0;
}
int16_t temp_alt = rangefinder.distance_cm();
#if RANGEFINDER_TILT_CORRECTION == 1
// correct alt for angle of the rangefinder
@ -63,9 +56,10 @@ int16_t Copter::read_rangefinder(void) @@ -63,9 +56,10 @@ int16_t Copter::read_rangefinder(void)
temp_alt = (float)temp_alt * temp;
#endif
return temp_alt;
rangefinder_alt = temp_alt;
#else
return 0;
rangefinder_alt_health = 0;
rangefinder_alt = 0;
#endif
}

Loading…
Cancel
Save