iSuiteTM MP SDK Protocols - Payload Format



Introduction
Messages related to acquisition and tracking: Messages related to searching: Messages related to data decoding: Messages related to navigation: Control messages: Control messages: Control messages with variable format:

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:

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:
  1. Command modifier == 0x0010: The data is written to flash memory.
  2. Command modifier == 0x0020: The data is written to Y memory.
  3. Command modifier == 0x0000: The data is written to X memory.

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:
  1. Command modifier == 0x0020: The data is read from Y memory.
  2. Command modifier == 0x0000: The data is read from X memory.
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.


Go to beginning
Fastrax Oy