Index:
Once the BINEX file or stream has been parsed and a record ID = 0x7e
has been identified, the user should consult this page for decoding information
of the record 0x7e message. For all 0x7e record messages, the first 1-4 bytes
of the message should be examined to determine the subrecord ID. The
C/C++ function read_ubnxi() can be used to do this. Once the subrecord ID
has been determined, consult the appropriate subrecord description.
Note: All the multi-byte integer values used in 0x7e-00 (i.e.
uint2,
uint4,
mGFZI)
have an endian-ness specified by the sychronization/endian byte of the record.
The first byte of the 0x7e-00 message will be the byte 0x00, denoting the
subrecord 0x00.
Immediately following the subrecord 0x00 byte with be 6 bytes representing
the time tag, representing the time of the data returned from the device.
The first 4 bytes (uint4) are the number of minutes since
6.0 Jan 1980. The next 2 bytes (uint2) are additional number of milliseconds
needed to complete the time tag for the epoch.
Immediately following the 6 time tag bytes will be one or more single bytes (uint1) which
specify the types of observables for the current epoch. The highest bit (bit 7) in
each of these bytes is reserved, and, if set, indicates that another single byte
of observable types is to follow. The last single byte of observable types must
have bit 7 = 0.
Currently, the defined observables are:
Next follows the sequentially the data for this epoch, if the corresponding bit
above has been set = 1:
If the data type bit is not set for a specific observable, then all the associated
mGFZI bytes are simply not present in the
record at all. For example, if the uint1 byte
is set to 0x05, then only data for atmospheric pressure and relative humidity are
present.
Note: All the multi-byte integer values used in 0x7e-01 (i.e.
uint2,
uint4,
ubnxi)
have an endian-ness specified by the sychronization/endian byte of the record.
The first byte of the 0x7e-01 message will be the byte 0x01, denoting the
subrecord 0x01.
Immediately following the subrecord 0x01 byte with be 6 bytes representing
the time tag, representing the time of the data returned from the device.
The first 4 bytes (uint4) are the number of minutes since
6.0 Jan 1980. The next 2 bytes (uint2) are additional number of milliseconds
needed to complete the time tag for the epoch.
Immediately following the 6 time tag bytes will be single ubnxi
which specifies the length of the ASCII string in bytes.
Immediately following the bytes for the ubnxi
are the ASCII string bytes. End-of-string or end-of-line characters such as
null (0x00), carriage return (0x0d), and line feed (0x0a) can and should be eliminated
to reduce payload size since these do not contain information. However, 0x00, 0x0d, and/or
0x0a might be part of a binary checksum at the end of the string returned from a
device and in this context these characters are useful and should be stored.
The BINEX record 0x7e outline for each subrecord on this page
should be interpreted as complete and finalized. Since other subrecords
may be specified in the future, all other subrecord IDs not explicitly
specified on this page are currently reserved.
Last modified: 2023-05-12 13:21:38 America/Denver
BINEX homepage
current BINEX Record 0x7e outline
current BINEX Record 0x7e Subrecord 0x00
current BINEX Record 0x7e Subrecord 0x01
Contact: GAGE BINEX contact
Record 0x7e Outline:
Record 0x7e = 126 serves as a test bed for working out the details of new
ways of storing ancillary site data, including, for example, site meteorological (MET) data.
After extensive testing, successful candidates might be upgraded to become standard subrecords
of record 0x03 = 3.
Record 0x7e Subrecord 0x00: 0x7e-00
This subrecord is being developed for holding ancillary site data, e.g. site
meteorological data (pressure, temperature, humidity, etc.), local geophysical
data (tilt, strain, etc.), and so on. The subrecord has:
first uint1 for observable types:
second uint1 for observable types:
third uint1 for observable types:
where mGFZI refers to the "modified GFZ" method of storing integer values in
1 to 8 bytes (see mGFZI explanation).
Record 0x7e Subrecord 0x01: 0x7e-01
This subrecord is being developed for holding raw ASCII strings returned from external devices, such as
NMEA strings from meteorological unit. The string is the raw string returned from the device,
minus any end-of-string or line-termination characters. The subrecord has: