#ifndef _FG_UGEAR_II_HXX #define _FG_UGEAR_II_HXX #ifdef HAVE_CONFIG_H # include #endif #include #include #include #include #include #include #include SG_USING_STD(cout); SG_USING_STD(endl); SG_USING_STD(string); SG_USING_STD(vector); enum ugPacketType { GPS_PACKET = 0, IMU_PACKET = 1, NAV_PACKET = 2, SERVO_PACKET = 3, HEALTH_PACKET = 4 }; struct imu { double time; double p,q,r; /* angular velocities */ double ax,ay,az; /* acceleration */ double hx,hy,hz; /* magnetic field */ double Ps,Pt; /* static/pitot pressure */ // double Tx,Ty,Tz; /* temperature */ double phi,the,psi; /* attitudes */ uint64_t err_type; /* error type */ }; struct gps { double time; double lat,lon,alt; /* gps position */ double ve,vn,vd; /* gps velocity */ double ITOW; uint64_t err_type; /* error type */ }; struct nav { double time; double lat,lon,alt; double ve,vn,vd; // float t; uint64_t err_type; }; struct servo { double time; uint16_t chn[8]; uint64_t status; }; struct health { double time; float volts_raw; /* raw volt reading */ float volts; /* filtered volts */ uint32_t est_seconds; /* estimated useful seconds remaining */ uint32_t loadavg; /* system "1 minute" load average */ uint32_t ahrs_hz; /* actual ahrs loop hz */ uint32_t nav_hz; /* actual nav loop hz */ }; // Manage a saved ugear log (track file) class UGEARTrack { private: vector gps_data; vector imu_data; vector