Browse Source

Merge'zr-dev-4.0.16' into zr-dev-4.0.17,降落锁定解锁后才判断

celiu-4.0.17-rc8
zbr 3 years ago
parent
commit
a25a758893
  1. 12
      ArduCopter/mode.cpp
  2. 4
      libraries/AP_Logger/AP_Logger.h

12
ArduCopter/mode.cpp

@ -693,7 +693,7 @@ void Mode::land_lock_att_control(float *p_roll,float *p_pitch,float *p_yaw_rate) @@ -693,7 +693,7 @@ void Mode::land_lock_att_control(float *p_roll,float *p_pitch,float *p_yaw_rate)
gcs().send_text(MAV_SEVERITY_INFO, "land lock sitl mode");
#else
bool land_lock_attitude = (get_alt_above_ground_cm() < g.land_lock_alt * 2) && \
bool land_lock_attitude = (motors->armed() && get_alt_above_ground_cm() < g.land_lock_alt ) && \
copter.rangefinder_alt_ok() && g.land_lock_alt && \
(copter.control_mode == Mode::Number::LOITER || copter.control_mode == Mode::Number::LAND || copter.control_mode == Mode::Number::RTL || copter.control_mode == Mode::Number::AUTO);
#endif
@ -702,22 +702,16 @@ void Mode::land_lock_att_control(float *p_roll,float *p_pitch,float *p_yaw_rate) @@ -702,22 +702,16 @@ void Mode::land_lock_att_control(float *p_roll,float *p_pitch,float *p_yaw_rate)
float *target_roll = p_roll;
float *target_pitch = p_pitch;
float *target_yaw_rate = p_yaw_rate;
if(prt_once == 0)
{
gcs().send_text(MAV_SEVERITY_INFO, "Land ready to enter attitude lock mode");
copter.Log_Write_Event(DATA_LAND_READY_LOCK);
prt_once = 1;
}
if(copter.rangefinder_state.alt_cm_filt.get() < g.land_lock_alt){
*target_roll = 0;
*target_pitch = 0;
*target_yaw_rate = 0;
loiter_nav->soften_for_landing();
if(prt_once == 1)
if(prt_once == 0)
{
gcs().send_text(MAV_SEVERITY_INFO, "Land Lock attitude!");
copter.Log_Write_Event(DATA_LAND_LOCK_ATT);
prt_once = 2;
prt_once = 1;
}
}
}else{

4
libraries/AP_Logger/AP_Logger.h

@ -92,7 +92,7 @@ enum Log_Event : uint8_t { @@ -92,7 +92,7 @@ enum Log_Event : uint8_t {
DATA_STANDBY_ENABLE = 74,
DATA_STANDBY_DISABLE = 75,
DATA_LAND_READY_LOCK = 76,
// DATA_LAND_READY_LOCK = 76,
DATA_LAND_LOCK_ATT = 77,
DATA_SURFACED = 163,
@ -287,7 +287,7 @@ public: @@ -287,7 +287,7 @@ public:
void Write_OABendyRuler(bool active, float target_yaw, float margin, const Location &final_dest, const Location &oa_dest);
void Write_OADijkstra(uint8_t state, uint8_t error_id, uint8_t curr_point, uint8_t tot_points, const Location &final_dest, const Location &oa_dest);
void Write_Camera_Feedback(uint16_t index,uint16_t cam1,uint16_t cam2,uint16_t cam3,uint16_t cam4,uint16_t cam5,uint8_t flag);
void Write_RTK_Mark_Pos(uint16_t week, uint32_t second,const Vector3d& llh,float undulation,const Vector3f& sigma,float diff_age,float sol_age);
void Write_RTK_Mark_Pos(uint16_t week, uint32_t second,const Vector3d& llh,float undulation,const Vector3f& sigma,float diff_age,float sol_age);
void Write(const char *name, const char *labels, const char *fmt, ...);
void Write(const char *name, const char *labels, const char *units, const char *mults, const char *fmt, ...);

Loading…
Cancel
Save