Browse Source

删除不必要函数,降落速度,高度判断函数

celiu-4.0.17-rc8
zbr 3 years ago
parent
commit
cf8864e38a
  1. 39
      ArduCopter/Attitude.cpp
  2. 2
      ArduCopter/Copter.h
  3. 24
      ArduCopter/mode.cpp

39
ArduCopter/Attitude.cpp

@ -162,42 +162,3 @@ uint16_t Copter::get_pilot_speed_dn() @@ -162,42 +162,3 @@ uint16_t Copter::get_pilot_speed_dn()
return abs(g2.pilot_speed_dn);
}
}
uint16_t Copter::get_speed_dn_slow()
{
int16_t speed_dn_now = 0 ;
if(get_alt_above_ground_cm() < g2.land_alt_low){ // 2m
speed_dn_now = g.land_speed;
}
else if(get_alt_above_ground_cm() < g.land_slow_2nd_alt){ // 15m
speed_dn_now = g.land_speed_2nd;
}
else if(get_alt_above_ground_cm() < g.land_slow_3nd_alt){ // 30m
speed_dn_now = g.land_speed_3nd;
}
else
{
speed_dn_now = g2.pilot_speed_dn;
}
if (speed_dn_now == 0) {
return abs(g.pilot_speed_up);
} else {
return abs(speed_dn_now);
}
}
int32_t Copter::get_alt_above_ground_cm()
{
int32_t alt_above_ground;
if (rangefinder_alt_ok() && current_loc.alt < g.land_slow_3nd_alt) {
alt_above_ground = rangefinder_state.alt_cm_filt.get();
} else {
bool navigating = pos_control->is_active_xy();
if (!navigating || !current_loc.get_alt_cm(Location::AltFrame::ABOVE_TERRAIN, alt_above_ground)) {
alt_above_ground = current_loc.alt;
}
}
return alt_above_ground;
}

2
ArduCopter/Copter.h

@ -698,8 +698,6 @@ private: @@ -698,8 +698,6 @@ private:
void set_accel_throttle_I_from_pilot_throttle();
void rotate_body_frame_to_NE(float &x, float &y);
uint16_t get_pilot_speed_dn();
uint16_t get_speed_dn_slow();
int32_t get_alt_above_ground_cm();
UpDownState updownStatus = UpDown_TakeOffStart;
#if ADSB_ENABLED == ENABLED
// avoidance_adsb.cpp

24
ArduCopter/mode.cpp

@ -520,7 +520,7 @@ void Mode::make_safe_spool_down() @@ -520,7 +520,7 @@ void Mode::make_safe_spool_down()
int32_t Mode::get_alt_above_ground_cm(void)
{
int32_t alt_above_ground;
if (copter.rangefinder_alt_ok() && copter.current_loc.alt < g.land_slow_2nd_alt) {
if (copter.rangefinder_alt_ok() && copter.current_loc.alt < g.land_slow_3nd_alt) {
alt_above_ground = copter.rangefinder_state.alt_cm_filt.get();
} else {
bool navigating = pos_control->is_active_xy();
@ -888,5 +888,25 @@ uint16_t Mode::get_pilot_speed_dn() @@ -888,5 +888,25 @@ uint16_t Mode::get_pilot_speed_dn()
uint16_t Mode::get_speed_dn_slow()
{
return copter.get_speed_dn_slow();
int16_t speed_dn_now = 0 ;
if(get_alt_above_ground_cm() < g2.land_alt_low){ // 2m
speed_dn_now = g.land_speed;
}
else if(get_alt_above_ground_cm() < g.land_slow_2nd_alt){ // 15m
speed_dn_now = g.land_speed_2nd;
}
else if(get_alt_above_ground_cm() < g.land_slow_3nd_alt){ // 30m
speed_dn_now = g.land_speed_3nd;
}
else
{
speed_dn_now = g2.pilot_speed_dn;
}
if (speed_dn_now == 0) {
return abs(g.pilot_speed_up);
} else {
return abs(speed_dn_now);
}
}
Loading…
Cancel
Save