
Page | 3 May 4, 2017
1. Overview
The purpose of this document is to introduce the format of the two versions of the compressed
range log (RANGECMP, RANGECMP2) and show how to decode the binary message by using
comprehensive examples.
2. Introduction
RANGECMP and RANGECMP2 are the compressed version of the RANGE log. The
RANGECMP message contains a data size of 24 bytes/range whereas the uncompressed
RANGE log is 44 bytes/range (excluding header and CRC). RANCEMP2 encodes all
frequencies within the same line which means smaller message sizes than both RANGECMP
and RANGE. The RANGECMP2 message is 10 bytes/satellite plus 12 bytes/signal. While
RANGECMP2 is smaller than RANGECMP, it does not contain channel assignment
information found on the latter. See Chapter 7. Decoding RANGECMP2 for more details.
All range information is encoded into this compact size and it would be very useful in the
circumstance where the efficient data transfer or storage becomes essential. Due to its compact
structure, however, users will need to perform extra decoding processes to obtain the appropriate
satellite range values.
Decoding the compressed range observation is complicated in some ways and may cause
difficulties for some users. In this document, the structure of RANGECMP and RANGECMP2
has been explained thoroughly along with complete diagrams and the step-by-step instructions.
The decoding processes are mainly divided into three stages; extracting bits, changing bit order,
and scaling pre-scaled value. The first step is to extract certain bits for each data from the range
record. Then the Big Endian order bits are sorted into Little Endian order. Finally, the reversed
bits that correspond to an integer number (pre-scaled) will be multiplied by the scale factor
specified for each data to form the final meaningful value.
3. Range Record Format
The sections encoded in the compressed range logs (RANGECMP, RANGECMP2) are assumed
to be Least Significant Byte first. As the fields are described in order (Channel Tracking Status,
Doppler Frequency, Pseudorange, ADR, and so forth), each field uses up the next Least