000 - 01 (Position)
Version 0.2 (20190913)
Application Data Block (ADB)
ADB bit allocation table:
JANUS Bits | ADB Field Bit # | Descriptor | Bits per Field | Description | Comments
|
23-30 | 33-26 | Schedule | 8 | Used only if Schedule Flag bit equals 1 (has no use in the context of the DISSUB message) | |
32-39 | 24-17 | Station Identifier | 8 | Station identifier of sender | |
40-47 | 16-9 | Destination Identifier | 8 | Station identifier of receiver | |
48-56 | 8-0 | Payload Size | 9 | Size of CARGO | Cargo size is in bytes |
Note: Only 33 bits of the 34 bits are used.
CARGO
CARGO bit allocation table:
CARGO Bits | Descriptor | Bits per Field | Description | Comments
| |
1-10 | Nationality | 10 | Two-letter country codes according to ISO 3166 standard | Each letter is coded in ASCII with 5 bits (the two MSBs are masked), for example: 'A' is coded as 0b00001 'Z' is coded as 0b11010 Undefined nationality is coded as 0b1111111111 | |
11-34 | Latitude | 24 | Latitude in 90/8388607 deg increments (range +/-90 deg) North = positive (as per 2's complement), South = negative (as per 2's complement). | The value 8388608 (0x800000 in hexadecimal) is not defined as a Latitude value. Can be used to code an error condition. (see Note 1) | |
35-59 | Longitude | 25 | Longitude in 90/8388607 deg increments (range +/-180 deg) East = positive (as per 2's complement), West = negative (as per 2's complement). | Longitude. The value 16777216 (0x1000000 in hexadecimal) is not defined as a Longitude value. Can be used to code an error condition. (see Note 1) | |
60-72 | Depth | 13 | Value in [m] with 1 [m] resolution | Depth_encoded is the bit pattern that encodes the Depth value in [m]. depth_encoded = depth For depth >= 8191 [m], depth_encoded = 8191, No Depth available. | |
73-81 | Speed | 9 | Value in [kn] with 0.1 [kn] resolution. | Mapping Rules value_float is the actual Speed value in [kn]. value_int is the bit pattern that codes the Speed value (written as an integer in decimal notation). Integer to Volume [kn] conversion: value_float = value_int * 0.1Float [kn] to integer conversion: value_int = round(value_float * 10.0) For value_float >= 51.1 [kn], value_int = 511, No Speed available.Round towards nearest integer (rounding halfway cases away from zero) | |
82-90 | Heading | 9 | 0..359.55 deg (in 0.705 deg increments)Mapped according to: Code Value [deg] ------------------------- 0 0 1 0.705 : : 510 359.55 511 n.a. ------------------------- | The Heading value is coded with a Uniform Quantization. Mapping Rules value_float is the actual Heading value in [deg]. value_int is the bit pattern that codes the Heading value (written as an integer in decimal notation). Integer to heading [deg] conversion: value_float = value_int * 0.705 For value_int = 511 No Heading Available Float [deg] to integer conversion: Round towards nearest integer (rounding halfway cases away from zero) value_int = round(value_float/0.705) | |
91-96 | Padding | 6 | Bit padding to align to byte and then compute CRC | ||
97-112 | CRC16 | 16 | CRC16 (X^16 + X^15 + X^2 + 1)Full description of CRC16 |
Note 1:
Latitude and Longitude are angles in decimal degrees: 1 deg = (pi/180) rad
Test Point 1:
Angle Value Binary and Hexadecimal Unsigned Binary in Decimal Notation -------------------------------------------------------------------------------------- Lat: +44.098596 0b001111101011011111001111 4110287 0x3EB7CF Lon: +9.862522 0b0000011100000011011010110 919254 0x00E06D6
Test Point 2:
Angle Value Binary and Hexadecimal Unsigned Binary in Decimal Notation -------------------------------------------------------------------------------------- Lat: +38.729201 0b001101110001010011011111 3609823 0x3714DF Lon: -9.190332 0b1111100101110110111100111 32697831 0x1F2EDE7
Revision History
Date | Version | Description | Authors
| ||
2022/08 | 0.3 | Correction to cargo specifications to include bit padding | NATO STO CMRE | ||
2019/09 | 0.2 | Changes:- The field Nationality uses 10 bits instead of 16. - The field Latitude uses 24 bits instead of 28. - The field Longitude uses 25 bits instead of 29. - The field Depth uses 13 bits instead of 10. - The field Heading uses 9 bits instead of 12. - The field CRC uses 16 bits instead of 8. | NATO STO CMRE | ||
2017/10 | 0.1 | Message format published in: R. Petroccia, J. Alves and G. Zappa, "JANUS-Based Services for Operationally Relevant Underwater Applications," in IEEE Journal of Oceanic Engineering, vol. 42, no. 4, pp. 994-1006, Oct. 2017. doi: 10.1109/JOE.2017.2722018 | NATO STO CMRE |