Reference
HNAV
The Hybrid Navigation (HNAV) message includes all information required for vehicle guidance, control and navigation. All fields will be initialised to 0. once a field has been assigned a value it will retain that value until a further update is available. The status bits should be used to determine when data is old/stale. The HNAV requires the Simple binary protocol to successfully decode the message; see Appendix G3 Simple Binary Protocol. All data is transmitted LSB first.
A C++ HNAV Decoder is available on Sonardyne's Github
Simple binary protocol
Data field | LSB/(fixed value) | Range | Data type | Size(Bytes) | Notes |
---|---|---|---|---|---|
Header | (0xAA 0xBF) | 0 to 255 | UINT8 | 2 | Header to denote the start of the packet |
Version | (0) | 0 to 255 | UINT8 | 1 | Version of protocol |
ID | (0) | 0 to 65535 | UINT16 | 2 | Message ID (HNAV = 0) see Note 1 |
Size | - | 0 - 4096 | - | 2 | Size of data field in bytes, see note 2 |
Counter | - | 0 to 255 | - | 1 | Counter per message, increments before rolling over to 0. Allows detection of out of order receipt. |
Spare | - | - | - | 2 | Not Used |
Payload | - | - | - | - | Message data (e.g. HNAV) |
Checksum | - | - | UINT16 | 2 | CRC-X.25: 0x1021. Covers all bytes before and including data bytes. |
Notes
Each Output message has its own Message ID, the message ID of HNAV is 0
Each Output message will have a fixed size, the HNAV is 55 Bytes
HNAV definition
Data field | LSB/(fixed value) | Range | Data type | Size(Bytes) | Notes |
---|---|---|---|---|---|
Version | 0 | 0 to 255 | UINT8 | 1 | Version of message |
Time of Validity (UTC) | 10-6 seconds | - | UINT64 | 8 | |
Latitude | 2-31×90 deg | +/- 90 deg | INT32 | 4 | Not populated in Guidance |
Longitude | 2-31×180 deg | +/- 180 deg | INT32 | 4 | Not populated in Guidance |
Depth | 1mm | +/- 12,000m | INT32 | 4 | Depth at vehicle CRP |
Altitude | 0.01m | 0 to 600m | UINT16 | 2 | Altitude is referenced from SPRINT-Nav Mini’s measurement point to the seabed (not compensated for CRP measurements). |
Roll | 0.0055 deg | +/- 180 deg | INT16 | 2 | |
Pitch | 0.0055 deg | +/- 90 deg | INT16 | 2 | |
Heading | 0.0055 deg | 0 to 360 deg | UINT16 | 2 | |
Fwd Velocity | 1mm/s | +/-30m/s | INT16 | 2 | |
Stbd Velocity | 1mm/s | +/-30m/s | INT16 | 2 | |
Dwn Velocity | 1mm/s | +/-30m/s | INT16 | 2 | |
Fwd Ang Rate | 0.011 deg/s | +/-300deg/s | INT16 | 2 | |
Stbd Ang Rate | 0.011 deg/s | +/-300deg/s | INT16 | 2 | |
Dwn Ang Rate | 0.011 deg/s | +/-300deg/s | INT16 | 2 | |
Sound Velocity | 0.03m/s | 1375 to 1900 m/s | UINT16 | 2 | |
Temperature | 0.01°C | +/- 100°C | INT16 | 2 | |
Position Quality | - | - | FLOAT32 | 4 | Not populated in Guidance 2D Quality (CEP50) |
Heading Quality | 0.005° | 0 to 180 deg | UINT16 | 2 | |
Velocity Quality | 1mm/s | 0 to 30 m/s | UINT16 | 2 | 2D Quality |
Status | - | - | - | - | See Status table |
HNAV Bit Fields
Status Bit | Field name | Notes/Bit Set |
---|---|---|
0 | System Error | No error reported by system = 0 System Error reported = 1 |
1 | Mode | Alignment mode = 0 Hybrid mode = 1 |
2 | Heading | valid = 0 Invalid = 1 |
3 | Altitude | valid = 0 Invalid = 1 |
4 | Velocity | valid = 0 Invalid = 1 |
5 | Depth | valid = 0 Invalid = 1 |
6 | Sound Velocity | valid = 0 Invalid = 1 |
7 | Temperature | valid = 0 Invalid = 1 |
8 | Spare | Not Used |
9 | Position | valid = 0 Invalid = 1 |
10 | UTC Time | valid = 0 Invalid = 1 |
11 | Spare | Not Used |
12 | Spare | Not Used |
13 | Spare | Not Used |
14 | Spare | Not Used |
15 | Spare | Not Used |