Step_4
This commit is contained in:
@@ -753,6 +753,180 @@ typedef struct
|
||||
UBX_NAV_HPPOSLLH_data_t *callbackData;
|
||||
} UBX_NAV_HPPOSLLH_t;
|
||||
|
||||
// UBX-NAV-PVAT (0x01 0x17): Navigation position velocity attitude time solution
|
||||
const uint16_t UBX_NAV_PVAT_LEN = 116;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint32_t iTOW; // GPS time of week of the navigation epoch: ms
|
||||
uint8_t version; // Message version (0x00 for this version)
|
||||
union
|
||||
{
|
||||
uint8_t all;
|
||||
struct
|
||||
{
|
||||
uint8_t validDate : 1; // 1 = valid UTC Date
|
||||
uint8_t validTime : 1; // 1 = valid UTC time of day
|
||||
uint8_t fullyResolved : 1; // 1 = UTC time of day has been fully resolved (no seconds uncertainty).
|
||||
uint8_t validMag : 1; // 1 = valid magnetic declination
|
||||
} bits;
|
||||
} valid;
|
||||
uint16_t year; // Year (UTC)
|
||||
uint8_t month; // Month, range 1..12 (UTC)
|
||||
uint8_t day; // Day of month, range 1..31 (UTC)
|
||||
uint8_t hour; // Hour of day, range 0..23 (UTC)
|
||||
uint8_t min; // Minute of hour, range 0..59 (UTC)
|
||||
uint8_t sec; // Seconds of minute, range 0..60 (UTC)
|
||||
uint8_t reserved0;
|
||||
uint8_t reserved1[2];
|
||||
uint32_t tAcc; // Time accuracy estimate (UTC): ns
|
||||
int32_t nano; // Fraction of second, range -1e9 .. 1e9 (UTC): ns
|
||||
uint8_t fixType; // GNSSfix Type:
|
||||
// 0: no fix
|
||||
// 1: dead reckoning only
|
||||
// 2: 2D-fix
|
||||
// 3: 3D-fix
|
||||
// 4: GNSS + dead reckoning combined
|
||||
// 5: time only fix
|
||||
union
|
||||
{
|
||||
uint8_t all;
|
||||
struct
|
||||
{
|
||||
uint8_t gnssFixOK : 1; // 1 = valid fix (i.e within DOP & accuracy masks)
|
||||
uint8_t diffSoln : 1; // 1 = differential corrections were applied
|
||||
uint8_t reserved : 1;
|
||||
uint8_t vehRollValid : 1; // 1 = roll of vehicle is valid, only set if the receiver is in sensor fusion mode
|
||||
uint8_t vehPitchValid : 1; // 1 = pitch of vehicle is valid, only set if the receiver is in sensor fusion mode
|
||||
uint8_t vehHeadingValid : 1; // 1 = heading of vehicle is valid, only set if the receiver is in sensor fusion mode
|
||||
uint8_t carrSoln : 2; // Carrier phase range solution status:
|
||||
// 0: no carrier phase range solution
|
||||
// 1: carrier phase range solution with floating ambiguities
|
||||
// 2: carrier phase range solution with fixed ambiguities
|
||||
} bits;
|
||||
} flags;
|
||||
union
|
||||
{
|
||||
uint8_t all;
|
||||
struct
|
||||
{
|
||||
uint8_t reserved : 5;
|
||||
uint8_t confirmedAvai : 1; // 1 = information about UTC Date and Time of Day validity confirmation is available
|
||||
uint8_t confirmedDate : 1; // 1 = UTC Date validity could be confirmed
|
||||
uint8_t confirmedTime : 1; // 1 = UTC Time of Day could be confirmed
|
||||
} bits;
|
||||
} flags2;
|
||||
uint8_t numSV; // Number of satellites used in Nav Solution
|
||||
int32_t lon; // Longitude: deg * 1e-7
|
||||
int32_t lat; // Latitude: deg * 1e-7
|
||||
int32_t height; // Height above ellipsoid: mm
|
||||
int32_t hMSL; // Height above mean sea level: mm
|
||||
uint32_t hAcc; // Horizontal accuracy estimate: mm
|
||||
uint32_t vAcc; // Vertical accuracy estimate: mm
|
||||
int32_t velN; // NED north velocity: mm/s
|
||||
int32_t velE; // NED east velocity: mm/s
|
||||
int32_t velD; // NED down velocity: mm/s
|
||||
int32_t gSpeed; // Ground Speed (2-D): mm/s
|
||||
uint32_t sAcc; // Speed accuracy estimate: mm/s
|
||||
int32_t vehRoll; // Vehicle roll: 1e-5 deg
|
||||
int32_t vehPitch; // Vehicle pitch: 1e-5 deg
|
||||
int32_t vehHeading; // Vehicle heading: 1e-5 deg
|
||||
int32_t motHeading; // Motion heading.: 1e-5 deg
|
||||
uint16_t accRoll; // Vehicle roll accuracy (if null, roll angle is not available): 1e-2 deg
|
||||
uint16_t accPitch; // Vehicle pitch accuracy (if null, pitch angle is not available): 1e-2 deg
|
||||
uint16_t accHeading; // Vehicle heading accuracy (if null, heading angle is not available): 1e-2 deg
|
||||
int16_t magDec; // Magnetic declination: 1e-2 deg
|
||||
uint16_t magAcc; // Magnetic declination accuracy: 1e-2 deg
|
||||
uint16_t errEllipseOrient; // Orientation of semi-major axis of error ellipse (degrees from true north): 1e-2 deg
|
||||
uint32_t errEllipseMajor; // Semi-major axis of error ellipse: mm
|
||||
uint32_t errEllipseMinor; // Semi-minor axis of error ellipse: mm
|
||||
uint8_t reserved2[4];
|
||||
uint8_t reserved3[4];
|
||||
} UBX_NAV_PVAT_data_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
union
|
||||
{
|
||||
uint32_t all;
|
||||
struct
|
||||
{
|
||||
uint32_t all : 1;
|
||||
|
||||
uint32_t iTOW : 1;
|
||||
uint32_t version : 1;
|
||||
|
||||
uint32_t validDate : 1;
|
||||
uint32_t validTime : 1;
|
||||
uint32_t fullyResolved : 1;
|
||||
uint32_t validMag : 1;
|
||||
|
||||
uint32_t year : 1;
|
||||
uint32_t month : 1;
|
||||
uint32_t day : 1;
|
||||
uint32_t hour : 1;
|
||||
uint32_t min : 1;
|
||||
uint32_t sec : 1;
|
||||
|
||||
uint32_t tAcc : 1;
|
||||
uint32_t nano : 1;
|
||||
uint32_t fixType : 1;
|
||||
|
||||
uint32_t gnssFixOK : 1;
|
||||
uint32_t diffSoln : 1;
|
||||
uint32_t vehRollValid : 1;
|
||||
uint32_t vehPitchValid : 1;
|
||||
uint32_t vehHeadingValid : 1;
|
||||
uint32_t carrSoln : 1;
|
||||
|
||||
uint32_t confirmedAvai : 1;
|
||||
uint32_t confirmedDate : 1;
|
||||
uint32_t confirmedTime : 1;
|
||||
|
||||
uint32_t numSV : 1;
|
||||
uint32_t lon : 1;
|
||||
uint32_t lat : 1;
|
||||
uint32_t height : 1;
|
||||
uint32_t hMSL : 1;
|
||||
uint32_t hAcc : 1;
|
||||
uint32_t vAcc : 1;
|
||||
} bits;
|
||||
} moduleQueried1;
|
||||
union
|
||||
{
|
||||
uint32_t all;
|
||||
struct
|
||||
{
|
||||
uint32_t velN : 1;
|
||||
uint32_t velE : 1;
|
||||
uint32_t velD : 1;
|
||||
uint32_t gSpeed : 1;
|
||||
uint32_t sAcc : 1;
|
||||
uint32_t vehRoll : 1;
|
||||
uint32_t vehPitch : 1;
|
||||
uint32_t vehHeading : 1;
|
||||
uint32_t motHeading : 1;
|
||||
uint32_t accRoll : 1;
|
||||
uint32_t accPitch : 1;
|
||||
uint32_t accHeading : 1;
|
||||
uint32_t magDec : 1;
|
||||
uint32_t magAcc : 1;
|
||||
uint32_t errEllipseOrient : 1;
|
||||
uint32_t errEllipseMajor : 1;
|
||||
uint32_t errEllipseMinor : 1;
|
||||
} bits;
|
||||
} moduleQueried2;
|
||||
} UBX_NAV_PVAT_moduleQueried_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
ubxAutomaticFlags automaticFlags;
|
||||
UBX_NAV_PVAT_data_t data;
|
||||
UBX_NAV_PVAT_moduleQueried_t moduleQueried;
|
||||
void (*callbackPointer)(UBX_NAV_PVAT_data_t);
|
||||
UBX_NAV_PVAT_data_t *callbackData;
|
||||
} UBX_NAV_PVAT_t;
|
||||
|
||||
// UBX-NAV-TIMEUTC (0x01 0x21): UTC time solution
|
||||
const uint16_t UBX_NAV_TIMEUTC_LEN = 20;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user