mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-03-03 04:03:59 -04:00
Copter: add Precision Landing log message
This commit is contained in:
parent
26ded641db
commit
0da38ba2bf
@ -632,6 +632,7 @@ private:
|
||||
#if FRAME_CONFIG == HELI_FRAME
|
||||
void Log_Write_Heli(void);
|
||||
#endif
|
||||
void Log_Write_Precland();
|
||||
void Log_Read(uint16_t log_num, uint16_t start_page, uint16_t end_page);
|
||||
void start_logging() ;
|
||||
void load_parameters(void);
|
||||
|
@ -681,6 +681,46 @@ void Copter::Log_Write_Heli()
|
||||
}
|
||||
#endif
|
||||
|
||||
// precision landing logging
|
||||
struct PACKED log_Precland {
|
||||
LOG_PACKET_HEADER;
|
||||
uint64_t time_us;
|
||||
uint8_t healthy;
|
||||
float bf_angle_x;
|
||||
float bf_angle_y;
|
||||
float ef_angle_x;
|
||||
float ef_angle_y;
|
||||
float pos_x;
|
||||
float pos_y;
|
||||
};
|
||||
|
||||
// Write an optical flow packet
|
||||
void Copter::Log_Write_Precland()
|
||||
{
|
||||
#if PRECISION_LANDING == ENABLED
|
||||
// exit immediately if not enabled
|
||||
if (!precland.enabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
const Vector2f &bf_angle = precland.last_bf_angle_to_target();
|
||||
const Vector2f &ef_angle = precland.last_ef_angle_to_target();
|
||||
const Vector3f &target_pos_ofs = precland.last_target_pos_offset();
|
||||
struct log_Precland pkt = {
|
||||
LOG_PACKET_HEADER_INIT(LOG_PRECLAND_MSG),
|
||||
time_us : hal.scheduler->micros64(),
|
||||
healthy : precland.healthy(),
|
||||
bf_angle_x : degrees(bf_angle.x),
|
||||
bf_angle_y : degrees(bf_angle.y),
|
||||
ef_angle_x : degrees(ef_angle.x),
|
||||
ef_angle_y : degrees(ef_angle.y),
|
||||
pos_x : target_pos_ofs.x,
|
||||
pos_y : target_pos_ofs.y
|
||||
};
|
||||
DataFlash.WriteBlock(&pkt, sizeof(pkt));
|
||||
#endif // PRECISION_LANDING == ENABLED
|
||||
}
|
||||
|
||||
const struct LogStructure Copter::log_structure[] PROGMEM = {
|
||||
LOG_COMMON_STRUCTURES,
|
||||
#if AUTOTUNE_ENABLED == ENABLED
|
||||
@ -721,6 +761,8 @@ const struct LogStructure Copter::log_structure[] PROGMEM = {
|
||||
"ERR", "QBB", "TimeUS,Subsys,ECode" },
|
||||
{ LOG_HELI_MSG, sizeof(log_Heli),
|
||||
"HELI", "Qhh", "TimeUS,DRRPM,ERRPM" },
|
||||
{ LOG_PRECLAND_MSG, sizeof(log_Precland),
|
||||
"PL", "QBffffff", "TimeUS,Heal,bX,bY,eX,eY,pX,pY" },
|
||||
};
|
||||
|
||||
#if CLI_ENABLED == ENABLED
|
||||
|
@ -250,6 +250,7 @@ enum FlipState {
|
||||
#define LOG_MOTBATT_MSG 0x1E
|
||||
#define LOG_PARAMTUNE_MSG 0x1F
|
||||
#define LOG_HELI_MSG 0x20
|
||||
#define LOG_PRECLAND_MSG 0x21
|
||||
|
||||
#define MASK_LOG_ATTITUDE_FAST (1<<0)
|
||||
#define MASK_LOG_ATTITUDE_MED (1<<1)
|
||||
|
Loading…
Reference in New Issue
Block a user