Complete high precision GNSS solution data
Channel Number
| 109
|
Total Length
| Variable length message
|
Channel
| Message length
| Message type
| Data 1
| Data 2 ... Data n
| Checksum
|
Message type description
- External GNSS navigation solution
Message type 1: External GNSS navigation solution
Channel:
109
Message length:
71 bytes
Message type:
1: From GPS2
2: From SPEEDBOX
3: Target data (to SPEEDBOX)
Solution Time: (6 bytes: 48 bits, unsigned)
Solution time (GPS time of week in microseconds) = (Data1 * 2^ 40) + (Data2 *2 ^ 32) + (Data3 * 2^ 24) + (Data4 * 2^ 16) + (Data5 * 2 ^ 8) + Data6
Solution Week: (2 bytes: 16 bits, unsigned)
GPS week number = (Data7 * 2^8) + Data8
Note: The value 0xFFFF is used to indicate the the GPS week is invalid and should not be used.
LLH position: (24 bytes)
Longitude components: (8 bytes: 64 bits, signed)
Longitude (degrees) = (64 bits of Data9 to Data16) * 10
-9; as shown below:
Lonint = (Data9 * 2 ^ 56) + (Data10 * 2^ 48) + (Data11 * 2^ 40) + (Data12 * 2^ 32) + (Data13 * 2^ 24) + (Data14 * 2^ 16) + (Data15 * 2^ 8) + Data16
Lon_deg (degrees) = Lonint * 10-9;
Latitude components: (8 bytes: 64 bits, signed)
Latitude (degrees) = (64 bits of Data17 to Data24) * 10-9; as shown below:
Latint = (Data17 * 2^ 56) + (Data18 * 2^ 48) + (Data19 * 2^ 40) + (Data20 * 2^ 32) + (Data21 * 2^ 24) + (Data22 * 2^ 16) + (Data23 * 2^ 8) + Data24
Lat_deg (degrees) = Latint * 10-9;
Height components: (8 bytes: 64 bits, signed)
Height (metres) = (64 bits of Data25 to Data32) * 10-10;
Height (metres) = ((Data25 * 2 ^ 56) + (Data26 * 2^ 48) + (Data27 * 2^ 40) + (Data28 * 2^ 32) + (Data29 * 2^ 24) + (Data30 * 2^ 16) + (Data31 * 2^ 8) + Data32) * 10-10;
Velocity Components: (12 bytes)
X-component/East velocity (m/s) = (32 bits of Data33 to Data36, signed) * 10
-4; shown below:
East Velocity (m/s) = ((Data33 * 2 ^ 24) + (Data34 * 2 ^ 16) + (Data35 * 2^ 8) + Data36) * 10-4;
Y-component/North velocity (m/s) = (32 bits of Data37 to Data40, signed) * 10-4;
North Velocity (m/s) = ((Data37 * 2 ^ 24) + (Data38 * 2 ^ 16) + (Data39 * 2^ 8) + Data40) * 10-4;
Z-component/Up velocity (m/s) = (32 bits of Data41 to Data44, signed) * 10
-4;
Up Velocity (m/s) = ((Data41 * 2 ^ 24) + (Data42 * 2 ^ 16) + (Data43 * 2^ 8) + Data44) * 10-4;
Yaw Angle: (2 bytes: 16 bits)
Yaw angle (degrees) = (16 bits of Data45 to Data46, signed) * 0.01; shown below:
Yaw (degrees) = ((Data45 * 2^ 8) + Data46) * 0.01;
(Note that yaw angle will be within the range -180°..180°)
Pitch Angle: (2 bytes: 16 bits)
Pitch angle (degrees) = (16 bits of Data47 to Data48, signed) * 0.01; shown below:
Pitch (degrees) = ((Data47 * 2^ 8) + Data48) * 0.01;
Time since last differential correction [s]: (1 byte: 8bits)
Data49
Use a value of 255 if no corrections have been received, or if the last correction was received more than 255s previously.
Data 50 is currently unused.
Position Error: (4 bytes)
Pos_accuracy (metres) = (32 bits of Data51 to Data54, unsigned) * 10
-3;
Position_accuracy (metres) = ((Data51 * 2 ^ 24) + (Data52 * 2 ^ 16) + (Data53 * 2 ^ 8) + Data54) * 10-3;
Data 55 and Data 56 are currently unused.
Velocity Error: (4 bytes)
Vel_accuracy (metres) = (32 bits of Data57 to Data60, unsigned) * 10
-3;
Velocity_accuracy (metres) = ((Data57 * 2^ 24) + (Data58 * 2^ 16) + (Data59 * 2^ 8) + Data60) * 10-3;
Yaw Accuracy: (1 byte: 8bits) (empty)
Data61
Pitch Accuracy: (1 byte: 8 bits) (empty)
Data62
Number of SVs (GPS): (1 byte: 8 bits)
Data63
Number of SVs (Glonass): (1 byte: 8 bits)
Data64
Number of SVs (Galileo): (1 byte: 8 bits)
Data65
Number of SVs (BeiDou): (1 byte: 8 bits)
Data66
GPS Receiver State: (1 byte: 8 bits)
Data67
Values:
0 - No valid solution
1 – Standalone (autonomous) solution
2 – Solution using WAAS/SBAS corrections
3 – Code differential (DGPS) solution
4 – Phase differential (RTK) solution with float ambiguities
5 – Phase differential (RTK) solution with integer ambiguities
Error State: (2 bytes: 16 bits) (empty)
Data68 Data69
Latency Estimate: (1 byte: 8 bits)
Latency estimate (ms) = Data70 * 10
The latency estimate applies to the end of transmission of msg109. A value of zero implies no latency estimate given (i.e. latency estimate invalid).