Packb, Format, Port – NavCom Sapphire Rev.J User Manual
Page 181: Correction data, Table 75: packb command format, Table 76: packb command format field mnemonics

Sapphire Technical Reference Manual Rev. J
181
1.126
PACKB
SF-3050
Sapphire
SF-3040
This command is used to pack navigation corrections into the Sapphire command format. The
message follows standard binary format, with more header format descriptions provided in
paragraph 1.126.5.1. Issue the message whenever the sender accumulates 512 bytes of data
or when the time from the last transfer exceeds 500 ms
.
Table 75: PackB Command Format
Data Item
Data Type
Section
Format
U08
Port
U08
Correction Data
U08[]
1.126.1
Format
Table 76: PackB Command Format Field Mnemonics
Format Field Value
Meaning
0
Unknown
1
NCT proprietary
2
RTCM 2.3
3
RTCM 3.0
4
CMR/CMR+
Specifying the data format, although optional, can result in improved performance.
However, if the format field is set to Unknown and the data type is supported by the
receiver firmware, the correction data will be successfully sent and processed.
1.126.2
Port
This value is reserved; it is always 0.
1.126.3
Correction Data
This is actual correction data, up to 512 bytes. Each byte of the correction data is encoded by
being XORed with 0x55. The Sapphire parsers are highly adaptable. If correction data are not
encoded, the Sapphire parsers may become confused and start switching between correction
mode and Sapphire command mode. The receiver decoding function of the PACKB command
returns the data to their original values by XORing it with 0x55 again.
See example function (C#) below for building the PACKB message.
Private
void
SendCorrectionsOut(
byte
[] data,
Uint16
len)
{
byte
[] CorrectionsByteArray =
new
byte
[2048];
// this is the data buffer plus the binary header
Uint16
Length = (
Uint16
)(len + 9 + 2);
// arbitrary gps week and time
Uint16
GPSWeek = 0x064A;
Uint32
GPSTime = (((2 * 24 + 8) * 60 * 60) + (15 * 60)) * 1000;
// Tuesday,
8:15AM
byte
TimeVersion = 0x00;
// time is unknown; message version 0