mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-26 17:36:40 +08:00
sdlog2: GPS message added
This commit is contained in:
@@ -504,6 +504,7 @@ int sdlog2_thread_main(int argc, char *argv[])
|
||||
struct log_SENS_s log_SENS;
|
||||
struct log_LPOS_s log_LPOS;
|
||||
struct log_LPSP_s log_LPSP;
|
||||
struct log_GPS_s log_GPS;
|
||||
} body;
|
||||
} log_msg = {
|
||||
LOG_PACKET_HEADER_INIT(0)
|
||||
@@ -663,7 +664,19 @@ int sdlog2_thread_main(int argc, char *argv[])
|
||||
/* --- GPS POSITION --- */
|
||||
if (fds[ifds++].revents & POLLIN) {
|
||||
orb_copy(ORB_ID(vehicle_gps_position), subs.gps_pos_sub, &buf.gps_pos);
|
||||
// TODO not implemented yet
|
||||
log_msg.msg_type = LOG_GPS_MSG;
|
||||
log_msg.body.log_GPS.gps_time = buf.gps_pos.time_gps_usec;
|
||||
log_msg.body.log_GPS.fix_type = buf.gps_pos.fix_type;
|
||||
log_msg.body.log_GPS.satellites_visible = buf.gps_pos.satellites_visible;
|
||||
log_msg.body.log_GPS.lat = buf.gps_pos.lat;
|
||||
log_msg.body.log_GPS.lon = buf.gps_pos.lon;
|
||||
log_msg.body.log_GPS.alt = buf.gps_pos.alt;
|
||||
log_msg.body.log_GPS.vel_n = buf.gps_pos.vel_n_m_s;
|
||||
log_msg.body.log_GPS.vel_e = buf.gps_pos.vel_e_m_s;
|
||||
log_msg.body.log_GPS.vel_d = buf.gps_pos.vel_d_m_s;
|
||||
log_msg.body.log_GPS.cog = buf.gps_pos.cog_rad;
|
||||
log_msg.body.log_GPS.vel_valid = (uint8_t) buf.gps_pos.vel_ned_valid;
|
||||
sdlog2_logbuffer_write(&lb, &log_msg, LOG_PACKET_SIZE(GPS));
|
||||
}
|
||||
|
||||
/* --- SENSOR COMBINED --- */
|
||||
|
||||
@@ -107,7 +107,7 @@ struct log_LPOS_s {
|
||||
float home_alt;
|
||||
};
|
||||
|
||||
/* --- LPOS - LOCAL POSITION SETPOINT --- */
|
||||
/* --- LPSP - LOCAL POSITION SETPOINT --- */
|
||||
#define LOG_LPSP_MSG 7
|
||||
struct log_LPSP_s {
|
||||
float x;
|
||||
@@ -116,16 +116,33 @@ struct log_LPSP_s {
|
||||
float yaw;
|
||||
};
|
||||
|
||||
/* --- GPS - GPS POSITION --- */
|
||||
#define LOG_GPS_MSG 8
|
||||
struct log_GPS_s {
|
||||
uint64_t gps_time;
|
||||
uint8_t fix_type;
|
||||
uint8_t satellites_visible;
|
||||
int32_t lat;
|
||||
int32_t lon;
|
||||
float alt;
|
||||
float vel_n;
|
||||
float vel_e;
|
||||
float vel_d;
|
||||
float cog;
|
||||
uint8_t vel_valid;
|
||||
};
|
||||
|
||||
/* construct list of all message formats */
|
||||
|
||||
static const struct log_format_s log_formats[] = {
|
||||
LOG_FORMAT(TIME, "Q", "t"),
|
||||
LOG_FORMAT(TIME, "Q", "StartTime"),
|
||||
LOG_FORMAT(ATT, "fff", "Roll,Pitch,Yaw"),
|
||||
LOG_FORMAT(ATSP, "fff", "RollSP,PitchSP,YawSP"),
|
||||
LOG_FORMAT(IMU, "fffffffff", "AccX,AccY,AccZ,GyroX,GyroY,GyroZ,MagX,MagY,MagZ"),
|
||||
LOG_FORMAT(SENS, "ffff", "BaroPres,BaroAlt,BaroTemp,DiffPres"),
|
||||
LOG_FORMAT(LPOS, "fffffffLLf", "X,Y,Z,VX,VY,VZ,Heading,HomeLat,HomeLon,HomeAlt"),
|
||||
LOG_FORMAT(LPSP, "ffff", "X,Y,Z,Yaw"),
|
||||
LOG_FORMAT(GPS, "QBBLLfffffB", "GPSTime,FixType,Sats,Lat,Lon,Alt,VelN,VelE,VelD,Cog,VelValid"),
|
||||
};
|
||||
|
||||
static const int log_formats_num = sizeof(log_formats) / sizeof(struct log_format_s);
|
||||
|
||||
Reference in New Issue
Block a user