Package: android.hardware.gnss@1.0

IGnssNavigationMessageCallback

interface IGnssNavigationMessageCallback

Represents a GNSS navigation message(or a fragment of it).

Properties

GnssNavigationMessageType

enum GnssNavigationMessageType: int16_t

Enumeration of available values to indicate the GNSS Navigation message types.

For convenience, first byte is the GnssConstellationType on which that signal is typically transmitted.

Details
Members
UNKNOWN = 0
GPS_L1CA = 0x0101
GPS L1 C/A message contained in the structure.
GPS_L2CNAV = 0x0102
GPS L2-CNAV message contained in the structure.
GPS_L5CNAV = 0x0103
GPS L5-CNAV message contained in the structure.
GPS_CNAV2 = 0x0104
GPS CNAV-2 message contained in the structure.
GLO_L1CA = 0x0301
Glonass L1 CA message contained in the structure.
BDS_D1 = 0x0501
Beidou D1 message contained in the structure.
BDS_D2 = 0x0502
Beidou D2 message contained in the structure.
GAL_I = 0x0601
Galileo I/NAV message contained in the structure.
GAL_F = 0x0602
Galileo F/NAV message contained in the structure.
Annotations
export
name="" , value_prefix="GNSS_NAVIGATION_MESSAGE_TYPE_"

NavigationMessageStatus

enum NavigationMessageStatus: uint16_t

Status of Navigation Message When a message is received properly without any parity error in its navigation words, the status must be set to PARITY_PASSED.If a message is received with words that failed a parity check, but the GNSS receiver has corrected those words, the status must be set to PARITY_REBUILT.Do not send any navigation message that contains words with parity errors that cannot be corrected.

Details
Members
PARITY_PASSED = ( 1 << 0 )
PARITY_REBUILT = ( 1 << 1 )
UNKNOWN = 0
Annotations
export
name="navigation_message_status" , value_prefix="NAV_MESSAGE_STATUS_"

GnssNavigationMessage

struct GnssNavigationMessage {int16_t svid; GnssNavigationMessageType type; bitfield status; int16_t messageId; int16_t submessageId; vec data}
Details
Members
svid
Satellite vehicle ID number, as defined in GnssSvInfo::svid This is a mandatory value.
type
The type of message contained in the structure.This is a mandatory value.
status
The status of the received navigation message.No need to send any navigation message that contains words with parity errors that cannot be corrected.
messageId
Message identifier.It provides an index so the complete Navigation Message can be assembled.
- For GNSS L1 C/A subframe 4 and 5, this value corresponds to the 'frame id' of the navigation message, in the range of 1-25(Subframe 1, 2, 3 does not contain a 'frame id' and this value can be set to -1 .)
- For Glonass L1 C/A, this refers to the frame ID, in the range of 1-5.
- For BeiDou D1, this refers to the frame number in the range of 1-24
- For Beidou D2, this refers to the frame number, in the range of 1-120
- For Galileo F/NAV nominal frame structure, this refers to the subframe number, in the range of 1-12
- For Galileo I/NAV nominal frame structure, this refers to the subframe number in the range of 1-24
submessageId
Sub-message identifier.If required by the message 'type', this value contains a sub-index within the current message(or frame)that is being transmitted.
- For GNSS L1 C/A, BeiDou D1 & BeiDou D2, the submessage id corresponds to the subframe number of the navigation message, in the range of 1-5.
- For Glonass L1 C/A, this refers to the String number, in the range from 1-15
- For Galileo F/NAV, this refers to the page type in the range 1-6
- For Galileo I/NAV, this refers to the word type in the range 1-10+
data
The data of the reported GNSS message.The bytes(or words)are specified using big endian format(MSB first).
- For GNSS L1 C/A, Beidou D1 & Beidou D2, each subframe contains 10 30-bit words.Each word(30 bits)must fit into the last 30 bits in a 4-byte word(skip B31 and B32), with MSB first, for a total of 40 bytes, covering a time period of 6, 6, and 0.6 seconds, respectively.The standard followed is 1995 SPS Signal specification.
- For Glonass L1 C/A, each string contains 85 data bits, including the checksum.These bits must fit into 11 bytes, with MSB first(skip B86-B88), covering a time period of 2 seconds.The standard followed is Glonass Interface Control Document Edition 5.1.
- For Galileo F/NAV, each word consists of 238-bit(sync & tail symbols excluded). Each word must fit into 30-bytes, with MSB first(skip B239, B240), covering a time period of 10 seconds.The standard followed is European GNSS(Galileo)Signal in Space Interface Control Document Issue 1.2.
- For Galileo I/NAV, each page contains 2 page parts, even and odd, with a total of 2x114 = 228 bits , (sync & tail excluded)that must fit into 29 bytes, with MSB first(skip B229-B232). The standard followed is same as above.
The data reported here must be the raw data as demodulated by the GNSS receiver, not data received from an external source(i.e.not from a server download.)

Methods

gnssNavigationMessageCb

gnssNavigationMessageCb (GnssNavigationMessage message)

The callback to report an available fragment of a GNSS navigation messages from the HAL.

Details
Parameters
message
- The GNSS navigation submessage/subframe representation.