2013-12-29 07:56:54 -04:00
|
|
|
|
|
|
|
enum log_messages {
|
2014-01-04 20:39:43 -04:00
|
|
|
// plane specific messages
|
|
|
|
LOG_PLANE_NTUN_MSG = 2,
|
|
|
|
LOG_PLANE_ATTITUDE_MSG = 10,
|
|
|
|
LOG_PLANE_COMPASS_MSG = 12,
|
|
|
|
|
|
|
|
// copter specific messages
|
|
|
|
LOG_COPTER_ATTITUDE_MSG = 1,
|
|
|
|
LOG_COPTER_COMPASS_MSG = 15,
|
|
|
|
LOG_COPTER_CONTROL_TUNING_MSG = 4
|
2013-12-29 07:56:54 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class LogReader
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
LogReader(AP_InertialSensor &_ins, AP_Baro_HIL &_baro, AP_Compass_HIL &_compass, GPS *&_gps);
|
|
|
|
bool open_log(const char *logfile);
|
|
|
|
bool update(uint8_t &type);
|
|
|
|
bool wait_type(uint8_t type);
|
|
|
|
const Vector3f &get_attitude(void) const { return attitude; }
|
2014-01-03 01:07:39 -04:00
|
|
|
const Vector3f &get_sim_attitude(void) const { return sim_attitude; }
|
2013-12-29 07:56:54 -04:00
|
|
|
|
2014-01-04 20:39:43 -04:00
|
|
|
enum vehicle_type { VEHICLE_UNKNOWN, VEHICLE_COPTER, VEHICLE_PLANE, VEHICLE_ROVER };
|
|
|
|
|
|
|
|
vehicle_type vehicle;
|
|
|
|
|
2013-12-29 07:56:54 -04:00
|
|
|
private:
|
|
|
|
int fd;
|
|
|
|
AP_InertialSensor &ins;
|
|
|
|
AP_Baro_HIL &baro;
|
|
|
|
AP_Compass_HIL &compass;
|
|
|
|
GPS *&gps;
|
|
|
|
|
2013-12-29 18:32:20 -04:00
|
|
|
uint32_t ground_alt_cm;
|
|
|
|
|
2013-12-29 07:56:54 -04:00
|
|
|
uint8_t num_formats;
|
2014-01-04 20:39:43 -04:00
|
|
|
struct log_Format formats[100];
|
2013-12-29 07:56:54 -04:00
|
|
|
|
|
|
|
Vector3f attitude;
|
2014-01-03 01:07:39 -04:00
|
|
|
Vector3f sim_attitude;
|
2013-12-29 07:56:54 -04:00
|
|
|
|
|
|
|
void wait_timestamp(uint32_t timestamp);
|
2014-01-04 20:39:43 -04:00
|
|
|
|
|
|
|
void process_plane(uint8_t type, uint8_t *data, uint16_t length);
|
|
|
|
void process_copter(uint8_t type, uint8_t *data, uint16_t length);
|
2013-12-29 07:56:54 -04:00
|
|
|
};
|