iSuiteTM MP SDK Protocols - Payload Format
Messages related to acquisition and tracking: Messages related to searching: Messages related to data decoding: Messages related to navigation: Control messages:
STOP
SLEEP
ITALK_TASK_ROUTE
PARAM_CTRL
PARAMS_CHANGED
START_COMPLETED
STOP_COMPLETED
STOP_TASK
SYSTEM_START
Note: the majority of the format description tables in this document are generated from the message description header files. Therefore any typos etc. that come after the place where this link points, should be corrected in the header files, not to this document.
Introduction
This document provides payload format descriptions for the iTalk
protocol messages. The message is described in a table which gives the
following information for each field in a message:
- Name: the identifier of the field in the iSuite software
- Type: the data type of the field
- Dimension: the number of items (each the same type) in the field. For example, if a field would be an array of size 5, the dimension field would be 5.
- Description: information about the contents of the field.
The lines in the payload description tables which are in italics, describe substructures of the messages. In
cases where the substructure may be repeated, the maximum number of
repetitions is given in square brackets. Thus, for example in the PSEUDO message, the line PSEUDO_OBS
PSEUDO.Obs[12]: Observations indicates that the field PSEUDO.Obs (of type PSEUDO_OBS)
can be repeated up to 12 times.
The payload descriptions are mostly generated from the message definition header files of the iSuite software. These original header files are included in the iSuite 3 SDK and the iTalkRIS package.
The size of the payload depends on the platform because of the different implementation of floating point numbers. For those messages that contain DOUBLE or FLOAT data, the payload is smaller on the uNav platform. The payload size in this document is therefore reported separately for the uNav platform. (See for example the PSEUDO message, for which the size on the uNav platform is different.)
SYSINFO format
The SYSINFO message is used to obtain system information from iSuite. Payload size: variable.
| Name | Type | Dimension | Description |
|---|---|---|---|
| wFlags | WORD | 1 | The first WORD in the SYSINFO message specifies the format of
the command-specific data. The four LSB bits in this word determine the
format. |
| Data |
Varying data. The format of these data are
determined by the format specifier in wFlags as follows: 1: The data contains a FIRMWARE_INFO structure. 2: The data contains a HARDWARE_INFO structure. 3: The data contains a VERSION_INFO structure. |
||
ITALK_CONF format
The ITALK_CONF message is used to configure the italk protocol.
Currently only the Payload size: variable.
| Name | Type | Dimension | Description |
|---|---|---|---|
| wCmdFlags |
WORD |
1 |
The first WORD in the ITALK_CONF message determines the
contents of the message. The four least significant bits specify the configuration command. |
| wParam |
WORD |
1 |
Not used. |
| Data |
Varying data. The format of these data are
determined by the configuration command as follows: 1: The data contains a ITALK_CONF_CONFIG structure. Other valus not handled. |
The ITALK_CONF_CONFIG structure has the following format:
| Name | Type | Dimension | Description |
|---|---|---|---|
| dwSpeed |
DWORD |
1 |
The port speed. |
| dwMsgMask |
DWORD |
1 |
Not used. |
| Data |
Varying data. The format of these data are
determined by the configuration command as follows: 1: The data contains a ITALK_CONF_CONFIG structure. Other valus not handled. |
MEMCTRL format
The MEMCTRL message is used by the flasher tool to upload new software.
It can be handled by the standard firmware as well as by the flasher
client (the program that is uploaded by the flasher). Payload size: variable.
| Name | Type | Dimension | Description |
|---|---|---|---|
| wCommand | WORD | 1 | Command id. This is a combination of command identifier (bit mask 0x000f) and command modifier (bit mask 0x0ff0). |
| wParam1 | WORD | 1 | Command-specific parameter 1. Meaning depends on the operation. Possible error code is returned in this parameter. |
| dwParam2 | DWORD | 1 | Command-specific parameter 2. Meaning depends on the operation. |
| Data | Contents depend on the command. | ||
The command identifier in the MEMCTRL message determines the handling of the parameters and data, as follows:
| Command identifier | Description |
|---|---|
| 2 = WRITEDATA |
The length of the data in WORDs is in wParam1. The address
where the data is written, is in dwParam2. The Data contains the WORDs
to be written. The destination is selected according to the command
modifier:
|
| 3 = READDATA |
The length of the data in WORDs is in wParam1.
The address where the data is written, is in dwParam2. In the reply
message, the Data contains the WORDs that were read. The data source is
selected according to the command modifier:
|
| 4 = BOOT |
The wParam1 contains the boot command word. The
dwParam2 and Data are not used. The different values for the boot
command word are specified in the boot.h header file. |
| 6 = ERASE |
Erase a block of flash memory. The dwParam2
contains the beginning address of the data block to be erased. |
| 10 = CALIBRATE |
Return the calibrated XTAL frequency. The dwParam2
contains the frequency in the reply message. |
Note: the contents of this document from this paragraph onwards are generated from the message description header files.
Unrecognised option ACQ_DATA
ACQ_DATA format
The results from a successful signal acquistion.
Structure size: 11 words.
Structure size (uNav): 11 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| ACQ_DATA.dwTick | DWORD | 1 | Reference time for data. |
| ACQ_DATA.wStatus | WORD | 1 | Signal search info. |
| ACQ_DATA.wPrn | WORD | 1 | Found prn. |
| ACQ_DATA.dwMean | DWORD | 1 | Mean amplitude for signal. Normalised to 1 ms. |
| ACQ_DATA.wAmpl | WORD | 1 | Amplitude of found signal. Normalised to 1 ms. |
| ACQ_DATA.wCodePhase | WORD | 1 | Integer Code phase estimation. |
| ACQ_DATA.wFracCodePhase | WORD | 1 | Fractional Code Phase estimation. |
| ACQ_DATA.dwCarrFreq | DWORD | 1 | Coarse carrier replica frequency (register domain). |
TRACK format
TRACK message is sent from track task to observation task. A collection of time-stamped carrier and code measurements plus channel state info.
Structure size: 220 words.
Structure size (uNav): 220 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| TRACK_HDR TRACK.TrackHdr: Common info for carrier and code. | |||
| TRACK.TrackHdr.dwTick | DWORD | 1 | Measurement time (system ticker value) |
| TRACK.TrackHdr.swNumChan | WORD | 1 | <15bit-reserved-8bit><7bit-Number of channel in Lock(track)-0bit> |
| TRACK.TrackHdr.swFlags | WORD | 1 | Flags which are not channel-specific. |
| TRACK_CH TRACK.TrackCh[12]: Channel-specific data. | |||
| TRACK.TrackCh[n].swLockedChInfo | WORD | 1 | Channel info. Low byte: PRN number. High byte: channel index. |
| TRACK.TrackCh[n].swLock | WORD | 1 | Channel lock status. See the lock bits definitions. |
| TRACK_CARRIER TRACK.TrackCh[n].TrackCarrier: Carrier tracking data | |||
| TRACK.TrackCh[n].TrackCarrier.dwDet | DWORD | 1 | Power measurement value from Carrier tracking. |
| TRACK.TrackCh[n].TrackCarrier.dwCarrCount | DWORD | 1 | Carrier NCO cycle count |
| TRACK.TrackCh[n].TrackCarrier.wCarrPhase | WORD | 1 | Carrier phase. The 8 LSB represent the fractional Carrier Count so that the CarrierPhase measurement can be obtained as: dwCarrCount + (wCarrPhase & 0x00ff)/256. |
| TRACK.TrackCh[n].TrackCarrier.dwCarrNCOFreq | DWORD | 1 | Carrier NCO replica frequency from loop filter. |
| TRACK_CODE TRACK.TrackCh[n].TrackCode: Code tracking data | |||
| TRACK.TrackCh[n].TrackCode.dwPrnTow | DWORD | 1 | Last decoded TOW |
| CORR_CH_PRN_CNT TRACK.TrackCh[n].TrackCode.TrPrnCnt: | |||
| TRACK.TrackCh[n].TrackCode.TrPrnCnt.wChipPhase | WORD | 1 | Code chip phase, HW offset 1A |
| TRACK.TrackCh[n].TrackCode.TrPrnCnt.wChipCount | WORD | 1 | Code chip count, HW offset 1B |
| TRACK.TrackCh[n].TrackCode.TrPrnCnt.wEpochCount | WORD | 1 | Code epoch count, HW offset 1C |
| TRACK.TrackCh[n].TrackCode.wCyclesSinceLastTOW | WORD | 1 | Code cycles since last decoded TOW |
| TRACK.TrackCh[n].TrackCode.wReserved1 | WORD | 1 | Signal-to-noise ratio (dBHz) |
| TRACK.TrackCh[n].TrackCode.dwCodeNCOFreq | DWORD | 1 | Code NCO replica frequency from loop filter |
Lock indicator bits in TRACK
message.
These bits are used in the TRACK message to indicate channel lock status.
| Name | Value | Description |
|---|---|---|
| CH_CARR_LOCK_B | 0x0001 | Carrier locked. |
| CH_COSTAS_LOCK_B | 0x0020 | Costas loop remains in lock. |
| CH_RELIABLE_LOCK_B | 0x0080 | The lock is considered reliable. The meaning of this flag depends on the CH_COSTAS_LOCK_B flag: - if CH_COSTAS_LOCK_B is set, the CH_RELIABLE_LOCK_B flag is set when the Costas loop remains in lock between measurements. - if the CH_COSTAS_LOCK_B is not set, the CH_RELIABLE_LOCK_B flag is reserved for future use. |
| CH_CODE_LOCK_B | 0x0002 | PRN code locked. |
| CH_BIT_LOCK_B | 0x0004 | Bit edge detectable and in lock. |
| CH_FRAME_LOCK_B | 0x0010 | Frame lock when Preamble and parity are OK. |
| CH_BIT_SYNCED_B | 0x0100 | New bit edge remain correctly spaced and in-line with TOW. |
| CH_BTIME_OK_B | 0x0200 | This flag indicates that bit time is valid. |
| CH_INIT_TOW_B | 0x0400 | Inital TOW (Time of week) is OK. |
| CH_REF_OK_B | 0x0008 | After TOW synced to bits, Reference time is OK. |
| CH_FIRST_MEAS | 0x4000 | Indicates first valid track data measurement for the channel. |
| CH_CROSS_CORR | 0x0040 | The channel is suspect for cross correlation. |
| CH_SUSP_CERR_B | 0x0800 | Sony-specific: The channel is suspect to Carrier lock error. |
| CH_NARROW_LPF_B | 0x1000 | Sony-specific: The channel uses narrow LPF setting. |
| CH_PLL_FLIP | 0x1000 | Specific to uNav: the costas PLL is tracking on the wrong side. |
| CH_LPF_TRANS_B | 0x2000 | Sony-specific: The channel is in LPF transition. |
| CH_INT_STAT_B | 0x8000 | Sony-specific: The channel lost signal or recovering from signal lost state. |
| CH_INTERNAL_M | (CH_SUSP_CERR_B | CH_NARROW_LPF_B | CH_LPF_TRANS_B | CH_INT_STAT_B) | Sony-specific: Internal status bits. |
| CH_LOCKED_M | (CH_CARR_LOCK_B | CH_CODE_LOCK_B) | Both carrier and code are locked. |
| CH_BIT_LOCKED_M | (CH_CARR_LOCK_B | CH_CODE_LOCK_B | CH_BIT_LOCK_B) | Bit remain locked. |
| CH_TOW_DECODED | (CH_CARR_LOCK_B | CH_CODE_LOCK_B | CH_REF_OK_B) | GPS time successfully decoded. |
BIT_STREAM format
Raw bit stream data structure.
Structure size: 36 words.
Structure size (uNav): 36 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| BIT_STREAM.dwTick | DWORD | 1 | Reference time for data |
| BIT_STREAM.wPrn | WORD | 1 | PRN number for this channel |
| BIT_STREAM.wReserved | WORD | 1 | This word is reserved for future use so that the following data remains correctly aligned. |
| BIT_STREAM.dwSubfData[16] | DWORD | 16 | The collected raw bit stream. 512 bits in 16 words. |
SUBFRAME format
Decoded GPS subframe data structure.
Structure size: 27 words.
Structure size (uNav): 27 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| SUBFRAME.dwTick | DWORD | 1 | The system ticker value at the end of the subframe. |
| SUBFRAME.swState | WORD | 1 | Subframe decoding flags, see the subframe flag bit definitions. |
| SUBFRAME.wPrn | WORD | 1 | PRN number for this channel. |
| SUBFRAME.wSid | WORD | 1 | Subframe ID. |
| SUBFRAME.dwEpoch | DWORD | 1 | Epoch count. |
| SUBFRAME.dwSubfData[10] | DWORD | 10 | The collected data words from a subframe. |
SUBFRAME flags and
definitions.
These definitions are used in the subframe struct.
| Name | Value | Description |
|---|---|---|
| SUBFRAME_WORD_FLAG_MASK | 0x03ff | Flags specific for the 10 subframe words. A flag which is set means that the corresponding word may be unreliably decoded, for example if the signal was briefly lost during the decoding of that word. The lowest bit corresponds to the first word. |
| SUBFRAME_GPS_PREAMBLE_INVERTED | 0x0400 | This flag will be set, if the GPS preamble is inverted |
PRN_PRED format
Prn specific predictions. This type contains information of SV doppler frequency, estimated code phase at reference time and estimated offset from bit edge.
Structure size: 36 words.
Structure size (uNav): 32 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| PRN_PRED.dwTick | DWORD | 1 | Reference time for data |
| PRN_MASK PRN_PRED.VisMask: These flags are set if a PRN is possibly visible (above elevation thr) | |||
| PRN_PRED.VisMask.dwGPSMask | DWORD | 1 | Masks for 32 GPS satellites |
| PRN_PRED.VisMask.dwWAASMask | DWORD | 1 | Masks for GPS pseudolites and WAAS. Bits 0-18 indicate WAAS, 19-22 pseudolites, 23-31 for user prns. |
| PRN_MASK PRN_PRED.NonVisMask: These flags are set if a PRN is unvisible. (predicted below elevation thr). | |||
| PRN_PRED.NonVisMask.dwGPSMask | DWORD | 1 | Masks for 32 GPS satellites |
| PRN_PRED.NonVisMask.dwWAASMask | DWORD | 1 | Masks for GPS pseudolites and WAAS. Bits 0-18 indicate WAAS, 19-22 pseudolites, 23-31 for user prns. |
| PRN_MASK PRN_PRED.NonExistingMask: These flags are set if a PRN is non existing. | |||
| PRN_PRED.NonExistingMask.dwGPSMask | DWORD | 1 | Masks for 32 GPS satellites |
| PRN_PRED.NonExistingMask.dwWAASMask | DWORD | 1 | Masks for GPS pseudolites and WAAS. Bits 0-18 indicate WAAS, 19-22 pseudolites, 23-31 for user prns. |
| PRN_PRED.wPrn | WORD | 1 | PRN number for predicted SV |
| PRN_PRED.wFlags | WORD | 1 | Flags about how good the prediction is. |
| PRN_PRED.wPhase | WORD | 1 | Code Phase estimate [1/256 chips, 8 LSB is fractional chips] |
| PRN_PRED.wPhaseAcc | WORD | 1 | Code Phase estimation accuracy [1/256 chips, 8 LSB is fractional chips]. |
| PRN_PRED.wBitOffset | WORD | 1 | Estimated offset from previous bit edge[ms]. |
| PRN_PRED.dDoppler | DOUBLE | 1 | Estimated doppler shift [m/s] |
| PRN_PRED.dDopplerAcc | DOUBLE | 1 | Doppler estimation accuracy [m/s]. |
| PRN_PRED.dDopplerDrift | DOUBLE | 1 | Estimated drift of doppler shift [m/s^2] |
| PRN_PRED.dDriftAcc | DOUBLE | 1 | Drift estimation accuracy [m/s^2]. |
| PRN_PRED.iElev | INT16 | 1 | Satellite elevation (valid only for SV's above elevation mask) |
FREQ_PRED format
Data type for IF predictions.
Structure size: 11 words.
Structure size (uNav): 9 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| FREQ_PRED.dwTick | DWORD | 1 | Reference time for data. |
| FREQ_PRED.dIF | DOUBLE | 1 | Estimated IF frequency offset [m/s]. |
| FREQ_PRED.dIFAcc | DOUBLE | 1 | Estimated IF frequency accuracy [m/s]. |
| FREQ_PRED.wFreqFlags | WORD | 1 | Frequency prediction flags. |
RAW_EPHEMERIS format
The ephemeris and clock data for one SV. The RAW_EPHEMERIS structure is constructed so that the beginning is identical to the RAW_ALMANAC structure. This makes it possible to use ephemeris or almanac data in the same code. The ephemeris are stored in RAM and flash memory principally as RAW_EPHEMERIS structures in order to save memory. They are converted to EPHEMERIS structures using the ORBIT_EphToPrecEph() function. size: 39 words
Structure size: 38 words.
Structure size (uNav): 38 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| RAW_EPHEMERIS.wPrn | WORD | 1 | The PRN for which the data is intended. |
| RAW_EPHEMERIS.wFitPeriod | WORD | 1 | Orbit fit period, for downloaded data use X hours. |
| RAW_EPHEMERIS.wHealth | WORD | 1 | Satellite health status from subframes 4 and 5. |
| RAW_EPHEMERIS.wFlags | WORD | 1 | Flags that indicate the contents of the structure (see EPH_ flags). |
| RAW_SV_CLOCK_SUB RAW_EPHEMERIS.ClockSub: The clock data which are common with the RAW_ALMANAC structure. | |||
| RAW_EPHEMERIS.ClockSub.lAf0 | INT32 | 1 | SV Clock Correction: (sec) |
| RAW_EPHEMERIS.ClockSub.iAf1 | INT16 | 1 | SV Clock Correction: (sec/sec) |
| GPS_TIME RAW_EPHEMERIS.ClockSub.Toc: Reference time for clock data (seconds). In case of almanacs, this field stores the TOA. | |||
| RAW_EPHEMERIS.ClockSub.Toc.wWeek | WORD | 1 | Full week number. |
| RAW_EPHEMERIS.ClockSub.Toc.dwTowMs | DWORD | 1 | Time of week in milliseconds. |
| RAW_SV_ORBIT_SUB RAW_EPHEMERIS.OrbitSub: The orbit data which are common with the RAW_ALMANAC structure. | |||
| RAW_EPHEMERIS.OrbitSub.lEcc | DWORD | 1 | Eccentricity |
| RAW_EPHEMERIS.OrbitSub.lI0 | INT32 | 1 | Inclination at reference time (rad). In case of almanacs, this contains the correction with respect to 0.3. |
| RAW_EPHEMERIS.OrbitSub.lOmegaDot | INT32 | 1 | Rate of right ascension (rad/s). |
| RAW_EPHEMERIS.OrbitSub.lSqrta | DWORD | 1 | Square root of the semimajor axis (m^1/2). |
| RAW_EPHEMERIS.OrbitSub.lOmega0 | INT32 | 1 | Right ascension at reference time toe (rad). |
| RAW_EPHEMERIS.OrbitSub.lOmega | INT32 | 1 | Argument of perigee (rad). |
| RAW_EPHEMERIS.OrbitSub.lM0 | INT32 | 1 | Mean anomaly at reference time toe (rad). |
| RAW_SV_CLOCK_EXT RAW_EPHEMERIS.ClockExt: Higher-order terms of the clock data. | |||
| RAW_EPHEMERIS.ClockExt.wIODC | WORD | 1 | Issue Of Data for Clock |
| RAW_EPHEMERIS.ClockExt.iGroupDelay | INT16 | 1 | Group delay (seconds) |
| RAW_EPHEMERIS.ClockExt.iAf2 | INT16 | 1 | SV Clock Correction: (sec/sec^2) |
| RAW_SV_ORBIT_EXT RAW_EPHEMERIS.OrbitExt: Higher-order terms of the orbit data. | |||
| RAW_EPHEMERIS.OrbitExt.dwToe | DWORD | 1 | Reference time for ephemeris data (seconds). |
| RAW_EPHEMERIS.OrbitExt.wIODE | WORD | 1 | Issue Of Data for Ephemeris |
| RAW_EPHEMERIS.OrbitExt.iDeltan | INT16 | 1 | Mean motion difference (rad/s) |
| RAW_EPHEMERIS.OrbitExt.iCrs | INT16 | 1 | sin harmonic correction to orbit radius (m) |
| RAW_EPHEMERIS.OrbitExt.iCrc | INT16 | 1 | cos harmonic correction to orbit radius (m) |
| RAW_EPHEMERIS.OrbitExt.iCus | INT16 | 1 | sin harmonic correction to argument of latitude (rad) |
| RAW_EPHEMERIS.OrbitExt.iCuc | INT16 | 1 | cos harmonic correction to argument of latitude (rad) |
| RAW_EPHEMERIS.OrbitExt.iCis | INT16 | 1 | sin harmonic correction to inclination (rad) |
| RAW_EPHEMERIS.OrbitExt.iCic | INT16 | 1 | cos harmonic correction to inclination (rad) |
| RAW_EPHEMERIS.OrbitExt.iIdot | INT16 | 1 | Rate of inclination (rad/s) |
Flags for ephemeris and almanac
data.
| Name | Value | Description |
|---|---|---|
| EPH_WEEK_VALID | 0x0001 | The week is valid if this is TRUE. |
| EPH_FULL_DATA | 0x0002 | If TRUE, this struct contains the complete ephemeris. If FALSE, it is an almanac. |
| EPH_DATA_VALID | 0x0004 | The struct has valid ephemeris data. |
| EPH_SOURCE_MASK | 0x0070 | All sources combined. |
| EPH_SOURCE_AGPS | 0x0010 | The ephemeris was received as assistance. |
| EPH_SOURCE_GPS | 0x0000 | The ephemeris was decoded from the GPS signal. |
| EPH_ALERT | 0x0100 | The alert flag in the subframe handover word (HOW) was set during the reception of this ephemeris. |
| EPH_WEAK | 0x0200 | The ephemeris was decoded from a weak signal. In this case it is in principle possible that the data was decoded from an invalid signal and should not be used unless it is cross-checked. |
RAW_ALMANAC format
The almanac data for one SV. size: 24 words
Structure size: 24 words.
Structure size (uNav): 24 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| RAW_ALMANAC.wPrn | WORD | 1 | The PRN for which the data is intended. |
| RAW_ALMANAC.wFitPeriod | WORD | 1 | The fit period for almanacs (hours), for downloaded data use X hours. |
| RAW_ALMANAC.wHealth | WORD | 1 | Satellite health status from subframes 4 and 5. |
| RAW_ALMANAC.wFlags | WORD | 1 | Flags that indicate the contents of the structure (see EPH_ flags): - If FULL_EPH_DATA is TRUE, it is an EPHEMERIS struct. |
| RAW_SV_CLOCK_SUB RAW_ALMANAC.ClockSub: Clock data. | |||
| RAW_ALMANAC.ClockSub.lAf0 | INT32 | 1 | SV Clock Correction: (sec) |
| RAW_ALMANAC.ClockSub.iAf1 | INT16 | 1 | SV Clock Correction: (sec/sec) |
| GPS_TIME RAW_ALMANAC.ClockSub.Toc: Reference time for clock data (seconds). In case of almanacs, this field stores the TOA. | |||
| RAW_ALMANAC.ClockSub.Toc.wWeek | WORD | 1 | Full week number. |
| RAW_ALMANAC.ClockSub.Toc.dwTowMs | DWORD | 1 | Time of week in milliseconds. |
| RAW_SV_ORBIT_SUB RAW_ALMANAC.OrbitSub: Orbit data. | |||
| RAW_ALMANAC.OrbitSub.lEcc | DWORD | 1 | Eccentricity |
| RAW_ALMANAC.OrbitSub.lI0 | INT32 | 1 | Inclination at reference time (rad). In case of almanacs, this contains the correction with respect to 0.3. |
| RAW_ALMANAC.OrbitSub.lOmegaDot | INT32 | 1 | Rate of right ascension (rad/s). |
| RAW_ALMANAC.OrbitSub.lSqrta | DWORD | 1 | Square root of the semimajor axis (m^1/2). |
| RAW_ALMANAC.OrbitSub.lOmega0 | INT32 | 1 | Right ascension at reference time toe (rad). |
| RAW_ALMANAC.OrbitSub.lOmega | INT32 | 1 | Argument of perigee (rad). |
| RAW_ALMANAC.OrbitSub.lM0 | INT32 | 1 | Mean anomaly at reference time toe (rad). |
Flags for ephemeris and almanac
data.
| Name | Value | Description |
|---|---|---|
| EPH_WEEK_VALID | 0x0001 | The week is valid if this is TRUE. |
| EPH_FULL_DATA | 0x0002 | If TRUE, this struct contains the complete ephemeris. If FALSE, it is an almanac. |
| EPH_DATA_VALID | 0x0004 | The struct has valid ephemeris data. |
| EPH_SOURCE_MASK | 0x0070 | All sources combined. |
| EPH_SOURCE_AGPS | 0x0010 | The ephemeris was received as assistance. |
| EPH_SOURCE_GPS | 0x0000 | The ephemeris was decoded from the GPS signal. |
| EPH_ALERT | 0x0100 | The alert flag in the subframe handover word (HOW) was set during the reception of this ephemeris. |
| EPH_WEAK | 0x0200 | The ephemeris was decoded from a weak signal. In this case it is in principle possible that the data was decoded from an invalid signal and should not be used unless it is cross-checked. |
UTC_IONO_MODEL format
A combined type for the UTC and IONO models. This is used to simplify the OBS task.
Structure size: 29 words.
Structure size (uNav): 27 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| UTC_IONO_MODEL.swFlags | WORD | 1 | Flags. The different bits are used as follows: - 0x01: The UTC model is valid. - 0x02: The Ionosphere model is valid. See UTC_IONO_MODEL_ flags for details. |
| UTC_MODEL UTC_IONO_MODEL.Utc: The UTC model. | |||
| UTC_IONO_MODEL.Utc.dA0 | DOUBLE | 1 | Constant term for GPS/UTC difference (seconds) |
| UTC_IONO_MODEL.Utc.dA1 | DOUBLE | 1 | First order term for GPS/UTC difference (sec/sec) |
| UTC_IONO_MODEL.Utc.lTot | INT32 | 1 | Reference time for UTC data (seconds) |
| UTC_IONO_MODEL.Utc.iWNt | INT16 | 1 | UTC reference week number (weeks). Note: this field contains only the 8 least significant bits of the UTC reference week number. Before using this, the highest 2 bits must be restored from the corresponding GPS week number. |
| UTC_IONO_MODEL.Utc.iDtls | INT16 | 1 | Delta time due to leap seconds (seconds) |
| UTC_IONO_MODEL.Utc.iWNlsf | INT16 | 1 | UTC week number for future leap second (weeks). Note: this field contains only the 8 least significant bits of the UTC reference week number. Before using this, the highest 2 bits must be restored from the corresponding GPS week number. |
| UTC_IONO_MODEL.Utc.iDN | INT16 | 1 | Day number for future leap second (days) |
| UTC_IONO_MODEL.Utc.iDtlsf | INT16 | 1 | Delta time due to future leap second (seconds) |
| UTC_IONO_MODEL.Utc.wReserved | WORD | 1 | Reserved for future use. |
| IONO_MODEL UTC_IONO_MODEL.Iono: The ionosphere model. | |||
| UTC_IONO_MODEL.Iono.wReserved | WORD | 1 | Reserved for future use. |
| GPS_TIME UTC_IONO_MODEL.Iono.gTime: Approximate time of download | |||
| UTC_IONO_MODEL.Iono.gTime.wWeek | WORD | 1 | Full week number. |
| UTC_IONO_MODEL.Iono.gTime.dwTowMs | DWORD | 1 | Time of week in milliseconds. |
| UTC_IONO_MODEL.Iono.iAlpha0 | INT16 | 1 | Coefficient for vertical delay calculation. Units 2^-30. |
| UTC_IONO_MODEL.Iono.iAlpha1 | INT16 | 1 | Coefficient for vertical delay calculation. Units 2^-27. |
| UTC_IONO_MODEL.Iono.iAlpha2 | INT16 | 1 | Coefficient for vertical delay calculation. Units 2^-24. |
| UTC_IONO_MODEL.Iono.iAlpha3 | INT16 | 1 | Coefficient for vertical delay calculation. Units 2^-24. |
| UTC_IONO_MODEL.Iono.iBeta0 | INT16 | 1 | Coefficient for model period calculation. Units 2^11. |
| UTC_IONO_MODEL.Iono.iBeta1 | INT16 | 1 | Coefficient for model period calculation. Units 2^14. |
| UTC_IONO_MODEL.Iono.iBeta2 | INT16 | 1 | Coefficient for model period calculation. Units 2^16. |
| UTC_IONO_MODEL.Iono.iBeta3 | INT16 | 1 | Coefficient for model period calculation. Units 2^16. |
Flags for UTC_IONO_MODEL
| Name | Value | Description |
|---|---|---|
| UTC_IONO_MODEL_UTCVALID | 0x0001 | The UTC model is valid in a UTC_IONO_MODEL message. |
| UTC_IONO_MODEL_IONOVALID | 0x0002 | The IONO model is valid in a UTC_IONO_MODEL message. |
SV_HEALTH format
Structure for the SV health.
Structure size: 38 words.
Structure size (uNav): 38 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| SV_HEALTH.dwTick | DWORD | 1 | Reserved for future use. |
| SV_HEALTH.swFlags | WORD | 1 | Reserved for future use. |
| SV_HEALTH.wReserved1 | WORD | 1 | Reserved for future use. |
| SV_HEALTH.dwReserved | DWORD | 1 | Reserved. |
| SV_HEALTH.wHealthPrn[32] | WORD | 32 | Health status. Most significant 8 bits: health status. Least significant 8 bits contain the PRN. |
WAAS_RAWDATA format
Raw undecoded waas data
Structure size: 20 words.
Structure size (uNav): 20 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| WAAS_RAWDATA.swFlags | WORD | 1 | Optional flags |
| WAAS_RAWDATA.wMsgId | WORD | 1 | Message ID |
| WAAS_RAWDATA.dwTick | DWORD | 1 | Message receive time tick |
| WAAS_RAWDATA.dwData[8] | DWORD | 8 | Message raw data |
PSEUDO format
The data type containing the observation measurements for all SV's.
Structure size: 253 words.
Structure size (uNav): 229 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| PSEUDO.dwTick | DWORD | 1 | System tick at the measurement time. |
| PSEUDO.wNumObs | WORD | 1 | Number of observations in this message. |
| PSEUDO.swFlags | WORD | 1 | Flags common to all observations. See PSEUDO_ flags. |
| INT_GPS_TIME PSEUDO.RefGpsTow: The reference TOW with respect to which the pseudoranges are computed. This time is not necessarily a good indication of the receiver or satellite TOW. | |||
| GPS_TIME PSEUDO.RefGpsTow.t: GPS week & TOW in ms. | |||
| PSEUDO.RefGpsTow.t.wWeek | WORD | 1 | Full week number. |
| PSEUDO.RefGpsTow.t.dwTowMs | DWORD | 1 | Time of week in milliseconds. |
| PSEUDO.RefGpsTow.lTowFrac | INT32 | 1 | Sub-millisecond fractional part [ps]. |
| PSEUDO.lPseudoRangeMultiple | INT32 | 1 | Common millisecond multiple of all pseudoranges. |
| PSEUDO.wMeasLength | WORD | 1 | Duration in ticks of the measurement interval for integrated Doppler. |
| PSEUDO.wReserved4 | WORD | 1 | Reserved for future use. |
| PSEUDO_OBS PSEUDO.Obs[12]: Observations. | |||
| PSEUDO.Obs[n].wPrn | WORD | 1 | LS byte: SV PRN. MS byte: reserved. |
| PSEUDO.Obs[n].wSnr | WORD | 1 | LS byte: S/N [dBHz] range [0,63]. MS byte: reserved. |
| PSEUDO.Obs[n].swFlags | WORD | 1 | Status bitfield. The values of this field are defined by the PSEUDO_OBS_ flags. |
| PSEUDO.Obs[n].swCorrections | WORD | 1 | Which corrections have been applied. See PSEUDO_OBS_CORRECTED_ flags. |
| PSEUDO.Obs[n].dPseudoRange | DOUBLE | 1 | Code pseudorange [m] (corrected and possibly smoothed). |
| PSEUDO.Obs[n].dDoppler | DOUBLE | 1 | Doppler [m/s]. |
| PSEUDO.Obs[n].iLoopDopplerOffset | INT16 | 1 | Difference between Doppler measurement and the frequency from the software carrier tracking loop [cm/s]. |
| PSEUDO.Obs[n].iOffsetEstim | INT16 | 1 | Reserved for future use. |
| PSEUDO.Obs[n].iCarrierPhase | INT16 | 1 | Carrier phase. |
| PSEUDO.Obs[n].wRangeErrEstim | WORD | 1 | Error estimate for range measurement. |
| PSEUDO.Obs[n].wRateErrEstim | WORD | 1 | Error estimate rate measurement. |
| PSEUDO.Obs[n].wEpochCount | WORD | 1 | Counter of PRN code epochs since channel initialisation. The least significant 15 bits contain the epoch count (which will wrap around after 32767 epochs). The most significant bit is set to 1 after the first wraparound has happened. |
| PSEUDO.Obs[n].dwReserved4 | DWORD | 1 | Reserved for future use. |
Data flags in the PSEUDO
structure
These flags indicate the quality of the data in the PSEUDO .
| Name | Value | Description |
|---|---|---|
| PSEUDO_OBS_DOPPLER_OK | 0x0001 | The doppler is valid |
| PSEUDO_OBS_PSEUDORANGE_OK | 0x0002 | The pseudorange is valid |
| PSEUDO_OBS_TOW_OK | 0x0004 | The pseudorange has been computed from a signal where a valid TOW has been decoded. |
| PSEUDO_OBS_PRN_OK | 0x0008 | The PRN number is one of the supported PRN numbers. |
| PSEUDO_OBS_ELEV_OK | 0x0010 | The SV is higher than the elevation mask |
| PSEUDO_OBS_SNR_OK | 0x0020 | The signal is not too weak. |
| PSEUDO_OBS_SV_HEALTHY | 0x0040 | The SV is marked as healthy |
| PSEUDO_OBS_NO_CROSS_CORR | 0x0080 | No cross correlation has been detected. |
| PSEUDO_OBS_DATA_EXISTS | 0x0100 | There is valid data for this observation. |
| PSEUDO_OBS_DATA_GOOD | 0x0200 | The data for this observation is accurate enough for navigation. |
| PSEUDO_OBS_BIT_LOCK | 0x0400 | Bit edges are being detected on the channel. |
| PSEUDO_OBS_FIRST_MEAS | 0x0800 | This is the first measurement for this PRN. |
| PSEUDO_OBS_RAIM_P_OK | 0x1000 | Observation not considered as outlier for position by RAIM. |
| PSEUDO_OBS_RAIM_V_OK | 0x2000 | Observation not considered as outlier for velocity by RAIM. |
| PSEUDO_OBS_RAIM_T_OK | 0x4000 | Observation not considered as outlier for time by RAIM. |
| PSEUDO_OBS_PLL | 0x8000U | The doppler measurement has been obtained with the phase locked loop (PLL). |
| PSEUDO_OBS_MEAS_OK | ( PSEUDO_OBS_ELEV_OK | PSEUDO_OBS_SNR_OK | PSEUDO_OBS_PRN_OK | PSEUDO_OBS_NO_CROSS_CORR | PSEUDO_OBS_SV_HEALTHY | PSEUDO_OBS_DATA_EXISTS | PSEUDO_OBS_DATA_GOOD | PSEUDO_OBS_PSEUDORANGE_OK ) | A common mask that can be used to determine if the pseudorange measurement is valid for navigation. |
| PSEUDO_OBS_DOPPLER_MEAS_OK | ( PSEUDO_OBS_ELEV_OK | PSEUDO_OBS_SNR_OK | PSEUDO_OBS_PRN_OK | PSEUDO_OBS_NO_CROSS_CORR | PSEUDO_OBS_SV_HEALTHY | PSEUDO_OBS_DATA_EXISTS | PSEUDO_OBS_DATA_GOOD | PSEUDO_OBS_DOPPLER_OK ) | A common mask that can be used to determine if the pseudorange measurement is valid for navigation. |
Flags in the
pseudodata header
These flags are common to all channels in the PSEUDO structure.
| Name | Value | Description |
|---|---|---|
| PSEUDO_TOW_WEEK_OK | 0x0001 | This flag is set in the PSEUDO header if the reference TOW week is valid. |
| PSEUDO_TOW_OK | 0x0002 | This flag is set in the PSEUDO header if the reference TOW is valid. |
| PSEUDO_RESYNCH | 0x0004 | This flag is set in the PSEUDO header to indicate that the receiver tow estimate may be inconsistent with the previous one. This may happen, for exameple, after channels have been lost and reacquired. |
| PSEUDO_FIRST_MEAS | 0x0008 | This flag is set in the PSEUDO header if this is the first PSEUDO message after the obs task has been started. |
| PSEUDO_UNSCHEDULED | 0x0010 | This flag is set in the PSEUDO header if the corresponding NAV_FIX should not be output. |
Correction flags in
the PSEUDO structure
These flags indicate the corrections that have been applied to the data in the PSEUDO structure.
| Name | Value | Description |
|---|---|---|
| PSEUDO_OBS_CORRECTED_AMBIGUOUS | 0x0001 | The observation has been corrected for millisecond ambiguity. |
| PSEUDO_OBS_CORRECTED_BY_SMOOTHING | 0x0002 | The observation has been smoothed. |
| PSEUDO_OBS_CORRECTED_BY_IONO | 0x0008 | Ionosphere correction has been applied. |
| PSEUDO_OBS_CORRECTED_BY_TROPO | 0x0010 | Troposphere correction has been applied. |
| PSEUDO_OBS_CORRECTED_BY_FAST_CORR | 0x0020 | WAAS fast corrections and integrity info has been applied. If this bit is set when the PSEUDO_OBS_SV_HEALTHY is not set, it means that the satellite has been declared unhealthy by WAAS. |
| PSEUDO_OBS_CORRECTED_BY_DGPS | 0x0040 | Differential GPS correction has been applied. |
| PSEUDO_OBS_CORRECTED_BY_SLOW_CORR | 0x0080 | Waas long term corrections have been applied |
| PSEUDO_OBS_CORRECTED_BY_WAAS_IONO | 0x0100 | Waas ionospheric corrections have been applied |
| PSEUDO_OBS_CORR_FRAME_LOCK | 0x8000u | The channel has frame lock. |
| PSEUDO_OBS_CORR_POSSIBLE_XCORR | 0x4000u | |
| PSEUDO_OBS_CORRECTED_BY_WAAS | ( PSEUDO_OBS_CORRECTED_BY_WAAS_IONO | PSEUDO_OBS_CORRECTED_BY_FAST_CORR) | TBA: for now only waas ionos corretions |
NAV_FIX format
Combined fix information. The structure contains the navigation solution converted to integer format, so that the structure can be used also without floating-point support.
Structure size: 143 words.
Structure size (uNav): 143 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| NAV_FIX.dwTick | DWORD | 1 | Tick instant ("ms" counter value) of observations. |
| NAV_FIX.swFlags | WORD | 1 | Misc. fix info flags. See FIXINFO_FLAG_ definitions. |
| NAV_FIX.swConvFlags | WORD | 1 | Flags that specify which data fields are valid in the structure. See the definitions of the FIX_CONV_ flags. |
| NAV_FIX.swPosFlags | WORD | 1 | Position fix info flags. See the definitions of the common FIX_FLAG_ flags and the position FIX_FLAG_POS_ flags. |
| NAV_FIX.swVelFlags | WORD | 1 | Velocity fix info flags. See the definitions of the common FIX_FLAG_ flags and the velocity FIX_FLAG_VEL_ flags. |
| NAV_FIX.wPosNumPrns | WORD | 1 | Number of PRNs in position fix. |
| NAV_FIX.wVelNumPrns | WORD | 1 | Number of PRNs in velocity fix. |
| PRN_MASK NAV_FIX.PosFixPrns: Map of SVs used in position fix. | |||
| NAV_FIX.PosFixPrns.dwGPSMask | DWORD | 1 | Masks for 32 GPS satellites |
| NAV_FIX.PosFixPrns.dwWAASMask | DWORD | 1 | Masks for GPS pseudolites and WAAS. Bits 0-18 indicate WAAS, 19-22 pseudolites, 23-31 for user prns. |
| PRN_MASK NAV_FIX.VelFixPrns: Map of SVs used in velocity fix. | |||
| NAV_FIX.VelFixPrns.dwGPSMask | DWORD | 1 | Masks for 32 GPS satellites |
| NAV_FIX.VelFixPrns.dwWAASMask | DWORD | 1 | Masks for GPS pseudolites and WAAS. Bits 0-18 indicate WAAS, 19-22 pseudolites, 23-31 for user prns. |
| PRN_MASK NAV_FIX.TrackedPrns: Map of SVs in track. This field is valid only if FIX_FLAG_NEW_FIX is set in the wFlags field. | |||
| NAV_FIX.TrackedPrns.dwGPSMask | DWORD | 1 | Masks for 32 GPS satellites |
| NAV_FIX.TrackedPrns.dwWAASMask | DWORD | 1 | Masks for GPS pseudolites and WAAS. Bits 0-18 indicate WAAS, 19-22 pseudolites, 23-31 for user prns. |
| PRN_MASK NAV_FIX.ObsPrns: Map of SVs for which there are valid observations. This field is valid only if FIX_FLAG_NEW_FIX is set in the wFlags field. | |||
| NAV_FIX.ObsPrns.dwGPSMask | DWORD | 1 | Masks for 32 GPS satellites |
| NAV_FIX.ObsPrns.dwWAASMask | DWORD | 1 | Masks for GPS pseudolites and WAAS. Bits 0-18 indicate WAAS, 19-22 pseudolites, 23-31 for user prns. |
| PRN_MASK NAV_FIX.MaskedPrns: Map of SVs for which there are valid observations which are not masked away by the user. This field is valid only if FIX_FLAG_NEW_FIX is set in the wFlags field. | |||
| NAV_FIX.MaskedPrns.dwGPSMask | DWORD | 1 | Masks for 32 GPS satellites |
| NAV_FIX.MaskedPrns.dwWAASMask | DWORD | 1 | Masks for GPS pseudolites and WAAS. Bits 0-18 indicate WAAS, 19-22 pseudolites, 23-31 for user prns. |
| INT_DOPS NAV_FIX.Dop: All DOPs in integer format (H,G,P, V, T). | |||
| NAV_FIX.Dop.wHdop | WORD | 1 | HDOP in units of 0.01 |
| NAV_FIX.Dop.wGdop | WORD | 1 | GDOP in units of 0.01 |
| NAV_FIX.Dop.wPdop | WORD | 1 | PDOP in units of 0.01 |
| NAV_FIX.Dop.wVdop | WORD | 1 | VDOP in units of 0.01 |
| NAV_FIX.Dop.wTdop | WORD | 1 | TDOP in units of 0.01 |
| DATE_TIME NAV_FIX.Utc: UTC date and time of the fix | |||
| UTC_TIME NAV_FIX.Utc.Time: Hours, minutes and seconds. | |||
| NAV_FIX.Utc.Time.wHour | WORD | 1 | Hours in 24-hour format. |
| NAV_FIX.Utc.Time.wMinute | WORD | 1 | Minutes. |
| NAV_FIX.Utc.Time.wSec | WORD | 1 | Whole seconds. |
| NAV_FIX.Utc.Time.dwSubSec | DWORD | 1 | Fractions of second in full nanoseconds (i.e. in units of 0.000000001 seconds) |
| UTC_DATE NAV_FIX.Utc.Date: Year, month and day. | |||
| NAV_FIX.Utc.Date.wYear | WORD | 1 | Year. |
| NAV_FIX.Utc.Date.wMonth | WORD | 1 | Month. Values from 1-12. |
| NAV_FIX.Utc.Date.wDay | WORD | 1 | Day of month. Values 1-31. |
| TIME_FIX_CONVERTED NAV_FIX.Time: GPS time of the fix + clock parameters | |||
| INT_GPS_TIME NAV_FIX.Time.GpsTow: GPS time of the fix [week/millisecond]. | |||
| GPS_TIME NAV_FIX.Time.GpsTow.t: GPS week & TOW in ms. | |||
| NAV_FIX.Time.GpsTow.t.wWeek | WORD | 1 | Full week number. |
| NAV_FIX.Time.GpsTow.t.dwTowMs | DWORD | 1 | Time of week in milliseconds. |
| NAV_FIX.Time.GpsTow.lTowFrac | INT32 | 1 | Sub-millisecond fractional part [ps]. |
| NAV_FIX.Time.lClockDrift | INT32 | 1 | Clock drift [0.001 m/s] |
| POSITION_FIX_CONVERTED NAV_FIX.Pos: Position fix converted to local coordinates & integer format | |||
| INT_XYZ_VECTOR NAV_FIX.Pos.Xyz: WGS84 position in XYZ coordinates [0.01 m]. | |||
| NAV_FIX.Pos.Xyz.lX | INT32 | 1 | X coordinate. |
| NAV_FIX.Pos.Xyz.lY | INT32 | 1 | Y coordinate. |
| NAV_FIX.Pos.Xyz.lZ | INT32 | 1 | Z coordinate. |
| INT_XYZ_VECTOR NAV_FIX.Pos.East: Unit vector in the east direction. | |||
| NAV_FIX.Pos.East.lX | INT32 | 1 | X coordinate. |
| NAV_FIX.Pos.East.lY | INT32 | 1 | Y coordinate. |
| NAV_FIX.Pos.East.lZ | INT32 | 1 | Z coordinate. |
| INT_XYZ_VECTOR NAV_FIX.Pos.North: Unit vector in the north direction. | |||
| NAV_FIX.Pos.North.lX | INT32 | 1 | X coordinate. |
| NAV_FIX.Pos.North.lY | INT32 | 1 | Y coordinate. |
| NAV_FIX.Pos.North.lZ | INT32 | 1 | Z coordinate. |
| INT_XYZ_VECTOR NAV_FIX.Pos.Up: Unit vector in the up direction. | |||
| NAV_FIX.Pos.Up.lX | INT32 | 1 | X coordinate. |
| NAV_FIX.Pos.Up.lY | INT32 | 1 | Y coordinate. |
| NAV_FIX.Pos.Up.lZ | INT32 | 1 | Z coordinate. |
| INT_LLA_POS NAV_FIX.Pos.Lla: WGS84 LLA position. | |||
| NAV_FIX.Pos.Lla.lLat | INT32 | 1 | Latitude in units of 0.0000001 degrees. |
| NAV_FIX.Pos.Lla.lLon | INT32 | 1 | Longitude in units of 0.0000001 degrees. |
| NAV_FIX.Pos.Lla.lAlt | INT32 | 1 | Altitude in units of 0.001 meters. |
| INT_LLA_POS NAV_FIX.Pos.LocalLla: Position in local datum. | |||
| NAV_FIX.Pos.LocalLla.lLat | INT32 | 1 | Latitude in units of 0.0000001 degrees. |
| NAV_FIX.Pos.LocalLla.lLon | INT32 | 1 | Longitude in units of 0.0000001 degrees. |
| NAV_FIX.Pos.LocalLla.lAlt | INT32 | 1 | Altitude in units of 0.001 meters. |
| INT_GRID_COORD NAV_FIX.Pos.Grid: Position in grid coordinates. | |||
| NAV_FIX.Pos.Grid.lNorthing | INT32 | 1 | Northing, cm's from coordinate system origin. |
| NAV_FIX.Pos.Grid.lEasting | INT32 | 1 | Easting, cm's from coordinate system origin. |
| NAV_FIX.Pos.Grid.wGridId | WORD | 1 | Identifier of grid (e.g. UTM grid number). |
| NAV_FIX.Pos.Grid.wCoordSystem | WORD | 1 | Grid system identifier (e.g. UTM, ...). |
| NAV_FIX.Pos.wDatumId | WORD | 1 | Local datum ID |
| NAV_FIX.Pos.iUndulation | INT16 | 1 | Undulation, i.e. difference between WGS84 altitude and MSL in cm's |
| NAV_FIX.Pos.iFOM | INT16 | 1 | Figure Of Merit for fix (in units of 0.01) |
| VELOCITY_FIX_CONVERTED NAV_FIX.Vel: Velocity fix converted to integer format | |||
| INT_XYZ_VECTOR NAV_FIX.Vel.Xyz: Velocity XYZ (in units of 0.001 m/s) | |||
| NAV_FIX.Vel.Xyz.lX | INT32 | 1 | X coordinate. |
| NAV_FIX.Vel.Xyz.lY | INT32 | 1 | Y coordinate. |
| NAV_FIX.Vel.Xyz.lZ | INT32 | 1 | Z coordinate. |
| INT_ENU_VECTOR NAV_FIX.Vel.VelEnu: Velocity east-north-up (in units of 0.001 m/s) | |||
| NAV_FIX.Vel.VelEnu.lEast | INT32 | 1 | Vector element in the east direction. |
| NAV_FIX.Vel.VelEnu.lNorth | INT32 | 1 | Vector element in the north direction. |
| NAV_FIX.Vel.VelEnu.lUp | INT32 | 1 | Vector element in the up direction. |
| NAV_FIX.Vel.dwSpeed | DWORD | 1 | Horizontal speed (in units of 0.001 m/s) |
| NAV_FIX.Vel.wDir | WORD | 1 | Direction (heading) (0.01 deg) |
| NAV_FIX.Vel.iMagDecl | INT16 | 1 | Magnetic declination (-180..+180 degrees, in units of 0.01 deg) |
| INT_ENU_VECTOR NAV_FIX.Vel.AccEnu: Acceleration east-north-up (in units of 0.001 m/s^2) | |||
| NAV_FIX.Vel.AccEnu.lEast | INT32 | 1 | Vector element in the east direction. |
| NAV_FIX.Vel.AccEnu.lNorth | INT32 | 1 | Vector element in the north direction. |
| NAV_FIX.Vel.AccEnu.lUp | INT32 | 1 | Vector element in the up direction. |
| INT_ERR_EST NAV_FIX.ErrEst: Estimated error in the fix. | |||
| NAV_FIX.ErrEst.wErrX | WORD | 1 | Error estimate in the X state. |
| NAV_FIX.ErrEst.wErrY | WORD | 1 | Error estimate in the Y state. |
| NAV_FIX.ErrEst.wErrZ | WORD | 1 | Error estimate in the Z state. |
| NAV_FIX.ErrEst.wErrVX | WORD | 1 | Error estimate in the X velocity state. |
| NAV_FIX.ErrEst.wErrVY | WORD | 1 | Error estimate in the Y velocity state. |
| NAV_FIX.ErrEst.wErrVZ | WORD | 1 | Error estimate in the Z velocity state. |
| NAV_FIX.ErrEst.wErrDrift | WORD | 1 | Error estimate in the clock drift state. |
| NAV_FIX.ErrEst.wErrClock | WORD | 1 | Error estimate in the clock offset state. |
| NAV_FIX.ErrEst.wPositionResidual | WORD | 1 | Position residual. |
| NAV_FIX.ErrEst.wVelocityResidual | WORD | 1 | Velocity residual. |
| NAV_FIX.ErrEst.wEstimateXY | WORD | 1 | Error estimate in the ground plot. |
| NAV_FIX.ErrEst.wEstimateSpeed | WORD | 1 | Error estimate in the speed value (0.001 * m/s). |
| NAV_FIX.dwOdometer | DWORD | 1 | Odometer reading |
| NAV_FIX.wFixInfo | WORD | 1 | Reserved. |
| NAV_FIX.wFixInfo2 | WORD | 1 | Reserved. |
| NAV_FIX.wWeightedFOM | WORD | 1 | Weighted FOM |
| NAV_FIX.wAidAlt | WORD | 1 | Altitude of altitude-aiding. |
| NAV_FIX.dwReserved10 | DWORD | 1 | Reserved double word info |
| NAV_FIX.dwReserved11 | DWORD | 1 | Reserved double word info |
| NAV_FIX.dwReserved12 | DWORD | 1 | Reserved double word info |
| NAV_FIX.dwReserved13 | DWORD | 1 | Reserved double word info |
| NAV_FIX.dwReserved14 | DWORD | 1 | Reserved double word info |
Conversion flags
These flags are used in the NAV_FIX structure to indicate which optional data are valid.
| Name | Value | Description |
|---|---|---|
| FIX_CONV_VEL_VALID | 0x0002 | Velocity is valid. |
| FIX_CONV_ACC_VALID | 0x0004 | Acceleration is valid. |
| FIX_CONV_DOP_VALID | 0x0010 | DOPs are valid. |
| FIX_CONV_ERR_VALID | 0x0020 | Error estimates are valid. |
| FIX_CONV_UTC_VALID | 0x0040 | UTC is valid. |
| FIX_CONV_UND_VALID | 0x0080 | Undulation is valid. |
| FIX_CONV_MAG_VALID | 0x0100 | Magnetic declination is valid. |
| FIX_CONV_GRID_VALID | 0x0200 | The metric grid coordinates are valid. |
| FIX_CONV_VEL_ESTIMATED | 0x0400 | Velocity is estimated by kalman filter without sufficient num of dopplers. |
Position flags
These flags are used in the NAV_FIX structure for information on the position solution.
| Name | Value | Description |
|---|---|---|
| FIX_FLAG_POS_REJECT_FOM | 0x0003 | Fix rejected by FOM limit. |
| FIX_FLAG_POS_REJECT_DOP | 0x0004 | Fix rejected by DOP limit. |
| FIX_FLAG_POS_PINNING | 0x0020 | Position pinning is active. |
Velocity flags
These flags are used in the NAV_FIX structure for information on the velocity solution.
| Name | Value | Description |
|---|---|---|
| FIX_FLAG_VEL_REJECT_RES | 0x0003 | Fix rejected by residual limit. |
| FIX_FLAG_ACCELERATION | 0x4000 | Acceleration information available in velocity fix. |
| FIX_FLAG_VEL_RELIABLE | 0x0020 | Velocity information has been computed with at least three PLL channels. |
| FIX_FLAG_VEL_RELIABLE_3D | 0x0040 | Velocity information has been computed with at least four PLL channels. |
Common velocity and position flags
These flags are used in the NAV_FIX structure for both for the velocity and position solutions.
| Name | Value | Description |
|---|---|---|
| FIX_FLAG_MASK_INVALID | 0x0007 | These bits are zero if fix is valid, otherwise bit have the rejection reason identifier (value of 1-7). |
| FIX_FLAG_REJECT_NUM_SV | 0x0001 | Fix rejected by too few SVs |
| FIX_FLAG_REJECT_POSTRAIM | 0x0002 | Fix rejected by Post-RAIM |
| FIX_FLAG_REJECT_OTHER | 0x0007 | Fix rejected for some other reason |
| FIX_FLAG_RELIABLE | 0x0008 | Fix is considered reliable (versus e.g. first couple of fixes, after large jump or other uncertainty). |
| FIX_FLAG_PF_RAIM | 0x0010 | Modified by post-RAIM. |
| FIX_FLAG_3DFIX | 0x0100 | Fix is a 3d fix (if zero, is a 2d fix). |
| FIX_FLAG_DGPS_CORRECTION | 0x0200 | DGPS corrections used. |
| FIX_FLAG_TROPO | 0x0400 | Tropo correction used. |
| FIX_FLAG_IONO | 0x0800 | Iono correction used. |
| FIX_FLAG_INS | 0x2000 | INS data used in solution. |
Flags in the NAV_FIX
structure
| Name | Value | Description |
|---|---|---|
| FIXINFO_FLAG_RESERVED | 0x0001 | Reserved for future use. |
| FIXINFO_FLAG_VALID | 0x0002 | '1' if fix data is valid, otherwise fix data is/may be invalid. |
| FIXINFO_FLAG_NEW_FIX | 0x0004 | '1' if fix is newly calculated fix, otherwise earlier "Last Known Good" fix. |
| FIXINFO_FLAG_SKY_FIX | 0x0008 | '1' if fix is calculated in navigation from the GPS signal. '0' otherwise, e.g. if it is a dead reckoning fix. |
| FIXINFO_FLAG_AID_GPSTIME | 0x0010 | Use aiding time (that may or may not have been synchronized to SV time stamp). |
| FIXINFO_FLAG_AID_TIMESTAMP | 0x0020 | Time not synchronized to SV time stamp (uses pure external time aiding or internal clock). |
| FIXINFO_FLAG_AID_EPHEMERIS | 0x0040 | Use aiding or older ephemeris information. |
| FIXINFO_FLAG_AID_ALTITUDE | 0x0080 | Altitude aiding was used to compute the fix. |
| RESERVED | 0x0100 | Reserved flags |
| FIXINFO_FLAG_KALMAN | 0x1000 | Kalman used for solution (if zero, LSE used). |
| FIXINFO_FLAG_INTERNAL | 0x2000 | If set, the fix should not be output. This bit is set e.g. if the output rate is specified so that this fix should be used only internally. |
| FIXINFO_FLAG_FIRSTFIX | 0x4000 | This is the first fix after starting navigation. |
PRN_STATUS format
PRN status message payload.
Structure size: 146 words.
Structure size (uNav): 146 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| PRN_STATUS_HDR PRN_STATUS.Hdr: Status header | |||
| PRN_STATUS.Hdr.dwTick | DWORD | 1 | Current system ticker. |
| GPS_TIME PRN_STATUS.Hdr.GpsTime: Corresponding GPS time. | |||
| PRN_STATUS.Hdr.GpsTime.wWeek | WORD | 1 | Full week number. |
| PRN_STATUS.Hdr.GpsTime.dwTowMs | DWORD | 1 | Time of week in milliseconds. |
| PRN_MASK PRN_STATUS.Hdr.PredPrn: Mask of predicted PRN. | |||
| PRN_STATUS.Hdr.PredPrn.dwGPSMask | DWORD | 1 | Masks for 32 GPS satellites |
| PRN_STATUS.Hdr.PredPrn.dwWAASMask | DWORD | 1 | Masks for GPS pseudolites and WAAS. Bits 0-18 indicate WAAS, 19-22 pseudolites, 23-31 for user prns. |
| PRN_MASK PRN_STATUS.Hdr.InvisiblePrn: Mask of PRNs that are known to be invisible (i.e. invalid or below the horizon) | |||
| PRN_STATUS.Hdr.InvisiblePrn.dwGPSMask | DWORD | 1 | Masks for 32 GPS satellites |
| PRN_STATUS.Hdr.InvisiblePrn.dwWAASMask | DWORD | 1 | Masks for GPS pseudolites and WAAS. Bits 0-18 indicate WAAS, 19-22 pseudolites, 23-31 for user prns. |
| PRN_MASK PRN_STATUS.Hdr.VisiblePrn: Mask of PRNs that should be visible (i.e. above the horizon) | |||
| PRN_STATUS.Hdr.VisiblePrn.dwGPSMask | DWORD | 1 | Masks for 32 GPS satellites |
| PRN_STATUS.Hdr.VisiblePrn.dwWAASMask | DWORD | 1 | Masks for GPS pseudolites and WAAS. Bits 0-18 indicate WAAS, 19-22 pseudolites, 23-31 for user prns. |
| PRN_MASK PRN_STATUS.Hdr.EpheAvail: Mask of PRNs that have useful ephemeris available. | |||
| PRN_STATUS.Hdr.EpheAvail.dwGPSMask | DWORD | 1 | Masks for 32 GPS satellites |
| PRN_STATUS.Hdr.EpheAvail.dwWAASMask | DWORD | 1 | Masks for GPS pseudolites and WAAS. Bits 0-18 indicate WAAS, 19-22 pseudolites, 23-31 for user prns. |
| PRN_MASK PRN_STATUS.Hdr.AlmanacAvail: Mask of PRNs that have almanac available. | |||
| PRN_STATUS.Hdr.AlmanacAvail.dwGPSMask | DWORD | 1 | Masks for 32 GPS satellites |
| PRN_STATUS.Hdr.AlmanacAvail.dwWAASMask | DWORD | 1 | Masks for GPS pseudolites and WAAS. Bits 0-18 indicate WAAS, 19-22 pseudolites, 23-31 for user prns. |
| PRN_STATUS.Hdr.wPrnCount | WORD | 1 | Number of PRN items in 'Prn' array below. |
| PRN_STATUS_ITEM PRN_STATUS.Prn[24]: Status for each PRN on the sky. Limited to MAX_NR_VISIBLE_PRNS. | |||
| PRN_STATUS.Prn[n].swFlags | WORD | 1 | Status flags for the PRN, see PRN_FLAG_ defines. |
| PRN_STATUS.Prn[n].wSnr | WORD | 1 | Signal to noise ratio |
| PRN_STATUS.Prn[n].wPrn | WORD | 1 | PRN number for the SV. |
| PRN_STATUS.Prn[n].iElev | INT16 | 1 | Elevation [degrees]. |
| PRN_STATUS.Prn[n].iAzim | INT16 | 1 | Azimuth [degrees]. |
Flags in the
PRN_STATUS message.
These flags define a PRN item's status
| Name | Value | Description |
|---|---|---|
| PRN_FLAG_FOUND | 0x0001 | PRN has actually been found by SE, otherwise only theoretically predicted. |
| PRN_FLAG_TRACKING | 0x0002 | PRN is being tracked. |
| PRN_FLAG_USE_IN_NAV | 0x0004 | PRN is used in navigation solution. |
START format
START (nonmaskable) wFlags bits (defined in system_types.h): - AGPS mode - Other search engine control flags - IsReply, i.e. the message has been processed and receipt sent to host
Structure size: 5 words.
Structure size (uNav): 5 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| START.dwTick | DWORD | 1 | Ticker value at START. |
| START.wStartMode | WORD | 1 | Start mode. See the START_MODE_... defines. |
| START.wFlags | WORD | 1 | Start mode modifier flags. See the START_FLAG_... defines. |
| START.wStatus | WORD | 1 | Status after the START (contents are only valid when the IsReply bit is set). See the start status definitions. |
Start mode definitions.
These bits are used in the wStartMode field of the START struct.
| Name | Value | Description |
|---|---|---|
| START_MODE_KEEP_CLOCK | 0x0001 | Use the time info to assist the search. |
| START_MODE_KEEP_POSITION | 0x0002 | Use the last position to assist the search. |
| START_MODE_KEEP_ALMANACS | 0x0004 | If not set, the almanacs are erased at START. |
| START_MODE_KEEP_EPHEMERIS | 0x0008 | If not set, the ephemerides are erased at START. |
| START_MODE_KEEP_UTCIONO | 0x0010 | If not set, utc/iono data are erased. |
| START_MODE_KEEP_SUBF | 0x0020 | If not set, the collected subframes are erased. |
| START_MODE_KEEP_CLOCK_ROUGH | 0x0040 | If the KEEP_CLOCK flag is 0 and this one is set, then keep a rough time estimate. |
START status bits.
These definitions are used in the wStatus field of the START message.
| Name | Value | Description |
|---|---|---|
| START_ISREPLY | 0x4000 | The START message is a reply. |
| START_FLAG_ERROR | 0x8000 | Error occurred. |
| E_START_NOT_IDLE | (E_BASE_SYS_MINOR | 0x01) | The software isn't in idle mode, thus can't start. |
Bits of the START wFlags field.
These bits may be set in the START message to control the processing of the START command.
| Name | Value | Description |
|---|---|---|
| START_FLAG_INIT_CORE | 0x0001 | Init core. If enabled, the START command will be sent also to the GPS core tasks. In archive playback, this bit must be disabled. |
| START_FLAG_INIT_SEARCH | 0x0002 | If enabled, starts the search task. |
| START_FLAG_SEND_PARAMS | 0x0004 | If enabled, the valid parameter values are sent as iTalk messages. TBD: This flag is currently not supported. |
| START_FLAG_SEND_EPHEMERIS | 0x0008 | If enabled, send the ephemerides at START. |
| START_FLAG_SEND_ALMANAC | 0x0010 | If enabled, send the ephemerides at START. |
| START_MODE_COLD | 0 | Don't use any data. |
| START_MODE_AUTO | 0xffff | Use all available data to speed up the start. |
| START_FLAG_DEFAULTS | (START_FLAG_INIT_CORE | START_FLAG_INIT_SEARCH) | Default value for START message wFlags. |
STOP format
STOP (nonmaskable) wFlags bits: - Save data to flash - IsReply, i.e. the message has been processed and receipt sent to host
Structure size: 2 words.
Structure size (uNav): 2 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| STOP.wFlags | WORD | 1 | Stop flags |
| STOP.wStatus | WORD | 1 | Status after the STOP (contents are only valid when the IsReply bit is set) |
SLEEP format
Sleep mode parameters.
Structure size: 3 words.
Structure size (uNav): 3 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| SLEEP.dwSleepMs | DWORD | 1 | Time to sleep in milliseconds. If zero, don't use timed wakeup. |
| SLEEP.wFlags | WORD | 1 | Flag bits that define wakeup events, see SLEEP_FLAG_... defines. |
SLEEP message wakeup source
flags
| Name | Value | Description |
|---|---|---|
| SLEEP_FLAG_TIMER | 0x0001 | Wakeup on after given sleep timeout elapses |
| SLEEP_FLAG_UART0 | 0x0002 | Wakeup on UART0 RX activity |
| SLEEP_FLAG_UART1 | 0x0004 | Wakeup on UART1 RX activity |
| SLEEP_FLAG_GPIO_SLEEP_PIN | 0x0008 | Wakeup on dedicated GPIO sleep "on/off" pin |
| SLEEP_FLAG_GPIO_GENERIC | 0x0010 | Wakeup on generic GPIO wakeup pin |
| SLEEP_FLAG_GPIO_IRQ | 0x0008 | Alias for Sony: Wakeup on GPIO IRQ pin |
| SLEEP_FLAG_GPIO_FIQ | 0x0010 | Alias for Sony: Wakeup on GPIO FIQ |
ITALK_TASK_ROUTE
format
Routing of tasks to different nodes.
Structure size: 65 words.
Structure size (uNav): 65 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| ITALK_TASK_ROUTE.wNumTasks | WORD | 1 | Number of tasks to route. |
| TASK_ROUTE ITALK_TASK_ROUTE.Route[32]: The list of tasks to be rerouted. | |||
| ITALK_TASK_ROUTE.Route[n].wTaskId | WORD | 1 | This task is routed |
| ITALK_TASK_ROUTE.Route[n].wNodeId | WORD | 1 | to this node. |
STATUS format
Current iTrax status
Structure size: 3 words.
Structure size (uNav): 3 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| STATUS.wFlags | WORD | 1 | State flags, see STATUS_FLAG_... defines. |
| STATUS.wSWState | WORD | 1 | What software the system is running, see firmware STATUS_ defines. |
| STATUS.wNavState | WORD | 1 | Current navigation state if applicable, see system STATUS_ defines. |
iSuite software system
states.
| Name | Value | Description |
|---|---|---|
| STATUS_IDLE | 0x0000 | Idle mode. |
| STATUS_STARTING | 0x0001 | Currently starting navigation. |
| STATUS_STARTED | 0x0002 | Navigation has been started. |
| STATUS_STOPPING | 0x0003 | Currently stopping navigation. |
| STATUS_PREPARE_SLEEP | 0x0004 | Preparing to enter sleep mode. |
| STATUS_WAKING_UP | 0x0005 | Waking up from sleep mode. |
Status flags
These flags can give additional information of the software operations.
| Name | Value | Description |
|---|---|---|
| STATUS_FLAG_NAVIGATED | 0x0001 | Has acquired a fix since power-up |
| STATUS_FLAG_LASTFIXVALID | 0x0002 | Last fix is valid |
| STATUS_FLAG_PORT_UART0 | 0x0010 | Message received from iTrax port UART0, i.e. suitable for flashing. |
iTrax software states
These are the different firmware modes reported by the STATUS message.
| Name | Value | Description |
|---|---|---|
| STATUS_FIRMWARE | 0x0000 | |
| STATUS_FLASHCLIENT | 0x0001 | |
| STATUS_FLASHWARE | 0x0002 | |
LOG_CMD format
LOG command message.
Structure size: 4 words.
Structure size (uNav): 4 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| LOG_CMD.swFlags | WORD | 1 | Log command id & command modifier flags |
| LOG_CMD.wStatus | WORD | 1 | Command-specific parameter 1 (or error code) |
| LOG_CMD.wParam2 | WORD | 1 | Command-specific parameter 2 |
| LOG_CMD.CmdData | WORD | 1 | Array of command-specific data. The format depends on the subcommand. |
SEARCH format
SEACRH message pauload. Used to search a number of PRNs with the same settings.
Structure size: 18 words.
Structure size (uNav): 16 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| SEARCH.dwTick | DWORD | 1 | Reference time for data. |
| SEARCH_SETTINGS SEARCH.Settings: Search settings. | |||
| SEARCH.Settings.swConf | WORD | 1 | Search Engine configuration HW register setting. |
| SEARCH.Settings.wSettings | WORD | 1 | Search Engine SW settings. |
| SEARCH.Settings.dFreq | DOUBLE | 1 | Carrier frequency estimate for this PRN. |
| SEARCH.Settings.dFreqUnc | DOUBLE | 1 | Carrier frequency estimate uncertainty for this PRN. |
| SEARCH.Settings.wIntRounds | WORD | 1 | Number of integration rounds in SW. |
| SEARCH.Settings.wSens | WORD | 1 | Sensitivity level for full sky search. |
| PRN_MASK SEARCH.PrnMask: Prn to search (mask). | |||
| SEARCH.PrnMask.dwGPSMask | DWORD | 1 | Masks for 32 GPS satellites |
| SEARCH.PrnMask.dwWAASMask | DWORD | 1 | Masks for GPS pseudolites and WAAS. Bits 0-18 indicate WAAS, 19-22 pseudolites, 23-31 for user prns. |
PRED_SEARCH format
PRED_SEARCH messahe payload. Used for predicted search with PRN specific information.
Structure size: 242 words.
Structure size (uNav): 203 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| PRED_SEARCH.dwTick | DWORD | 1 | Reference time for data. |
| PRED_SEARCH.swConf | WORD | 1 | Search Engine HW configuration register. |
| PRED_SEARCH.wIntRounds | WORD | 1 | Number of SW integration laps. |
| PRN_MASK PRED_SEARCH.PrnMask: PRNs to search (mask). Data for these available in PRN_PRED_SETTINGS. | |||
| PRED_SEARCH.PrnMask.dwGPSMask | DWORD | 1 | Masks for 32 GPS satellites |
| PRED_SEARCH.PrnMask.dwWAASMask | DWORD | 1 | Masks for GPS pseudolites and WAAS. Bits 0-18 indicate WAAS, 19-22 pseudolites, 23-31 for user prns. |
| PRN_PRED_SETTINGS PRED_SEARCH.PrnPred[13]: PRN specific search information. | |||
| PRED_SEARCH.PrnPred[n].wSettings | WORD | 1 | ACQ settings. |
| PRED_SEARCH.PrnPred[n].wPrn | WORD | 1 | Prn to search (number). |
| PRED_SEARCH.PrnPred[n].wSens | WORD | 1 | Sensitivity level for PRN. |
| SEARCH_AID PRED_SEARCH.PrnPred[n].SearchAid: Aiding data for Prn. | |||
| PRED_SEARCH.PrnPred[n].SearchAid.wBitOffset | WORD | 1 | Offset in us from previous estimated bit edge. |
| PRED_SEARCH.PrnPred[n].SearchAid.wCodePhase | WORD | 1 | Code Phase estimate from start of last full epoch [1/64 chips, 6 LSB is fractional chips]. |
| PRED_SEARCH.PrnPred[n].SearchAid.wCodePhaseAcc | WORD | 1 | Code Phase estimate accuracy [1/64 chips, 6 LSB is fractional chips]. |
| PRED_SEARCH.PrnPred[n].SearchAid.dFreqDrift | DOUBLE | 1 | Doppler drift for Prn (can be used for long integrations). |
| PRED_SEARCH.PrnPred[n].dFreq | DOUBLE | 1 | Carrier frequency estimate for this Prn. |
| PRED_SEARCH.PrnPred[n].dFreqUnc | DOUBLE | 1 | Carrier frequency uncertainty for this Prn. |
SEARCH_DONE format
Search round has been completed.
Structure size: 1 words.
Structure size (uNav): 1 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| SEARCH_DONE.swState | WORD | 1 | Search state. |
STOP_SEARCH format
STOP_SEARCH message payload.
Structure size: 1 words.
Structure size (uNav): 1 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| STOP_SEARCH.wDummy | WORD | 1 | Currently unused data item added to keep the build system happy. |
TRACK_STATUS format
TRACK_STATUS message payload.
Structure size: 69 words.
Structure size (uNav): 57 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| TRACK_STATUS.dwTick | DWORD | 1 | Reference ticker value. |
| TRACK_STATUS.swFlags | WORD | 1 | Fix flags. |
| TRACK_STATUS.wNumTrack | WORD | 1 | Number of SV's in track. |
| TRACK_STATUS.wMaxSnr | WORD | 1 | Maximu signal SNR value. |
| PRN_MASK TRACK_STATUS.TrackedPrnMask: Mask of PRNs that are being tracked. | |||
| TRACK_STATUS.TrackedPrnMask.dwGPSMask | DWORD | 1 | Masks for 32 GPS satellites |
| TRACK_STATUS.TrackedPrnMask.dwWAASMask | DWORD | 1 | Masks for GPS pseudolites and WAAS. Bits 0-18 indicate WAAS, 19-22 pseudolites, 23-31 for user prns. |
| TRACK_SVDOP TRACK_STATUS.TrSVDop[12]: Tracking PRN and Doppler Info. | |||
| TRACK_STATUS.TrSVDop[n].wPrn | WORD | 1 | PRN Number |
| TRACK_STATUS.TrSVDop[n].dDoppler | DOUBLE | 1 | Doppler [m/s]. |
HANDOVER_DATA format
HANDOVER message payload. Contains data required for track task to initialise correlators.
Structure size: 11 words.
Structure size (uNav): 11 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| HANDOVER_DATA.dwTick | DWORD | 1 | Reference time for data. |
| HANDOVER_DATA.wStatus | WORD | 1 | Handover data status. |
| HANDOVER_DATA.wPrn | WORD | 1 | Found PRN. |
| HANDOVER_DATA.dwMean | DWORD | 1 | Mean amplitude for signal. Normalised to 1 ms. |
| HANDOVER_DATA.wAmpl | WORD | 1 | Amplitude of found signal. |
| HANDOVER_DATA.wCodePhase | WORD | 1 | Code phase estimate [chips]. |
| HANDOVER_DATA.wFracCodePhase | WORD | 1 | Fractional Code Phase estimation [1/256 chips]. |
| HANDOVER_DATA.dwCarrFreq | DWORD | 1 | Coarse carrier replica frequency. |
WAAS_CORRECTION
format
| Name | Type | Dimension | Description |
|---|
ASSISTANCE format
ASSISTANCE message payload. Contains position and time assistance information.
Structure size: 34 words.
Structure size (uNav): 34 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| ASSISTANCE.dwTick | DWORD | 1 | The data refer to this tick. |
| ASSISTANCE.swFlags | WORD | 1 | Flags to specify which data are valid. See the definition of the ASSISTANCE_ flags. |
| INT_GPS_TIME ASSISTANCE.GpsTow: Estimated time. | |||
| GPS_TIME ASSISTANCE.GpsTow.t: GPS week & TOW in ms. | |||
| ASSISTANCE.GpsTow.t.wWeek | WORD | 1 | Full week number. |
| ASSISTANCE.GpsTow.t.dwTowMs | DWORD | 1 | Time of week in milliseconds. |
| ASSISTANCE.GpsTow.lTowFrac | INT32 | 1 | Sub-millisecond fractional part [ps]. |
| ASSISTANCE.dwTowErr | DWORD | 1 | Estimated error in time [us]. |
| ASSISTANCE.lFreqOffset | INT32 | 1 | Estimated frequency offset [0.001 Hz]. Nominal IF is negative. A positive offset gives an IF which absolute value is higher. New IF = NomIF + lFreqOffset. |
| ASSISTANCE.dwFreqOffsetErr | DWORD | 1 | Estimated error in frequency offset [0.001 Hz] |
| INT_LLA_POS ASSISTANCE.Lla: Position in WGS84. | |||
| ASSISTANCE.Lla.lLat | INT32 | 1 | Latitude in units of 0.0000001 degrees. |
| ASSISTANCE.Lla.lLon | INT32 | 1 | Longitude in units of 0.0000001 degrees. |
| ASSISTANCE.Lla.lAlt | INT32 | 1 | Altitude in units of 0.001 meters. |
| ASSISTANCE.dwAltErr | DWORD | 1 | Estimated error in altitude [cm]. |
| ASSISTANCE.dwPosErr | DWORD | 1 | Estimated error in horizontal position [cm]. |
| ASSISTANCE.dwSpeed | DWORD | 1 | Horizontal speed (in units of 0.001 m/s) |
| ASSISTANCE.wDir | WORD | 1 | Direction (heading) (0.01 deg) |
| ASSISTANCE.dwVertSpeed | DWORD | 1 | Vertical speed [0.001 m/s]. |
| ASSISTANCE.dwSpeedErr | DWORD | 1 | Estimated error in horizontal speed (in units of 0.001 m/s) |
| ASSISTANCE.wDirErr | WORD | 1 | Estimated error in direction (heading) (0.01 deg) |
| ASSISTANCE.dwVertSpeedErr | DWORD | 1 | Estimated error in vertical speed (in units of 0.001 m/s) |
Flags for the
ASSISTANCE structure
There flags define which fields are valid in the ASSISTANCE structure.
| Name | Value | Description |
|---|---|---|
| ASSISTANCE_ALT_VALID | 0x0001 | The altitude is valid. |
| ASSISTANCE_LATLONG_VALID | 0x0002 | The latitude and longitude are valid. |
| ASSISTANCE_TIME_VALID | 0x0004 | The time is valid. |
| ASSISTANCE_TICK_VALID | 0x0008 | The ticker value is valid. |
| ASSISTANCE_DRIFT_VALID | 0x0010 | The clock drift is valid. |
| ASSISTANCE_HEADING_VALID | 0x0020 | The heading is valid. |
| ASSISTANCE_SPEED_VALID | 0x0040 | The horizontal speed is valid. |
| ASSISTANCE_POS_VALID | 0x0080 | Currently not used. Reserved for future use. |
| ASSISTANCE_VEL_VALID | 0x0100 | Currently not used. Reserved for future use. |
| ASSISTANCE_PVT_VALID | (ASSISTANCE_POS_VALID | ASSISTANCE_VEL_VALID | ASSISTANCE_TIME_VALID | ASSISTANCE_DRIFT_VALID) | Currently not used. Reserved for future use. |
PULL_FIX format
Message payload deinition for PULL_FIX_MSG
Structure size: 1 words.
Structure size (uNav): 1 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| PULL_FIX.wDummy | WORD | 1 | Payload contents are not curerntly used. |
PARAM_CTRL format
PARAM_CTRL message payload. Contains a parameter access command.
Structure size: 3 words.
Structure size (uNav): 3 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| PARAM_CTRL.wFlags | WORD | 1 | Command identifier and modifier flags, see PARAM_CTRL_ defines. |
| PARAM_CTRL.wCmdParam | WORD | 1 | Command-specific parameter. The error code is returned here in an error reply message. For SET command: Number of paramters in Data array. |
| PARAM_CTRL.Data | WORD | 1 | Payload data, contents depends on the command, if "Get" command message, contains the parameter IDs to get if "Set" command or reply to "Get" command, contains the parameter values in an array of PARAM structures. |
Flags for the
PARAM_CTRL message.
| Name | Value | Description |
|---|---|---|
| PARAM_CTRL_FLAG_ISREPLY | 0x4000 | Command modifier flag: The message is a reply message. |
| PARAM_CTRL_FLAG_ERROR | 0x8000 | Command modifier flag: Error occurred. |
| PARAM_CTRL_MASK_CMD | 0x000f | Mask of the command identifier bits. |
| PARAM_CTRL_CMD_SET | 0x0001 | Command: Set given parameter values. |
| PARAM_CTRL_CMD_GET_LISTED | 0x0002 | Get listed params. Command: Get parameter values for parameter keys listed in 'Data'. Number of params is given in wCmdParam. Possibly inexisting parameters in list are omitted in the reply message |
| PARAM_CTRL_CMD_ERASEALL | 0x0003 | Command: Erase all parameters |
| PARAM_CTRL_CMD_GET_STRUCT | 0x0004 | Command: Get a structure filled with parameters. This differs from PARAM_CTRL_CMD_GET_LISTED in that the result contains the queried parameters in ready structure format, without interleaved parameter key information. This command performs remotely similar operation than function PRM_GetStruct() does. In command message, 'wCmdParam' has the structure size in words and 'Data' contains 0-terminated array of queried parameter keys. In reply message, wCmdParam has error message if error occurred. |
AGC format
AGC message payload. Contain measurement data or configuration data.
Structure size: 7 words.
Structure size (uNav): 7 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| AGC.dwTick | DWORD | 1 | Tick at AGC measurement instant |
| AGC.wFlags | WORD | 1 | Command/indication flags. For the flag values, see the AGC flags. - Set to auto mode for automatic gain control - Set manual the AGC values from the message. - Return gain measurement values. |
| AGC.wIGain | WORD | 1 | I gain control value. |
| AGC.wQGain | WORD | 1 | Q gain control value. |
| AGC.wIMeas | WORD | 1 | I gain meas value. |
| AGC.wQMeas | WORD | 1 | Q gain meas value. |
AGC flags and definitions.
These definitions are used in the AGC struct.
| Name | Value | Description |
|---|---|---|
| AGC_MEASURE_SCALE | 100 | Divide measure values by this constant to get percents. |
| AGC_FLAG_AUTOMODE | 0x0001 | When sending message to AGC routines: Set automode on/off |
| AGC_FLAG_MEASURES_VALID | 0x0002 | In reply message: Are the returned measured values valid |
PARAMS_CHANGED format
PARAMS_CHANGED message: This is a simple notification message without payload.
Structure size: 1 words.
Structure size (uNav): 1 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| PARAMS_CHANGED.wDummy | WORD | 1 | Not used. |
START_COMPLETED
format
START_COMPLETED message payload (nonmaskable). This message is sent to USER_1 task when the navigation start sequence has been completed.
Structure size: 1 words.
Structure size (uNav): 1 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| START_COMPLETED.wResult | WORD | 1 | Start result. E_OK if succesful, otherwise an error code. |
SYSTEM_START format
SYSTEM_START (nonmaskable) This message is sent by the system task when it starts as an indication of a system boot.
Structure size: 1 words.
Structure size (uNav): 1 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| SYSTEM_START.wFlags | WORD | 1 | Status flags for additional start indication (e.g. watchdog, fatal error etc.). Currently unused, written as zero. |
STOP_COMPLETED format
STOP_COMPLETED message payload (nonmaskable). This message is sent to USER_1 task when tha navigation stop sequence has been completed.
Structure size: 1 words.
Structure size (uNav): 1 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| STOP_COMPLETED.wResult | WORD | 1 | STOP result. E_OK if succesful, otherwise an error code. |
TRACK_DROP format
Structure size: 1 words.
Structure size (uNav): 1 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| TRACK_DROP.wChannel | WORD | 1 | Channel number (0-11). |
CORE_SYNC format
A message for configuring the GPS core synhcronisation.
Structure size: 10 words.
Structure size (uNav): 10 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| CORE_SYNC.dwTick | DWORD | 1 | The reference tick value. |
| CORE_SYNC.swFlags | WORD | 1 | Flags that specify what and how to synchronise. See the CORE_SYNC_... defines. |
| INT_GPS_TIME CORE_SYNC.GpsTow: GPS time that corresponds to the reference tick. | |||
| GPS_TIME CORE_SYNC.GpsTow.t: GPS week & TOW in ms. | |||
| CORE_SYNC.GpsTow.t.wWeek | WORD | 1 | Full week number. |
| CORE_SYNC.GpsTow.t.dwTowMs | DWORD | 1 | Time of week in milliseconds. |
| CORE_SYNC.GpsTow.lTowFrac | INT32 | 1 | Sub-millisecond fractional part [ps]. |
| CORE_SYNC.lClockDrift | INT32 | 1 | Clock drift. |
CORE_SYNC flags.
These bits are used in the CORE_SYNC message.
| Name | Value | Description |
|---|---|---|
| CORE_SYNC_RELATIVE | |
The time info is given relative to the current sampling. |
| CORE_SYNC_GPSTOW | 0x0001 | The time info is given relative to the current sampling. |
DEBUG_MSG_LOG format
| Name | Type | Dimension | Description |
|---|
DEBUG_COUNTER_STATS
format
| Name | Type | Dimension | Description |
|---|
STOP_TASK format
STOP_TASK message payload (nonmaskable). Control message for stopping a task.
Structure size: 1 words.
Structure size (uNav): 1 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| STOP_TASK.wFlags | WORD | 1 | Stop task flags |
FIRMWARE_INFO format
Firmware info for the boot block, used by the bootroutine to find code and data (size 112 words).
Structure size: 112 words.
Structure size (uNav): 112 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| FIRMWARE_INFO.dwId1 | DWORD | 1 | Firmware Id1 indicating that this is a valid FIRMWARE_INFO structure in memory |
| FIRMWARE_INFO.dwId2 | DWORD | 1 | Firmware Id2 |
| DATA_SECT_INFO FIRMWARE_INFO.ram_init_data: RAM initialization data section | |||
| FIRMWARE_INFO.ram_init_data.lOffset | INT32 | 1 | Offset of the section data, calculated as words from beginning of this section info structure |
| FIRMWARE_INFO.ram_init_data.dwLength | DWORD | 1 | Length of the section data area in words. |
| FIRMWARE_INFO.ram_init_data.dwCheckSum | DWORD | 1 | CRC checksum for the section data (currently 16-bit) |
| DATA_SECT_INFO FIRMWARE_INFO.far_code: far code section | |||
| FIRMWARE_INFO.far_code.lOffset | INT32 | 1 | Offset of the section data, calculated as words from beginning of this section info structure |
| FIRMWARE_INFO.far_code.dwLength | DWORD | 1 | Length of the section data area in words. |
| FIRMWARE_INFO.far_code.dwCheckSum | DWORD | 1 | CRC checksum for the section data (currently 16-bit) |
| DATA_SECT_INFO FIRMWARE_INFO.far_data: far data section | |||
| FIRMWARE_INFO.far_data.lOffset | INT32 | 1 | Offset of the section data, calculated as words from beginning of this section info structure |
| FIRMWARE_INFO.far_data.dwLength | DWORD | 1 | Length of the section data area in words. |
| FIRMWARE_INFO.far_data.dwCheckSum | DWORD | 1 | CRC checksum for the section data (currently 16-bit) |
| FIRMWARE_INFO.dwFWLocation | DWORD | 1 | Flash memory address where this firmware info structure should be located at, assumingly at top of the firmware memory area. This information is used in failure-proof firmware updating. |
| FIRMWARE_INFO.dwFirmwareBot | DWORD | 1 | Bottom flash memory address used by firmware. |
| FIRMWARE_INFO.wXmemTop | WORD | 1 | X-RAM memory top address used by static variables |
| FIRMWARE_INFO.wYmemTop | WORD | 1 | Y-RAM memory top address used by static variables |
| FIRMWARE_BUILD_INFO FIRMWARE_INFO.BuildInfo: Firmware build info | |||
| FIRMWARE_INFO.BuildInfo.wSWVersion | WORD | 1 | Software version major.minor |
| FIRMWARE_INFO.BuildInfo.wSWBuild | WORD | 1 | Software version build number |
| FIRMWARE_INFO.BuildInfo.wSDKVersion | WORD | 1 | SDK version major.minor |
| FIRMWARE_INFO.BuildInfo.wSDKBuild | WORD | 1 | SDK version build number |
| FIRMWARE_INFO.BuildInfo.dwCompileDate | DWORD | 1 | Compile date in format YYYYMMDD |
| FIRMWARE_INFO.BuildInfo.dwCompileTime | DWORD | 1 | Compile time in format HHMMSS |
| FIRMWARE_INFO.BuildInfo.wCustomerId | WORD | 1 | Company identifier (SDK license Id). |
| FIRMWARE_INFO.BuildInfo.wCompanyName[40] | WORD | 40 | Company name that build the firmware. |
| FIRMWARE_INFO.wExt[33] | WORD | 33 | Reserved. |
| FIRMWARE_INFO.dwCheck | DWORD | 1 | Checksum for the data. |
HARDWARE_INFO format
Hardware product information. size 96 words
Structure size: 96 words.
Structure size (uNav): 96 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| HARDWARE_INFO.dwId | DWORD | 1 | HARDWARE_INFO field identifier. |
| HW_PARAMS HARDWARE_INFO.hw: Generic hardware parameters | |||
| HARDWARE_INFO.hw.dwSerial | DWORD | 1 | Product serial number. |
| HARDWARE_INFO.hw.dwBom | DWORD | 1 | Product BOM identifier. |
| HARDWARE_INFO.hw.wProductType | WORD | 1 | Product type identifier. |
| HARDWARE_INFO.hw.wFlashMem | WORD | 1 | Flash memory info. LOBYTE: Flash memory size in megabits. HIBYTE: Flash memory type flags, see FLASH_FLAG_ defines. |
| HARDWARE_INFO.hw.wBaseBandVersion | WORD | 1 | Baseband version identifier. |
| HARDWARE_INFO.hw.wRFVersion | WORD | 1 | RF chip type identifier, see RF_ defines. |
| FREQ_PARAMS HARDWARE_INFO.hw.fplan: Receiver frequency plan parameters | |||
| HARDWARE_INFO.hw.fplan.lXtal | INT32 | 1 | TCXO frequency in Hz |
| HARDWARE_INFO.hw.fplan.iMclkNom | INT16 | 1 | XTAL to MCLK conversion nominator |
| HARDWARE_INFO.hw.fplan.iMclkDeNom | INT16 | 1 | XTAL to MCLK conversion nominator |
| HARDWARE_INFO.hw.fplan.iRF_Nom | INT16 | 1 | MCLK to LO conversion nominator |
| HARDWARE_INFO.hw.fplan.iRF_Denom | INT16 | 1 | MCLK to LO conversion denominator |
| HARDWARE_INFO.hw.fplan.lMixerOffset | INT32 | 1 | The mixer frequency shift in Hz (0 => mixer off) |
| HARDWARE_INFO.hw.fplan.iMsecTicks | INT16 | 1 | MSEC ticker (TME0) millisecond duration in CPU clock cycles. |
| HARDWARE_INFO.dwManufDate | DWORD | 1 | Manufacturing date. |
| HARDWARE_INFO.dwManufTime | DWORD | 1 | Manufacturing time. |
| HARDWARE_INFO.wHwVersion | WORD | 1 | HW design version. |
| HARDWARE_INFO.wCompanyId | WORD | 1 | Manufacturer identifier (SDK Id). |
| HARDWARE_INFO.wCompanyName[40] | WORD | 40 | Manufacturer name. |
| HARDWARE_INFO.wHwCompanyId | WORD | 1 | HW Manufacturer identifier (HW Id). |
| HARDWARE_INFO.wExt[28] | WORD | 28 | Reserved. |
| HARDWARE_INFO.dwCheck | DWORD | 1 | Checksum for the data. |
RF version identifier
These defines control encoding of RF version identifier in variable HW_PARAMS::wRFVersion.
| Name | Value | Description |
|---|---|---|
| RF_VERSION_MASK | 0x0fff | Mask of bits that define RF chip version type |
| RF_SONY_LNA_LOW_POWER | 0x8000 | If this flag is on, low power mode is used with Sony RF LNA. |
Flash memory field bit
separator masks
These masks separate the bits that specify various flash memory attributes in variable HW_PARAMS::wFlashMem.
| Name | Value | Description |
|---|---|---|
| FLASH_FLAG_MASK | 0xfc00 | Mask of bits that define the flash type flags |
| FLASH_SIZE_MASK | 0x00ff | Mask of bits that defines flash memory size |
| FLASH_FLAG_BOOT_MASK | 0xe000 | Mask of bits that defines flash memory boot type |
| FLASH_MASK_SPEED | 0x0300 | Mask of bits that defines flash memory access speed |
VERSION_INFO format
System version info, useful for e.g. deducing compatibility with host tool.
Structure size: 11 words.
Structure size (uNav): 11 words.
| Name | Type | Dimension | Description |
|---|---|---|---|
| VERSION_INFO.wFlags | WORD | 1 | Flags, see VER_INFO_FLAG_... defines |
| VERSION_INFO.wCurrentITalkVersion | WORD | 1 | Current iTalk protocol+message version identifier. |
| VERSION_INFO.wCompatibleITalkVersion | WORD | 1 | Largest backward-compatible iTalk protocol+message version identifier. |
| VERSION_INFO.wReserved[8] | WORD | 8 | Reserved for future use. |