5
0
mirror of https://github.com/ArduPilot/ardupilot synced 2025-01-09 01:18:29 -04:00

DataFlash: convert to new GPS API

This commit is contained in:
Andrew Tridgell 2014-03-30 22:00:11 +11:00
parent 368daf89f1
commit 31d3b6555f
2 changed files with 37 additions and 37 deletions
libraries/DataFlash

View File

@ -48,8 +48,7 @@ public:
void EnableWrites(bool enable) { _writes_enabled = enable; }
void Log_Write_Format(const struct LogStructure *structure);
void Log_Write_Parameter(const char *name, float value);
void Log_Write_GPS(const GPS *gps, int32_t relative_alt);
void Log_Write_GPS2(const GPS *gps);
void Log_Write_GPS(const AP_GPS &gps, int32_t relative_alt);
void Log_Write_IMU(const AP_InertialSensor &ins);
void Log_Write_RCIN(void);
void Log_Write_RCOUT(void);

View File

@ -662,48 +662,49 @@ void DataFlash_Class::Log_Write_Parameters(void)
// Write an GPS packet
void DataFlash_Class::Log_Write_GPS(const GPS *gps, int32_t relative_alt)
void DataFlash_Class::Log_Write_GPS(const AP_GPS &gps, int32_t relative_alt)
{
const struct Location &loc = gps.location(0);
struct log_GPS pkt = {
LOG_PACKET_HEADER_INIT(LOG_GPS_MSG),
status : (uint8_t)gps->status(),
gps_week_ms : gps->time_week_ms,
gps_week : gps->time_week,
num_sats : gps->num_sats,
hdop : gps->hdop,
latitude : gps->latitude,
longitude : gps->longitude,
status : (uint8_t)gps.status(0),
gps_week_ms : gps.time_week_ms(0),
gps_week : gps.time_week(0),
num_sats : gps.num_sats(0),
hdop : gps.get_hdop(0),
latitude : loc.lat,
longitude : loc.lng,
rel_altitude : relative_alt,
altitude : gps->altitude_cm,
ground_speed : gps->ground_speed_cm,
ground_course : gps->ground_course_cd,
vel_z : gps->velocity_down(),
altitude : loc.alt,
ground_speed : (uint32_t)(gps.ground_speed(0) * 100),
ground_course : gps.ground_course_cd(0),
vel_z : gps.velocity(0).z,
apm_time : hal.scheduler->millis()
};
WriteBlock(&pkt, sizeof(pkt));
}
// Write a GPS2 packet
void DataFlash_Class::Log_Write_GPS2(const GPS *gps)
{
struct log_GPS2 pkt = {
LOG_PACKET_HEADER_INIT(LOG_GPS2_MSG),
status : (uint8_t)gps->status(),
gps_week_ms : gps->time_week_ms,
gps_week : gps->time_week,
num_sats : gps->num_sats,
hdop : gps->hdop,
latitude : gps->latitude,
longitude : gps->longitude,
altitude : gps->altitude_cm,
ground_speed : gps->ground_speed_cm,
ground_course : gps->ground_course_cd,
vel_z : gps->velocity_down(),
apm_time : hal.scheduler->millis(),
dgps_numch : 0,
dgps_age : 0
};
WriteBlock(&pkt, sizeof(pkt));
#if HAL_CPU_CLASS > HAL_CPU_CLASS_16
if (gps.num_sensors() > 1) {
const struct Location &loc2 = gps.location(1);
struct log_GPS2 pkt2 = {
LOG_PACKET_HEADER_INIT(LOG_GPS2_MSG),
status : (uint8_t)gps.status(1),
gps_week_ms : gps.time_week_ms(1),
gps_week : gps.time_week(1),
num_sats : gps.num_sats(1),
hdop : gps.get_hdop(1),
latitude : loc2.lat,
longitude : loc2.lng,
altitude : loc2.alt,
ground_speed : (uint32_t)(gps.ground_speed(1)*100),
ground_course : gps.ground_course_cd(1),
vel_z : gps.velocity(1).z,
apm_time : hal.scheduler->millis(),
dgps_numch : 0,
dgps_age : 0
};
WriteBlock(&pkt2, sizeof(pkt2));
}
#endif
}
// Write an RCIN packet