GnssNavigationMessage Struct Reference

GnssNavigationMessage Struct Reference

#include < gps.h >

Data Fields

size_t  size
 
int16_t  svid
 
GnssNavigationMessageType   type
 
NavigationMessageStatus   status
 
int16_t  message_id
 
int16_t  submessage_id
 
size_t  data_length
 
uint8_t *  data
 

Detailed Description

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

Definition at line 2027 of file gps.h .

Field Documentation

uint8_t* data

The data of the reported GPS message. The bytes (or words) specified using big endian format (MSB first).

  • For GPS L1 C/A, Beidou D1 & Beidou D2, each subframe contains 10 30-bit words. Each word (30 bits) should be 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.
  • For Glonass L1 C/A, each string contains 85 data bits, including the checksum. These bits should be fit into 11 bytes, with MSB first (skip B86-B88), covering a time period of 2 seconds.
  • For Galileo F/NAV, each word consists of 238-bit (sync & tail symbols excluded). Each word should be fit into 30-bytes, with MSB first (skip B239, B240), covering a time period of 10 seconds.
  • For Galileo I/NAV, each page contains 2 page parts, even and odd, with a total of 2x114 = 228 bits, (sync & tail excluded) that should be fit into 29 bytes, with MSB first (skip B229-B232).

Definition at line 2119 of file gps.h .

size_t data_length

The length of the data (in bytes) contained in the current message. If this value is different from zero, 'data' must point to an array of the same size. e.g. for L1 C/A the size of the sub-frame will be 40 bytes (10 words, 30 bits/word).

This is a mandatory value.

Definition at line 2096 of file gps.h .

int16_t message_id

Message identifier. It provides an index so the complete Navigation Message can be assembled.

  • For GPS 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

Definition at line 2070 of file gps.h .

size_t size

set to sizeof(GnssNavigationMessage)

Definition at line 2029 of file gps.h .

The status of the received navigation message. No need to send any navigation message that contains words with parity error and cannot be corrected.

Definition at line 2048 of file gps.h .

int16_t submessage_id

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 GPS 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+

Definition at line 2087 of file gps.h .

int16_t svid

Satellite vehicle ID number, as defined in GnssSvInfo::svid This is a mandatory value.

Definition at line 2035 of file gps.h .

The type of message contained in the structure. This is a mandatory value.

Definition at line 2041 of file gps.h .


The documentation for this struct was generated from the following file:
  • hardware/libhardware/include/hardware/ gps.h