sbp 2.3.9 → 2.3.12
raw patch · 22 files changed
+897/−858 lines, 22 files
Files
- sbp.cabal +1/−1
- src/SwiftNav/SBP/Acquisition.hs +39/−39
- src/SwiftNav/SBP/Bootload.hs +5/−5
- src/SwiftNav/SBP/ExtEvents.hs +5/−5
- src/SwiftNav/SBP/FileIo.hs +17/−17
- src/SwiftNav/SBP/Flash.hs +17/−17
- src/SwiftNav/SBP/Gnss.hs +14/−14
- src/SwiftNav/SBP/Imu.hs +11/−11
- src/SwiftNav/SBP/Logging.hs +7/−7
- src/SwiftNav/SBP/Mag.hs +5/−5
- src/SwiftNav/SBP/Navigation.hs +186/−186
- src/SwiftNav/SBP/Ndb.hs +8/−8
- src/SwiftNav/SBP/Observation.hs +306/−306
- src/SwiftNav/SBP/Orientation.hs +27/−27
- src/SwiftNav/SBP/Piksi.hs +61/−61
- src/SwiftNav/SBP/Sbas.hs +4/−4
- src/SwiftNav/SBP/Settings.hs +78/−39
- src/SwiftNav/SBP/Ssr.hs +35/−35
- src/SwiftNav/SBP/System.hs +9/−9
- src/SwiftNav/SBP/Tracking.hs +58/−58
- src/SwiftNav/SBP/User.hs +1/−1
- src/SwiftNav/SBP/Vehicle.hs +3/−3
sbp.cabal view
@@ -1,5 +1,5 @@ name: sbp-version: 2.3.9+version: 2.3.12 synopsis: SwiftNav's SBP Library homepage: https://github.com/swift-nav/libsbp license: LGPL-3
@@ -46,13 +46,13 @@ -- contains the parameters of the point in the acquisition search space with -- the best carrier-to-noise (CN/0) ratio. data MsgAcqResult = MsgAcqResult- { _msgAcqResult_cn0 :: !Float+ { _msgAcqResult_cn0 :: !float -- ^ CN/0 of best point- , _msgAcqResult_cp :: !Float+ , _msgAcqResult_cp :: !float -- ^ Code phase of best point- , _msgAcqResult_cf :: !Float+ , _msgAcqResult_cf :: !float -- ^ Carrier frequency of best point- , _msgAcqResult_sid :: !GnssSignal+ , _msgAcqResult_sid :: !gnss.GnssSignal -- ^ GNSS signal for which acquisition was attempted } deriving ( Show, Read, Eq ) @@ -81,11 +81,11 @@ -- -- Deprecated. data MsgAcqResultDepC = MsgAcqResultDepC- { _msgAcqResultDepC_cn0 :: !Float+ { _msgAcqResultDepC_cn0 :: !float -- ^ CN/0 of best point- , _msgAcqResultDepC_cp :: !Float+ , _msgAcqResultDepC_cp :: !float -- ^ Code phase of best point- , _msgAcqResultDepC_cf :: !Float+ , _msgAcqResultDepC_cf :: !float -- ^ Carrier frequency of best point , _msgAcqResultDepC_sid :: !GnssSignalDep -- ^ GNSS signal for which acquisition was attempted@@ -116,12 +116,12 @@ -- -- Deprecated. data MsgAcqResultDepB = MsgAcqResultDepB- { _msgAcqResultDepB_snr :: !Float+ { _msgAcqResultDepB_snr :: !float -- ^ SNR of best point. Currently in arbitrary SNR points, but will be in -- units of dB Hz in a later revision of this message.- , _msgAcqResultDepB_cp :: !Float+ , _msgAcqResultDepB_cp :: !float -- ^ Code phase of best point- , _msgAcqResultDepB_cf :: !Float+ , _msgAcqResultDepB_cf :: !float -- ^ Carrier frequency of best point , _msgAcqResultDepB_sid :: !GnssSignalDep -- ^ GNSS signal for which acquisition was attempted@@ -152,14 +152,14 @@ -- -- Deprecated. data MsgAcqResultDepA = MsgAcqResultDepA- { _msgAcqResultDepA_snr :: !Float+ { _msgAcqResultDepA_snr :: !float -- ^ SNR of best point. Currently dimensonless, but will have units of dB Hz -- in the revision of this message.- , _msgAcqResultDepA_cp :: !Float+ , _msgAcqResultDepA_cp :: !float -- ^ Code phase of best point- , _msgAcqResultDepA_cf :: !Float+ , _msgAcqResultDepA_cf :: !float -- ^ Carrier frequency of best point- , _msgAcqResultDepA_prn :: !Word8+ , _msgAcqResultDepA_prn :: !uint32 -- ^ PRN-1 identifier of the satellite signal for which acquisition was -- attempted } deriving ( Show, Read, Eq )@@ -188,29 +188,29 @@ -- profile during acquisition time. The message is used to debug and measure -- the performance. data AcqSvProfile = AcqSvProfile- { _acqSvProfile_job_type :: !Word8+ { _acqSvProfile_job_type :: !uint32 -- ^ SV search job type (deep, fallback, etc)- , _acqSvProfile_status :: !Word8+ , _acqSvProfile_status :: !uint32 -- ^ Acquisition status 1 is Success, 0 is Failure- , _acqSvProfile_cn0 :: !Word16+ , _acqSvProfile_cn0 :: !uint32 -- ^ CN0 value. Only valid if status is '1'- , _acqSvProfile_int_time :: !Word8+ , _acqSvProfile_int_time :: !uint32 -- ^ Acquisition integration time- , _acqSvProfile_sid :: !GnssSignal+ , _acqSvProfile_sid :: !gnss.GnssSignal -- ^ GNSS signal for which acquisition was attempted- , _acqSvProfile_bin_width :: !Word16+ , _acqSvProfile_bin_width :: !uint32 -- ^ Acq frequency bin width- , _acqSvProfile_timestamp :: !Word32+ , _acqSvProfile_timestamp :: !uint32 -- ^ Timestamp of the job complete event- , _acqSvProfile_time_spent :: !Word32+ , _acqSvProfile_time_spent :: !uint32 -- ^ Time spent to search for sid.code- , _acqSvProfile_cf_min :: !Int32+ , _acqSvProfile_cf_min :: !sint32 -- ^ Doppler range lowest frequency- , _acqSvProfile_cf_max :: !Int32+ , _acqSvProfile_cf_max :: !sint32 -- ^ Doppler range highest frequency- , _acqSvProfile_cf :: !Int32+ , _acqSvProfile_cf :: !sint32 -- ^ Doppler value of detected peak. Only valid if status is '1'- , _acqSvProfile_cp :: !Word32+ , _acqSvProfile_cp :: !uint32 -- ^ Codephase of detected peak. Only valid if status is '1' } deriving ( Show, Read, Eq ) @@ -251,29 +251,29 @@ -- -- Deprecated. data AcqSvProfileDep = AcqSvProfileDep- { _acqSvProfileDep_job_type :: !Word8+ { _acqSvProfileDep_job_type :: !uint32 -- ^ SV search job type (deep, fallback, etc)- , _acqSvProfileDep_status :: !Word8+ , _acqSvProfileDep_status :: !uint32 -- ^ Acquisition status 1 is Success, 0 is Failure- , _acqSvProfileDep_cn0 :: !Word16+ , _acqSvProfileDep_cn0 :: !uint32 -- ^ CN0 value. Only valid if status is '1'- , _acqSvProfileDep_int_time :: !Word8+ , _acqSvProfileDep_int_time :: !uint32 -- ^ Acquisition integration time , _acqSvProfileDep_sid :: !GnssSignalDep -- ^ GNSS signal for which acquisition was attempted- , _acqSvProfileDep_bin_width :: !Word16+ , _acqSvProfileDep_bin_width :: !uint32 -- ^ Acq frequency bin width- , _acqSvProfileDep_timestamp :: !Word32+ , _acqSvProfileDep_timestamp :: !uint32 -- ^ Timestamp of the job complete event- , _acqSvProfileDep_time_spent :: !Word32+ , _acqSvProfileDep_time_spent :: !uint32 -- ^ Time spent to search for sid.code- , _acqSvProfileDep_cf_min :: !Int32+ , _acqSvProfileDep_cf_min :: !sint32 -- ^ Doppler range lowest frequency- , _acqSvProfileDep_cf_max :: !Int32+ , _acqSvProfileDep_cf_max :: !sint32 -- ^ Doppler range highest frequency- , _acqSvProfileDep_cf :: !Int32+ , _acqSvProfileDep_cf :: !sint32 -- ^ Doppler value of detected peak. Only valid if status is '1'- , _acqSvProfileDep_cp :: !Word32+ , _acqSvProfileDep_cp :: !uint32 -- ^ Codephase of detected peak. Only valid if status is '1' } deriving ( Show, Read, Eq ) @@ -318,7 +318,7 @@ -- The message describes all SV profiles during acquisition time. The message -- is used to debug and measure the performance. data MsgAcqSvProfile = MsgAcqSvProfile- { _msgAcqSvProfile_acq_sv_profile :: ![AcqSvProfile]+ { _msgAcqSvProfile_acq_sv_profile :: !repeated AcqSvProfile -- ^ SV profiles during acquisition time } deriving ( Show, Read, Eq ) @@ -341,7 +341,7 @@ -- -- Deprecated. data MsgAcqSvProfileDep = MsgAcqSvProfileDep- { _msgAcqSvProfileDep_acq_sv_profile :: ![AcqSvProfileDep]+ { _msgAcqSvProfileDep_acq_sv_profile :: !repeated AcqSvProfileDep -- ^ SV profiles during acquisition time } deriving ( Show, Read, Eq )
@@ -68,9 +68,9 @@ -- MSG_BOOTLOADER_HANDSHAKE_REQ. The payload contains the bootloader version -- number and the SBP protocol version number. data MsgBootloaderHandshakeResp = MsgBootloaderHandshakeResp- { _msgBootloaderHandshakeResp_flags :: !Word32+ { _msgBootloaderHandshakeResp_flags :: !uint32 -- ^ Bootloader flags- , _msgBootloaderHandshakeResp_version :: !Text+ , _msgBootloaderHandshakeResp_version :: !string -- ^ Bootloader version number } deriving ( Show, Read, Eq ) @@ -95,7 +95,7 @@ -- -- The host initiates the bootloader to jump to the application. data MsgBootloaderJumpToApp = MsgBootloaderJumpToApp- { _msgBootloaderJumpToApp_jump :: !Word8+ { _msgBootloaderJumpToApp_jump :: !uint32 -- ^ Ignored by the device } deriving ( Show, Read, Eq ) @@ -146,7 +146,7 @@ -- that this ID is tied to the FPGA, and not related to the Piksi's serial -- number. data MsgNapDeviceDnaResp = MsgNapDeviceDnaResp- { _msgNapDeviceDnaResp_dna :: ![Word8]+ { _msgNapDeviceDnaResp_dna :: !repeated uint32 -- ^ 57-bit SwiftNAP FPGA Device ID. Remaining bits are padded on the right. } deriving ( Show, Read, Eq ) @@ -169,7 +169,7 @@ -- -- Deprecated. data MsgBootloaderHandshakeDepA = MsgBootloaderHandshakeDepA- { _msgBootloaderHandshakeDepA_handshake :: ![Word8]+ { _msgBootloaderHandshakeDepA_handshake :: !repeated uint32 -- ^ Version number string (not NULL terminated) } deriving ( Show, Read, Eq )
@@ -44,16 +44,16 @@ -- Reports detection of an external event, the GPS time it occurred, which pin -- it was and whether it was rising or falling. data MsgExtEvent = MsgExtEvent- { _msgExtEvent_wn :: !Word16+ { _msgExtEvent_wn :: !uint32 -- ^ GPS week number- , _msgExtEvent_tow :: !Word32+ , _msgExtEvent_tow :: !uint32 -- ^ GPS time of week rounded to the nearest millisecond- , _msgExtEvent_ns_residual :: !Int32+ , _msgExtEvent_ns_residual :: !sint32 -- ^ Nanosecond residual of millisecond-rounded TOW (ranges from -500000 to -- 500000)- , _msgExtEvent_flags :: !Word8+ , _msgExtEvent_flags :: !uint32 -- ^ Flags- , _msgExtEvent_pin :: !Word8+ , _msgExtEvent_pin :: !uint32 -- ^ Pin number. 0..9 = DEBUG0..9. } deriving ( Show, Read, Eq )
@@ -53,13 +53,13 @@ -- fileio read message". A device will only respond to this message when it is -- received from sender ID 0x42. data MsgFileioReadReq = MsgFileioReadReq- { _msgFileioReadReq_sequence :: !Word32+ { _msgFileioReadReq_sequence :: !uint32 -- ^ Read sequence number- , _msgFileioReadReq_offset :: !Word32+ , _msgFileioReadReq_offset :: !uint32 -- ^ File offset- , _msgFileioReadReq_chunk_size :: !Word8+ , _msgFileioReadReq_chunk_size :: !uint32 -- ^ Chunk size to read- , _msgFileioReadReq_filename :: !Text+ , _msgFileioReadReq_filename :: !string -- ^ Name of the file to read from } deriving ( Show, Read, Eq ) @@ -91,9 +91,9 @@ -- length field indicates how many bytes were succesfully read. The sequence -- number in the response is preserved from the request. data MsgFileioReadResp = MsgFileioReadResp- { _msgFileioReadResp_sequence :: !Word32+ { _msgFileioReadResp_sequence :: !uint32 -- ^ Read sequence number- , _msgFileioReadResp_contents :: ![Word8]+ , _msgFileioReadResp_contents :: !repeated uint32 -- ^ Contents of read file } deriving ( Show, Read, Eq ) @@ -125,11 +125,11 @@ -- MSG_PRINT message will print "Invalid fileio read message". A device will -- only respond to this message when it is received from sender ID 0x42. data MsgFileioReadDirReq = MsgFileioReadDirReq- { _msgFileioReadDirReq_sequence :: !Word32+ { _msgFileioReadDirReq_sequence :: !uint32 -- ^ Read sequence number- , _msgFileioReadDirReq_offset :: !Word32+ , _msgFileioReadDirReq_offset :: !uint32 -- ^ The offset to skip the first n elements of the file list- , _msgFileioReadDirReq_dirname :: !Text+ , _msgFileioReadDirReq_dirname :: !string -- ^ Name of the directory to list } deriving ( Show, Read, Eq ) @@ -160,9 +160,9 @@ -- of the list is identified by an entry containing just the character 0xFF. -- The sequence number in the response is preserved from the request. data MsgFileioReadDirResp = MsgFileioReadDirResp- { _msgFileioReadDirResp_sequence :: !Word32+ { _msgFileioReadDirResp_sequence :: !uint32 -- ^ Read sequence number- , _msgFileioReadDirResp_contents :: ![Word8]+ , _msgFileioReadDirResp_contents :: !repeated uint32 -- ^ Contents of read directory } deriving ( Show, Read, Eq ) @@ -190,7 +190,7 @@ -- message". A device will only process this message when it is received from -- sender ID 0x42. data MsgFileioRemove = MsgFileioRemove- { _msgFileioRemove_filename :: !Text+ { _msgFileioRemove_filename :: !string -- ^ Name of the file to delete } deriving ( Show, Read, Eq ) @@ -219,13 +219,13 @@ -- message". A device will only process this message when it is received from -- sender ID 0x42. data MsgFileioWriteReq = MsgFileioWriteReq- { _msgFileioWriteReq_sequence :: !Word32+ { _msgFileioWriteReq_sequence :: !uint32 -- ^ Write sequence number- , _msgFileioWriteReq_offset :: !Word32+ , _msgFileioWriteReq_offset :: !uint32 -- ^ Offset into the file at which to start writing in bytes- , _msgFileioWriteReq_filename :: !Text+ , _msgFileioWriteReq_filename :: !string -- ^ Name of the file to write to- , _msgFileioWriteReq_data :: ![Word8]+ , _msgFileioWriteReq_data :: !repeated uint32 -- ^ Variable-length array of data to write } deriving ( Show, Read, Eq ) @@ -257,7 +257,7 @@ -- MSG_FILEIO_WRITE_REQ message to check integrity of the write. The sequence -- number in the response is preserved from the request. data MsgFileioWriteResp = MsgFileioWriteResp- { _msgFileioWriteResp_sequence :: !Word32+ { _msgFileioWriteResp_sequence :: !uint32 -- ^ Write sequence number } deriving ( Show, Read, Eq )
@@ -49,13 +49,13 @@ -- if the maximum write size is exceeded. Note that the sector-containing -- addresses must be erased before addresses can be programmed. data MsgFlashProgram = MsgFlashProgram- { _msgFlashProgram_target :: !Word8+ { _msgFlashProgram_target :: !uint32 -- ^ Target flags- , _msgFlashProgram_addr_start :: ![Word8]+ , _msgFlashProgram_addr_start :: !repeated uint32 -- ^ Starting address offset to program- , _msgFlashProgram_addr_len :: !Word8+ , _msgFlashProgram_addr_len :: !uint32 -- ^ Length of set of addresses to program, counting up from starting address- , _msgFlashProgram_data :: ![Word8]+ , _msgFlashProgram_data :: !repeated uint32 -- ^ Data to program addresses with, with length N=addr_len } deriving ( Show, Read, Eq ) @@ -87,7 +87,7 @@ -- MSG_FLASH_READ_REQ, or MSG_FLASH_PROGRAM, may return this message on -- failure. data MsgFlashDone = MsgFlashDone- { _msgFlashDone_response :: !Word8+ { _msgFlashDone_response :: !uint32 -- ^ Response flags } deriving ( Show, Read, Eq ) @@ -115,11 +115,11 @@ -- exceeded or FLASH_INVALID_ADDR (3) if the address is outside of the allowed -- range. data MsgFlashReadReq = MsgFlashReadReq- { _msgFlashReadReq_target :: !Word8+ { _msgFlashReadReq_target :: !uint32 -- ^ Target flags- , _msgFlashReadReq_addr_start :: ![Word8]+ , _msgFlashReadReq_addr_start :: !repeated uint32 -- ^ Starting address offset to read from- , _msgFlashReadReq_addr_len :: !Word8+ , _msgFlashReadReq_addr_len :: !uint32 -- ^ Length of set of addresses to read, counting up from starting address } deriving ( Show, Read, Eq ) @@ -151,11 +151,11 @@ -- exceeded or FLASH_INVALID_ADDR (3) if the address is outside of the allowed -- range. data MsgFlashReadResp = MsgFlashReadResp- { _msgFlashReadResp_target :: !Word8+ { _msgFlashReadResp_target :: !uint32 -- ^ Target flags- , _msgFlashReadResp_addr_start :: ![Word8]+ , _msgFlashReadResp_addr_start :: !repeated uint32 -- ^ Starting address offset to read from- , _msgFlashReadResp_addr_len :: !Word8+ , _msgFlashReadResp_addr_len :: !uint32 -- ^ Length of set of addresses to read, counting up from starting address } deriving ( Show, Read, Eq ) @@ -185,9 +185,9 @@ -- message containing the return code - FLASH_OK (0) on success or -- FLASH_INVALID_FLASH (1) if the flash specified is invalid. data MsgFlashErase = MsgFlashErase- { _msgFlashErase_target :: !Word8+ { _msgFlashErase_target :: !uint32 -- ^ Target flags- , _msgFlashErase_sector_num :: !Word32+ , _msgFlashErase_sector_num :: !uint32 -- ^ Flash sector number to erase (0-11 for the STM, 0-15 for the M25) } deriving ( Show, Read, Eq ) @@ -213,7 +213,7 @@ -- The flash lock message locks a sector of the STM flash memory. The device -- replies with a MSG_FLASH_DONE message. data MsgStmFlashLockSector = MsgStmFlashLockSector- { _msgStmFlashLockSector_sector :: !Word32+ { _msgStmFlashLockSector_sector :: !uint32 -- ^ Flash sector number to lock } deriving ( Show, Read, Eq ) @@ -237,7 +237,7 @@ -- The flash unlock message unlocks a sector of the STM flash memory. The -- device replies with a MSG_FLASH_DONE message. data MsgStmFlashUnlockSector = MsgStmFlashUnlockSector- { _msgStmFlashUnlockSector_sector :: !Word32+ { _msgStmFlashUnlockSector_sector :: !uint32 -- ^ Flash sector number to unlock } deriving ( Show, Read, Eq ) @@ -283,7 +283,7 @@ -- ID by sending a MSG_STM_UNIQUE_ID_REQ. The device responds with a -- MSG_STM_UNIQUE_ID_RESP with the 12-byte unique ID in the payload.. data MsgStmUniqueIdResp = MsgStmUniqueIdResp- { _msgStmUniqueIdResp_stm_id :: ![Word8]+ { _msgStmUniqueIdResp_stm_id :: !repeated uint32 -- ^ Device unique ID } deriving ( Show, Read, Eq ) @@ -307,7 +307,7 @@ -- The flash status message writes to the 8-bit M25 flash status register. The -- device replies with a MSG_FLASH_DONE message. data MsgM25FlashWriteStatus = MsgM25FlashWriteStatus- { _msgM25FlashWriteStatus_status :: ![Word8]+ { _msgM25FlashWriteStatus_status :: !repeated uint32 -- ^ Byte to write to the M25 flash status register } deriving ( Show, Read, Eq )
@@ -39,9 +39,9 @@ -- -- Signal identifier containing constellation, band, and satellite identifier data GnssSignal = GnssSignal- { _gnssSignal_sat :: !Word8+ { _gnssSignal_sat :: !uint32 -- ^ Constellation-specific satellite identifier- , _gnssSignal_code :: !Word8+ , _gnssSignal_code :: !uint32 -- ^ Signal constellation, band and code } deriving ( Show, Read, Eq ) @@ -62,13 +62,13 @@ -- -- Deprecated. data GnssSignalDep = GnssSignalDep- { _gnssSignalDep_sat :: !Word16+ { _gnssSignalDep_sat :: !uint32 -- ^ Constellation-specific satellite identifier. Note: unlike GnssSignal, -- GPS satellites are encoded as (PRN - 1). Other constellations do not -- have this offset.- , _gnssSignalDep_code :: !Word8+ , _gnssSignalDep_code :: !uint32 -- ^ Signal constellation, band and code- , _gnssSignalDep_reserved :: !Word8+ , _gnssSignalDep_reserved :: !uint32 -- ^ Reserved } deriving ( Show, Read, Eq ) @@ -92,9 +92,9 @@ -- A wire-appropriate GPS time, defined as the number of milliseconds since -- beginning of the week on the Saturday/Sunday transition. data GpsTimeDep = GpsTimeDep- { _gpsTimeDep_tow :: !Word32+ { _gpsTimeDep_tow :: !uint32 -- ^ Milliseconds since start of GPS week- , _gpsTimeDep_wn :: !Word16+ , _gpsTimeDep_wn :: !uint32 -- ^ GPS week number } deriving ( Show, Read, Eq ) @@ -116,9 +116,9 @@ -- A GPS time, defined as the number of seconds since beginning of the week on -- the Saturday/Sunday transition. data GpsTimeSec = GpsTimeSec- { _gpsTimeSec_tow :: !Word32+ { _gpsTimeSec_tow :: !uint32 -- ^ Seconds since start of GPS week- , _gpsTimeSec_wn :: !Word16+ , _gpsTimeSec_wn :: !uint32 -- ^ GPS week number } deriving ( Show, Read, Eq ) @@ -141,12 +141,12 @@ -- beginning of the week on the Saturday/Sunday transition. In most cases, -- observations are epoch aligned so ns field will be 0. data GpsTime = GpsTime- { _gpsTime_tow :: !Word32+ { _gpsTime_tow :: !uint32 -- ^ Milliseconds since start of GPS week- , _gpsTime_ns_residual :: !Int32+ , _gpsTime_ns_residual :: !sint32 -- ^ Nanosecond residual of millisecond-rounded TOW (ranges from -500000 to -- 500000)- , _gpsTime_wn :: !Word16+ , _gpsTime_wn :: !uint32 -- ^ GPS week number } deriving ( Show, Read, Eq ) @@ -171,9 +171,9 @@ -- number with Q32.8 layout, i.e. 32-bits of whole cycles and 8-bits of -- fractional cycles. This phase has the same sign as the pseudorange. data CarrierPhase = CarrierPhase- { _carrierPhase_i :: !Int32+ { _carrierPhase_i :: !sint32 -- ^ Carrier phase whole cycles- , _carrierPhase_f :: !Word8+ , _carrierPhase_f :: !uint32 -- ^ Carrier phase fractional part } deriving ( Show, Read, Eq )
@@ -44,22 +44,22 @@ -- gyroscope readings. The sense of the measurements are to be aligned with -- the indications on the device itself. data MsgImuRaw = MsgImuRaw- { _msgImuRaw_tow :: !Word32+ { _msgImuRaw_tow :: !uint32 -- ^ Milliseconds since start of GPS week. If the high bit is set, the time -- is unknown or invalid.- , _msgImuRaw_tow_f :: !Word8+ , _msgImuRaw_tow_f :: !uint32 -- ^ Milliseconds since start of GPS week, fractional part- , _msgImuRaw_acc_x :: !Int16+ , _msgImuRaw_acc_x :: !sint32 -- ^ Acceleration in the IMU frame X axis- , _msgImuRaw_acc_y :: !Int16+ , _msgImuRaw_acc_y :: !sint32 -- ^ Acceleration in the IMU frame Y axis- , _msgImuRaw_acc_z :: !Int16+ , _msgImuRaw_acc_z :: !sint32 -- ^ Acceleration in the IMU frame Z axis- , _msgImuRaw_gyr_x :: !Int16+ , _msgImuRaw_gyr_x :: !sint32 -- ^ Angular rate around IMU frame X axis- , _msgImuRaw_gyr_y :: !Int16+ , _msgImuRaw_gyr_y :: !sint32 -- ^ Angular rate around IMU frame Y axis- , _msgImuRaw_gyr_z :: !Int16+ , _msgImuRaw_gyr_z :: !sint32 -- ^ Angular rate around IMU frame Z axis } deriving ( Show, Read, Eq ) @@ -98,11 +98,11 @@ -- always be consistent but the rest of the payload is device specific and -- depends on the value of `imu_type`. data MsgImuAux = MsgImuAux- { _msgImuAux_imu_type :: !Word8+ { _msgImuAux_imu_type :: !uint32 -- ^ IMU type- , _msgImuAux_temp :: !Int16+ , _msgImuAux_temp :: !sint32 -- ^ Raw IMU temperature- , _msgImuAux_imu_conf :: !Word8+ , _msgImuAux_imu_conf :: !uint32 -- ^ IMU configuration } deriving ( Show, Read, Eq )
@@ -44,9 +44,9 @@ -- containing errors, warnings and informational messages at ERROR, WARNING, -- DEBUG, INFO logging levels. data MsgLog = MsgLog- { _msgLog_level :: !Word8+ { _msgLog_level :: !uint32 -- ^ Logging level- , _msgLog_text :: !Text+ , _msgLog_text :: !string -- ^ Human-readable string } deriving ( Show, Read, Eq ) @@ -77,11 +77,11 @@ -- Protocol 0 represents SBP and the remaining values are implementation -- defined. data MsgFwd = MsgFwd- { _msgFwd_source :: !Word8+ { _msgFwd_source :: !uint32 -- ^ source identifier- , _msgFwd_protocol :: !Word8+ , _msgFwd_protocol :: !uint32 -- ^ protocol identifier- , _msgFwd_fwd_payload :: !Text+ , _msgFwd_fwd_payload :: !string -- ^ variable length wrapped binary message } deriving ( Show, Read, Eq ) @@ -108,7 +108,7 @@ -- -- All the news fit to tweet. data MsgTweet = MsgTweet- { _msgTweet_tweet :: !Text+ { _msgTweet_tweet :: !string -- ^ Human-readable string } deriving ( Show, Read, Eq ) @@ -131,7 +131,7 @@ -- -- Deprecated. data MsgPrintDep = MsgPrintDep- { _msgPrintDep_text :: !Text+ { _msgPrintDep_text :: !string -- ^ Human-readable string } deriving ( Show, Read, Eq )
@@ -42,16 +42,16 @@ -- -- Raw data from the magnetometer. data MsgMagRaw = MsgMagRaw- { _msgMagRaw_tow :: !Word32+ { _msgMagRaw_tow :: !uint32 -- ^ Milliseconds since start of GPS week. If the high bit is set, the time -- is unknown or invalid.- , _msgMagRaw_tow_f :: !Word8+ , _msgMagRaw_tow_f :: !uint32 -- ^ Milliseconds since start of GPS week, fractional part- , _msgMagRaw_mag_x :: !Int16+ , _msgMagRaw_mag_x :: !sint32 -- ^ Magnetic field in the body frame X axis- , _msgMagRaw_mag_y :: !Int16+ , _msgMagRaw_mag_y :: !sint32 -- ^ Magnetic field in the body frame Y axis- , _msgMagRaw_mag_z :: !Int16+ , _msgMagRaw_mag_z :: !sint32 -- ^ Magnetic field in the body frame Z axis } deriving ( Show, Read, Eq )
@@ -63,14 +63,14 @@ -- other navigation messages referenced to the same time (but lacking the ns -- field) and indicates a more precise time of these messages. data MsgGpsTime = MsgGpsTime- { _msgGpsTime_wn :: !Word16+ { _msgGpsTime_wn :: !uint32 -- ^ GPS week number- , _msgGpsTime_tow :: !Word32+ , _msgGpsTime_tow :: !uint32 -- ^ GPS time of week rounded to the nearest millisecond- , _msgGpsTime_ns_residual :: !Int32+ , _msgGpsTime_ns_residual :: !sint32 -- ^ Nanosecond residual of millisecond-rounded TOW (ranges from -500000 to -- 500000)- , _msgGpsTime_flags :: !Word8+ , _msgGpsTime_flags :: !uint32 -- ^ Status flags (reserved) } deriving ( Show, Read, Eq ) @@ -101,23 +101,23 @@ -- which indicate the source of the UTC offset value and source of the time -- fix. data MsgUtcTime = MsgUtcTime- { _msgUtcTime_flags :: !Word8+ { _msgUtcTime_flags :: !uint32 -- ^ Indicates source and time validity- , _msgUtcTime_tow :: !Word32+ , _msgUtcTime_tow :: !uint32 -- ^ GPS time of week rounded to the nearest millisecond- , _msgUtcTime_year :: !Word16+ , _msgUtcTime_year :: !uint32 -- ^ Year- , _msgUtcTime_month :: !Word8+ , _msgUtcTime_month :: !uint32 -- ^ Month (range 1 .. 12)- , _msgUtcTime_day :: !Word8+ , _msgUtcTime_day :: !uint32 -- ^ days in the month (range 1-31)- , _msgUtcTime_hours :: !Word8+ , _msgUtcTime_hours :: !uint32 -- ^ hours of day (range 0-23)- , _msgUtcTime_minutes :: !Word8+ , _msgUtcTime_minutes :: !uint32 -- ^ minutes of hour (range 0-59)- , _msgUtcTime_seconds :: !Word8+ , _msgUtcTime_seconds :: !uint32 -- ^ seconds of minute (range 0-60) rounded down- , _msgUtcTime_ns :: !Word32+ , _msgUtcTime_ns :: !uint32 -- ^ nanoseconds of second (range 0-999999999) } deriving ( Show, Read, Eq ) @@ -159,19 +159,19 @@ -- indicated whether the DOP reported corresponds to differential or SPP -- solution. data MsgDops = MsgDops- { _msgDops_tow :: !Word32+ { _msgDops_tow :: !uint32 -- ^ GPS Time of Week- , _msgDops_gdop :: !Word16+ , _msgDops_gdop :: !uint32 -- ^ Geometric Dilution of Precision- , _msgDops_pdop :: !Word16+ , _msgDops_pdop :: !uint32 -- ^ Position Dilution of Precision- , _msgDops_tdop :: !Word16+ , _msgDops_tdop :: !uint32 -- ^ Time Dilution of Precision- , _msgDops_hdop :: !Word16+ , _msgDops_hdop :: !uint32 -- ^ Horizontal Dilution of Precision- , _msgDops_vdop :: !Word16+ , _msgDops_vdop :: !uint32 -- ^ Vertical Dilution of Precision- , _msgDops_flags :: !Word8+ , _msgDops_flags :: !uint32 -- ^ Indicates the position solution with which the DOPS message corresponds } deriving ( Show, Read, Eq ) @@ -212,19 +212,19 @@ -- baseline vector. The full GPS time is given by the preceding MSG_GPS_TIME -- with the matching time-of-week (tow). data MsgPosEcef = MsgPosEcef- { _msgPosEcef_tow :: !Word32+ { _msgPosEcef_tow :: !uint32 -- ^ GPS Time of Week- , _msgPosEcef_x :: !Double+ , _msgPosEcef_x :: !double -- ^ ECEF X coordinate- , _msgPosEcef_y :: !Double+ , _msgPosEcef_y :: !double -- ^ ECEF Y coordinate- , _msgPosEcef_z :: !Double+ , _msgPosEcef_z :: !double -- ^ ECEF Z coordinate- , _msgPosEcef_accuracy :: !Word16+ , _msgPosEcef_accuracy :: !uint32 -- ^ Position estimated standard deviation- , _msgPosEcef_n_sats :: !Word8+ , _msgPosEcef_n_sats :: !uint32 -- ^ Number of satellites used in solution- , _msgPosEcef_flags :: !Word8+ , _msgPosEcef_flags :: !uint32 -- ^ Status flags } deriving ( Show, Read, Eq ) @@ -266,29 +266,29 @@ -- baseline vector. The full GPS time is given by the preceding MSG_GPS_TIME -- with the matching time-of-week (tow). data MsgPosEcefCov = MsgPosEcefCov- { _msgPosEcefCov_tow :: !Word32+ { _msgPosEcefCov_tow :: !uint32 -- ^ GPS Time of Week- , _msgPosEcefCov_x :: !Double+ , _msgPosEcefCov_x :: !double -- ^ ECEF X coordinate- , _msgPosEcefCov_y :: !Double+ , _msgPosEcefCov_y :: !double -- ^ ECEF Y coordinate- , _msgPosEcefCov_z :: !Double+ , _msgPosEcefCov_z :: !double -- ^ ECEF Z coordinate- , _msgPosEcefCov_cov_x_x :: !Float+ , _msgPosEcefCov_cov_x_x :: !float -- ^ Estimated variance of x- , _msgPosEcefCov_cov_x_y :: !Float+ , _msgPosEcefCov_cov_x_y :: !float -- ^ Estimated covariance of x and y- , _msgPosEcefCov_cov_x_z :: !Float+ , _msgPosEcefCov_cov_x_z :: !float -- ^ Estimated covariance of x and z- , _msgPosEcefCov_cov_y_y :: !Float+ , _msgPosEcefCov_cov_y_y :: !float -- ^ Estimated variance of y- , _msgPosEcefCov_cov_y_z :: !Float+ , _msgPosEcefCov_cov_y_z :: !float -- ^ Estimated covariance of y and z- , _msgPosEcefCov_cov_z_z :: !Float+ , _msgPosEcefCov_cov_z_z :: !float -- ^ Estimated variance of z- , _msgPosEcefCov_n_sats :: !Word8+ , _msgPosEcefCov_n_sats :: !uint32 -- ^ Number of satellites used in solution- , _msgPosEcefCov_flags :: !Word8+ , _msgPosEcefCov_flags :: !uint32 -- ^ Status flags } deriving ( Show, Read, Eq ) @@ -339,21 +339,21 @@ -- time is given by the preceding MSG_GPS_TIME with the matching time-of-week -- (tow). data MsgPosLlh = MsgPosLlh- { _msgPosLlh_tow :: !Word32+ { _msgPosLlh_tow :: !uint32 -- ^ GPS Time of Week- , _msgPosLlh_lat :: !Double+ , _msgPosLlh_lat :: !double -- ^ Latitude- , _msgPosLlh_lon :: !Double+ , _msgPosLlh_lon :: !double -- ^ Longitude- , _msgPosLlh_height :: !Double+ , _msgPosLlh_height :: !double -- ^ Height above WGS84 ellipsoid- , _msgPosLlh_h_accuracy :: !Word16+ , _msgPosLlh_h_accuracy :: !uint32 -- ^ Horizontal position estimated standard deviation- , _msgPosLlh_v_accuracy :: !Word16+ , _msgPosLlh_v_accuracy :: !uint32 -- ^ Vertical position estimated standard deviation- , _msgPosLlh_n_sats :: !Word8+ , _msgPosLlh_n_sats :: !uint32 -- ^ Number of satellites used in solution.- , _msgPosLlh_flags :: !Word8+ , _msgPosLlh_flags :: !uint32 -- ^ Status flags } deriving ( Show, Read, Eq ) @@ -397,29 +397,29 @@ -- are reported against the "downward" measurement and care should be taken -- with the sign convention. data MsgPosLlhCov = MsgPosLlhCov- { _msgPosLlhCov_tow :: !Word32+ { _msgPosLlhCov_tow :: !uint32 -- ^ GPS Time of Week- , _msgPosLlhCov_lat :: !Double+ , _msgPosLlhCov_lat :: !double -- ^ Latitude- , _msgPosLlhCov_lon :: !Double+ , _msgPosLlhCov_lon :: !double -- ^ Longitude- , _msgPosLlhCov_height :: !Double+ , _msgPosLlhCov_height :: !double -- ^ Height above WGS84 ellipsoid- , _msgPosLlhCov_cov_n_n :: !Float+ , _msgPosLlhCov_cov_n_n :: !float -- ^ Estimated variance of northing- , _msgPosLlhCov_cov_n_e :: !Float+ , _msgPosLlhCov_cov_n_e :: !float -- ^ Covariance of northing and easting- , _msgPosLlhCov_cov_n_d :: !Float+ , _msgPosLlhCov_cov_n_d :: !float -- ^ Covariance of northing and downward measurement- , _msgPosLlhCov_cov_e_e :: !Float+ , _msgPosLlhCov_cov_e_e :: !float -- ^ Estimated variance of easting- , _msgPosLlhCov_cov_e_d :: !Float+ , _msgPosLlhCov_cov_e_d :: !float -- ^ Covariance of easting and downward measurement- , _msgPosLlhCov_cov_d_d :: !Float+ , _msgPosLlhCov_cov_d_d :: !float -- ^ Estimated variance of downward measurement- , _msgPosLlhCov_n_sats :: !Word8+ , _msgPosLlhCov_n_sats :: !uint32 -- ^ Number of satellites used in solution.- , _msgPosLlhCov_flags :: !Word8+ , _msgPosLlhCov_flags :: !uint32 -- ^ Status flags } deriving ( Show, Read, Eq ) @@ -467,19 +467,19 @@ -- base station to the rover receiver. The full GPS time is given by the -- preceding MSG_GPS_TIME with the matching time-of-week (tow). data MsgBaselineEcef = MsgBaselineEcef- { _msgBaselineEcef_tow :: !Word32+ { _msgBaselineEcef_tow :: !uint32 -- ^ GPS Time of Week- , _msgBaselineEcef_x :: !Int32+ , _msgBaselineEcef_x :: !sint32 -- ^ Baseline ECEF X coordinate- , _msgBaselineEcef_y :: !Int32+ , _msgBaselineEcef_y :: !sint32 -- ^ Baseline ECEF Y coordinate- , _msgBaselineEcef_z :: !Int32+ , _msgBaselineEcef_z :: !sint32 -- ^ Baseline ECEF Z coordinate- , _msgBaselineEcef_accuracy :: !Word16+ , _msgBaselineEcef_accuracy :: !uint32 -- ^ Position estimated standard deviation- , _msgBaselineEcef_n_sats :: !Word8+ , _msgBaselineEcef_n_sats :: !uint32 -- ^ Number of satellites used in solution- , _msgBaselineEcef_flags :: !Word8+ , _msgBaselineEcef_flags :: !uint32 -- ^ Status flags } deriving ( Show, Read, Eq ) @@ -519,21 +519,21 @@ -- GPS time is given by the preceding MSG_GPS_TIME with the matching time-of- -- week (tow). data MsgBaselineNed = MsgBaselineNed- { _msgBaselineNed_tow :: !Word32+ { _msgBaselineNed_tow :: !uint32 -- ^ GPS Time of Week- , _msgBaselineNed_n :: !Int32+ , _msgBaselineNed_n :: !sint32 -- ^ Baseline North coordinate- , _msgBaselineNed_e :: !Int32+ , _msgBaselineNed_e :: !sint32 -- ^ Baseline East coordinate- , _msgBaselineNed_d :: !Int32+ , _msgBaselineNed_d :: !sint32 -- ^ Baseline Down coordinate- , _msgBaselineNed_h_accuracy :: !Word16+ , _msgBaselineNed_h_accuracy :: !uint32 -- ^ Horizontal position estimated standard deviation- , _msgBaselineNed_v_accuracy :: !Word16+ , _msgBaselineNed_v_accuracy :: !uint32 -- ^ Vertical position estimated standard deviation- , _msgBaselineNed_n_sats :: !Word8+ , _msgBaselineNed_n_sats :: !uint32 -- ^ Number of satellites used in solution- , _msgBaselineNed_flags :: !Word8+ , _msgBaselineNed_flags :: !uint32 -- ^ Status flags } deriving ( Show, Read, Eq ) @@ -572,19 +572,19 @@ -- coordinates. The full GPS time is given by the preceding MSG_GPS_TIME with -- the matching time-of-week (tow). data MsgVelEcef = MsgVelEcef- { _msgVelEcef_tow :: !Word32+ { _msgVelEcef_tow :: !uint32 -- ^ GPS Time of Week- , _msgVelEcef_x :: !Int32+ , _msgVelEcef_x :: !sint32 -- ^ Velocity ECEF X coordinate- , _msgVelEcef_y :: !Int32+ , _msgVelEcef_y :: !sint32 -- ^ Velocity ECEF Y coordinate- , _msgVelEcef_z :: !Int32+ , _msgVelEcef_z :: !sint32 -- ^ Velocity ECEF Z coordinate- , _msgVelEcef_accuracy :: !Word16+ , _msgVelEcef_accuracy :: !uint32 -- ^ Velocity estimated standard deviation- , _msgVelEcef_n_sats :: !Word8+ , _msgVelEcef_n_sats :: !uint32 -- ^ Number of satellites used in solution- , _msgVelEcef_flags :: !Word8+ , _msgVelEcef_flags :: !uint32 -- ^ Status flags } deriving ( Show, Read, Eq ) @@ -621,29 +621,29 @@ -- coordinates. The full GPS time is given by the preceding MSG_GPS_TIME with -- the matching time-of-week (tow). data MsgVelEcefCov = MsgVelEcefCov- { _msgVelEcefCov_tow :: !Word32+ { _msgVelEcefCov_tow :: !uint32 -- ^ GPS Time of Week- , _msgVelEcefCov_x :: !Int32+ , _msgVelEcefCov_x :: !sint32 -- ^ Velocity ECEF X coordinate- , _msgVelEcefCov_y :: !Int32+ , _msgVelEcefCov_y :: !sint32 -- ^ Velocity ECEF Y coordinate- , _msgVelEcefCov_z :: !Int32+ , _msgVelEcefCov_z :: !sint32 -- ^ Velocity ECEF Z coordinate- , _msgVelEcefCov_cov_x_x :: !Float+ , _msgVelEcefCov_cov_x_x :: !float -- ^ Estimated variance of x- , _msgVelEcefCov_cov_x_y :: !Float+ , _msgVelEcefCov_cov_x_y :: !float -- ^ Estimated covariance of x and y- , _msgVelEcefCov_cov_x_z :: !Float+ , _msgVelEcefCov_cov_x_z :: !float -- ^ Estimated covariance of x and z- , _msgVelEcefCov_cov_y_y :: !Float+ , _msgVelEcefCov_cov_y_y :: !float -- ^ Estimated variance of y- , _msgVelEcefCov_cov_y_z :: !Float+ , _msgVelEcefCov_cov_y_z :: !float -- ^ Estimated covariance of y and z- , _msgVelEcefCov_cov_z_z :: !Float+ , _msgVelEcefCov_cov_z_z :: !float -- ^ Estimated variance of z- , _msgVelEcefCov_n_sats :: !Word8+ , _msgVelEcefCov_n_sats :: !uint32 -- ^ Number of satellites used in solution- , _msgVelEcefCov_flags :: !Word8+ , _msgVelEcefCov_flags :: !uint32 -- ^ Status flags } deriving ( Show, Read, Eq ) @@ -691,21 +691,21 @@ -- plane centered at the current position. The full GPS time is given by the -- preceding MSG_GPS_TIME with the matching time-of-week (tow). data MsgVelNed = MsgVelNed- { _msgVelNed_tow :: !Word32+ { _msgVelNed_tow :: !uint32 -- ^ GPS Time of Week- , _msgVelNed_n :: !Int32+ , _msgVelNed_n :: !sint32 -- ^ Velocity North coordinate- , _msgVelNed_e :: !Int32+ , _msgVelNed_e :: !sint32 -- ^ Velocity East coordinate- , _msgVelNed_d :: !Int32+ , _msgVelNed_d :: !sint32 -- ^ Velocity Down coordinate- , _msgVelNed_h_accuracy :: !Word16+ , _msgVelNed_h_accuracy :: !uint32 -- ^ Horizontal velocity estimated standard deviation- , _msgVelNed_v_accuracy :: !Word16+ , _msgVelNed_v_accuracy :: !uint32 -- ^ Vertical velocity estimated standard deviation- , _msgVelNed_n_sats :: !Word8+ , _msgVelNed_n_sats :: !uint32 -- ^ Number of satellites used in solution- , _msgVelNed_flags :: !Word8+ , _msgVelNed_flags :: !uint32 -- ^ Status flags } deriving ( Show, Read, Eq ) @@ -747,29 +747,29 @@ -- similar to the MSG_VEL_NED, but it includes the upper triangular portion of -- the 3x3 covariance matrix. data MsgVelNedCov = MsgVelNedCov- { _msgVelNedCov_tow :: !Word32+ { _msgVelNedCov_tow :: !uint32 -- ^ GPS Time of Week- , _msgVelNedCov_n :: !Int32+ , _msgVelNedCov_n :: !sint32 -- ^ Velocity North coordinate- , _msgVelNedCov_e :: !Int32+ , _msgVelNedCov_e :: !sint32 -- ^ Velocity East coordinate- , _msgVelNedCov_d :: !Int32+ , _msgVelNedCov_d :: !sint32 -- ^ Velocity Down coordinate- , _msgVelNedCov_cov_n_n :: !Float+ , _msgVelNedCov_cov_n_n :: !float -- ^ Estimated variance of northward measurement- , _msgVelNedCov_cov_n_e :: !Float+ , _msgVelNedCov_cov_n_e :: !float -- ^ Covariance of northward and eastward measurement- , _msgVelNedCov_cov_n_d :: !Float+ , _msgVelNedCov_cov_n_d :: !float -- ^ Covariance of northward and downward measurement- , _msgVelNedCov_cov_e_e :: !Float+ , _msgVelNedCov_cov_e_e :: !float -- ^ Estimated variance of eastward measurement- , _msgVelNedCov_cov_e_d :: !Float+ , _msgVelNedCov_cov_e_d :: !float -- ^ Covariance of eastward and downward measurement- , _msgVelNedCov_cov_d_d :: !Float+ , _msgVelNedCov_cov_d_d :: !float -- ^ Estimated variance of downward measurement- , _msgVelNedCov_n_sats :: !Word8+ , _msgVelNedCov_n_sats :: !uint32 -- ^ Number of satellites used in solution- , _msgVelNedCov_flags :: !Word8+ , _msgVelNedCov_flags :: !uint32 -- ^ Status flags } deriving ( Show, Read, Eq ) @@ -820,29 +820,29 @@ -- are specified via the device settings. The full GPS time is given by the -- preceding MSG_GPS_TIME with the matching time-of-week (tow). data MsgVelBody = MsgVelBody- { _msgVelBody_tow :: !Word32+ { _msgVelBody_tow :: !uint32 -- ^ GPS Time of Week- , _msgVelBody_x :: !Int32+ , _msgVelBody_x :: !sint32 -- ^ Velocity in x direction- , _msgVelBody_y :: !Int32+ , _msgVelBody_y :: !sint32 -- ^ Velocity in y direction- , _msgVelBody_z :: !Int32+ , _msgVelBody_z :: !sint32 -- ^ Velocity in z direction- , _msgVelBody_cov_x_x :: !Float+ , _msgVelBody_cov_x_x :: !float -- ^ Estimated variance of x- , _msgVelBody_cov_x_y :: !Float+ , _msgVelBody_cov_x_y :: !float -- ^ Covariance of x and y- , _msgVelBody_cov_x_z :: !Float+ , _msgVelBody_cov_x_z :: !float -- ^ Covariance of x and z- , _msgVelBody_cov_y_y :: !Float+ , _msgVelBody_cov_y_y :: !float -- ^ Estimated variance of y- , _msgVelBody_cov_y_z :: !Float+ , _msgVelBody_cov_y_z :: !float -- ^ Covariance of y and z- , _msgVelBody_cov_z_z :: !Float+ , _msgVelBody_cov_z_z :: !float -- ^ Estimated variance of z- , _msgVelBody_n_sats :: !Word8+ , _msgVelBody_n_sats :: !uint32 -- ^ Number of satellites used in solution- , _msgVelBody_flags :: !Word8+ , _msgVelBody_flags :: !uint32 -- ^ Status flags } deriving ( Show, Read, Eq ) @@ -888,9 +888,9 @@ -- This message reports the Age of the corrections used for the current -- Differential solution data MsgAgeCorrections = MsgAgeCorrections- { _msgAgeCorrections_tow :: !Word32+ { _msgAgeCorrections_tow :: !uint32 -- ^ GPS Time of Week- , _msgAgeCorrections_age :: !Word16+ , _msgAgeCorrections_age :: !uint32 -- ^ Age of the corrections (0xFFFF indicates invalid) } deriving ( Show, Read, Eq ) @@ -923,14 +923,14 @@ -- other navigation messages referenced to the same time (but lacking the ns -- field) and indicates a more precise time of these messages. data MsgGpsTimeDepA = MsgGpsTimeDepA- { _msgGpsTimeDepA_wn :: !Word16+ { _msgGpsTimeDepA_wn :: !uint32 -- ^ GPS week number- , _msgGpsTimeDepA_tow :: !Word32+ , _msgGpsTimeDepA_tow :: !uint32 -- ^ GPS time of week rounded to the nearest millisecond- , _msgGpsTimeDepA_ns_residual :: !Int32+ , _msgGpsTimeDepA_ns_residual :: !sint32 -- ^ Nanosecond residual of millisecond-rounded TOW (ranges from -500000 to -- 500000)- , _msgGpsTimeDepA_flags :: !Word8+ , _msgGpsTimeDepA_flags :: !uint32 -- ^ Status flags (reserved) } deriving ( Show, Read, Eq ) @@ -960,17 +960,17 @@ -- This dilution of precision (DOP) message describes the effect of navigation -- satellite geometry on positional measurement precision. data MsgDopsDepA = MsgDopsDepA- { _msgDopsDepA_tow :: !Word32+ { _msgDopsDepA_tow :: !uint32 -- ^ GPS Time of Week- , _msgDopsDepA_gdop :: !Word16+ , _msgDopsDepA_gdop :: !uint32 -- ^ Geometric Dilution of Precision- , _msgDopsDepA_pdop :: !Word16+ , _msgDopsDepA_pdop :: !uint32 -- ^ Position Dilution of Precision- , _msgDopsDepA_tdop :: !Word16+ , _msgDopsDepA_tdop :: !uint32 -- ^ Time Dilution of Precision- , _msgDopsDepA_hdop :: !Word16+ , _msgDopsDepA_hdop :: !uint32 -- ^ Horizontal Dilution of Precision- , _msgDopsDepA_vdop :: !Word16+ , _msgDopsDepA_vdop :: !uint32 -- ^ Vertical Dilution of Precision } deriving ( Show, Read, Eq ) @@ -1009,19 +1009,19 @@ -- baseline vector. The full GPS time is given by the preceding MSG_GPS_TIME -- with the matching time-of-week (tow). data MsgPosEcefDepA = MsgPosEcefDepA- { _msgPosEcefDepA_tow :: !Word32+ { _msgPosEcefDepA_tow :: !uint32 -- ^ GPS Time of Week- , _msgPosEcefDepA_x :: !Double+ , _msgPosEcefDepA_x :: !double -- ^ ECEF X coordinate- , _msgPosEcefDepA_y :: !Double+ , _msgPosEcefDepA_y :: !double -- ^ ECEF Y coordinate- , _msgPosEcefDepA_z :: !Double+ , _msgPosEcefDepA_z :: !double -- ^ ECEF Z coordinate- , _msgPosEcefDepA_accuracy :: !Word16+ , _msgPosEcefDepA_accuracy :: !uint32 -- ^ Position accuracy estimate (not implemented). Defaults to 0.- , _msgPosEcefDepA_n_sats :: !Word8+ , _msgPosEcefDepA_n_sats :: !uint32 -- ^ Number of satellites used in solution- , _msgPosEcefDepA_flags :: !Word8+ , _msgPosEcefDepA_flags :: !uint32 -- ^ Status flags } deriving ( Show, Read, Eq ) @@ -1062,21 +1062,21 @@ -- time is given by the preceding MSG_GPS_TIME with the matching time-of-week -- (tow). data MsgPosLlhDepA = MsgPosLlhDepA- { _msgPosLlhDepA_tow :: !Word32+ { _msgPosLlhDepA_tow :: !uint32 -- ^ GPS Time of Week- , _msgPosLlhDepA_lat :: !Double+ , _msgPosLlhDepA_lat :: !double -- ^ Latitude- , _msgPosLlhDepA_lon :: !Double+ , _msgPosLlhDepA_lon :: !double -- ^ Longitude- , _msgPosLlhDepA_height :: !Double+ , _msgPosLlhDepA_height :: !double -- ^ Height- , _msgPosLlhDepA_h_accuracy :: !Word16+ , _msgPosLlhDepA_h_accuracy :: !uint32 -- ^ Horizontal position accuracy estimate (not implemented). Defaults to 0.- , _msgPosLlhDepA_v_accuracy :: !Word16+ , _msgPosLlhDepA_v_accuracy :: !uint32 -- ^ Vertical position accuracy estimate (not implemented). Defaults to 0.- , _msgPosLlhDepA_n_sats :: !Word8+ , _msgPosLlhDepA_n_sats :: !uint32 -- ^ Number of satellites used in solution.- , _msgPosLlhDepA_flags :: !Word8+ , _msgPosLlhDepA_flags :: !uint32 -- ^ Status flags } deriving ( Show, Read, Eq ) @@ -1116,19 +1116,19 @@ -- base station to the rover receiver. The full GPS time is given by the -- preceding MSG_GPS_TIME with the matching time-of-week (tow). data MsgBaselineEcefDepA = MsgBaselineEcefDepA- { _msgBaselineEcefDepA_tow :: !Word32+ { _msgBaselineEcefDepA_tow :: !uint32 -- ^ GPS Time of Week- , _msgBaselineEcefDepA_x :: !Int32+ , _msgBaselineEcefDepA_x :: !sint32 -- ^ Baseline ECEF X coordinate- , _msgBaselineEcefDepA_y :: !Int32+ , _msgBaselineEcefDepA_y :: !sint32 -- ^ Baseline ECEF Y coordinate- , _msgBaselineEcefDepA_z :: !Int32+ , _msgBaselineEcefDepA_z :: !sint32 -- ^ Baseline ECEF Z coordinate- , _msgBaselineEcefDepA_accuracy :: !Word16+ , _msgBaselineEcefDepA_accuracy :: !uint32 -- ^ Position accuracy estimate- , _msgBaselineEcefDepA_n_sats :: !Word8+ , _msgBaselineEcefDepA_n_sats :: !uint32 -- ^ Number of satellites used in solution- , _msgBaselineEcefDepA_flags :: !Word8+ , _msgBaselineEcefDepA_flags :: !uint32 -- ^ Status flags } deriving ( Show, Read, Eq ) @@ -1168,21 +1168,21 @@ -- GPS time is given by the preceding MSG_GPS_TIME with the matching time-of- -- week (tow). data MsgBaselineNedDepA = MsgBaselineNedDepA- { _msgBaselineNedDepA_tow :: !Word32+ { _msgBaselineNedDepA_tow :: !uint32 -- ^ GPS Time of Week- , _msgBaselineNedDepA_n :: !Int32+ , _msgBaselineNedDepA_n :: !sint32 -- ^ Baseline North coordinate- , _msgBaselineNedDepA_e :: !Int32+ , _msgBaselineNedDepA_e :: !sint32 -- ^ Baseline East coordinate- , _msgBaselineNedDepA_d :: !Int32+ , _msgBaselineNedDepA_d :: !sint32 -- ^ Baseline Down coordinate- , _msgBaselineNedDepA_h_accuracy :: !Word16+ , _msgBaselineNedDepA_h_accuracy :: !uint32 -- ^ Horizontal position accuracy estimate (not implemented). Defaults to 0.- , _msgBaselineNedDepA_v_accuracy :: !Word16+ , _msgBaselineNedDepA_v_accuracy :: !uint32 -- ^ Vertical position accuracy estimate (not implemented). Defaults to 0.- , _msgBaselineNedDepA_n_sats :: !Word8+ , _msgBaselineNedDepA_n_sats :: !uint32 -- ^ Number of satellites used in solution- , _msgBaselineNedDepA_flags :: !Word8+ , _msgBaselineNedDepA_flags :: !uint32 -- ^ Status flags } deriving ( Show, Read, Eq ) @@ -1221,19 +1221,19 @@ -- coordinates. The full GPS time is given by the preceding MSG_GPS_TIME with -- the matching time-of-week (tow). data MsgVelEcefDepA = MsgVelEcefDepA- { _msgVelEcefDepA_tow :: !Word32+ { _msgVelEcefDepA_tow :: !uint32 -- ^ GPS Time of Week- , _msgVelEcefDepA_x :: !Int32+ , _msgVelEcefDepA_x :: !sint32 -- ^ Velocity ECEF X coordinate- , _msgVelEcefDepA_y :: !Int32+ , _msgVelEcefDepA_y :: !sint32 -- ^ Velocity ECEF Y coordinate- , _msgVelEcefDepA_z :: !Int32+ , _msgVelEcefDepA_z :: !sint32 -- ^ Velocity ECEF Z coordinate- , _msgVelEcefDepA_accuracy :: !Word16+ , _msgVelEcefDepA_accuracy :: !uint32 -- ^ Velocity accuracy estimate (not implemented). Defaults to 0.- , _msgVelEcefDepA_n_sats :: !Word8+ , _msgVelEcefDepA_n_sats :: !uint32 -- ^ Number of satellites used in solution- , _msgVelEcefDepA_flags :: !Word8+ , _msgVelEcefDepA_flags :: !uint32 -- ^ Status flags (reserved) } deriving ( Show, Read, Eq ) @@ -1271,21 +1271,21 @@ -- plane centered at the current position. The full GPS time is given by the -- preceding MSG_GPS_TIME with the matching time-of-week (tow). data MsgVelNedDepA = MsgVelNedDepA- { _msgVelNedDepA_tow :: !Word32+ { _msgVelNedDepA_tow :: !uint32 -- ^ GPS Time of Week- , _msgVelNedDepA_n :: !Int32+ , _msgVelNedDepA_n :: !sint32 -- ^ Velocity North coordinate- , _msgVelNedDepA_e :: !Int32+ , _msgVelNedDepA_e :: !sint32 -- ^ Velocity East coordinate- , _msgVelNedDepA_d :: !Int32+ , _msgVelNedDepA_d :: !sint32 -- ^ Velocity Down coordinate- , _msgVelNedDepA_h_accuracy :: !Word16+ , _msgVelNedDepA_h_accuracy :: !uint32 -- ^ Horizontal velocity accuracy estimate (not implemented). Defaults to 0.- , _msgVelNedDepA_v_accuracy :: !Word16+ , _msgVelNedDepA_v_accuracy :: !uint32 -- ^ Vertical velocity accuracy estimate (not implemented). Defaults to 0.- , _msgVelNedDepA_n_sats :: !Word8+ , _msgVelNedDepA_n_sats :: !uint32 -- ^ Number of satellites used in solution- , _msgVelNedDepA_flags :: !Word8+ , _msgVelNedDepA_flags :: !uint32 -- ^ Status flags (reserved) } deriving ( Show, Read, Eq ) @@ -1324,13 +1324,13 @@ -- the rover relative to True North. The full GPS time is given by the -- preceding MSG_GPS_TIME with the matching time-of-week (tow). data MsgBaselineHeadingDepA = MsgBaselineHeadingDepA- { _msgBaselineHeadingDepA_tow :: !Word32+ { _msgBaselineHeadingDepA_tow :: !uint32 -- ^ GPS Time of Week- , _msgBaselineHeadingDepA_heading :: !Word32+ , _msgBaselineHeadingDepA_heading :: !uint32 -- ^ Heading- , _msgBaselineHeadingDepA_n_sats :: !Word8+ , _msgBaselineHeadingDepA_n_sats :: !uint32 -- ^ Number of satellites used in solution- , _msgBaselineHeadingDepA_flags :: !Word8+ , _msgBaselineHeadingDepA_flags :: !uint32 -- ^ Status flags } deriving ( Show, Read, Eq )
@@ -44,25 +44,25 @@ -- This message is sent out when an object is stored into NDB. If needed -- message could also be sent out when fetching an object from NDB. data MsgNdbEvent = MsgNdbEvent- { _msgNdbEvent_recv_time :: !Word64+ { _msgNdbEvent_recv_time :: !uint64 -- ^ HW time in milliseconds.- , _msgNdbEvent_event :: !Word8+ , _msgNdbEvent_event :: !uint32 -- ^ Event type.- , _msgNdbEvent_object_type :: !Word8+ , _msgNdbEvent_object_type :: !uint32 -- ^ Event object type.- , _msgNdbEvent_result :: !Word8+ , _msgNdbEvent_result :: !uint32 -- ^ Event result.- , _msgNdbEvent_data_source :: !Word8+ , _msgNdbEvent_data_source :: !uint32 -- ^ Data source for STORE event, reserved for other events.- , _msgNdbEvent_object_sid :: !GnssSignal+ , _msgNdbEvent_object_sid :: !gnss.GnssSignal -- ^ GNSS signal identifier, If object_type is Ephemeris OR Almanac, sid -- indicates for which signal the object belongs to. Reserved in other -- cases.- , _msgNdbEvent_src_sid :: !GnssSignal+ , _msgNdbEvent_src_sid :: !gnss.GnssSignal -- ^ GNSS signal identifier, If object_type is Almanac, Almanac WN, Iono OR -- L2C capabilities AND data_source is NDB_DS_RECEIVER sid indicates from -- which SV data was decoded. Reserved in other cases.- , _msgNdbEvent_original_sender :: !Word16+ , _msgNdbEvent_original_sender :: !uint32 -- ^ A unique identifier of the sending hardware. For v1.0, set to the 2 -- least significant bytes of the device serial number, valid only if -- data_source is NDB_DS_SBP. Reserved in case of other data_source.
@@ -40,9 +40,9 @@ -- -- Header of a GNSS observation message. data ObservationHeader = ObservationHeader- { _observationHeader_t :: !GpsTime+ { _observationHeader_t :: !gnss.GpsTime -- ^ GNSS time of this observation- , _observationHeader_n_obs :: !Word8+ , _observationHeader_n_obs :: !uint32 -- ^ Total number of observations. First nibble is the size of the sequence -- (n), second nibble is the zero-indexed counter (ith packet of n) } deriving ( Show, Read, Eq )@@ -66,9 +66,9 @@ -- Q16.8 layout, i.e. 16-bits of whole doppler and 8-bits of fractional -- doppler. This doppler is defined as positive for approaching satellites. data Doppler = Doppler- { _doppler_i :: !Int16+ { _doppler_i :: !sint32 -- ^ Doppler whole Hz- , _doppler_f :: !Word8+ , _doppler_f :: !uint32 -- ^ Doppler fractional part } deriving ( Show, Read, Eq ) @@ -91,26 +91,26 @@ -- observations are interoperable with 3rd party receivers and conform with -- typical RTCMv3 GNSS observations. data PackedObsContent = PackedObsContent- { _packedObsContent_P :: !Word32+ { _packedObsContent_P :: !uint32 -- ^ Pseudorange observation- , _packedObsContent_L :: !CarrierPhase+ , _packedObsContent_L :: !gnss.CarrierPhase -- ^ Carrier phase observation with typical sign convention. , _packedObsContent_D :: !Doppler -- ^ Doppler observation with typical sign convention.- , _packedObsContent_cn0 :: !Word8+ , _packedObsContent_cn0 :: !uint32 -- ^ Carrier-to-Noise density. Zero implies invalid cn0.- , _packedObsContent_lock :: !Word8+ , _packedObsContent_lock :: !uint32 -- ^ Lock timer. This value gives an indication of the time for which a -- signal has maintained continuous phase lock. Whenever a signal has lost -- and regained lock, this value is reset to zero. It is encoded according -- to DF402 from the RTCM 10403.2 Amendment 2 specification. Valid values -- range from 0 to 15 and the most significant nibble is reserved for -- future use.- , _packedObsContent_flags :: !Word8+ , _packedObsContent_flags :: !uint32 -- ^ Measurement status flags. A bit field of flags providing the status of -- this observation. If this field is 0 it means only the Cn0 estimate for -- the signal is valid.- , _packedObsContent_sid :: !GnssSignal+ , _packedObsContent_sid :: !gnss.GnssSignal -- ^ GNSS signal identifier (16 bit) } deriving ( Show, Read, Eq ) @@ -151,7 +151,7 @@ data MsgObs = MsgObs { _msgObs_header :: !ObservationHeader -- ^ Header of a GPS observation message- , _msgObs_obs :: ![PackedObsContent]+ , _msgObs_obs :: !repeated PackedObsContent -- ^ Pseudorange and carrier phase observation for a satellite being tracked. } deriving ( Show, Read, Eq ) @@ -179,11 +179,11 @@ -- required to be a high-accuracy surveyed location of the base station. Any -- error here will result in an error in the pseudo-absolute position output. data MsgBasePosLlh = MsgBasePosLlh- { _msgBasePosLlh_lat :: !Double+ { _msgBasePosLlh_lat :: !double -- ^ Latitude- , _msgBasePosLlh_lon :: !Double+ , _msgBasePosLlh_lon :: !double -- ^ Longitude- , _msgBasePosLlh_height :: !Double+ , _msgBasePosLlh_height :: !double -- ^ Height } deriving ( Show, Read, Eq ) @@ -214,11 +214,11 @@ -- accuracy surveyed location of the base station. Any error here will result -- in an error in the pseudo-absolute position output. data MsgBasePosEcef = MsgBasePosEcef- { _msgBasePosEcef_x :: !Double+ { _msgBasePosEcef_x :: !double -- ^ ECEF X coodinate- , _msgBasePosEcef_y :: !Double+ , _msgBasePosEcef_y :: !double -- ^ ECEF Y coordinate- , _msgBasePosEcef_z :: !Double+ , _msgBasePosEcef_z :: !double -- ^ ECEF Z coordinate } deriving ( Show, Read, Eq ) @@ -239,17 +239,17 @@ $(makeLenses ''MsgBasePosEcef) data EphemerisCommonContent = EphemerisCommonContent- { _ephemerisCommonContent_sid :: !GnssSignal+ { _ephemerisCommonContent_sid :: !gnss.GnssSignal -- ^ GNSS signal identifier (16 bit)- , _ephemerisCommonContent_toe :: !GpsTimeSec+ , _ephemerisCommonContent_toe :: !gnss.GpsTimeSec -- ^ Time of Ephemerides- , _ephemerisCommonContent_ura :: !Double+ , _ephemerisCommonContent_ura :: !double -- ^ User Range Accuracy- , _ephemerisCommonContent_fit_interval :: !Word32+ , _ephemerisCommonContent_fit_interval :: !uint32 -- ^ Curve fit interval- , _ephemerisCommonContent_valid :: !Word8+ , _ephemerisCommonContent_valid :: !uint32 -- ^ Status of ephemeris, 1 = valid, 0 = invalid- , _ephemerisCommonContent_health_bits :: !Word8+ , _ephemerisCommonContent_health_bits :: !uint32 -- ^ Satellite health status. GPS: ICD-GPS-200, chapter 20.3.3.3.1.4 SBAS: 0 -- = valid, non-zero = invalid GLO: 0 = valid, non-zero = invalid } deriving ( Show, Read, Eq )@@ -280,13 +280,13 @@ -- ^ GNSS signal identifier , _ephemerisCommonContentDepA_toe :: !GpsTimeDep -- ^ Time of Ephemerides- , _ephemerisCommonContentDepA_ura :: !Double+ , _ephemerisCommonContentDepA_ura :: !double -- ^ User Range Accuracy- , _ephemerisCommonContentDepA_fit_interval :: !Word32+ , _ephemerisCommonContentDepA_fit_interval :: !uint32 -- ^ Curve fit interval- , _ephemerisCommonContentDepA_valid :: !Word8+ , _ephemerisCommonContentDepA_valid :: !uint32 -- ^ Status of ephemeris, 1 = valid, 0 = invalid- , _ephemerisCommonContentDepA_health_bits :: !Word8+ , _ephemerisCommonContentDepA_health_bits :: !uint32 -- ^ Satellite health status. GPS: ICD-GPS-200, chapter 20.3.3.3.1.4 SBAS: 0 -- = valid, non-zero = invalid GLO: 0 = valid, non-zero = invalid } deriving ( Show, Read, Eq )@@ -324,53 +324,53 @@ data MsgEphemerisGpsDepE = MsgEphemerisGpsDepE { _msgEphemerisGpsDepE_common :: !EphemerisCommonContentDepA -- ^ Values common for all ephemeris types- , _msgEphemerisGpsDepE_tgd :: !Double+ , _msgEphemerisGpsDepE_tgd :: !double -- ^ Group delay differential between L1 and L2- , _msgEphemerisGpsDepE_c_rs :: !Double+ , _msgEphemerisGpsDepE_c_rs :: !double -- ^ Amplitude of the sine harmonic correction term to the orbit radius- , _msgEphemerisGpsDepE_c_rc :: !Double+ , _msgEphemerisGpsDepE_c_rc :: !double -- ^ Amplitude of the cosine harmonic correction term to the orbit radius- , _msgEphemerisGpsDepE_c_uc :: !Double+ , _msgEphemerisGpsDepE_c_uc :: !double -- ^ Amplitude of the cosine harmonic correction term to the argument of -- latitude- , _msgEphemerisGpsDepE_c_us :: !Double+ , _msgEphemerisGpsDepE_c_us :: !double -- ^ Amplitude of the sine harmonic correction term to the argument of -- latitude- , _msgEphemerisGpsDepE_c_ic :: !Double+ , _msgEphemerisGpsDepE_c_ic :: !double -- ^ Amplitude of the cosine harmonic correction term to the angle of -- inclination- , _msgEphemerisGpsDepE_c_is :: !Double+ , _msgEphemerisGpsDepE_c_is :: !double -- ^ Amplitude of the sine harmonic correction term to the angle of -- inclination- , _msgEphemerisGpsDepE_dn :: !Double+ , _msgEphemerisGpsDepE_dn :: !double -- ^ Mean motion difference- , _msgEphemerisGpsDepE_m0 :: !Double+ , _msgEphemerisGpsDepE_m0 :: !double -- ^ Mean anomaly at reference time- , _msgEphemerisGpsDepE_ecc :: !Double+ , _msgEphemerisGpsDepE_ecc :: !double -- ^ Eccentricity of satellite orbit- , _msgEphemerisGpsDepE_sqrta :: !Double+ , _msgEphemerisGpsDepE_sqrta :: !double -- ^ Square root of the semi-major axis of orbit- , _msgEphemerisGpsDepE_omega0 :: !Double+ , _msgEphemerisGpsDepE_omega0 :: !double -- ^ Longitude of ascending node of orbit plane at weekly epoch- , _msgEphemerisGpsDepE_omegadot :: !Double+ , _msgEphemerisGpsDepE_omegadot :: !double -- ^ Rate of right ascension- , _msgEphemerisGpsDepE_w :: !Double+ , _msgEphemerisGpsDepE_w :: !double -- ^ Argument of perigee- , _msgEphemerisGpsDepE_inc :: !Double+ , _msgEphemerisGpsDepE_inc :: !double -- ^ Inclination- , _msgEphemerisGpsDepE_inc_dot :: !Double+ , _msgEphemerisGpsDepE_inc_dot :: !double -- ^ Inclination first derivative- , _msgEphemerisGpsDepE_af0 :: !Double+ , _msgEphemerisGpsDepE_af0 :: !double -- ^ Polynomial clock correction coefficient (clock bias)- , _msgEphemerisGpsDepE_af1 :: !Double+ , _msgEphemerisGpsDepE_af1 :: !double -- ^ Polynomial clock correction coefficient (clock drift)- , _msgEphemerisGpsDepE_af2 :: !Double+ , _msgEphemerisGpsDepE_af2 :: !double -- ^ Polynomial clock correction coefficient (rate of clock drift) , _msgEphemerisGpsDepE_toc :: !GpsTimeDep -- ^ Clock reference- , _msgEphemerisGpsDepE_iode :: !Word8+ , _msgEphemerisGpsDepE_iode :: !uint32 -- ^ Issue of ephemeris data- , _msgEphemerisGpsDepE_iodc :: !Word16+ , _msgEphemerisGpsDepE_iodc :: !uint32 -- ^ Issue of clock data } deriving ( Show, Read, Eq ) @@ -442,53 +442,53 @@ data MsgEphemerisGps = MsgEphemerisGps { _msgEphemerisGps_common :: !EphemerisCommonContent -- ^ Values common for all ephemeris types- , _msgEphemerisGps_tgd :: !Double+ , _msgEphemerisGps_tgd :: !double -- ^ Group delay differential between L1 and L2- , _msgEphemerisGps_c_rs :: !Double+ , _msgEphemerisGps_c_rs :: !double -- ^ Amplitude of the sine harmonic correction term to the orbit radius- , _msgEphemerisGps_c_rc :: !Double+ , _msgEphemerisGps_c_rc :: !double -- ^ Amplitude of the cosine harmonic correction term to the orbit radius- , _msgEphemerisGps_c_uc :: !Double+ , _msgEphemerisGps_c_uc :: !double -- ^ Amplitude of the cosine harmonic correction term to the argument of -- latitude- , _msgEphemerisGps_c_us :: !Double+ , _msgEphemerisGps_c_us :: !double -- ^ Amplitude of the sine harmonic correction term to the argument of -- latitude- , _msgEphemerisGps_c_ic :: !Double+ , _msgEphemerisGps_c_ic :: !double -- ^ Amplitude of the cosine harmonic correction term to the angle of -- inclination- , _msgEphemerisGps_c_is :: !Double+ , _msgEphemerisGps_c_is :: !double -- ^ Amplitude of the sine harmonic correction term to the angle of -- inclination- , _msgEphemerisGps_dn :: !Double+ , _msgEphemerisGps_dn :: !double -- ^ Mean motion difference- , _msgEphemerisGps_m0 :: !Double+ , _msgEphemerisGps_m0 :: !double -- ^ Mean anomaly at reference time- , _msgEphemerisGps_ecc :: !Double+ , _msgEphemerisGps_ecc :: !double -- ^ Eccentricity of satellite orbit- , _msgEphemerisGps_sqrta :: !Double+ , _msgEphemerisGps_sqrta :: !double -- ^ Square root of the semi-major axis of orbit- , _msgEphemerisGps_omega0 :: !Double+ , _msgEphemerisGps_omega0 :: !double -- ^ Longitude of ascending node of orbit plane at weekly epoch- , _msgEphemerisGps_omegadot :: !Double+ , _msgEphemerisGps_omegadot :: !double -- ^ Rate of right ascension- , _msgEphemerisGps_w :: !Double+ , _msgEphemerisGps_w :: !double -- ^ Argument of perigee- , _msgEphemerisGps_inc :: !Double+ , _msgEphemerisGps_inc :: !double -- ^ Inclination- , _msgEphemerisGps_inc_dot :: !Double+ , _msgEphemerisGps_inc_dot :: !double -- ^ Inclination first derivative- , _msgEphemerisGps_af0 :: !Double+ , _msgEphemerisGps_af0 :: !double -- ^ Polynomial clock correction coefficient (clock bias)- , _msgEphemerisGps_af1 :: !Double+ , _msgEphemerisGps_af1 :: !double -- ^ Polynomial clock correction coefficient (clock drift)- , _msgEphemerisGps_af2 :: !Double+ , _msgEphemerisGps_af2 :: !double -- ^ Polynomial clock correction coefficient (rate of clock drift)- , _msgEphemerisGps_toc :: !GpsTimeSec+ , _msgEphemerisGps_toc :: !gnss.GpsTimeSec -- ^ Clock reference- , _msgEphemerisGps_iode :: !Word8+ , _msgEphemerisGps_iode :: !uint32 -- ^ Issue of ephemeris data- , _msgEphemerisGps_iodc :: !Word16+ , _msgEphemerisGps_iodc :: !uint32 -- ^ Issue of clock data } deriving ( Show, Read, Eq ) @@ -554,15 +554,15 @@ data MsgEphemerisSbasDepA = MsgEphemerisSbasDepA { _msgEphemerisSbasDepA_common :: !EphemerisCommonContentDepA -- ^ Values common for all ephemeris types- , _msgEphemerisSbasDepA_pos :: ![Double]+ , _msgEphemerisSbasDepA_pos :: !repeated double -- ^ Position of the GEO at time toe- , _msgEphemerisSbasDepA_vel :: ![Double]+ , _msgEphemerisSbasDepA_vel :: !repeated double -- ^ Velocity of the GEO at time toe- , _msgEphemerisSbasDepA_acc :: ![Double]+ , _msgEphemerisSbasDepA_acc :: !repeated double -- ^ Acceleration of the GEO at time toe- , _msgEphemerisSbasDepA_a_gf0 :: !Double+ , _msgEphemerisSbasDepA_a_gf0 :: !double -- ^ Time offset of the GEO clock w.r.t. SBAS Network Time- , _msgEphemerisSbasDepA_a_gf1 :: !Double+ , _msgEphemerisSbasDepA_a_gf1 :: !double -- ^ Drift of the GEO clock w.r.t. SBAS Network Time } deriving ( Show, Read, Eq ) @@ -600,15 +600,15 @@ data MsgEphemerisGloDepA = MsgEphemerisGloDepA { _msgEphemerisGloDepA_common :: !EphemerisCommonContentDepA -- ^ Values common for all ephemeris types- , _msgEphemerisGloDepA_gamma :: !Double+ , _msgEphemerisGloDepA_gamma :: !double -- ^ Relative deviation of predicted carrier frequency from nominal- , _msgEphemerisGloDepA_tau :: !Double+ , _msgEphemerisGloDepA_tau :: !double -- ^ Correction to the SV time- , _msgEphemerisGloDepA_pos :: ![Double]+ , _msgEphemerisGloDepA_pos :: !repeated double -- ^ Position of the SV at tb in PZ-90.02 coordinates system- , _msgEphemerisGloDepA_vel :: ![Double]+ , _msgEphemerisGloDepA_vel :: !repeated double -- ^ Velocity vector of the SV at tb in PZ-90.02 coordinates system- , _msgEphemerisGloDepA_acc :: ![Double]+ , _msgEphemerisGloDepA_acc :: !repeated double -- ^ Acceleration vector of the SV at tb in PZ-90.02 coordinates sys } deriving ( Show, Read, Eq ) @@ -640,15 +640,15 @@ data MsgEphemerisSbas = MsgEphemerisSbas { _msgEphemerisSbas_common :: !EphemerisCommonContent -- ^ Values common for all ephemeris types- , _msgEphemerisSbas_pos :: ![Double]+ , _msgEphemerisSbas_pos :: !repeated double -- ^ Position of the GEO at time toe- , _msgEphemerisSbas_vel :: ![Double]+ , _msgEphemerisSbas_vel :: !repeated double -- ^ Velocity of the GEO at time toe- , _msgEphemerisSbas_acc :: ![Double]+ , _msgEphemerisSbas_acc :: !repeated double -- ^ Acceleration of the GEO at time toe- , _msgEphemerisSbas_a_gf0 :: !Double+ , _msgEphemerisSbas_a_gf0 :: !double -- ^ Time offset of the GEO clock w.r.t. SBAS Network Time- , _msgEphemerisSbas_a_gf1 :: !Double+ , _msgEphemerisSbas_a_gf1 :: !double -- ^ Drift of the GEO clock w.r.t. SBAS Network Time } deriving ( Show, Read, Eq ) @@ -686,15 +686,15 @@ data MsgEphemerisGloDepB = MsgEphemerisGloDepB { _msgEphemerisGloDepB_common :: !EphemerisCommonContent -- ^ Values common for all ephemeris types- , _msgEphemerisGloDepB_gamma :: !Double+ , _msgEphemerisGloDepB_gamma :: !double -- ^ Relative deviation of predicted carrier frequency from nominal- , _msgEphemerisGloDepB_tau :: !Double+ , _msgEphemerisGloDepB_tau :: !double -- ^ Correction to the SV time- , _msgEphemerisGloDepB_pos :: ![Double]+ , _msgEphemerisGloDepB_pos :: !repeated double -- ^ Position of the SV at tb in PZ-90.02 coordinates system- , _msgEphemerisGloDepB_vel :: ![Double]+ , _msgEphemerisGloDepB_vel :: !repeated double -- ^ Velocity vector of the SV at tb in PZ-90.02 coordinates system- , _msgEphemerisGloDepB_acc :: ![Double]+ , _msgEphemerisGloDepB_acc :: !repeated double -- ^ Acceleration vector of the SV at tb in PZ-90.02 coordinates sys } deriving ( Show, Read, Eq ) @@ -732,19 +732,19 @@ data MsgEphemerisGloDepC = MsgEphemerisGloDepC { _msgEphemerisGloDepC_common :: !EphemerisCommonContent -- ^ Values common for all ephemeris types- , _msgEphemerisGloDepC_gamma :: !Double+ , _msgEphemerisGloDepC_gamma :: !double -- ^ Relative deviation of predicted carrier frequency from nominal- , _msgEphemerisGloDepC_tau :: !Double+ , _msgEphemerisGloDepC_tau :: !double -- ^ Correction to the SV time- , _msgEphemerisGloDepC_d_tau :: !Double+ , _msgEphemerisGloDepC_d_tau :: !double -- ^ Equipment delay between L1 and L2- , _msgEphemerisGloDepC_pos :: ![Double]+ , _msgEphemerisGloDepC_pos :: !repeated double -- ^ Position of the SV at tb in PZ-90.02 coordinates system- , _msgEphemerisGloDepC_vel :: ![Double]+ , _msgEphemerisGloDepC_vel :: !repeated double -- ^ Velocity vector of the SV at tb in PZ-90.02 coordinates system- , _msgEphemerisGloDepC_acc :: ![Double]+ , _msgEphemerisGloDepC_acc :: !repeated double -- ^ Acceleration vector of the SV at tb in PZ-90.02 coordinates sys- , _msgEphemerisGloDepC_fcn :: !Word8+ , _msgEphemerisGloDepC_fcn :: !uint32 -- ^ Frequency slot. FCN+8 (that is [1..14]). 0 or 0xFF for invalid } deriving ( Show, Read, Eq ) @@ -786,21 +786,21 @@ data MsgEphemerisGlo = MsgEphemerisGlo { _msgEphemerisGlo_common :: !EphemerisCommonContent -- ^ Values common for all ephemeris types- , _msgEphemerisGlo_gamma :: !Double+ , _msgEphemerisGlo_gamma :: !double -- ^ Relative deviation of predicted carrier frequency from nominal- , _msgEphemerisGlo_tau :: !Double+ , _msgEphemerisGlo_tau :: !double -- ^ Correction to the SV time- , _msgEphemerisGlo_d_tau :: !Double+ , _msgEphemerisGlo_d_tau :: !double -- ^ Equipment delay between L1 and L2- , _msgEphemerisGlo_pos :: ![Double]+ , _msgEphemerisGlo_pos :: !repeated double -- ^ Position of the SV at tb in PZ-90.02 coordinates system- , _msgEphemerisGlo_vel :: ![Double]+ , _msgEphemerisGlo_vel :: !repeated double -- ^ Velocity vector of the SV at tb in PZ-90.02 coordinates system- , _msgEphemerisGlo_acc :: ![Double]+ , _msgEphemerisGlo_acc :: !repeated double -- ^ Acceleration vector of the SV at tb in PZ-90.02 coordinates sys- , _msgEphemerisGlo_fcn :: !Word8+ , _msgEphemerisGlo_fcn :: !uint32 -- ^ Frequency slot. FCN+8 (that is [1..14]). 0 or 0xFF for invalid- , _msgEphemerisGlo_iod :: !Word8+ , _msgEphemerisGlo_iod :: !uint32 -- ^ Issue of ephemeris data } deriving ( Show, Read, Eq ) @@ -842,67 +842,67 @@ -- see the Navstar GPS Space Segment/Navigation user interfaces (ICD-GPS-200, -- Table 20-III) for more details. data MsgEphemerisDepD = MsgEphemerisDepD- { _msgEphemerisDepD_tgd :: !Double+ { _msgEphemerisDepD_tgd :: !double -- ^ Group delay differential between L1 and L2- , _msgEphemerisDepD_c_rs :: !Double+ , _msgEphemerisDepD_c_rs :: !double -- ^ Amplitude of the sine harmonic correction term to the orbit radius- , _msgEphemerisDepD_c_rc :: !Double+ , _msgEphemerisDepD_c_rc :: !double -- ^ Amplitude of the cosine harmonic correction term to the orbit radius- , _msgEphemerisDepD_c_uc :: !Double+ , _msgEphemerisDepD_c_uc :: !double -- ^ Amplitude of the cosine harmonic correction term to the argument of -- latitude- , _msgEphemerisDepD_c_us :: !Double+ , _msgEphemerisDepD_c_us :: !double -- ^ Amplitude of the sine harmonic correction term to the argument of -- latitude- , _msgEphemerisDepD_c_ic :: !Double+ , _msgEphemerisDepD_c_ic :: !double -- ^ Amplitude of the cosine harmonic correction term to the angle of -- inclination- , _msgEphemerisDepD_c_is :: !Double+ , _msgEphemerisDepD_c_is :: !double -- ^ Amplitude of the sine harmonic correction term to the angle of -- inclination- , _msgEphemerisDepD_dn :: !Double+ , _msgEphemerisDepD_dn :: !double -- ^ Mean motion difference- , _msgEphemerisDepD_m0 :: !Double+ , _msgEphemerisDepD_m0 :: !double -- ^ Mean anomaly at reference time- , _msgEphemerisDepD_ecc :: !Double+ , _msgEphemerisDepD_ecc :: !double -- ^ Eccentricity of satellite orbit- , _msgEphemerisDepD_sqrta :: !Double+ , _msgEphemerisDepD_sqrta :: !double -- ^ Square root of the semi-major axis of orbit- , _msgEphemerisDepD_omega0 :: !Double+ , _msgEphemerisDepD_omega0 :: !double -- ^ Longitude of ascending node of orbit plane at weekly epoch- , _msgEphemerisDepD_omegadot :: !Double+ , _msgEphemerisDepD_omegadot :: !double -- ^ Rate of right ascension- , _msgEphemerisDepD_w :: !Double+ , _msgEphemerisDepD_w :: !double -- ^ Argument of perigee- , _msgEphemerisDepD_inc :: !Double+ , _msgEphemerisDepD_inc :: !double -- ^ Inclination- , _msgEphemerisDepD_inc_dot :: !Double+ , _msgEphemerisDepD_inc_dot :: !double -- ^ Inclination first derivative- , _msgEphemerisDepD_af0 :: !Double+ , _msgEphemerisDepD_af0 :: !double -- ^ Polynomial clock correction coefficient (clock bias)- , _msgEphemerisDepD_af1 :: !Double+ , _msgEphemerisDepD_af1 :: !double -- ^ Polynomial clock correction coefficient (clock drift)- , _msgEphemerisDepD_af2 :: !Double+ , _msgEphemerisDepD_af2 :: !double -- ^ Polynomial clock correction coefficient (rate of clock drift)- , _msgEphemerisDepD_toe_tow :: !Double+ , _msgEphemerisDepD_toe_tow :: !double -- ^ Time of week- , _msgEphemerisDepD_toe_wn :: !Word16+ , _msgEphemerisDepD_toe_wn :: !uint32 -- ^ Week number- , _msgEphemerisDepD_toc_tow :: !Double+ , _msgEphemerisDepD_toc_tow :: !double -- ^ Clock reference time of week- , _msgEphemerisDepD_toc_wn :: !Word16+ , _msgEphemerisDepD_toc_wn :: !uint32 -- ^ Clock reference week number- , _msgEphemerisDepD_valid :: !Word8+ , _msgEphemerisDepD_valid :: !uint32 -- ^ Is valid?- , _msgEphemerisDepD_healthy :: !Word8+ , _msgEphemerisDepD_healthy :: !uint32 -- ^ Satellite is healthy? , _msgEphemerisDepD_sid :: !GnssSignalDep -- ^ GNSS signal identifier- , _msgEphemerisDepD_iode :: !Word8+ , _msgEphemerisDepD_iode :: !uint32 -- ^ Issue of ephemeris data- , _msgEphemerisDepD_iodc :: !Word16+ , _msgEphemerisDepD_iodc :: !uint32 -- ^ Issue of clock data- , _msgEphemerisDepD_reserved :: !Word32+ , _msgEphemerisDepD_reserved :: !uint32 -- ^ Reserved field } deriving ( Show, Read, Eq ) @@ -981,61 +981,61 @@ -- -- Deprecated. data MsgEphemerisDepA = MsgEphemerisDepA- { _msgEphemerisDepA_tgd :: !Double+ { _msgEphemerisDepA_tgd :: !double -- ^ Group delay differential between L1 and L2- , _msgEphemerisDepA_c_rs :: !Double+ , _msgEphemerisDepA_c_rs :: !double -- ^ Amplitude of the sine harmonic correction term to the orbit radius- , _msgEphemerisDepA_c_rc :: !Double+ , _msgEphemerisDepA_c_rc :: !double -- ^ Amplitude of the cosine harmonic correction term to the orbit radius- , _msgEphemerisDepA_c_uc :: !Double+ , _msgEphemerisDepA_c_uc :: !double -- ^ Amplitude of the cosine harmonic correction term to the argument of -- latitude- , _msgEphemerisDepA_c_us :: !Double+ , _msgEphemerisDepA_c_us :: !double -- ^ Amplitude of the sine harmonic correction term to the argument of -- latitude- , _msgEphemerisDepA_c_ic :: !Double+ , _msgEphemerisDepA_c_ic :: !double -- ^ Amplitude of the cosine harmonic correction term to the angle of -- inclination- , _msgEphemerisDepA_c_is :: !Double+ , _msgEphemerisDepA_c_is :: !double -- ^ Amplitude of the sine harmonic correction term to the angle of -- inclination- , _msgEphemerisDepA_dn :: !Double+ , _msgEphemerisDepA_dn :: !double -- ^ Mean motion difference- , _msgEphemerisDepA_m0 :: !Double+ , _msgEphemerisDepA_m0 :: !double -- ^ Mean anomaly at reference time- , _msgEphemerisDepA_ecc :: !Double+ , _msgEphemerisDepA_ecc :: !double -- ^ Eccentricity of satellite orbit- , _msgEphemerisDepA_sqrta :: !Double+ , _msgEphemerisDepA_sqrta :: !double -- ^ Square root of the semi-major axis of orbit- , _msgEphemerisDepA_omega0 :: !Double+ , _msgEphemerisDepA_omega0 :: !double -- ^ Longitude of ascending node of orbit plane at weekly epoch- , _msgEphemerisDepA_omegadot :: !Double+ , _msgEphemerisDepA_omegadot :: !double -- ^ Rate of right ascension- , _msgEphemerisDepA_w :: !Double+ , _msgEphemerisDepA_w :: !double -- ^ Argument of perigee- , _msgEphemerisDepA_inc :: !Double+ , _msgEphemerisDepA_inc :: !double -- ^ Inclination- , _msgEphemerisDepA_inc_dot :: !Double+ , _msgEphemerisDepA_inc_dot :: !double -- ^ Inclination first derivative- , _msgEphemerisDepA_af0 :: !Double+ , _msgEphemerisDepA_af0 :: !double -- ^ Polynomial clock correction coefficient (clock bias)- , _msgEphemerisDepA_af1 :: !Double+ , _msgEphemerisDepA_af1 :: !double -- ^ Polynomial clock correction coefficient (clock drift)- , _msgEphemerisDepA_af2 :: !Double+ , _msgEphemerisDepA_af2 :: !double -- ^ Polynomial clock correction coefficient (rate of clock drift)- , _msgEphemerisDepA_toe_tow :: !Double+ , _msgEphemerisDepA_toe_tow :: !double -- ^ Time of week- , _msgEphemerisDepA_toe_wn :: !Word16+ , _msgEphemerisDepA_toe_wn :: !uint32 -- ^ Week number- , _msgEphemerisDepA_toc_tow :: !Double+ , _msgEphemerisDepA_toc_tow :: !double -- ^ Clock reference time of week- , _msgEphemerisDepA_toc_wn :: !Word16+ , _msgEphemerisDepA_toc_wn :: !uint32 -- ^ Clock reference week number- , _msgEphemerisDepA_valid :: !Word8+ , _msgEphemerisDepA_valid :: !uint32 -- ^ Is valid?- , _msgEphemerisDepA_healthy :: !Word8+ , _msgEphemerisDepA_healthy :: !uint32 -- ^ Satellite is healthy?- , _msgEphemerisDepA_prn :: !Word8+ , _msgEphemerisDepA_prn :: !uint32 -- ^ PRN being tracked } deriving ( Show, Read, Eq ) @@ -1108,63 +1108,63 @@ -- -- Deprecated. data MsgEphemerisDepB = MsgEphemerisDepB- { _msgEphemerisDepB_tgd :: !Double+ { _msgEphemerisDepB_tgd :: !double -- ^ Group delay differential between L1 and L2- , _msgEphemerisDepB_c_rs :: !Double+ , _msgEphemerisDepB_c_rs :: !double -- ^ Amplitude of the sine harmonic correction term to the orbit radius- , _msgEphemerisDepB_c_rc :: !Double+ , _msgEphemerisDepB_c_rc :: !double -- ^ Amplitude of the cosine harmonic correction term to the orbit radius- , _msgEphemerisDepB_c_uc :: !Double+ , _msgEphemerisDepB_c_uc :: !double -- ^ Amplitude of the cosine harmonic correction term to the argument of -- latitude- , _msgEphemerisDepB_c_us :: !Double+ , _msgEphemerisDepB_c_us :: !double -- ^ Amplitude of the sine harmonic correction term to the argument of -- latitude- , _msgEphemerisDepB_c_ic :: !Double+ , _msgEphemerisDepB_c_ic :: !double -- ^ Amplitude of the cosine harmonic correction term to the angle of -- inclination- , _msgEphemerisDepB_c_is :: !Double+ , _msgEphemerisDepB_c_is :: !double -- ^ Amplitude of the sine harmonic correction term to the angle of -- inclination- , _msgEphemerisDepB_dn :: !Double+ , _msgEphemerisDepB_dn :: !double -- ^ Mean motion difference- , _msgEphemerisDepB_m0 :: !Double+ , _msgEphemerisDepB_m0 :: !double -- ^ Mean anomaly at reference time- , _msgEphemerisDepB_ecc :: !Double+ , _msgEphemerisDepB_ecc :: !double -- ^ Eccentricity of satellite orbit- , _msgEphemerisDepB_sqrta :: !Double+ , _msgEphemerisDepB_sqrta :: !double -- ^ Square root of the semi-major axis of orbit- , _msgEphemerisDepB_omega0 :: !Double+ , _msgEphemerisDepB_omega0 :: !double -- ^ Longitude of ascending node of orbit plane at weekly epoch- , _msgEphemerisDepB_omegadot :: !Double+ , _msgEphemerisDepB_omegadot :: !double -- ^ Rate of right ascension- , _msgEphemerisDepB_w :: !Double+ , _msgEphemerisDepB_w :: !double -- ^ Argument of perigee- , _msgEphemerisDepB_inc :: !Double+ , _msgEphemerisDepB_inc :: !double -- ^ Inclination- , _msgEphemerisDepB_inc_dot :: !Double+ , _msgEphemerisDepB_inc_dot :: !double -- ^ Inclination first derivative- , _msgEphemerisDepB_af0 :: !Double+ , _msgEphemerisDepB_af0 :: !double -- ^ Polynomial clock correction coefficient (clock bias)- , _msgEphemerisDepB_af1 :: !Double+ , _msgEphemerisDepB_af1 :: !double -- ^ Polynomial clock correction coefficient (clock drift)- , _msgEphemerisDepB_af2 :: !Double+ , _msgEphemerisDepB_af2 :: !double -- ^ Polynomial clock correction coefficient (rate of clock drift)- , _msgEphemerisDepB_toe_tow :: !Double+ , _msgEphemerisDepB_toe_tow :: !double -- ^ Time of week- , _msgEphemerisDepB_toe_wn :: !Word16+ , _msgEphemerisDepB_toe_wn :: !uint32 -- ^ Week number- , _msgEphemerisDepB_toc_tow :: !Double+ , _msgEphemerisDepB_toc_tow :: !double -- ^ Clock reference time of week- , _msgEphemerisDepB_toc_wn :: !Word16+ , _msgEphemerisDepB_toc_wn :: !uint32 -- ^ Clock reference week number- , _msgEphemerisDepB_valid :: !Word8+ , _msgEphemerisDepB_valid :: !uint32 -- ^ Is valid?- , _msgEphemerisDepB_healthy :: !Word8+ , _msgEphemerisDepB_healthy :: !uint32 -- ^ Satellite is healthy?- , _msgEphemerisDepB_prn :: !Word8+ , _msgEphemerisDepB_prn :: !uint32 -- ^ PRN being tracked- , _msgEphemerisDepB_iode :: !Word8+ , _msgEphemerisDepB_iode :: !uint32 -- ^ Issue of ephemeris data } deriving ( Show, Read, Eq ) @@ -1242,67 +1242,67 @@ -- see the Navstar GPS Space Segment/Navigation user interfaces (ICD-GPS-200, -- Table 20-III) for more details. data MsgEphemerisDepC = MsgEphemerisDepC- { _msgEphemerisDepC_tgd :: !Double+ { _msgEphemerisDepC_tgd :: !double -- ^ Group delay differential between L1 and L2- , _msgEphemerisDepC_c_rs :: !Double+ , _msgEphemerisDepC_c_rs :: !double -- ^ Amplitude of the sine harmonic correction term to the orbit radius- , _msgEphemerisDepC_c_rc :: !Double+ , _msgEphemerisDepC_c_rc :: !double -- ^ Amplitude of the cosine harmonic correction term to the orbit radius- , _msgEphemerisDepC_c_uc :: !Double+ , _msgEphemerisDepC_c_uc :: !double -- ^ Amplitude of the cosine harmonic correction term to the argument of -- latitude- , _msgEphemerisDepC_c_us :: !Double+ , _msgEphemerisDepC_c_us :: !double -- ^ Amplitude of the sine harmonic correction term to the argument of -- latitude- , _msgEphemerisDepC_c_ic :: !Double+ , _msgEphemerisDepC_c_ic :: !double -- ^ Amplitude of the cosine harmonic correction term to the angle of -- inclination- , _msgEphemerisDepC_c_is :: !Double+ , _msgEphemerisDepC_c_is :: !double -- ^ Amplitude of the sine harmonic correction term to the angle of -- inclination- , _msgEphemerisDepC_dn :: !Double+ , _msgEphemerisDepC_dn :: !double -- ^ Mean motion difference- , _msgEphemerisDepC_m0 :: !Double+ , _msgEphemerisDepC_m0 :: !double -- ^ Mean anomaly at reference time- , _msgEphemerisDepC_ecc :: !Double+ , _msgEphemerisDepC_ecc :: !double -- ^ Eccentricity of satellite orbit- , _msgEphemerisDepC_sqrta :: !Double+ , _msgEphemerisDepC_sqrta :: !double -- ^ Square root of the semi-major axis of orbit- , _msgEphemerisDepC_omega0 :: !Double+ , _msgEphemerisDepC_omega0 :: !double -- ^ Longitude of ascending node of orbit plane at weekly epoch- , _msgEphemerisDepC_omegadot :: !Double+ , _msgEphemerisDepC_omegadot :: !double -- ^ Rate of right ascension- , _msgEphemerisDepC_w :: !Double+ , _msgEphemerisDepC_w :: !double -- ^ Argument of perigee- , _msgEphemerisDepC_inc :: !Double+ , _msgEphemerisDepC_inc :: !double -- ^ Inclination- , _msgEphemerisDepC_inc_dot :: !Double+ , _msgEphemerisDepC_inc_dot :: !double -- ^ Inclination first derivative- , _msgEphemerisDepC_af0 :: !Double+ , _msgEphemerisDepC_af0 :: !double -- ^ Polynomial clock correction coefficient (clock bias)- , _msgEphemerisDepC_af1 :: !Double+ , _msgEphemerisDepC_af1 :: !double -- ^ Polynomial clock correction coefficient (clock drift)- , _msgEphemerisDepC_af2 :: !Double+ , _msgEphemerisDepC_af2 :: !double -- ^ Polynomial clock correction coefficient (rate of clock drift)- , _msgEphemerisDepC_toe_tow :: !Double+ , _msgEphemerisDepC_toe_tow :: !double -- ^ Time of week- , _msgEphemerisDepC_toe_wn :: !Word16+ , _msgEphemerisDepC_toe_wn :: !uint32 -- ^ Week number- , _msgEphemerisDepC_toc_tow :: !Double+ , _msgEphemerisDepC_toc_tow :: !double -- ^ Clock reference time of week- , _msgEphemerisDepC_toc_wn :: !Word16+ , _msgEphemerisDepC_toc_wn :: !uint32 -- ^ Clock reference week number- , _msgEphemerisDepC_valid :: !Word8+ , _msgEphemerisDepC_valid :: !uint32 -- ^ Is valid?- , _msgEphemerisDepC_healthy :: !Word8+ , _msgEphemerisDepC_healthy :: !uint32 -- ^ Satellite is healthy? , _msgEphemerisDepC_sid :: !GnssSignalDep -- ^ GNSS signal identifier- , _msgEphemerisDepC_iode :: !Word8+ , _msgEphemerisDepC_iode :: !uint32 -- ^ Issue of ephemeris data- , _msgEphemerisDepC_iodc :: !Word16+ , _msgEphemerisDepC_iodc :: !uint32 -- ^ Issue of clock data- , _msgEphemerisDepC_reserved :: !Word32+ , _msgEphemerisDepC_reserved :: !uint32 -- ^ Reserved field } deriving ( Show, Read, Eq ) @@ -1380,7 +1380,7 @@ data ObservationHeaderDep = ObservationHeaderDep { _observationHeaderDep_t :: !GpsTimeDep -- ^ GPS time of this observation- , _observationHeaderDep_n_obs :: !Word8+ , _observationHeaderDep_n_obs :: !uint32 -- ^ Total number of observations. First nibble is the size of the sequence -- (n), second nibble is the zero-indexed counter (ith packet of n) } deriving ( Show, Read, Eq )@@ -1405,9 +1405,9 @@ -- fractional cycles. This has the opposite sign convention than a typical GPS -- receiver and the phase has the opposite sign as the pseudorange. data CarrierPhaseDepA = CarrierPhaseDepA- { _carrierPhaseDepA_i :: !Int32+ { _carrierPhaseDepA_i :: !sint32 -- ^ Carrier phase whole cycles- , _carrierPhaseDepA_f :: !Word8+ , _carrierPhaseDepA_f :: !uint32 -- ^ Carrier phase fractional part } deriving ( Show, Read, Eq ) @@ -1428,17 +1428,17 @@ -- -- Deprecated. data PackedObsContentDepA = PackedObsContentDepA- { _packedObsContentDepA_P :: !Word32+ { _packedObsContentDepA_P :: !uint32 -- ^ Pseudorange observation , _packedObsContentDepA_L :: !CarrierPhaseDepA -- ^ Carrier phase observation with opposite sign from typical convention- , _packedObsContentDepA_cn0 :: !Word8+ , _packedObsContentDepA_cn0 :: !uint32 -- ^ Carrier-to-Noise density- , _packedObsContentDepA_lock :: !Word16+ , _packedObsContentDepA_lock :: !uint32 -- ^ Lock indicator. This value changes whenever a satellite signal has lost -- and regained lock, indicating that the carrier phase ambiguity may have -- changed.- , _packedObsContentDepA_prn :: !Word8+ , _packedObsContentDepA_prn :: !uint32 -- ^ PRN-1 identifier of the satellite signal } deriving ( Show, Read, Eq ) @@ -1466,13 +1466,13 @@ -- Pseudorange and carrier phase observation for a satellite being tracked. -- Pseudoranges are referenced to a nominal pseudorange. data PackedObsContentDepB = PackedObsContentDepB- { _packedObsContentDepB_P :: !Word32+ { _packedObsContentDepB_P :: !uint32 -- ^ Pseudorange observation , _packedObsContentDepB_L :: !CarrierPhaseDepA -- ^ Carrier phase observation with opposite sign from typical convention.- , _packedObsContentDepB_cn0 :: !Word8+ , _packedObsContentDepB_cn0 :: !uint32 -- ^ Carrier-to-Noise density- , _packedObsContentDepB_lock :: !Word16+ , _packedObsContentDepB_lock :: !uint32 -- ^ Lock indicator. This value changes whenever a satellite signal has lost -- and regained lock, indicating that the carrier phase ambiguity may have -- changed.@@ -1505,13 +1505,13 @@ -- observations are be interoperable with 3rd party receivers and conform with -- typical RTCMv3 GNSS observations. data PackedObsContentDepC = PackedObsContentDepC- { _packedObsContentDepC_P :: !Word32+ { _packedObsContentDepC_P :: !uint32 -- ^ Pseudorange observation- , _packedObsContentDepC_L :: !CarrierPhase+ , _packedObsContentDepC_L :: !gnss.CarrierPhase -- ^ Carrier phase observation with typical sign convention.- , _packedObsContentDepC_cn0 :: !Word8+ , _packedObsContentDepC_cn0 :: !uint32 -- ^ Carrier-to-Noise density- , _packedObsContentDepC_lock :: !Word16+ , _packedObsContentDepC_lock :: !uint32 -- ^ Lock indicator. This value changes whenever a satellite signal has lost -- and regained lock, indicating that the carrier phase ambiguity may have -- changed.@@ -1547,7 +1547,7 @@ data MsgObsDepA = MsgObsDepA { _msgObsDepA_header :: !ObservationHeaderDep -- ^ Header of a GPS observation message- , _msgObsDepA_obs :: ![PackedObsContentDepA]+ , _msgObsDepA_obs :: !repeated PackedObsContentDepA -- ^ Pseudorange and carrier phase observation for a satellite being tracked. } deriving ( Show, Read, Eq ) @@ -1577,7 +1577,7 @@ data MsgObsDepB = MsgObsDepB { _msgObsDepB_header :: !ObservationHeaderDep -- ^ Header of a GPS observation message- , _msgObsDepB_obs :: ![PackedObsContentDepB]+ , _msgObsDepB_obs :: !repeated PackedObsContentDepB -- ^ Pseudorange and carrier phase observation for a satellite being tracked. } deriving ( Show, Read, Eq ) @@ -1609,7 +1609,7 @@ data MsgObsDepC = MsgObsDepC { _msgObsDepC_header :: !ObservationHeaderDep -- ^ Header of a GPS observation message- , _msgObsDepC_obs :: ![PackedObsContentDepC]+ , _msgObsDepC_obs :: !repeated PackedObsContentDepC -- ^ Pseudorange and carrier phase observation for a satellite being tracked. } deriving ( Show, Read, Eq ) @@ -1636,16 +1636,16 @@ -- utilize the ionospheric model for computation of the ionospheric delay. -- Please see ICD-GPS-200 (Chapter 20.3.3.5.1.7) for more details. data MsgIono = MsgIono- { _msgIono_t_nmct :: !GpsTimeSec+ { _msgIono_t_nmct :: !gnss.GpsTimeSec -- ^ Navigation Message Correction Table Valitidy Time- , _msgIono_a0 :: !Double- , _msgIono_a1 :: !Double- , _msgIono_a2 :: !Double- , _msgIono_a3 :: !Double- , _msgIono_b0 :: !Double- , _msgIono_b1 :: !Double- , _msgIono_b2 :: !Double- , _msgIono_b3 :: !Double+ , _msgIono_a0 :: !double+ , _msgIono_a1 :: !double+ , _msgIono_a2 :: !double+ , _msgIono_a3 :: !double+ , _msgIono_b0 :: !double+ , _msgIono_b1 :: !double+ , _msgIono_b2 :: !double+ , _msgIono_b3 :: !double } deriving ( Show, Read, Eq ) instance Binary MsgIono where@@ -1683,9 +1683,9 @@ -- -- Please see ICD-GPS-200 (Chapter 20.3.3.5.1.4) for more details. data MsgSvConfigurationGps = MsgSvConfigurationGps- { _msgSvConfigurationGps_t_nmct :: !GpsTimeSec+ { _msgSvConfigurationGps_t_nmct :: !gnss.GpsTimeSec -- ^ Navigation Message Correction Table Valitidy Time- , _msgSvConfigurationGps_l2c_mask :: !Word32+ , _msgSvConfigurationGps_l2c_mask :: !uint32 -- ^ L2C capability mask, SV32 bit being MSB, SV1 bit being LSB } deriving ( Show, Read, Eq ) @@ -1712,14 +1712,14 @@ data MsgGroupDelayDepA = MsgGroupDelayDepA { _msgGroupDelayDepA_t_op :: !GpsTimeDep -- ^ Data Predict Time of Week- , _msgGroupDelayDepA_prn :: !Word8+ , _msgGroupDelayDepA_prn :: !uint32 -- ^ Satellite number- , _msgGroupDelayDepA_valid :: !Word8+ , _msgGroupDelayDepA_valid :: !uint32 -- ^ bit-field indicating validity of the values, LSB indicating tgd validity -- etc. 1 = value is valid, 0 = value is not valid.- , _msgGroupDelayDepA_tgd :: !Int16- , _msgGroupDelayDepA_isc_l1ca :: !Int16- , _msgGroupDelayDepA_isc_l2c :: !Int16+ , _msgGroupDelayDepA_tgd :: !sint32+ , _msgGroupDelayDepA_isc_l1ca :: !sint32+ , _msgGroupDelayDepA_isc_l2c :: !sint32 } deriving ( Show, Read, Eq ) instance Binary MsgGroupDelayDepA where@@ -1751,16 +1751,16 @@ -- -- Please see ICD-GPS-200 (30.3.3.3.1.1) for more details. data MsgGroupDelayDepB = MsgGroupDelayDepB- { _msgGroupDelayDepB_t_op :: !GpsTimeSec+ { _msgGroupDelayDepB_t_op :: !gnss.GpsTimeSec -- ^ Data Predict Time of Week , _msgGroupDelayDepB_sid :: !GnssSignalDep -- ^ GNSS signal identifier- , _msgGroupDelayDepB_valid :: !Word8+ , _msgGroupDelayDepB_valid :: !uint32 -- ^ bit-field indicating validity of the values, LSB indicating tgd validity -- etc. 1 = value is valid, 0 = value is not valid.- , _msgGroupDelayDepB_tgd :: !Int16- , _msgGroupDelayDepB_isc_l1ca :: !Int16- , _msgGroupDelayDepB_isc_l2c :: !Int16+ , _msgGroupDelayDepB_tgd :: !sint32+ , _msgGroupDelayDepB_isc_l1ca :: !sint32+ , _msgGroupDelayDepB_isc_l2c :: !sint32 } deriving ( Show, Read, Eq ) instance Binary MsgGroupDelayDepB where@@ -1792,16 +1792,16 @@ -- -- Please see ICD-GPS-200 (30.3.3.3.1.1) for more details. data MsgGroupDelay = MsgGroupDelay- { _msgGroupDelay_t_op :: !GpsTimeSec+ { _msgGroupDelay_t_op :: !gnss.GpsTimeSec -- ^ Data Predict Time of Week- , _msgGroupDelay_sid :: !GnssSignal+ , _msgGroupDelay_sid :: !gnss.GnssSignal -- ^ GNSS signal identifier- , _msgGroupDelay_valid :: !Word8+ , _msgGroupDelay_valid :: !uint32 -- ^ bit-field indicating validity of the values, LSB indicating tgd validity -- etc. 1 = value is valid, 0 = value is not valid.- , _msgGroupDelay_tgd :: !Int16- , _msgGroupDelay_isc_l1ca :: !Int16- , _msgGroupDelay_isc_l2c :: !Int16+ , _msgGroupDelay_tgd :: !sint32+ , _msgGroupDelay_isc_l1ca :: !sint32+ , _msgGroupDelay_isc_l2c :: !sint32 } deriving ( Show, Read, Eq ) instance Binary MsgGroupDelay where@@ -1827,17 +1827,17 @@ $(makeLenses ''MsgGroupDelay) data AlmanacCommonContent = AlmanacCommonContent- { _almanacCommonContent_sid :: !GnssSignal+ { _almanacCommonContent_sid :: !gnss.GnssSignal -- ^ GNSS signal identifier- , _almanacCommonContent_toa :: !GpsTimeSec+ , _almanacCommonContent_toa :: !gnss.GpsTimeSec -- ^ Reference time of almanac- , _almanacCommonContent_ura :: !Double+ , _almanacCommonContent_ura :: !double -- ^ User Range Accuracy- , _almanacCommonContent_fit_interval :: !Word32+ , _almanacCommonContent_fit_interval :: !uint32 -- ^ Curve fit interval- , _almanacCommonContent_valid :: !Word8+ , _almanacCommonContent_valid :: !uint32 -- ^ Status of almanac, 1 = valid, 0 = invalid- , _almanacCommonContent_health_bits :: !Word8+ , _almanacCommonContent_health_bits :: !uint32 -- ^ Satellite health status for GPS: - bits 5-7: NAV data health status. -- See IS-GPS-200H Table 20-VII: NAV Data Health Indications. - bits -- 0-4: Signal health status. See IS-GPS-200H Table 20-VIII. Codes for@@ -1874,15 +1874,15 @@ data AlmanacCommonContentDep = AlmanacCommonContentDep { _almanacCommonContentDep_sid :: !GnssSignalDep -- ^ GNSS signal identifier- , _almanacCommonContentDep_toa :: !GpsTimeSec+ , _almanacCommonContentDep_toa :: !gnss.GpsTimeSec -- ^ Reference time of almanac- , _almanacCommonContentDep_ura :: !Double+ , _almanacCommonContentDep_ura :: !double -- ^ User Range Accuracy- , _almanacCommonContentDep_fit_interval :: !Word32+ , _almanacCommonContentDep_fit_interval :: !uint32 -- ^ Curve fit interval- , _almanacCommonContentDep_valid :: !Word8+ , _almanacCommonContentDep_valid :: !uint32 -- ^ Status of almanac, 1 = valid, 0 = invalid- , _almanacCommonContentDep_health_bits :: !Word8+ , _almanacCommonContentDep_health_bits :: !uint32 -- ^ Satellite health status for GPS: - bits 5-7: NAV data health status. -- See IS-GPS-200H Table 20-VII: NAV Data Health Indications. - bits -- 0-4: Signal health status. See IS-GPS-200H Table 20-VIII. Codes for@@ -1928,23 +1928,23 @@ data MsgAlmanacGpsDep = MsgAlmanacGpsDep { _msgAlmanacGpsDep_common :: !AlmanacCommonContentDep -- ^ Values common for all almanac types- , _msgAlmanacGpsDep_m0 :: !Double+ , _msgAlmanacGpsDep_m0 :: !double -- ^ Mean anomaly at reference time- , _msgAlmanacGpsDep_ecc :: !Double+ , _msgAlmanacGpsDep_ecc :: !double -- ^ Eccentricity of satellite orbit- , _msgAlmanacGpsDep_sqrta :: !Double+ , _msgAlmanacGpsDep_sqrta :: !double -- ^ Square root of the semi-major axis of orbit- , _msgAlmanacGpsDep_omega0 :: !Double+ , _msgAlmanacGpsDep_omega0 :: !double -- ^ Longitude of ascending node of orbit plane at weekly epoch- , _msgAlmanacGpsDep_omegadot :: !Double+ , _msgAlmanacGpsDep_omegadot :: !double -- ^ Rate of right ascension- , _msgAlmanacGpsDep_w :: !Double+ , _msgAlmanacGpsDep_w :: !double -- ^ Argument of perigee- , _msgAlmanacGpsDep_inc :: !Double+ , _msgAlmanacGpsDep_inc :: !double -- ^ Inclination- , _msgAlmanacGpsDep_af0 :: !Double+ , _msgAlmanacGpsDep_af0 :: !double -- ^ Polynomial clock correction coefficient (clock bias)- , _msgAlmanacGpsDep_af1 :: !Double+ , _msgAlmanacGpsDep_af1 :: !double -- ^ Polynomial clock correction coefficient (clock drift) } deriving ( Show, Read, Eq ) @@ -1990,23 +1990,23 @@ data MsgAlmanacGps = MsgAlmanacGps { _msgAlmanacGps_common :: !AlmanacCommonContent -- ^ Values common for all almanac types- , _msgAlmanacGps_m0 :: !Double+ , _msgAlmanacGps_m0 :: !double -- ^ Mean anomaly at reference time- , _msgAlmanacGps_ecc :: !Double+ , _msgAlmanacGps_ecc :: !double -- ^ Eccentricity of satellite orbit- , _msgAlmanacGps_sqrta :: !Double+ , _msgAlmanacGps_sqrta :: !double -- ^ Square root of the semi-major axis of orbit- , _msgAlmanacGps_omega0 :: !Double+ , _msgAlmanacGps_omega0 :: !double -- ^ Longitude of ascending node of orbit plane at weekly epoch- , _msgAlmanacGps_omegadot :: !Double+ , _msgAlmanacGps_omegadot :: !double -- ^ Rate of right ascension- , _msgAlmanacGps_w :: !Double+ , _msgAlmanacGps_w :: !double -- ^ Argument of perigee- , _msgAlmanacGps_inc :: !Double+ , _msgAlmanacGps_inc :: !double -- ^ Inclination- , _msgAlmanacGps_af0 :: !Double+ , _msgAlmanacGps_af0 :: !double -- ^ Polynomial clock correction coefficient (clock bias)- , _msgAlmanacGps_af1 :: !Double+ , _msgAlmanacGps_af1 :: !double -- ^ Polynomial clock correction coefficient (clock drift) } deriving ( Show, Read, Eq ) @@ -2052,20 +2052,20 @@ data MsgAlmanacGloDep = MsgAlmanacGloDep { _msgAlmanacGloDep_common :: !AlmanacCommonContentDep -- ^ Values common for all almanac types- , _msgAlmanacGloDep_lambda_na :: !Double+ , _msgAlmanacGloDep_lambda_na :: !double -- ^ Longitude of the first ascending node of the orbit in PZ-90.02 -- coordinate system- , _msgAlmanacGloDep_t_lambda_na :: !Double+ , _msgAlmanacGloDep_t_lambda_na :: !double -- ^ Time of the first ascending node passage- , _msgAlmanacGloDep_i :: !Double+ , _msgAlmanacGloDep_i :: !double -- ^ Value of inclination at instant of t_lambda- , _msgAlmanacGloDep_t :: !Double+ , _msgAlmanacGloDep_t :: !double -- ^ Value of Draconian period at instant of t_lambda- , _msgAlmanacGloDep_t_dot :: !Double+ , _msgAlmanacGloDep_t_dot :: !double -- ^ Rate of change of the Draconian period- , _msgAlmanacGloDep_epsilon :: !Double+ , _msgAlmanacGloDep_epsilon :: !double -- ^ Eccentricity at instant of t_lambda- , _msgAlmanacGloDep_omega :: !Double+ , _msgAlmanacGloDep_omega :: !double -- ^ Argument of perigee at instant of t_lambda } deriving ( Show, Read, Eq ) @@ -2107,20 +2107,20 @@ data MsgAlmanacGlo = MsgAlmanacGlo { _msgAlmanacGlo_common :: !AlmanacCommonContent -- ^ Values common for all almanac types- , _msgAlmanacGlo_lambda_na :: !Double+ , _msgAlmanacGlo_lambda_na :: !double -- ^ Longitude of the first ascending node of the orbit in PZ-90.02 -- coordinate system- , _msgAlmanacGlo_t_lambda_na :: !Double+ , _msgAlmanacGlo_t_lambda_na :: !double -- ^ Time of the first ascending node passage- , _msgAlmanacGlo_i :: !Double+ , _msgAlmanacGlo_i :: !double -- ^ Value of inclination at instant of t_lambda- , _msgAlmanacGlo_t :: !Double+ , _msgAlmanacGlo_t :: !double -- ^ Value of Draconian period at instant of t_lambda- , _msgAlmanacGlo_t_dot :: !Double+ , _msgAlmanacGlo_t_dot :: !double -- ^ Rate of change of the Draconian period- , _msgAlmanacGlo_epsilon :: !Double+ , _msgAlmanacGlo_epsilon :: !double -- ^ Eccentricity at instant of t_lambda- , _msgAlmanacGlo_omega :: !Double+ , _msgAlmanacGlo_omega :: !double -- ^ Argument of perigee at instant of t_lambda } deriving ( Show, Read, Eq ) @@ -2159,15 +2159,15 @@ -- ambiguity resolution for baselines with mixed receiver types (e.g. receiver -- of different manufacturers) data MsgGloBiases = MsgGloBiases- { _msgGloBiases_mask :: !Word8+ { _msgGloBiases_mask :: !uint32 -- ^ GLONASS FDMA signals mask- , _msgGloBiases_l1ca_bias :: !Int16+ , _msgGloBiases_l1ca_bias :: !sint32 -- ^ GLONASS L1 C/A Code-Phase Bias- , _msgGloBiases_l1p_bias :: !Int16+ , _msgGloBiases_l1p_bias :: !sint32 -- ^ GLONASS L1 P Code-Phase Bias- , _msgGloBiases_l2ca_bias :: !Int16+ , _msgGloBiases_l2ca_bias :: !sint32 -- ^ GLONASS L2 C/A Code-Phase Bias- , _msgGloBiases_l2p_bias :: !Int16+ , _msgGloBiases_l2p_bias :: !sint32 -- ^ GLONASS L2 P Code-Phase Bias } deriving ( Show, Read, Eq )
@@ -44,13 +44,13 @@ -- preceding MSG_GPS_TIME with the matching time-of-week (tow). It is intended -- that time-matched RTK mode is used when the base station is moving. data MsgBaselineHeading = MsgBaselineHeading- { _msgBaselineHeading_tow :: !Word32+ { _msgBaselineHeading_tow :: !uint32 -- ^ GPS Time of Week- , _msgBaselineHeading_heading :: !Word32+ , _msgBaselineHeading_heading :: !uint32 -- ^ Heading- , _msgBaselineHeading_n_sats :: !Word8+ , _msgBaselineHeading_n_sats :: !uint32 -- ^ Number of satellites used in solution- , _msgBaselineHeading_flags :: !Word8+ , _msgBaselineHeading_flags :: !uint32 -- ^ Status flags } deriving ( Show, Read, Eq ) @@ -82,25 +82,25 @@ -- of the vector should sum to a unit vector assuming that the LSB of each -- component as a value of 2^-31. data MsgOrientQuat = MsgOrientQuat- { _msgOrientQuat_tow :: !Word32+ { _msgOrientQuat_tow :: !uint32 -- ^ GPS Time of Week- , _msgOrientQuat_w :: !Int32+ , _msgOrientQuat_w :: !sint32 -- ^ Real component- , _msgOrientQuat_x :: !Int32+ , _msgOrientQuat_x :: !sint32 -- ^ 1st imaginary component- , _msgOrientQuat_y :: !Int32+ , _msgOrientQuat_y :: !sint32 -- ^ 2nd imaginary component- , _msgOrientQuat_z :: !Int32+ , _msgOrientQuat_z :: !sint32 -- ^ 3rd imaginary component- , _msgOrientQuat_acc_w :: !Float+ , _msgOrientQuat_acc_w :: !float -- ^ Estimated standard deviation of w- , _msgOrientQuat_acc_x :: !Float+ , _msgOrientQuat_acc_x :: !float -- ^ Estimated standard deviation of x- , _msgOrientQuat_acc_y :: !Float+ , _msgOrientQuat_acc_y :: !float -- ^ Estimated standard deviation of y- , _msgOrientQuat_acc_z :: !Float+ , _msgOrientQuat_acc_z :: !float -- ^ Estimated standard deviation of z- , _msgOrientQuat_flags :: !Word8+ , _msgOrientQuat_flags :: !uint32 -- ^ Status flags } deriving ( Show, Read, Eq ) @@ -144,21 +144,21 @@ -- and roll in order to rotate the from a frame aligned with the local-level -- NED frame to the vehicle body frame. data MsgOrientEuler = MsgOrientEuler- { _msgOrientEuler_tow :: !Word32+ { _msgOrientEuler_tow :: !uint32 -- ^ GPS Time of Week- , _msgOrientEuler_roll :: !Int32+ , _msgOrientEuler_roll :: !sint32 -- ^ rotation about the forward axis of the vehicle- , _msgOrientEuler_pitch :: !Int32+ , _msgOrientEuler_pitch :: !sint32 -- ^ rotation about the rightward axis of the vehicle- , _msgOrientEuler_yaw :: !Int32+ , _msgOrientEuler_yaw :: !sint32 -- ^ rotation about the downward axis of the vehicle- , _msgOrientEuler_var_roll :: !Float+ , _msgOrientEuler_var_roll :: !float -- ^ Estimated standard deviation of roll- , _msgOrientEuler_var_pitch :: !Float+ , _msgOrientEuler_var_pitch :: !float -- ^ Estimated standard deviation of pitch- , _msgOrientEuler_var_yaw :: !Float+ , _msgOrientEuler_var_yaw :: !float -- ^ Estimated standard deviation of yaw- , _msgOrientEuler_flags :: !Word8+ , _msgOrientEuler_flags :: !uint32 -- ^ Status flags } deriving ( Show, Read, Eq ) @@ -201,15 +201,15 @@ -- direction, while the vehicle y-axis is expected to be aligned with the right -- direction, and the vehicle z-axis should be aligned with the down direction. data MsgAngularRate = MsgAngularRate- { _msgAngularRate_tow :: !Word32+ { _msgAngularRate_tow :: !uint32 -- ^ GPS Time of Week- , _msgAngularRate_x :: !Int32+ , _msgAngularRate_x :: !sint32 -- ^ angular rate about x axis- , _msgAngularRate_y :: !Int32+ , _msgAngularRate_y :: !sint32 -- ^ angular rate about y axis- , _msgAngularRate_z :: !Int32+ , _msgAngularRate_z :: !sint32 -- ^ angular rate about z axis- , _msgAngularRate_flags :: !Word8+ , _msgAngularRate_flags :: !uint32 -- ^ Status flags } deriving ( Show, Read, Eq )
@@ -85,7 +85,7 @@ -- -- This message from the host resets the Piksi back into the bootloader. data MsgReset = MsgReset- { _msgReset_flags :: !Word32+ { _msgReset_flags :: !uint32 -- ^ Reset flags } deriving ( Show, Read, Eq ) @@ -170,7 +170,7 @@ -- This message resets either the DGNSS Kalman filters or Integer Ambiguity -- Resolution (IAR) process. data MsgResetFilters = MsgResetFilters- { _msgResetFilters_filter :: !Word8+ { _msgResetFilters_filter :: !uint32 -- ^ Filter flags } deriving ( Show, Read, Eq ) @@ -217,12 +217,12 @@ -- (RTOS) thread usage statistics for the named thread. The reported percentage -- values must be normalized. data MsgThreadState = MsgThreadState- { _msgThreadState_name :: !Text+ { _msgThreadState_name :: !string -- ^ Thread name (NULL terminated)- , _msgThreadState_cpu :: !Word16+ , _msgThreadState_cpu :: !uint32 -- ^ Percentage cpu use for this thread. Values range from 0 - 1000 and needs -- to be renormalized to 100- , _msgThreadState_stack_free :: !Word32+ , _msgThreadState_stack_free :: !uint32 -- ^ Free stack space for this thread } deriving ( Show, Read, Eq ) @@ -247,17 +247,17 @@ -- Throughput, utilization, and error counts on the RX/TX buffers of this UART -- channel. The reported percentage values must be normalized. data UARTChannel = UARTChannel- { _uARTChannel_tx_throughput :: !Float+ { _uARTChannel_tx_throughput :: !float -- ^ UART transmit throughput- , _uARTChannel_rx_throughput :: !Float+ , _uARTChannel_rx_throughput :: !float -- ^ UART receive throughput- , _uARTChannel_crc_error_count :: !Word16+ , _uARTChannel_crc_error_count :: !uint32 -- ^ UART CRC error count- , _uARTChannel_io_error_count :: !Word16+ , _uARTChannel_io_error_count :: !uint32 -- ^ UART IO error count- , _uARTChannel_tx_buffer_level :: !Word8+ , _uARTChannel_tx_buffer_level :: !uint32 -- ^ UART transmit buffer percentage utilization (ranges from 0 to 255)- , _uARTChannel_rx_buffer_level :: !Word8+ , _uARTChannel_rx_buffer_level :: !uint32 -- ^ UART receive buffer percentage utilization (ranges from 0 to 255) } deriving ( Show, Read, Eq ) @@ -290,13 +290,13 @@ -- for link quality as incomplete or missing sets will increase the period. -- Long periods can cause momentary RTK solution outages. data Period = Period- { _period_avg :: !Int32+ { _period_avg :: !sint32 -- ^ Average period- , _period_pmin :: !Int32+ , _period_pmin :: !sint32 -- ^ Minimum period- , _period_pmax :: !Int32+ , _period_pmax :: !sint32 -- ^ Maximum period- , _period_current :: !Int32+ , _period_current :: !sint32 -- ^ Smoothed estimate of the current period } deriving ( Show, Read, Eq ) @@ -324,13 +324,13 @@ -- GPS time calculated locally by the receiver to give a precise measurement of -- the end-to-end communication latency in the system. data Latency = Latency- { _latency_avg :: !Int32+ { _latency_avg :: !sint32 -- ^ Average latency- , _latency_lmin :: !Int32+ , _latency_lmin :: !sint32 -- ^ Minimum latency- , _latency_lmax :: !Int32+ , _latency_lmax :: !sint32 -- ^ Maximum latency- , _latency_current :: !Int32+ , _latency_current :: !sint32 -- ^ Smoothed estimate of the current latency } deriving ( Show, Read, Eq ) @@ -441,7 +441,7 @@ -- process, which resolves unknown integer ambiguities from double-differenced -- carrier-phase measurements from satellite observations. data MsgIarState = MsgIarState- { _msgIarState_num_hyps :: !Word32+ { _msgIarState_num_hyps :: !uint32 -- ^ Number of integer ambiguity hypotheses remaining } deriving ( Show, Read, Eq ) @@ -465,9 +465,9 @@ -- This message allows setting a mask to prevent a particular satellite from -- being used in various Piksi subsystems. data MsgMaskSatellite = MsgMaskSatellite- { _msgMaskSatellite_mask :: !Word8+ { _msgMaskSatellite_mask :: !uint32 -- ^ Mask of systems that should ignore this satellite.- , _msgMaskSatellite_sid :: !GnssSignal+ , _msgMaskSatellite_sid :: !gnss.GnssSignal -- ^ GNSS signal for which the mask is applied } deriving ( Show, Read, Eq ) @@ -492,7 +492,7 @@ -- -- Deprecated. data MsgMaskSatelliteDep = MsgMaskSatelliteDep- { _msgMaskSatelliteDep_mask :: !Word8+ { _msgMaskSatelliteDep_mask :: !uint32 -- ^ Mask of systems that should ignore this satellite. , _msgMaskSatelliteDep_sid :: !GnssSignalDep -- ^ GNSS signal for which the mask is applied@@ -521,15 +521,15 @@ -- processor's monitoring system and the RF frontend die temperature if -- available. data MsgDeviceMonitor = MsgDeviceMonitor- { _msgDeviceMonitor_dev_vin :: !Int16+ { _msgDeviceMonitor_dev_vin :: !sint32 -- ^ Device V_in- , _msgDeviceMonitor_cpu_vint :: !Int16+ , _msgDeviceMonitor_cpu_vint :: !sint32 -- ^ Processor V_int- , _msgDeviceMonitor_cpu_vaux :: !Int16+ , _msgDeviceMonitor_cpu_vaux :: !sint32 -- ^ Processor V_aux- , _msgDeviceMonitor_cpu_temperature :: !Int16+ , _msgDeviceMonitor_cpu_temperature :: !sint32 -- ^ Processor temperature- , _msgDeviceMonitor_fe_temperature :: !Int16+ , _msgDeviceMonitor_fe_temperature :: !sint32 -- ^ Frontend temperature (if available) } deriving ( Show, Read, Eq ) @@ -561,9 +561,9 @@ -- Request the recipient to execute an command. Output will be sent in MSG_LOG -- messages, and the exit code will be returned with MSG_COMMAND_RESP. data MsgCommandReq = MsgCommandReq- { _msgCommandReq_sequence :: !Word32+ { _msgCommandReq_sequence :: !uint32 -- ^ Sequence number- , _msgCommandReq_command :: !Text+ , _msgCommandReq_command :: !string -- ^ Command line to execute } deriving ( Show, Read, Eq ) @@ -589,9 +589,9 @@ -- The response to MSG_COMMAND_REQ with the return code of the command. A -- return code of zero indicates success. data MsgCommandResp = MsgCommandResp- { _msgCommandResp_sequence :: !Word32+ { _msgCommandResp_sequence :: !uint32 -- ^ Sequence number- , _msgCommandResp_code :: !Int32+ , _msgCommandResp_code :: !sint32 -- ^ Exit code } deriving ( Show, Read, Eq ) @@ -618,9 +618,9 @@ -- MSG_COMMAND_REQ. The sequence number can be used to filter for filtering the -- correct command. data MsgCommandOutput = MsgCommandOutput- { _msgCommandOutput_sequence :: !Word32+ { _msgCommandOutput_sequence :: !uint32 -- ^ Sequence number- , _msgCommandOutput_line :: !Text+ , _msgCommandOutput_line :: !string -- ^ Line of standard output or standard error } deriving ( Show, Read, Eq ) @@ -666,21 +666,21 @@ -- The state of a network interface on the Piksi. Data is made to reflect -- output of ifaddrs struct returned by getifaddrs in c. data MsgNetworkStateResp = MsgNetworkStateResp- { _msgNetworkStateResp_ipv4_address :: ![Word8]+ { _msgNetworkStateResp_ipv4_address :: !repeated uint32 -- ^ IPv4 address (all zero when unavailable)- , _msgNetworkStateResp_ipv4_mask_size :: !Word8+ , _msgNetworkStateResp_ipv4_mask_size :: !uint32 -- ^ IPv4 netmask CIDR notation- , _msgNetworkStateResp_ipv6_address :: ![Word8]+ , _msgNetworkStateResp_ipv6_address :: !repeated uint32 -- ^ IPv6 address (all zero when unavailable)- , _msgNetworkStateResp_ipv6_mask_size :: !Word8+ , _msgNetworkStateResp_ipv6_mask_size :: !uint32 -- ^ IPv6 netmask CIDR notation- , _msgNetworkStateResp_rx_bytes :: !Word32+ , _msgNetworkStateResp_rx_bytes :: !uint32 -- ^ Number of Rx bytes- , _msgNetworkStateResp_tx_bytes :: !Word32+ , _msgNetworkStateResp_tx_bytes :: !uint32 -- ^ Number of Tx bytes- , _msgNetworkStateResp_interface_name :: !Text+ , _msgNetworkStateResp_interface_name :: !string -- ^ Interface Name- , _msgNetworkStateResp_flags :: !Word32+ , _msgNetworkStateResp_flags :: !uint32 -- ^ Interface flags from SIOCGIFFLAGS } deriving ( Show, Read, Eq ) @@ -718,15 +718,15 @@ -- may vary, both a timestamp and period field is provided, though may not -- necessarily be populated with a value. data NetworkUsage = NetworkUsage- { _networkUsage_duration :: !Word64+ { _networkUsage_duration :: !uint64 -- ^ Duration over which the measurement was collected- , _networkUsage_total_bytes :: !Word64+ , _networkUsage_total_bytes :: !uint64 -- ^ Number of bytes handled in total within period- , _networkUsage_rx_bytes :: !Word32+ , _networkUsage_rx_bytes :: !uint32 -- ^ Number of bytes transmitted within period- , _networkUsage_tx_bytes :: !Word32+ , _networkUsage_tx_bytes :: !uint32 -- ^ Number of bytes received within period- , _networkUsage_interface_name :: !Text+ , _networkUsage_interface_name :: !string -- ^ Interface Name } deriving ( Show, Read, Eq ) @@ -756,7 +756,7 @@ -- -- The bandwidth usage, a list of usage by interface. data MsgNetworkBandwidthUsage = MsgNetworkBandwidthUsage- { _msgNetworkBandwidthUsage_interfaces :: ![NetworkUsage]+ { _msgNetworkBandwidthUsage_interfaces :: !repeated NetworkUsage -- ^ Usage measurement array } deriving ( Show, Read, Eq ) @@ -779,19 +779,19 @@ -- -- Deprecated. data MsgSpecanDep = MsgSpecanDep- { _msgSpecanDep_channel_tag :: !Word16+ { _msgSpecanDep_channel_tag :: !uint32 -- ^ Channel ID , _msgSpecanDep_t :: !GpsTimeDep -- ^ Receiver time of this observation- , _msgSpecanDep_freq_ref :: !Float+ , _msgSpecanDep_freq_ref :: !float -- ^ Reference frequency of this packet- , _msgSpecanDep_freq_step :: !Float+ , _msgSpecanDep_freq_step :: !float -- ^ Frequency step of points in this packet- , _msgSpecanDep_amplitude_ref :: !Float+ , _msgSpecanDep_amplitude_ref :: !float -- ^ Reference amplitude of this packet- , _msgSpecanDep_amplitude_unit :: !Float+ , _msgSpecanDep_amplitude_unit :: !float -- ^ Amplitude unit value of points in this packet- , _msgSpecanDep_amplitude_value :: ![Word8]+ , _msgSpecanDep_amplitude_value :: !repeated uint32 -- ^ Amplitude values (in the above units) of points in this packet } deriving ( Show, Read, Eq ) @@ -826,19 +826,19 @@ -- -- Spectrum analyzer packet. data MsgSpecan = MsgSpecan- { _msgSpecan_channel_tag :: !Word16+ { _msgSpecan_channel_tag :: !uint32 -- ^ Channel ID- , _msgSpecan_t :: !GpsTime+ , _msgSpecan_t :: !gnss.GpsTime -- ^ Receiver time of this observation- , _msgSpecan_freq_ref :: !Float+ , _msgSpecan_freq_ref :: !float -- ^ Reference frequency of this packet- , _msgSpecan_freq_step :: !Float+ , _msgSpecan_freq_step :: !float -- ^ Frequency step of points in this packet- , _msgSpecan_amplitude_ref :: !Float+ , _msgSpecan_amplitude_ref :: !float -- ^ Reference amplitude of this packet- , _msgSpecan_amplitude_unit :: !Float+ , _msgSpecan_amplitude_unit :: !float -- ^ Amplitude unit value of points in this packet- , _msgSpecan_amplitude_value :: ![Word8]+ , _msgSpecan_amplitude_value :: !repeated uint32 -- ^ Amplitude values (in the above units) of points in this packet } deriving ( Show, Read, Eq )
@@ -43,13 +43,13 @@ -- This message is sent once per second per SBAS satellite. ME checks the -- parity of the data block and sends only blocks that pass the check. data MsgSbasRaw = MsgSbasRaw- { _msgSbasRaw_sid :: !GnssSignal+ { _msgSbasRaw_sid :: !gnss.GnssSignal -- ^ GNSS signal identifier.- , _msgSbasRaw_tow :: !Word32+ , _msgSbasRaw_tow :: !uint32 -- ^ GPS time-of-week at the start of the data block.- , _msgSbasRaw_message_type :: !Word8+ , _msgSbasRaw_message_type :: !uint32 -- ^ SBAS message type (0-63)- , _msgSbasRaw_data :: ![Word8]+ , _msgSbasRaw_data :: !repeated uint32 -- ^ Raw SBAS data field of 212 bits (last byte padded with zeros). } deriving ( Show, Read, Eq )
@@ -11,11 +11,28 @@ -- Stability: experimental -- Portability: portable ----- Messages for reading and writing the device's device settings. Note that--- some of these messages share the same message type ID for both the host--- request and the device response. See the accompanying document for--- descriptions of settings configurations and examples: https://github.com--- /swift-nav/piksi\_firmware/blob/master/docs/settings.pdf+-- Messages for reading, writing, and discovering device settings. Settings+-- with a "string" field have multiple values in this field delimited with a+-- null character (the c style null terminator). For instance, when querying+-- the 'firmware_version' setting in the 'system_info' section, the following+-- array of characters needs to be sent for the string field in+-- MSG_SETTINGS_READ: "system_info\0firmware_version\0", where the delimiting+-- null characters are specified with the escape sequence '\0' and all+-- quotation marks should be omitted. In the message descriptions below, the+-- generic strings SECTION_SETTING and SETTING are used to refer to the two+-- strings that comprise the identifier of an individual setting.In+-- firmware_version example above, SECTION_SETTING is the 'system_info', and+-- the SETTING portion is 'firmware_version'. See the "Software Settings+-- Manual" on support.swiftnav.com for detailed documentation about all+-- settings and sections available for each Swift firmware version. Settings+-- manuals are available for each firmware version at the following link:+-- https://support.swiftnav.com/customer/en/portal/articles/2628580-piksi-+-- multi-specifications#settings. The latest settings document is also+-- available at the following link: http://swiftnav.com/latest/piksi-multi-+-- settings . See lastly https://github.com/swift-+-- nav/piksi_tools/blob/master/piksi_tools/settings.py , the open source+-- python command line utility for reading, writing, and saving settings in the+-- piksi_tools repository on github as a helpful reference and example. module SwiftNav.SBP.Settings ( module SwiftNav.SBP.Settings@@ -64,12 +81,16 @@ -- | SBP class for message MSG_SETTINGS_WRITE (0x00A0). ----- The setting message writes the device configuration.+-- The setting message writes the device configuration for a particular setting+-- via A NULL-terminated and NULL-delimited string with contents+-- "SECTION_SETTING\0SETTING\0VALUE\0" where the '\0' escape sequence denotes+-- the NULL character and where quotation marks are omitted. A device will only+-- process to this message when it is received from sender ID 0x42. An example+-- string that could be sent to a device is "solution\0soln_freq\010\0". data MsgSettingsWrite = MsgSettingsWrite- { _msgSettingsWrite_setting :: !Text- -- ^ A NULL-terminated and delimited string with contents [SECTION_SETTING,- -- SETTING, VALUE]. A device will only process to this message when it is- -- received from sender ID 0x42.+ { _msgSettingsWrite_setting :: !string+ -- ^ A NULL-terminated and NULL-delimited string with contents+ -- "SECTION_SETTING\0SETTING\0VALUE\0" } deriving ( Show, Read, Eq ) instance Binary MsgSettingsWrite where@@ -90,13 +111,17 @@ -- | SBP class for message MSG_SETTINGS_WRITE_RESP (0x00AF). -- -- Return the status of a write request with the new value of the setting. If--- the requested value is rejected, the current value will be returned.+-- the requested value is rejected, the current value will be returned. The+-- string field is a NULL-terminated and NULL-delimited string with contents+-- "SECTION_SETTING\0SETTING\0VALUE\0" where the '\0' escape sequence denotes+-- the NULL character and where quotation marks are omitted. An example string+-- that could be sent from device is "solution\0soln_freq\010\0". data MsgSettingsWriteResp = MsgSettingsWriteResp- { _msgSettingsWriteResp_status :: !Word8+ { _msgSettingsWriteResp_status :: !uint32 -- ^ Write status- , _msgSettingsWriteResp_setting :: !Text- -- ^ A NULL-terminated and delimited string with contents [SECTION_SETTING,- -- SETTING, VALUE].+ , _msgSettingsWriteResp_setting :: !string+ -- ^ A NULL-terminated and delimited string with contents+ -- "SECTION_SETTING\0SETTING\0VALUE\0" } deriving ( Show, Read, Eq ) instance Binary MsgSettingsWriteResp where@@ -118,12 +143,17 @@ -- | SBP class for message MSG_SETTINGS_READ_REQ (0x00A4). ----- The setting message reads the device configuration.+-- The setting message that reads the device configuration. The string field is+-- a NULL-terminated and NULL-delimited string with contents+-- "SECTION_SETTING\0SETTING\0" where the '\0' escape sequence denotes the NULL+-- character and where quotation marks are omitted. An example string that+-- could be sent to a device is "solution\0soln_freq\0". A device will only+-- respond to this message when it is received from sender ID 0x42. A device+-- should respond with a MSG_SETTINGS_READ_RESP message (msg_id 0x00A5). data MsgSettingsReadReq = MsgSettingsReadReq- { _msgSettingsReadReq_setting :: !Text- -- ^ A NULL-terminated and delimited string with contents [SECTION_SETTING,- -- SETTING]. A device will only respond to this message when it is received- -- from sender ID 0x42.+ { _msgSettingsReadReq_setting :: !string+ -- ^ A NULL-terminated and NULL-delimited string with contents+ -- "SECTION_SETTING\0SETTING\0" } deriving ( Show, Read, Eq ) instance Binary MsgSettingsReadReq where@@ -143,11 +173,16 @@ -- | SBP class for message MSG_SETTINGS_READ_RESP (0x00A5). ----- The setting message reads the device configuration.+-- The setting message wich which the device responds after a+-- MSG_SETTING_READ_REQ is sent to device. The string field is a NULL-+-- terminated and NULL-delimited string with contents+-- "SECTION_SETTING\0SETTING\0VALUE\0" where the '\0' escape sequence denotes+-- the NULL character and where quotation marks are omitted. An example string+-- that could be sent from device is "solution\0soln_freq\010\0". data MsgSettingsReadResp = MsgSettingsReadResp- { _msgSettingsReadResp_setting :: !Text- -- ^ A NULL-terminated and delimited string with contents [SECTION_SETTING,- -- SETTING, VALUE].+ { _msgSettingsReadResp_setting :: !string+ -- ^ A NULL-terminated and NULL-delimited string with contents+ -- "SECTION_SETTING\0SETTING\0VALUE\0" } deriving ( Show, Read, Eq ) instance Binary MsgSettingsReadResp where@@ -167,12 +202,10 @@ -- | SBP class for message MSG_SETTINGS_READ_BY_INDEX_REQ (0x00A2). ----- The settings message for iterating through the settings values. It will read--- the setting at an index, returning a NULL-terminated and delimited string--- with contents [SECTION_SETTING, SETTING, VALUE]. A device will only respond--- to this message when it is received from sender ID 0x42.+-- The settings message for iterating through the settings values. A device+-- will respond to this message with a "MSG_SETTINGS_READ_BY_INDEX_RESP". data MsgSettingsReadByIndexReq = MsgSettingsReadByIndexReq- { _msgSettingsReadByIndexReq_index :: !Word16+ { _msgSettingsReadByIndexReq_index :: !uint32 -- ^ An index into the device settings, with values ranging from 0 to -- length(settings) } deriving ( Show, Read, Eq )@@ -194,16 +227,22 @@ -- | SBP class for message MSG_SETTINGS_READ_BY_INDEX_RESP (0x00A7). ----- The settings message for iterating through the settings values. It will read--- the setting at an index, returning a NULL-terminated and delimited string--- with contents [SECTION_SETTING, SETTING, VALUE].+-- The settings message that reports the value of a setting at an index. In+-- the string field, it reports NULL-terminated and delimited string with+-- contents "SECTION_SETTING\0SETTING\0VALUE\0FORMAT_TYPE\0". where the '\0'+-- escape sequence denotes the NULL character and where quotation marks are+-- omitted. The FORMAT_TYPE field is optional and denotes possible string+-- values of the setting as a hint to the user. If included, the format type+-- portion of the string has the format "enum:value1,value2,value3". An example+-- string that could be sent from the device is+-- "simulator\0enabled\0True\0enum:True,False\0" data MsgSettingsReadByIndexResp = MsgSettingsReadByIndexResp- { _msgSettingsReadByIndexResp_index :: !Word16+ { _msgSettingsReadByIndexResp_index :: !uint32 -- ^ An index into the device settings, with values ranging from 0 to -- length(settings)- , _msgSettingsReadByIndexResp_setting :: !Text- -- ^ A NULL-terminated and delimited string with contents [SECTION_SETTING,- -- SETTING, VALUE].+ , _msgSettingsReadByIndexResp_setting :: !string+ -- ^ A NULL-terminated and delimited string with contents+ -- "SECTION_SETTING\0SETTING\0VALUE\0FORMAT_TYPE\0" } deriving ( Show, Read, Eq ) instance Binary MsgSettingsReadByIndexResp where@@ -248,9 +287,9 @@ -- settings daemon. The host should reply with MSG_SETTINGS_WRITE for this -- setting to set the initial value. data MsgSettingsRegister = MsgSettingsRegister- { _msgSettingsRegister_setting :: !Text- -- ^ A NULL-terminated and delimited string with contents [SECTION_SETTING,- -- SETTING, VALUE].+ { _msgSettingsRegister_setting :: !string+ -- ^ A NULL-terminated and delimited string with contents+ -- "SECTION_SETTING\0SETTING\0VALUE". } deriving ( Show, Read, Eq ) instance Binary MsgSettingsRegister where
@@ -41,9 +41,9 @@ -- Code biases are to be added to pseudorange. The corrections are conform with -- typical RTCMv3 MT1059 and 1065. data CodeBiasesContent = CodeBiasesContent- { _codeBiasesContent_code :: !Word8+ { _codeBiasesContent_code :: !uint32 -- ^ Signal constellation, band and code- , _codeBiasesContent_value :: !Int16+ , _codeBiasesContent_value :: !sint32 -- ^ Code bias value } deriving ( Show, Read, Eq ) @@ -65,16 +65,16 @@ -- Phase biases are to be added to carrier phase measurements. The corrections -- are conform with typical RTCMv3 MT1059 and 1065. data PhaseBiasesContent = PhaseBiasesContent- { _phaseBiasesContent_code :: !Word8+ { _phaseBiasesContent_code :: !uint32 -- ^ Signal constellation, band and code- , _phaseBiasesContent_integer_indicator :: !Word8+ , _phaseBiasesContent_integer_indicator :: !uint32 -- ^ Indicator for integer property- , _phaseBiasesContent_widelane_integer_indicator :: !Word8+ , _phaseBiasesContent_widelane_integer_indicator :: !uint32 -- ^ Indicator for two groups of Wide-Lane(s) integer property- , _phaseBiasesContent_discontinuity_counter :: !Word8+ , _phaseBiasesContent_discontinuity_counter :: !uint32 -- ^ Signal phase discontinuity counter. Increased for every discontinuity -- in phase.- , _phaseBiasesContent_bias :: !Int32+ , _phaseBiasesContent_bias :: !sint32 -- ^ Phase bias for specified signal } deriving ( Show, Read, Eq ) @@ -106,34 +106,34 @@ -- correction to broadcast ephemeris and is typically an equivalent to the -- 1060 and 1066 RTCM message types data MsgSsrOrbitClock = MsgSsrOrbitClock- { _msgSsrOrbitClock_time :: !GpsTimeSec+ { _msgSsrOrbitClock_time :: !gnss.GpsTimeSec -- ^ GNSS reference time of the correction- , _msgSsrOrbitClock_sid :: !GnssSignal+ , _msgSsrOrbitClock_sid :: !gnss.GnssSignal -- ^ GNSS signal identifier (16 bit)- , _msgSsrOrbitClock_update_interval :: !Word8+ , _msgSsrOrbitClock_update_interval :: !uint32 -- ^ Update interval between consecutive corrections- , _msgSsrOrbitClock_iod_ssr :: !Word8+ , _msgSsrOrbitClock_iod_ssr :: !uint32 -- ^ IOD of the SSR correction. A change of Issue Of Data SSR is used to -- indicate a change in the SSR generating configuration- , _msgSsrOrbitClock_iod :: !Word8+ , _msgSsrOrbitClock_iod :: !uint32 -- ^ Issue of broadcast ephemeris data- , _msgSsrOrbitClock_radial :: !Int32+ , _msgSsrOrbitClock_radial :: !sint32 -- ^ Orbit radial delta correction- , _msgSsrOrbitClock_along :: !Int32+ , _msgSsrOrbitClock_along :: !sint32 -- ^ Orbit along delta correction- , _msgSsrOrbitClock_cross :: !Int32+ , _msgSsrOrbitClock_cross :: !sint32 -- ^ Orbit along delta correction- , _msgSsrOrbitClock_dot_radial :: !Int32+ , _msgSsrOrbitClock_dot_radial :: !sint32 -- ^ Velocity of orbit radial delta correction- , _msgSsrOrbitClock_dot_along :: !Int32+ , _msgSsrOrbitClock_dot_along :: !sint32 -- ^ Velocity of orbit along delta correction- , _msgSsrOrbitClock_dot_cross :: !Int32+ , _msgSsrOrbitClock_dot_cross :: !sint32 -- ^ Velocity of orbit cross delta correction- , _msgSsrOrbitClock_c0 :: !Int32+ , _msgSsrOrbitClock_c0 :: !sint32 -- ^ C0 polynomial coefficient for correction of broadcast satellite clock- , _msgSsrOrbitClock_c1 :: !Int32+ , _msgSsrOrbitClock_c1 :: !sint32 -- ^ C1 polynomial coefficient for correction of broadcast satellite clock- , _msgSsrOrbitClock_c2 :: !Int32+ , _msgSsrOrbitClock_c2 :: !sint32 -- ^ C2 polynomial coefficient for correction of broadcast satellite clock } deriving ( Show, Read, Eq ) @@ -184,16 +184,16 @@ -- corresponding signal to get corrected pseudorange. It is typically an -- equivalent to the 1059 and 1065 RTCM message types data MsgSsrCodeBiases = MsgSsrCodeBiases- { _msgSsrCodeBiases_time :: !GpsTimeSec+ { _msgSsrCodeBiases_time :: !gnss.GpsTimeSec -- ^ GNSS reference time of the correction- , _msgSsrCodeBiases_sid :: !GnssSignal+ , _msgSsrCodeBiases_sid :: !gnss.GnssSignal -- ^ GNSS signal identifier (16 bit)- , _msgSsrCodeBiases_update_interval :: !Word8+ , _msgSsrCodeBiases_update_interval :: !uint32 -- ^ Update interval between consecutive corrections- , _msgSsrCodeBiases_iod_ssr :: !Word8+ , _msgSsrCodeBiases_iod_ssr :: !uint32 -- ^ IOD of the SSR correction. A change of Issue Of Data SSR is used to -- indicate a change in the SSR generating configuration- , _msgSsrCodeBiases_biases :: ![CodeBiasesContent]+ , _msgSsrCodeBiases_biases :: !repeated CodeBiasesContent -- ^ Code biases for the different satellite signals } deriving ( Show, Read, Eq ) @@ -228,24 +228,24 @@ -- the phase wind-up correction. It is typically an equivalent to the 1265 -- RTCM message types data MsgSsrPhaseBiases = MsgSsrPhaseBiases- { _msgSsrPhaseBiases_time :: !GpsTimeSec+ { _msgSsrPhaseBiases_time :: !gnss.GpsTimeSec -- ^ GNSS reference time of the correction- , _msgSsrPhaseBiases_sid :: !GnssSignal+ , _msgSsrPhaseBiases_sid :: !gnss.GnssSignal -- ^ GNSS signal identifier (16 bit)- , _msgSsrPhaseBiases_update_interval :: !Word8+ , _msgSsrPhaseBiases_update_interval :: !uint32 -- ^ Update interval between consecutive corrections- , _msgSsrPhaseBiases_iod_ssr :: !Word8+ , _msgSsrPhaseBiases_iod_ssr :: !uint32 -- ^ IOD of the SSR correction. A change of Issue Of Data SSR is used to -- indicate a change in the SSR generating configuration- , _msgSsrPhaseBiases_dispersive_bias :: !Word8+ , _msgSsrPhaseBiases_dispersive_bias :: !uint32 -- ^ Indicator for the dispersive phase biases property.- , _msgSsrPhaseBiases_mw_consistency :: !Word8+ , _msgSsrPhaseBiases_mw_consistency :: !uint32 -- ^ Consistency indicator for Melbourne-Wubbena linear combinations- , _msgSsrPhaseBiases_yaw :: !Word16+ , _msgSsrPhaseBiases_yaw :: !uint32 -- ^ Satellite yaw angle- , _msgSsrPhaseBiases_yaw_rate :: !Int8+ , _msgSsrPhaseBiases_yaw_rate :: !sint32 -- ^ Satellite yaw angle rate- , _msgSsrPhaseBiases_biases :: ![PhaseBiasesContent]+ , _msgSsrPhaseBiases_biases :: !repeated PhaseBiasesContent -- ^ Phase biases corrections for a satellite being tracked. } deriving ( Show, Read, Eq )
@@ -44,11 +44,11 @@ -- host or other attached devices that the system has started and is now ready -- to respond to commands or configuration requests. data MsgStartup = MsgStartup- { _msgStartup_cause :: !Word8+ { _msgStartup_cause :: !uint32 -- ^ Cause of startup- , _msgStartup_startup_type :: !Word8+ , _msgStartup_startup_type :: !uint32 -- ^ Startup type- , _msgStartup_reserved :: !Word16+ , _msgStartup_reserved :: !uint32 -- ^ Reserved } deriving ( Show, Read, Eq ) @@ -77,13 +77,13 @@ -- corrections. It is expected to be sent with each receipt of a complete -- corrections packet. data MsgDgnssStatus = MsgDgnssStatus- { _msgDgnssStatus_flags :: !Word8+ { _msgDgnssStatus_flags :: !uint32 -- ^ Status flags- , _msgDgnssStatus_latency :: !Word16+ , _msgDgnssStatus_latency :: !uint32 -- ^ Latency of observation receipt- , _msgDgnssStatus_num_signals :: !Word8+ , _msgDgnssStatus_num_signals :: !uint32 -- ^ Number of signals from base station- , _msgDgnssStatus_source :: !Text+ , _msgDgnssStatus_source :: !string -- ^ Corrections source string } deriving ( Show, Read, Eq ) @@ -118,7 +118,7 @@ -- indicate that an error has occurred in the system. To determine the source -- of the error, the remaining error flags should be inspected. data MsgHeartbeat = MsgHeartbeat- { _msgHeartbeat_flags :: !Word32+ { _msgHeartbeat_flags :: !uint32 -- ^ Status flags } deriving ( Show, Read, Eq ) @@ -142,7 +142,7 @@ -- The INS status message describes the state of the operation and -- initialization of the inertial navigation system. data MsgInsStatus = MsgInsStatus- { _msgInsStatus_flags :: !Word32+ { _msgInsStatus_flags :: !uint32 -- ^ Status flags } deriving ( Show, Read, Eq )
@@ -44,53 +44,53 @@ -- The tracking message returns a set tracking channel parameters for a single -- tracking channel useful for debugging issues. data MsgTrackingStateDetailedDepA = MsgTrackingStateDetailedDepA- { _msgTrackingStateDetailedDepA_recv_time :: !Word64+ { _msgTrackingStateDetailedDepA_recv_time :: !uint64 -- ^ Receiver clock time.- , _msgTrackingStateDetailedDepA_tot :: !GpsTime+ , _msgTrackingStateDetailedDepA_tot :: !gnss.GpsTime -- ^ Time of transmission of signal from satellite. TOW only valid when TOW -- status is decoded or propagated. WN only valid when week number valid -- flag is set.- , _msgTrackingStateDetailedDepA_P :: !Word32+ , _msgTrackingStateDetailedDepA_P :: !uint32 -- ^ Pseudorange observation. Valid only when pseudorange valid flag is set.- , _msgTrackingStateDetailedDepA_P_std :: !Word16+ , _msgTrackingStateDetailedDepA_P_std :: !uint32 -- ^ Pseudorange observation standard deviation. Valid only when pseudorange -- valid flag is set.- , _msgTrackingStateDetailedDepA_L :: !CarrierPhase+ , _msgTrackingStateDetailedDepA_L :: !gnss.CarrierPhase -- ^ Carrier phase observation with typical sign convention. Valid only when -- PLL pessimistic lock is achieved.- , _msgTrackingStateDetailedDepA_cn0 :: !Word8+ , _msgTrackingStateDetailedDepA_cn0 :: !uint32 -- ^ Carrier-to-Noise density- , _msgTrackingStateDetailedDepA_lock :: !Word16+ , _msgTrackingStateDetailedDepA_lock :: !uint32 -- ^ Lock time. It is encoded according to DF402 from the RTCM 10403.2 -- Amendment 2 specification. Valid values range from 0 to 15.- , _msgTrackingStateDetailedDepA_sid :: !GnssSignal+ , _msgTrackingStateDetailedDepA_sid :: !gnss.GnssSignal -- ^ GNSS signal identifier.- , _msgTrackingStateDetailedDepA_doppler :: !Int32+ , _msgTrackingStateDetailedDepA_doppler :: !sint32 -- ^ Carrier Doppler frequency.- , _msgTrackingStateDetailedDepA_doppler_std :: !Word16+ , _msgTrackingStateDetailedDepA_doppler_std :: !uint32 -- ^ Carrier Doppler frequency standard deviation.- , _msgTrackingStateDetailedDepA_uptime :: !Word32+ , _msgTrackingStateDetailedDepA_uptime :: !uint32 -- ^ Number of seconds of continuous tracking. Specifies how much time signal -- is in continuous track.- , _msgTrackingStateDetailedDepA_clock_offset :: !Int16+ , _msgTrackingStateDetailedDepA_clock_offset :: !sint32 -- ^ TCXO clock offset. Valid only when valid clock valid flag is set.- , _msgTrackingStateDetailedDepA_clock_drift :: !Int16+ , _msgTrackingStateDetailedDepA_clock_drift :: !sint32 -- ^ TCXO clock drift. Valid only when valid clock valid flag is set.- , _msgTrackingStateDetailedDepA_corr_spacing :: !Word16+ , _msgTrackingStateDetailedDepA_corr_spacing :: !uint32 -- ^ Early-Prompt (EP) and Prompt-Late (PL) correlators spacing.- , _msgTrackingStateDetailedDepA_acceleration :: !Int8+ , _msgTrackingStateDetailedDepA_acceleration :: !sint32 -- ^ Acceleration. Valid only when acceleration valid flag is set.- , _msgTrackingStateDetailedDepA_sync_flags :: !Word8+ , _msgTrackingStateDetailedDepA_sync_flags :: !uint32 -- ^ Synchronization status flags.- , _msgTrackingStateDetailedDepA_tow_flags :: !Word8+ , _msgTrackingStateDetailedDepA_tow_flags :: !uint32 -- ^ TOW status flags.- , _msgTrackingStateDetailedDepA_track_flags :: !Word8+ , _msgTrackingStateDetailedDepA_track_flags :: !uint32 -- ^ Tracking loop status flags.- , _msgTrackingStateDetailedDepA_nav_flags :: !Word8+ , _msgTrackingStateDetailedDepA_nav_flags :: !uint32 -- ^ Navigation data status flags.- , _msgTrackingStateDetailedDepA_pset_flags :: !Word8+ , _msgTrackingStateDetailedDepA_pset_flags :: !uint32 -- ^ Parameters sets flags.- , _msgTrackingStateDetailedDepA_misc_flags :: !Word8+ , _msgTrackingStateDetailedDepA_misc_flags :: !uint32 -- ^ Miscellaneous flags. } deriving ( Show, Read, Eq ) @@ -153,53 +153,53 @@ -- -- Deprecated. data MsgTrackingStateDetailedDep = MsgTrackingStateDetailedDep- { _msgTrackingStateDetailedDep_recv_time :: !Word64+ { _msgTrackingStateDetailedDep_recv_time :: !uint64 -- ^ Receiver clock time. , _msgTrackingStateDetailedDep_tot :: !GpsTimeDep -- ^ Time of transmission of signal from satellite. TOW only valid when TOW -- status is decoded or propagated. WN only valid when week number valid -- flag is set.- , _msgTrackingStateDetailedDep_P :: !Word32+ , _msgTrackingStateDetailedDep_P :: !uint32 -- ^ Pseudorange observation. Valid only when pseudorange valid flag is set.- , _msgTrackingStateDetailedDep_P_std :: !Word16+ , _msgTrackingStateDetailedDep_P_std :: !uint32 -- ^ Pseudorange observation standard deviation. Valid only when pseudorange -- valid flag is set.- , _msgTrackingStateDetailedDep_L :: !CarrierPhase+ , _msgTrackingStateDetailedDep_L :: !gnss.CarrierPhase -- ^ Carrier phase observation with typical sign convention. Valid only when -- PLL pessimistic lock is achieved.- , _msgTrackingStateDetailedDep_cn0 :: !Word8+ , _msgTrackingStateDetailedDep_cn0 :: !uint32 -- ^ Carrier-to-Noise density- , _msgTrackingStateDetailedDep_lock :: !Word16+ , _msgTrackingStateDetailedDep_lock :: !uint32 -- ^ Lock time. It is encoded according to DF402 from the RTCM 10403.2 -- Amendment 2 specification. Valid values range from 0 to 15. , _msgTrackingStateDetailedDep_sid :: !GnssSignalDep -- ^ GNSS signal identifier.- , _msgTrackingStateDetailedDep_doppler :: !Int32+ , _msgTrackingStateDetailedDep_doppler :: !sint32 -- ^ Carrier Doppler frequency.- , _msgTrackingStateDetailedDep_doppler_std :: !Word16+ , _msgTrackingStateDetailedDep_doppler_std :: !uint32 -- ^ Carrier Doppler frequency standard deviation.- , _msgTrackingStateDetailedDep_uptime :: !Word32+ , _msgTrackingStateDetailedDep_uptime :: !uint32 -- ^ Number of seconds of continuous tracking. Specifies how much time signal -- is in continuous track.- , _msgTrackingStateDetailedDep_clock_offset :: !Int16+ , _msgTrackingStateDetailedDep_clock_offset :: !sint32 -- ^ TCXO clock offset. Valid only when valid clock valid flag is set.- , _msgTrackingStateDetailedDep_clock_drift :: !Int16+ , _msgTrackingStateDetailedDep_clock_drift :: !sint32 -- ^ TCXO clock drift. Valid only when valid clock valid flag is set.- , _msgTrackingStateDetailedDep_corr_spacing :: !Word16+ , _msgTrackingStateDetailedDep_corr_spacing :: !uint32 -- ^ Early-Prompt (EP) and Prompt-Late (PL) correlators spacing.- , _msgTrackingStateDetailedDep_acceleration :: !Int8+ , _msgTrackingStateDetailedDep_acceleration :: !sint32 -- ^ Acceleration. Valid only when acceleration valid flag is set.- , _msgTrackingStateDetailedDep_sync_flags :: !Word8+ , _msgTrackingStateDetailedDep_sync_flags :: !uint32 -- ^ Synchronization status flags.- , _msgTrackingStateDetailedDep_tow_flags :: !Word8+ , _msgTrackingStateDetailedDep_tow_flags :: !uint32 -- ^ TOW status flags.- , _msgTrackingStateDetailedDep_track_flags :: !Word8+ , _msgTrackingStateDetailedDep_track_flags :: !uint32 -- ^ Tracking loop status flags.- , _msgTrackingStateDetailedDep_nav_flags :: !Word8+ , _msgTrackingStateDetailedDep_nav_flags :: !uint32 -- ^ Navigation data status flags.- , _msgTrackingStateDetailedDep_pset_flags :: !Word8+ , _msgTrackingStateDetailedDep_pset_flags :: !uint32 -- ^ Parameters sets flags.- , _msgTrackingStateDetailedDep_misc_flags :: !Word8+ , _msgTrackingStateDetailedDep_misc_flags :: !uint32 -- ^ Miscellaneous flags. } deriving ( Show, Read, Eq ) @@ -260,11 +260,11 @@ -- Tracking channel state for a specific satellite signal and measured signal -- power. data TrackingChannelState = TrackingChannelState- { _trackingChannelState_sid :: !GnssSignal+ { _trackingChannelState_sid :: !gnss.GnssSignal -- ^ GNSS signal being tracked- , _trackingChannelState_fcn :: !Word8+ , _trackingChannelState_fcn :: !uint32 -- ^ Frequency channel number (GLONASS only)- , _trackingChannelState_cn0 :: !Word8+ , _trackingChannelState_cn0 :: !uint32 -- ^ Carrier-to-Noise density. Zero implies invalid cn0. } deriving ( Show, Read, Eq ) @@ -292,7 +292,7 @@ -- states. It reports status and carrier-to-noise density measurements for all -- tracked satellites. data MsgTrackingState = MsgTrackingState- { _msgTrackingState_states :: ![TrackingChannelState]+ { _msgTrackingState_states :: !repeated TrackingChannelState -- ^ Signal tracking channel state } deriving ( Show, Read, Eq ) @@ -312,9 +312,9 @@ -- -- Structure containing in-phase and quadrature correlation components. data TrackingChannelCorrelation = TrackingChannelCorrelation- { _trackingChannelCorrelation_I :: !Int32+ { _trackingChannelCorrelation_I :: !sint32 -- ^ In-phase correlation- , _trackingChannelCorrelation_Q :: !Int32+ , _trackingChannelCorrelation_Q :: !sint32 -- ^ Quadrature correlation } deriving ( Show, Read, Eq ) @@ -339,11 +339,11 @@ -- When enabled, a tracking channel can output the correlations at each update -- interval. data MsgTrackingIq = MsgTrackingIq- { _msgTrackingIq_channel :: !Word8+ { _msgTrackingIq_channel :: !uint32 -- ^ Tracking channel of origin- , _msgTrackingIq_sid :: !GnssSignal+ , _msgTrackingIq_sid :: !gnss.GnssSignal -- ^ GNSS signal identifier- , _msgTrackingIq_corrs :: ![TrackingChannelCorrelation]+ , _msgTrackingIq_corrs :: !repeated TrackingChannelCorrelation -- ^ Early, Prompt and Late correlations } deriving ( Show, Read, Eq ) @@ -370,11 +370,11 @@ -- -- Deprecated. data MsgTrackingIqDep = MsgTrackingIqDep- { _msgTrackingIqDep_channel :: !Word8+ { _msgTrackingIqDep_channel :: !uint32 -- ^ Tracking channel of origin , _msgTrackingIqDep_sid :: !GnssSignalDep -- ^ GNSS signal identifier- , _msgTrackingIqDep_corrs :: ![TrackingChannelCorrelation]+ , _msgTrackingIqDep_corrs :: !repeated TrackingChannelCorrelation -- ^ Early, Prompt and Late correlations } deriving ( Show, Read, Eq ) @@ -398,11 +398,11 @@ -- -- Deprecated. data TrackingChannelStateDepA = TrackingChannelStateDepA- { _trackingChannelStateDepA_state :: !Word8+ { _trackingChannelStateDepA_state :: !uint32 -- ^ Status of tracking channel- , _trackingChannelStateDepA_prn :: !Word8+ , _trackingChannelStateDepA_prn :: !uint32 -- ^ PRN-1 being tracked- , _trackingChannelStateDepA_cn0 :: !Float+ , _trackingChannelStateDepA_cn0 :: !float -- ^ Carrier-to-noise density } deriving ( Show, Read, Eq ) @@ -428,7 +428,7 @@ -- -- Deprecated. data MsgTrackingStateDepA = MsgTrackingStateDepA- { _msgTrackingStateDepA_states :: ![TrackingChannelStateDepA]+ { _msgTrackingStateDepA_states :: !repeated TrackingChannelStateDepA -- ^ Satellite tracking channel state } deriving ( Show, Read, Eq ) @@ -448,11 +448,11 @@ -- -- Deprecated. data TrackingChannelStateDepB = TrackingChannelStateDepB- { _trackingChannelStateDepB_state :: !Word8+ { _trackingChannelStateDepB_state :: !uint32 -- ^ Status of tracking channel , _trackingChannelStateDepB_sid :: !GnssSignalDep -- ^ GNSS signal being tracked- , _trackingChannelStateDepB_cn0 :: !Float+ , _trackingChannelStateDepB_cn0 :: !float -- ^ Carrier-to-noise density } deriving ( Show, Read, Eq ) @@ -478,7 +478,7 @@ -- -- Deprecated. data MsgTrackingStateDepB = MsgTrackingStateDepB- { _msgTrackingStateDepB_states :: ![TrackingChannelStateDepB]+ { _msgTrackingStateDepB_states :: !repeated TrackingChannelStateDepB -- ^ Signal tracking channel state } deriving ( Show, Read, Eq )
@@ -43,7 +43,7 @@ -- This message can contain any application specific user data up to a maximum -- length of 255 bytes per message. data MsgUserData = MsgUserData- { _msgUserData_contents :: ![Word8]+ { _msgUserData_contents :: !repeated uint32 -- ^ User data payload } deriving ( Show, Read, Eq )
@@ -46,13 +46,13 @@ -- user-defined sources of this message which are labeled arbitrarily source -- 0 through 3. data MsgOdometry = MsgOdometry- { _msgOdometry_tow :: !Word32+ { _msgOdometry_tow :: !uint32 -- ^ Time field representing either milliseconds in the GPS Week or local CPU -- time from the producing system in milliseconds. See the tow_source flag -- for the exact source of this timestamp.- , _msgOdometry_velocity :: !Int32+ , _msgOdometry_velocity :: !sint32 -- ^ The signed forward component of vehicle velocity.- , _msgOdometry_flags :: !Word8+ , _msgOdometry_flags :: !uint32 -- ^ Status flags } deriving ( Show, Read, Eq )