sbp 2.2.11 → 2.2.12
raw patch · 23 files changed
+260/−221 lines, 23 filesdep −resourcet
Dependencies removed: resourcet
Files
- README.md +7/−2
- main/JSON2SBP.hs +7/−7
- main/SBP2JSON.hs +5/−6
- main/SBP2YAML.hs +5/−6
- sbp.cabal +1/−4
- src/SwiftNav/SBP/Acquisition.hs +10/−5
- src/SwiftNav/SBP/Bootload.hs +13/−8
- src/SwiftNav/SBP/ExtEvents.hs +6/−1
- src/SwiftNav/SBP/FileIo.hs +12/−7
- src/SwiftNav/SBP/Flash.hs +16/−11
- src/SwiftNav/SBP/Gnss.hs +11/−6
- src/SwiftNav/SBP/Imu.hs +7/−2
- src/SwiftNav/SBP/Logging.hs +9/−4
- src/SwiftNav/SBP/Msg.hs +1/−7
- src/SwiftNav/SBP/Navigation.hs +25/−20
- src/SwiftNav/SBP/Ndb.hs +6/−1
- src/SwiftNav/SBP/Observation.hs +40/−70
- src/SwiftNav/SBP/Piksi.hs +35/−30
- src/SwiftNav/SBP/Settings.hs +15/−10
- src/SwiftNav/SBP/System.hs +8/−3
- src/SwiftNav/SBP/Tracking.hs +14/−9
- src/SwiftNav/SBP/Types.hs +1/−1
- src/SwiftNav/SBP/User.hs +6/−1
README.md view
@@ -17,7 +17,7 @@ or - $ stack install --resolver lts-8.23 sbp # (LTS-8)+ $ stack install --resolver lts-8.24 sbp # (LTS-8) Note that we explicitly specify the resolvers to use, as installing `libsbp` may fail to build with more recent resolvers.@@ -42,7 +42,12 @@ $ stack upload -## Usage Examples (TODO)+## Publishing++To publish to [Hackage](http://hackage.haskell.org/package/sbp), use the+`publish-lower` recipe in the `Shakefile.hs` with LTS-6 `stack.yaml`:++ $ STACK_YAML=stack-lts-6.yaml ./Shakefile.hs publish-lower ## References
main/JSON2SBP.hs view
@@ -13,7 +13,6 @@ -- stdout. import BasicPrelude hiding (lines, mapMaybe)-import Control.Monad.Trans.Resource import Data.Aeson import Data.Conduit import Data.Conduit.Binary@@ -31,14 +30,15 @@ parseJSON _ = mzero -- | Decode a SBPMsg from JSON.+-- decodeSBPMsg :: ByteString -> Maybe SBPMsg decodeSBPMsg v = decodeStrict v <|> sbpMsgData <$> decodeStrict v main :: IO () main =- runResourceT $- sourceHandle stdin =$=- lines =$=- mapMaybe decodeSBPMsg =$=- conduitEncode $$- sinkHandle stdout+ runConduitRes $+ sourceHandle stdin+ =$= lines+ =$= mapMaybe decodeSBPMsg+ =$= conduitEncode+ $$ sinkHandle stdout
main/SBP2JSON.hs view
@@ -13,7 +13,6 @@ -- to stdout. import BasicPrelude hiding (map)-import Control.Monad.Trans.Resource import Data.Aeson import Data.ByteString.Lazy hiding (ByteString, map) import Data.Conduit@@ -29,8 +28,8 @@ main :: IO () main =- runResourceT $- sourceHandle stdin =$=- conduitDecode =$=- map encodeLine $$- sinkHandle stdout+ runConduitRes $+ sourceHandle stdin+ =$= conduitDecode+ =$= map encodeLine+ $$ sinkHandle stdout
main/SBP2YAML.hs view
@@ -12,7 +12,6 @@ -- to stdout. import BasicPrelude hiding (map)-import Control.Monad.Trans.Resource import Data.Conduit import Data.Conduit.Binary import Data.Conduit.List@@ -23,8 +22,8 @@ main :: IO () main =- runResourceT $- sourceHandle stdin =$=- conduitDecode =$=- map (encode :: SBPMsg -> ByteString) $$- sinkHandle stdout+ runConduitRes $+ sourceHandle stdin+ =$= conduitDecode+ =$= map (encode :: SBPMsg -> ByteString)+ $$ sinkHandle stdout
sbp.cabal view
@@ -1,5 +1,5 @@ name: sbp-version: 2.2.11+version: 2.2.12 cabal-version: >=1.22 build-type: Simple license: LGPL-3@@ -76,7 +76,6 @@ bytestring >=0.10.6.0, conduit >=1.2.10, conduit-extra >=1.1.16,- resourcet >=1.1.9, sbp default-language: Haskell2010 hs-source-dirs: main@@ -91,7 +90,6 @@ binary-conduit >=1.2.4.1, conduit >=1.2.10, conduit-extra >=1.1.16,- resourcet >=1.1.9, sbp default-language: Haskell2010 hs-source-dirs: main@@ -106,7 +104,6 @@ bytestring >=0.10.6.0, conduit >=1.2.10, conduit-extra >=1.1.16,- resourcet >=1.1.9, sbp, yaml >=0.8.23 default-language: Haskell2010
@@ -31,6 +31,11 @@ import SwiftNav.SBP.Types import SwiftNav.SBP.Gnss +{-# ANN module ("HLint: ignore Use camelCase"::String) #-}+{-# ANN module ("HLint: ignore Redundant do"::String) #-}+{-# ANN module ("HLint: ignore Use newtype instead of data"::String) #-}++ msgAcqResult :: Word16 msgAcqResult = 0x001F @@ -57,7 +62,7 @@ _msgAcqResult_cp <- getFloat32le _msgAcqResult_cf <- getFloat32le _msgAcqResult_sid <- get- return MsgAcqResult {..}+ pure MsgAcqResult {..} put MsgAcqResult {..} = do putFloat32le _msgAcqResult_cn0@@ -93,7 +98,7 @@ _msgAcqResultDepB_cp <- getFloat32le _msgAcqResultDepB_cf <- getFloat32le _msgAcqResultDepB_sid <- get- return MsgAcqResultDepB {..}+ pure MsgAcqResultDepB {..} put MsgAcqResultDepB {..} = do putFloat32le _msgAcqResultDepB_snr@@ -130,7 +135,7 @@ _msgAcqResultDepA_cp <- getFloat32le _msgAcqResultDepA_cf <- getFloat32le _msgAcqResultDepA_prn <- getWord8- return MsgAcqResultDepA {..}+ pure MsgAcqResultDepA {..} put MsgAcqResultDepA {..} = do putFloat32le _msgAcqResultDepA_snr@@ -188,7 +193,7 @@ _acqSvProfile_cf_max <- fromIntegral <$> getWord32le _acqSvProfile_cf <- fromIntegral <$> getWord32le _acqSvProfile_cp <- getWord32le- return AcqSvProfile {..}+ pure AcqSvProfile {..} put AcqSvProfile {..} = do putWord8 _acqSvProfile_job_type@@ -222,7 +227,7 @@ instance Binary MsgAcqSvProfile where get = do _msgAcqSvProfile_acq_sv_profile <- whileM (not <$> isEmpty) get- return MsgAcqSvProfile {..}+ pure MsgAcqSvProfile {..} put MsgAcqSvProfile {..} = do mapM_ put _msgAcqSvProfile_acq_sv_profile
@@ -32,6 +32,11 @@ import SwiftNav.SBP.TH import SwiftNav.SBP.Types +{-# ANN module ("HLint: ignore Use camelCase"::String) #-}+{-# ANN module ("HLint: ignore Redundant do"::String) #-}+{-# ANN module ("HLint: ignore Use newtype instead of data"::String) #-}++ msgBootloaderHandshakeReq :: Word16 msgBootloaderHandshakeReq = 0x00B3 @@ -45,10 +50,10 @@ instance Binary MsgBootloaderHandshakeReq where get =- return MsgBootloaderHandshakeReq+ pure MsgBootloaderHandshakeReq put MsgBootloaderHandshakeReq =- return ()+ pure () $(makeSBP 'msgBootloaderHandshakeReq ''MsgBootloaderHandshakeReq) $(makeJSON "_msgBootloaderHandshakeReq_" ''MsgBootloaderHandshakeReq) $(makeLenses ''MsgBootloaderHandshakeReq)@@ -73,7 +78,7 @@ get = do _msgBootloaderHandshakeResp_flags <- getWord32le _msgBootloaderHandshakeResp_version <- decodeUtf8 . toStrict <$> getRemainingLazyByteString- return MsgBootloaderHandshakeResp {..}+ pure MsgBootloaderHandshakeResp {..} put MsgBootloaderHandshakeResp {..} = do putWord32le _msgBootloaderHandshakeResp_flags@@ -97,7 +102,7 @@ instance Binary MsgBootloaderJumpToApp where get = do _msgBootloaderJumpToApp_jump <- getWord8- return MsgBootloaderJumpToApp {..}+ pure MsgBootloaderJumpToApp {..} put MsgBootloaderJumpToApp {..} = do putWord8 _msgBootloaderJumpToApp_jump@@ -121,10 +126,10 @@ instance Binary MsgNapDeviceDnaReq where get =- return MsgNapDeviceDnaReq+ pure MsgNapDeviceDnaReq put MsgNapDeviceDnaReq =- return ()+ pure () $(makeSBP 'msgNapDeviceDnaReq ''MsgNapDeviceDnaReq) $(makeJSON "_msgNapDeviceDnaReq_" ''MsgNapDeviceDnaReq) $(makeLenses ''MsgNapDeviceDnaReq)@@ -148,7 +153,7 @@ instance Binary MsgNapDeviceDnaResp where get = do _msgNapDeviceDnaResp_dna <- replicateM 8 getWord8- return MsgNapDeviceDnaResp {..}+ pure MsgNapDeviceDnaResp {..} put MsgNapDeviceDnaResp {..} = do mapM_ putWord8 _msgNapDeviceDnaResp_dna@@ -171,7 +176,7 @@ instance Binary MsgBootloaderHandshakeDepA where get = do _msgBootloaderHandshakeDepA_handshake <- whileM (not <$> isEmpty) getWord8- return MsgBootloaderHandshakeDepA {..}+ pure MsgBootloaderHandshakeDepA {..} put MsgBootloaderHandshakeDepA {..} = do mapM_ putWord8 _msgBootloaderHandshakeDepA_handshake
@@ -31,6 +31,11 @@ import SwiftNav.SBP.TH import SwiftNav.SBP.Types +{-# ANN module ("HLint: ignore Use camelCase"::String) #-}+{-# ANN module ("HLint: ignore Redundant do"::String) #-}+{-# ANN module ("HLint: ignore Use newtype instead of data"::String) #-}++ msgExtEvent :: Word16 msgExtEvent = 0x0101 @@ -59,7 +64,7 @@ _msgExtEvent_ns_residual <- fromIntegral <$> getWord32le _msgExtEvent_flags <- getWord8 _msgExtEvent_pin <- getWord8- return MsgExtEvent {..}+ pure MsgExtEvent {..} put MsgExtEvent {..} = do putWord16le _msgExtEvent_wn
@@ -35,6 +35,11 @@ import SwiftNav.SBP.TH import SwiftNav.SBP.Types +{-# ANN module ("HLint: ignore Use camelCase"::String) #-}+{-# ANN module ("HLint: ignore Redundant do"::String) #-}+{-# ANN module ("HLint: ignore Use newtype instead of data"::String) #-}++ msgFileioReadReq :: Word16 msgFileioReadReq = 0x00A8 @@ -64,7 +69,7 @@ _msgFileioReadReq_offset <- getWord32le _msgFileioReadReq_chunk_size <- getWord8 _msgFileioReadReq_filename <- decodeUtf8 . toStrict <$> getRemainingLazyByteString- return MsgFileioReadReq {..}+ pure MsgFileioReadReq {..} put MsgFileioReadReq {..} = do putWord32le _msgFileioReadReq_sequence@@ -96,7 +101,7 @@ get = do _msgFileioReadResp_sequence <- getWord32le _msgFileioReadResp_contents <- whileM (not <$> isEmpty) getWord8- return MsgFileioReadResp {..}+ pure MsgFileioReadResp {..} put MsgFileioReadResp {..} = do putWord32le _msgFileioReadResp_sequence@@ -133,7 +138,7 @@ _msgFileioReadDirReq_sequence <- getWord32le _msgFileioReadDirReq_offset <- getWord32le _msgFileioReadDirReq_dirname <- decodeUtf8 . toStrict <$> getRemainingLazyByteString- return MsgFileioReadDirReq {..}+ pure MsgFileioReadDirReq {..} put MsgFileioReadDirReq {..} = do putWord32le _msgFileioReadDirReq_sequence@@ -165,7 +170,7 @@ get = do _msgFileioReadDirResp_sequence <- getWord32le _msgFileioReadDirResp_contents <- whileM (not <$> isEmpty) getWord8- return MsgFileioReadDirResp {..}+ pure MsgFileioReadDirResp {..} put MsgFileioReadDirResp {..} = do putWord32le _msgFileioReadDirResp_sequence@@ -192,7 +197,7 @@ instance Binary MsgFileioRemove where get = do _msgFileioRemove_filename <- decodeUtf8 . toStrict <$> getRemainingLazyByteString- return MsgFileioRemove {..}+ pure MsgFileioRemove {..} put MsgFileioRemove {..} = do putByteString $ encodeUtf8 _msgFileioRemove_filename@@ -230,7 +235,7 @@ _msgFileioWriteReq_offset <- getWord32le _msgFileioWriteReq_filename <- decodeUtf8 . toStrict <$> getRemainingLazyByteString _msgFileioWriteReq_data <- whileM (not <$> isEmpty) getWord8- return MsgFileioWriteReq {..}+ pure MsgFileioWriteReq {..} put MsgFileioWriteReq {..} = do putWord32le _msgFileioWriteReq_sequence@@ -259,7 +264,7 @@ instance Binary MsgFileioWriteResp where get = do _msgFileioWriteResp_sequence <- getWord32le- return MsgFileioWriteResp {..}+ pure MsgFileioWriteResp {..} put MsgFileioWriteResp {..} = do putWord32le _msgFileioWriteResp_sequence
@@ -33,6 +33,11 @@ import SwiftNav.SBP.TH import SwiftNav.SBP.Types +{-# ANN module ("HLint: ignore Use camelCase"::String) #-}+{-# ANN module ("HLint: ignore Redundant do"::String) #-}+{-# ANN module ("HLint: ignore Use newtype instead of data"::String) #-}++ msgFlashProgram :: Word16 msgFlashProgram = 0x00E6 @@ -60,7 +65,7 @@ _msgFlashProgram_addr_start <- replicateM 3 getWord8 _msgFlashProgram_addr_len <- getWord8 _msgFlashProgram_data <- whileM (not <$> isEmpty) getWord8- return MsgFlashProgram {..}+ pure MsgFlashProgram {..} put MsgFlashProgram {..} = do putWord8 _msgFlashProgram_target@@ -89,7 +94,7 @@ instance Binary MsgFlashDone where get = do _msgFlashDone_response <- getWord8- return MsgFlashDone {..}+ pure MsgFlashDone {..} put MsgFlashDone {..} = do putWord8 _msgFlashDone_response@@ -123,7 +128,7 @@ _msgFlashReadReq_target <- getWord8 _msgFlashReadReq_addr_start <- replicateM 3 getWord8 _msgFlashReadReq_addr_len <- getWord8- return MsgFlashReadReq {..}+ pure MsgFlashReadReq {..} put MsgFlashReadReq {..} = do putWord8 _msgFlashReadReq_target@@ -159,7 +164,7 @@ _msgFlashReadResp_target <- getWord8 _msgFlashReadResp_addr_start <- replicateM 3 getWord8 _msgFlashReadResp_addr_len <- getWord8- return MsgFlashReadResp {..}+ pure MsgFlashReadResp {..} put MsgFlashReadResp {..} = do putWord8 _msgFlashReadResp_target@@ -190,7 +195,7 @@ get = do _msgFlashErase_target <- getWord8 _msgFlashErase_sector_num <- getWord32le- return MsgFlashErase {..}+ pure MsgFlashErase {..} put MsgFlashErase {..} = do putWord8 _msgFlashErase_target@@ -215,7 +220,7 @@ instance Binary MsgStmFlashLockSector where get = do _msgStmFlashLockSector_sector <- getWord32le- return MsgStmFlashLockSector {..}+ pure MsgStmFlashLockSector {..} put MsgStmFlashLockSector {..} = do putWord32le _msgStmFlashLockSector_sector@@ -239,7 +244,7 @@ instance Binary MsgStmFlashUnlockSector where get = do _msgStmFlashUnlockSector_sector <- getWord32le- return MsgStmFlashUnlockSector {..}+ pure MsgStmFlashUnlockSector {..} put MsgStmFlashUnlockSector {..} = do putWord32le _msgStmFlashUnlockSector_sector@@ -261,10 +266,10 @@ instance Binary MsgStmUniqueIdReq where get =- return MsgStmUniqueIdReq+ pure MsgStmUniqueIdReq put MsgStmUniqueIdReq =- return ()+ pure () $(makeSBP 'msgStmUniqueIdReq ''MsgStmUniqueIdReq) $(makeJSON "_msgStmUniqueIdReq_" ''MsgStmUniqueIdReq) $(makeLenses ''MsgStmUniqueIdReq)@@ -285,7 +290,7 @@ instance Binary MsgStmUniqueIdResp where get = do _msgStmUniqueIdResp_stm_id <- replicateM 12 getWord8- return MsgStmUniqueIdResp {..}+ pure MsgStmUniqueIdResp {..} put MsgStmUniqueIdResp {..} = do mapM_ putWord8 _msgStmUniqueIdResp_stm_id@@ -309,7 +314,7 @@ instance Binary MsgM25FlashWriteStatus where get = do _msgM25FlashWriteStatus_status <- replicateM 1 getWord8- return MsgM25FlashWriteStatus {..}+ pure MsgM25FlashWriteStatus {..} put MsgM25FlashWriteStatus {..} = do mapM_ putWord8 _msgM25FlashWriteStatus_status
@@ -30,6 +30,11 @@ import SwiftNav.SBP.TH import SwiftNav.SBP.Types +{-# ANN module ("HLint: ignore Use camelCase"::String) #-}+{-# ANN module ("HLint: ignore Redundant do"::String) #-}+{-# ANN module ("HLint: ignore Use newtype instead of data"::String) #-}++ -- | GnssSignal16. -- -- Signal identifier containing constellation, band, and satellite identifier@@ -44,7 +49,7 @@ get = do _gnssSignal16_sat <- getWord8 _gnssSignal16_code <- getWord8- return GnssSignal16 {..}+ pure GnssSignal16 {..} put GnssSignal16 {..} = do putWord8 _gnssSignal16_sat@@ -72,7 +77,7 @@ _gnssSignal_sat <- getWord16le _gnssSignal_code <- getWord8 _gnssSignal_reserved <- getWord8- return GnssSignal {..}+ pure GnssSignal {..} put GnssSignal {..} = do putWord16le _gnssSignal_sat@@ -97,7 +102,7 @@ get = do _gpsTime_tow <- getWord32le _gpsTime_wn <- getWord16le- return GpsTime {..}+ pure GpsTime {..} put GpsTime {..} = do putWord32le _gpsTime_tow@@ -121,7 +126,7 @@ get = do _gpsTimeSec_tow <- getWord32le _gpsTimeSec_wn <- getWord16le- return GpsTimeSec {..}+ pure GpsTimeSec {..} put GpsTimeSec {..} = do putWord32le _gpsTimeSec_tow@@ -150,7 +155,7 @@ _gpsTimeNano_tow <- getWord32le _gpsTimeNano_ns_residual <- fromIntegral <$> getWord32le _gpsTimeNano_wn <- getWord16le- return GpsTimeNano {..}+ pure GpsTimeNano {..} put GpsTimeNano {..} = do putWord32le _gpsTimeNano_tow@@ -176,7 +181,7 @@ get = do _carrierPhase_i <- fromIntegral <$> getWord32le _carrierPhase_f <- getWord8- return CarrierPhase {..}+ pure CarrierPhase {..} put CarrierPhase {..} = do putWord32le $ fromIntegral _carrierPhase_i
@@ -30,6 +30,11 @@ import SwiftNav.SBP.TH import SwiftNav.SBP.Types +{-# ANN module ("HLint: ignore Use camelCase"::String) #-}+{-# ANN module ("HLint: ignore Redundant do"::String) #-}+{-# ANN module ("HLint: ignore Use newtype instead of data"::String) #-}++ msgImuRaw :: Word16 msgImuRaw = 0x0900 @@ -67,7 +72,7 @@ _msgImuRaw_gyr_x <- fromIntegral <$> getWord16le _msgImuRaw_gyr_y <- fromIntegral <$> getWord16le _msgImuRaw_gyr_z <- fromIntegral <$> getWord16le- return MsgImuRaw {..}+ pure MsgImuRaw {..} put MsgImuRaw {..} = do putWord32le _msgImuRaw_tow@@ -105,7 +110,7 @@ _msgImuAux_imu_type <- getWord8 _msgImuAux_temp <- fromIntegral <$> getWord16le _msgImuAux_imu_conf <- getWord8- return MsgImuAux {..}+ pure MsgImuAux {..} put MsgImuAux {..} = do putWord8 _msgImuAux_imu_type
@@ -30,6 +30,11 @@ import SwiftNav.SBP.TH import SwiftNav.SBP.Types +{-# ANN module ("HLint: ignore Use camelCase"::String) #-}+{-# ANN module ("HLint: ignore Redundant do"::String) #-}+{-# ANN module ("HLint: ignore Use newtype instead of data"::String) #-}++ msgLog :: Word16 msgLog = 0x0401 @@ -49,7 +54,7 @@ get = do _msgLog_level <- getWord8 _msgLog_text <- decodeUtf8 . toStrict <$> getRemainingLazyByteString- return MsgLog {..}+ pure MsgLog {..} put MsgLog {..} = do putWord8 _msgLog_level@@ -85,7 +90,7 @@ _msgFwd_source <- getWord8 _msgFwd_protocol <- getWord8 _msgFwd_fwd_payload <- decodeUtf8 . toStrict <$> getRemainingLazyByteString- return MsgFwd {..}+ pure MsgFwd {..} put MsgFwd {..} = do putWord8 _msgFwd_source@@ -110,7 +115,7 @@ instance Binary MsgTweet where get = do _msgTweet_tweet <- decodeUtf8 <$> getByteString 140- return MsgTweet {..}+ pure MsgTweet {..} put MsgTweet {..} = do putByteString $ encodeUtf8 _msgTweet_tweet@@ -133,7 +138,7 @@ instance Binary MsgPrintDep where get = do _msgPrintDep_text <- decodeUtf8 . toStrict <$> getRemainingLazyByteString- return MsgPrintDep {..}+ pure MsgPrintDep {..} put MsgPrintDep {..} = do putByteString $ encodeUtf8 _msgPrintDep_text
@@ -90,7 +90,6 @@ | SBPMsgEphemerisSbas MsgEphemerisSbas Msg | SBPMsgEphemerisSbasDepA MsgEphemerisSbasDepA Msg | SBPMsgExtEvent MsgExtEvent Msg- | SBPMsgFcnsGlo MsgFcnsGlo Msg | SBPMsgFileioReadDirReq MsgFileioReadDirReq Msg | SBPMsgFileioReadDirResp MsgFileioReadDirResp Msg | SBPMsgFileioReadReq MsgFileioReadReq Msg@@ -220,7 +219,6 @@ | _msgSBPType == msgEphemerisSbas = SBPMsgEphemerisSbas (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgEphemerisSbasDepA = SBPMsgEphemerisSbasDepA (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgExtEvent = SBPMsgExtEvent (decode (fromStrict (unBytes _msgSBPPayload))) m- | _msgSBPType == msgFcnsGlo = SBPMsgFcnsGlo (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgFileioReadDirReq = SBPMsgFileioReadDirReq (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgFileioReadDirResp = SBPMsgFileioReadDirResp (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgFileioReadReq = SBPMsgFileioReadReq (decode (fromStrict (unBytes _msgSBPPayload))) m@@ -342,7 +340,6 @@ encoder (SBPMsgEphemerisSbas _ m) = put m encoder (SBPMsgEphemerisSbasDepA _ m) = put m encoder (SBPMsgExtEvent _ m) = put m- encoder (SBPMsgFcnsGlo _ m) = put m encoder (SBPMsgFileioReadDirReq _ m) = put m encoder (SBPMsgFileioReadDirResp _ m) = put m encoder (SBPMsgFileioReadReq _ m) = put m@@ -468,7 +465,6 @@ | msgType == msgEphemerisSbas = SBPMsgEphemerisSbas <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgEphemerisSbasDepA = SBPMsgEphemerisSbasDepA <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgExtEvent = SBPMsgExtEvent <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj- | msgType == msgFcnsGlo = SBPMsgFcnsGlo <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgFileioReadDirReq = SBPMsgFileioReadDirReq <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgFileioReadDirResp = SBPMsgFileioReadDirResp <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgFileioReadReq = SBPMsgFileioReadReq <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj@@ -550,7 +546,7 @@ (<<>>) a b = fromMaybe Null $ do a' <- preview _Object a b' <- preview _Object b- return $ review _Object $ a' <> b'+ pure $ review _Object $ a' <> b' instance ToJSON SBPMsg where toJSON (SBPMsgAcqResult n m) = toJSON n <<>> toJSON m@@ -595,7 +591,6 @@ toJSON (SBPMsgEphemerisSbas n m) = toJSON n <<>> toJSON m toJSON (SBPMsgEphemerisSbasDepA n m) = toJSON n <<>> toJSON m toJSON (SBPMsgExtEvent n m) = toJSON n <<>> toJSON m- toJSON (SBPMsgFcnsGlo n m) = toJSON n <<>> toJSON m toJSON (SBPMsgFileioReadDirReq n m) = toJSON n <<>> toJSON m toJSON (SBPMsgFileioReadDirResp n m) = toJSON n <<>> toJSON m toJSON (SBPMsgFileioReadReq n m) = toJSON n <<>> toJSON m@@ -716,7 +711,6 @@ msg f (SBPMsgEphemerisSbas n m) = SBPMsgEphemerisSbas n <$> f m msg f (SBPMsgEphemerisSbasDepA n m) = SBPMsgEphemerisSbasDepA n <$> f m msg f (SBPMsgExtEvent n m) = SBPMsgExtEvent n <$> f m- msg f (SBPMsgFcnsGlo n m) = SBPMsgFcnsGlo n <$> f m msg f (SBPMsgFileioReadDirReq n m) = SBPMsgFileioReadDirReq n <$> f m msg f (SBPMsgFileioReadDirResp n m) = SBPMsgFileioReadDirResp n <$> f m msg f (SBPMsgFileioReadReq n m) = SBPMsgFileioReadReq n <$> f m
@@ -38,6 +38,11 @@ import SwiftNav.SBP.TH import SwiftNav.SBP.Types +{-# ANN module ("HLint: ignore Use camelCase"::String) #-}+{-# ANN module ("HLint: ignore Redundant do"::String) #-}+{-# ANN module ("HLint: ignore Use newtype instead of data"::String) #-}++ msgGpsTime :: Word16 msgGpsTime = 0x0102 @@ -70,7 +75,7 @@ _msgGpsTime_tow <- getWord32le _msgGpsTime_ns_residual <- fromIntegral <$> getWord32le _msgGpsTime_flags <- getWord8- return MsgGpsTime {..}+ pure MsgGpsTime {..} put MsgGpsTime {..} = do putWord16le _msgGpsTime_wn@@ -122,7 +127,7 @@ _msgUtcTime_minutes <- getWord8 _msgUtcTime_seconds <- getWord8 _msgUtcTime_ns <- getWord32le- return MsgUtcTime {..}+ pure MsgUtcTime {..} put MsgUtcTime {..} = do putWord8 _msgUtcTime_flags@@ -174,7 +179,7 @@ _msgDops_hdop <- getWord16le _msgDops_vdop <- getWord16le _msgDops_flags <- getWord8- return MsgDops {..}+ pure MsgDops {..} put MsgDops {..} = do putWord32le _msgDops_tow@@ -227,7 +232,7 @@ _msgPosEcef_accuracy <- getWord16le _msgPosEcef_n_sats <- getWord8 _msgPosEcef_flags <- getWord8- return MsgPosEcef {..}+ pure MsgPosEcef {..} put MsgPosEcef {..} = do putWord32le _msgPosEcef_tow@@ -283,7 +288,7 @@ _msgPosLlh_v_accuracy <- getWord16le _msgPosLlh_n_sats <- getWord8 _msgPosLlh_flags <- getWord8- return MsgPosLlh {..}+ pure MsgPosLlh {..} put MsgPosLlh {..} = do putWord32le _msgPosLlh_tow@@ -334,7 +339,7 @@ _msgBaselineEcef_accuracy <- getWord16le _msgBaselineEcef_n_sats <- getWord8 _msgBaselineEcef_flags <- getWord8- return MsgBaselineEcef {..}+ pure MsgBaselineEcef {..} put MsgBaselineEcef {..} = do putWord32le _msgBaselineEcef_tow@@ -389,7 +394,7 @@ _msgBaselineNed_v_accuracy <- getWord16le _msgBaselineNed_n_sats <- getWord8 _msgBaselineNed_flags <- getWord8- return MsgBaselineNed {..}+ pure MsgBaselineNed {..} put MsgBaselineNed {..} = do putWord32le _msgBaselineNed_tow@@ -439,7 +444,7 @@ _msgVelEcef_accuracy <- getWord16le _msgVelEcef_n_sats <- getWord8 _msgVelEcef_flags <- getWord8- return MsgVelEcef {..}+ pure MsgVelEcef {..} put MsgVelEcef {..} = do putWord32le _msgVelEcef_tow@@ -492,7 +497,7 @@ _msgVelNed_v_accuracy <- getWord16le _msgVelNed_n_sats <- getWord8 _msgVelNed_flags <- getWord8- return MsgVelNed {..}+ pure MsgVelNed {..} put MsgVelNed {..} = do putWord32le _msgVelNed_tow@@ -534,7 +539,7 @@ _msgBaselineHeading_heading <- getWord32le _msgBaselineHeading_n_sats <- getWord8 _msgBaselineHeading_flags <- getWord8- return MsgBaselineHeading {..}+ pure MsgBaselineHeading {..} put MsgBaselineHeading {..} = do putWord32le _msgBaselineHeading_tow@@ -564,7 +569,7 @@ get = do _msgAgeCorrections_tow <- getWord32le _msgAgeCorrections_age <- getWord16le- return MsgAgeCorrections {..}+ pure MsgAgeCorrections {..} put MsgAgeCorrections {..} = do putWord32le _msgAgeCorrections_tow@@ -606,7 +611,7 @@ _msgGpsTimeDepA_tow <- getWord32le _msgGpsTimeDepA_ns_residual <- fromIntegral <$> getWord32le _msgGpsTimeDepA_flags <- getWord8- return MsgGpsTimeDepA {..}+ pure MsgGpsTimeDepA {..} put MsgGpsTimeDepA {..} = do putWord16le _msgGpsTimeDepA_wn@@ -648,7 +653,7 @@ _msgDopsDepA_tdop <- getWord16le _msgDopsDepA_hdop <- getWord16le _msgDopsDepA_vdop <- getWord16le- return MsgDopsDepA {..}+ pure MsgDopsDepA {..} put MsgDopsDepA {..} = do putWord32le _msgDopsDepA_tow@@ -700,7 +705,7 @@ _msgPosEcefDepA_accuracy <- getWord16le _msgPosEcefDepA_n_sats <- getWord8 _msgPosEcefDepA_flags <- getWord8- return MsgPosEcefDepA {..}+ pure MsgPosEcefDepA {..} put MsgPosEcefDepA {..} = do putWord32le _msgPosEcefDepA_tow@@ -756,7 +761,7 @@ _msgPosLlhDepA_v_accuracy <- getWord16le _msgPosLlhDepA_n_sats <- getWord8 _msgPosLlhDepA_flags <- getWord8- return MsgPosLlhDepA {..}+ pure MsgPosLlhDepA {..} put MsgPosLlhDepA {..} = do putWord32le _msgPosLlhDepA_tow@@ -807,7 +812,7 @@ _msgBaselineEcefDepA_accuracy <- getWord16le _msgBaselineEcefDepA_n_sats <- getWord8 _msgBaselineEcefDepA_flags <- getWord8- return MsgBaselineEcefDepA {..}+ pure MsgBaselineEcefDepA {..} put MsgBaselineEcefDepA {..} = do putWord32le _msgBaselineEcefDepA_tow@@ -862,7 +867,7 @@ _msgBaselineNedDepA_v_accuracy <- getWord16le _msgBaselineNedDepA_n_sats <- getWord8 _msgBaselineNedDepA_flags <- getWord8- return MsgBaselineNedDepA {..}+ pure MsgBaselineNedDepA {..} put MsgBaselineNedDepA {..} = do putWord32le _msgBaselineNedDepA_tow@@ -912,7 +917,7 @@ _msgVelEcefDepA_accuracy <- getWord16le _msgVelEcefDepA_n_sats <- getWord8 _msgVelEcefDepA_flags <- getWord8- return MsgVelEcefDepA {..}+ pure MsgVelEcefDepA {..} put MsgVelEcefDepA {..} = do putWord32le _msgVelEcefDepA_tow@@ -965,7 +970,7 @@ _msgVelNedDepA_v_accuracy <- getWord16le _msgVelNedDepA_n_sats <- getWord8 _msgVelNedDepA_flags <- getWord8- return MsgVelNedDepA {..}+ pure MsgVelNedDepA {..} put MsgVelNedDepA {..} = do putWord32le _msgVelNedDepA_tow@@ -1006,7 +1011,7 @@ _msgBaselineHeadingDepA_heading <- getWord32le _msgBaselineHeadingDepA_n_sats <- getWord8 _msgBaselineHeadingDepA_flags <- getWord8- return MsgBaselineHeadingDepA {..}+ pure MsgBaselineHeadingDepA {..} put MsgBaselineHeadingDepA {..} = do putWord32le _msgBaselineHeadingDepA_tow
@@ -31,6 +31,11 @@ import SwiftNav.SBP.Types import SwiftNav.SBP.Gnss +{-# ANN module ("HLint: ignore Use camelCase"::String) #-}+{-# ANN module ("HLint: ignore Redundant do"::String) #-}+{-# ANN module ("HLint: ignore Use newtype instead of data"::String) #-}++ msgNdbEvent :: Word16 msgNdbEvent = 0x0400 @@ -73,7 +78,7 @@ _msgNdbEvent_object_sid <- get _msgNdbEvent_src_sid <- get _msgNdbEvent_original_sender <- getWord16le- return MsgNdbEvent {..}+ pure MsgNdbEvent {..} put MsgNdbEvent {..} = do putWord64le _msgNdbEvent_recv_time
@@ -31,6 +31,11 @@ import SwiftNav.SBP.Types import SwiftNav.SBP.Gnss +{-# ANN module ("HLint: ignore Use camelCase"::String) #-}+{-# ANN module ("HLint: ignore Redundant do"::String) #-}+{-# ANN module ("HLint: ignore Use newtype instead of data"::String) #-}++ -- | ObservationHeader. -- -- Header of a GNSS observation message.@@ -46,7 +51,7 @@ get = do _observationHeader_t <- get _observationHeader_n_obs <- getWord8- return ObservationHeader {..}+ pure ObservationHeader {..} put ObservationHeader {..} = do put _observationHeader_t@@ -71,7 +76,7 @@ get = do _doppler_i <- fromIntegral <$> getWord16le _doppler_f <- getWord8- return Doppler {..}+ pure Doppler {..} put Doppler {..} = do putWord16le $ fromIntegral _doppler_i@@ -118,7 +123,7 @@ _packedObsContent_lock <- getWord8 _packedObsContent_flags <- getWord8 _packedObsContent_sid <- get- return PackedObsContent {..}+ pure PackedObsContent {..} put PackedObsContent {..} = do putWord32le _packedObsContent_P@@ -154,7 +159,7 @@ get = do _msgObs_header <- get _msgObs_obs <- whileM (not <$> isEmpty) get- return MsgObs {..}+ pure MsgObs {..} put MsgObs {..} = do put _msgObs_header@@ -187,7 +192,7 @@ _msgBasePosLlh_lat <- getFloat64le _msgBasePosLlh_lon <- getFloat64le _msgBasePosLlh_height <- getFloat64le- return MsgBasePosLlh {..}+ pure MsgBasePosLlh {..} put MsgBasePosLlh {..} = do putFloat64le _msgBasePosLlh_lat@@ -222,7 +227,7 @@ _msgBasePosEcef_x <- getFloat64le _msgBasePosEcef_y <- getFloat64le _msgBasePosEcef_z <- getFloat64le- return MsgBasePosEcef {..}+ pure MsgBasePosEcef {..} put MsgBasePosEcef {..} = do putFloat64le _msgBasePosEcef_x@@ -257,7 +262,7 @@ _ephemerisCommonContent_fit_interval <- getWord32le _ephemerisCommonContent_valid <- getWord8 _ephemerisCommonContent_health_bits <- getWord8- return EphemerisCommonContent {..}+ pure EphemerisCommonContent {..} put EphemerisCommonContent {..} = do put _ephemerisCommonContent_sid@@ -294,7 +299,7 @@ _ephemerisCommonContentDepA_fit_interval <- getWord32le _ephemerisCommonContentDepA_valid <- getWord8 _ephemerisCommonContentDepA_health_bits <- getWord8- return EphemerisCommonContentDepA {..}+ pure EphemerisCommonContentDepA {..} put EphemerisCommonContentDepA {..} = do put _ephemerisCommonContentDepA_sid@@ -394,7 +399,7 @@ _msgEphemerisGpsDepE_toc <- get _msgEphemerisGpsDepE_iode <- getWord8 _msgEphemerisGpsDepE_iodc <- getWord16le- return MsgEphemerisGpsDepE {..}+ pure MsgEphemerisGpsDepE {..} put MsgEphemerisGpsDepE {..} = do put _msgEphemerisGpsDepE_common@@ -512,7 +517,7 @@ _msgEphemerisGps_toc <- get _msgEphemerisGps_iode <- getWord8 _msgEphemerisGps_iodc <- getWord16le- return MsgEphemerisGps {..}+ pure MsgEphemerisGps {..} put MsgEphemerisGps {..} = do put _msgEphemerisGps_common@@ -569,7 +574,7 @@ _msgEphemerisSbasDepA_acc <- replicateM 3 getFloat64le _msgEphemerisSbasDepA_a_gf0 <- getFloat64le _msgEphemerisSbasDepA_a_gf1 <- getFloat64le- return MsgEphemerisSbasDepA {..}+ pure MsgEphemerisSbasDepA {..} put MsgEphemerisSbasDepA {..} = do put _msgEphemerisSbasDepA_common@@ -615,7 +620,7 @@ _msgEphemerisGloDepA_pos <- replicateM 3 getFloat64le _msgEphemerisGloDepA_vel <- replicateM 3 getFloat64le _msgEphemerisGloDepA_acc <- replicateM 3 getFloat64le- return MsgEphemerisGloDepA {..}+ pure MsgEphemerisGloDepA {..} put MsgEphemerisGloDepA {..} = do put _msgEphemerisGloDepA_common@@ -655,7 +660,7 @@ _msgEphemerisSbas_acc <- replicateM 3 getFloat64le _msgEphemerisSbas_a_gf0 <- getFloat64le _msgEphemerisSbas_a_gf1 <- getFloat64le- return MsgEphemerisSbas {..}+ pure MsgEphemerisSbas {..} put MsgEphemerisSbas {..} = do put _msgEphemerisSbas_common@@ -701,7 +706,7 @@ _msgEphemerisGloDepB_pos <- replicateM 3 getFloat64le _msgEphemerisGloDepB_vel <- replicateM 3 getFloat64le _msgEphemerisGloDepB_acc <- replicateM 3 getFloat64le- return MsgEphemerisGloDepB {..}+ pure MsgEphemerisGloDepB {..} put MsgEphemerisGloDepB {..} = do put _msgEphemerisGloDepB_common@@ -753,7 +758,7 @@ _msgEphemerisGloDepC_vel <- replicateM 3 getFloat64le _msgEphemerisGloDepC_acc <- replicateM 3 getFloat64le _msgEphemerisGloDepC_fcn <- getWord8- return MsgEphemerisGloDepC {..}+ pure MsgEphemerisGloDepC {..} put MsgEphemerisGloDepC {..} = do put _msgEphemerisGloDepC_common@@ -810,7 +815,7 @@ _msgEphemerisGlo_acc <- replicateM 3 getFloat64le _msgEphemerisGlo_fcn <- getWord8 _msgEphemerisGlo_iod <- getWord8- return MsgEphemerisGlo {..}+ pure MsgEphemerisGlo {..} put MsgEphemerisGlo {..} = do put _msgEphemerisGlo_common@@ -932,7 +937,7 @@ _msgEphemerisDepD_iode <- getWord8 _msgEphemerisDepD_iodc <- getWord16le _msgEphemerisDepD_reserved <- getWord32le- return MsgEphemerisDepD {..}+ pure MsgEphemerisDepD {..} put MsgEphemerisDepD {..} = do putFloat64le _msgEphemerisDepD_tgd@@ -1062,7 +1067,7 @@ _msgEphemerisDepA_valid <- getWord8 _msgEphemerisDepA_healthy <- getWord8 _msgEphemerisDepA_prn <- getWord8- return MsgEphemerisDepA {..}+ pure MsgEphemerisDepA {..} put MsgEphemerisDepA {..} = do putFloat64le _msgEphemerisDepA_tgd@@ -1192,7 +1197,7 @@ _msgEphemerisDepB_healthy <- getWord8 _msgEphemerisDepB_prn <- getWord8 _msgEphemerisDepB_iode <- getWord8- return MsgEphemerisDepB {..}+ pure MsgEphemerisDepB {..} put MsgEphemerisDepB {..} = do putFloat64le _msgEphemerisDepB_tgd@@ -1332,7 +1337,7 @@ _msgEphemerisDepC_iode <- getWord8 _msgEphemerisDepC_iodc <- getWord16le _msgEphemerisDepC_reserved <- getWord32le- return MsgEphemerisDepC {..}+ pure MsgEphemerisDepC {..} put MsgEphemerisDepC {..} = do putFloat64le _msgEphemerisDepC_tgd@@ -1384,7 +1389,7 @@ get = do _observationHeaderDep_t <- get _observationHeaderDep_n_obs <- getWord8- return ObservationHeaderDep {..}+ pure ObservationHeaderDep {..} put ObservationHeaderDep {..} = do put _observationHeaderDep_t@@ -1410,7 +1415,7 @@ get = do _carrierPhaseDepA_i <- fromIntegral <$> getWord32le _carrierPhaseDepA_f <- getWord8- return CarrierPhaseDepA {..}+ pure CarrierPhaseDepA {..} put CarrierPhaseDepA {..} = do putWord32le $ fromIntegral _carrierPhaseDepA_i@@ -1444,7 +1449,7 @@ _packedObsContentDepA_cn0 <- getWord8 _packedObsContentDepA_lock <- getWord16le _packedObsContentDepA_prn <- getWord8- return PackedObsContentDepA {..}+ pure PackedObsContentDepA {..} put PackedObsContentDepA {..} = do putWord32le _packedObsContentDepA_P@@ -1482,7 +1487,7 @@ _packedObsContentDepB_cn0 <- getWord8 _packedObsContentDepB_lock <- getWord16le _packedObsContentDepB_sid <- get- return PackedObsContentDepB {..}+ pure PackedObsContentDepB {..} put PackedObsContentDepB {..} = do putWord32le _packedObsContentDepB_P@@ -1521,7 +1526,7 @@ _packedObsContentDepC_cn0 <- getWord8 _packedObsContentDepC_lock <- getWord16le _packedObsContentDepC_sid <- get- return PackedObsContentDepC {..}+ pure PackedObsContentDepC {..} put PackedObsContentDepC {..} = do putWord32le _packedObsContentDepC_P@@ -1550,7 +1555,7 @@ get = do _msgObsDepA_header <- get _msgObsDepA_obs <- whileM (not <$> isEmpty) get- return MsgObsDepA {..}+ pure MsgObsDepA {..} put MsgObsDepA {..} = do put _msgObsDepA_header@@ -1580,7 +1585,7 @@ get = do _msgObsDepB_header <- get _msgObsDepB_obs <- whileM (not <$> isEmpty) get- return MsgObsDepB {..}+ pure MsgObsDepB {..} put MsgObsDepB {..} = do put _msgObsDepB_header@@ -1612,7 +1617,7 @@ get = do _msgObsDepC_header <- get _msgObsDepC_obs <- whileM (not <$> isEmpty) get- return MsgObsDepC {..}+ pure MsgObsDepC {..} put MsgObsDepC {..} = do put _msgObsDepC_header@@ -1654,7 +1659,7 @@ _msgIono_b1 <- getFloat64le _msgIono_b2 <- getFloat64le _msgIono_b3 <- getFloat64le- return MsgIono {..}+ pure MsgIono {..} put MsgIono {..} = do put _msgIono_t_nmct@@ -1688,7 +1693,7 @@ get = do _msgSvConfigurationGps_t_nmct <- get _msgSvConfigurationGps_l2c_mask <- getWord32le- return MsgSvConfigurationGps {..}+ pure MsgSvConfigurationGps {..} put MsgSvConfigurationGps {..} = do put _msgSvConfigurationGps_t_nmct@@ -1725,7 +1730,7 @@ _msgGroupDelayDepA_tgd <- fromIntegral <$> getWord16le _msgGroupDelayDepA_isc_l1ca <- fromIntegral <$> getWord16le _msgGroupDelayDepA_isc_l2c <- fromIntegral <$> getWord16le- return MsgGroupDelayDepA {..}+ pure MsgGroupDelayDepA {..} put MsgGroupDelayDepA {..} = do put _msgGroupDelayDepA_t_op@@ -1766,7 +1771,7 @@ _msgGroupDelay_tgd <- fromIntegral <$> getWord16le _msgGroupDelay_isc_l1ca <- fromIntegral <$> getWord16le _msgGroupDelay_isc_l2c <- fromIntegral <$> getWord16le- return MsgGroupDelay {..}+ pure MsgGroupDelay {..} put MsgGroupDelay {..} = do put _msgGroupDelay_t_op@@ -1812,7 +1817,7 @@ _almanacCommonContent_fit_interval <- getWord32le _almanacCommonContent_valid <- getWord8 _almanacCommonContent_health_bits <- getWord8- return AlmanacCommonContent {..}+ pure AlmanacCommonContent {..} put AlmanacCommonContent {..} = do put _almanacCommonContent_sid@@ -1869,7 +1874,7 @@ _msgAlmanacGps_inc <- getFloat64le _msgAlmanacGps_af0 <- getFloat64le _msgAlmanacGps_af1 <- getFloat64le- return MsgAlmanacGps {..}+ pure MsgAlmanacGps {..} put MsgAlmanacGps {..} = do put _msgAlmanacGps_common@@ -1926,7 +1931,7 @@ _msgAlmanacGlo_t_dot <- getFloat64le _msgAlmanacGlo_epsilon <- getFloat64le _msgAlmanacGlo_omega <- getFloat64le- return MsgAlmanacGlo {..}+ pure MsgAlmanacGlo {..} put MsgAlmanacGlo {..} = do put _msgAlmanacGlo_common@@ -1941,38 +1946,3 @@ $(makeSBP 'msgAlmanacGlo ''MsgAlmanacGlo) $(makeJSON "_msgAlmanacGlo_" ''MsgAlmanacGlo) $(makeLenses ''MsgAlmanacGlo)--msgFcnsGlo :: Word16-msgFcnsGlo = 0x0072---- | SBP class for message MSG_FCNS_GLO (0x0072).------ The message reports mapping information regarding GLONASS SV orbital and--- frequency slots. Mapped as follow: index (SV orbital slot) fcns[index] 0--- 0xFF 1 FCN for SV orbital slot 1 ...--- ... 28 FCN for SV orbital slot 28 29--- 0xFF 30 0xFF 31 0xFF-data MsgFcnsGlo = MsgFcnsGlo- { _msgFcnsGlo_wn :: !Word16- -- ^ GPS Week number- , _msgFcnsGlo_tow_ms :: !Word32- -- ^ GPS Time of week- , _msgFcnsGlo_fcns :: ![Word8]- -- ^ GLONASS fequency number per orbital slot- } deriving ( Show, Read, Eq )--instance Binary MsgFcnsGlo where- get = do- _msgFcnsGlo_wn <- getWord16le- _msgFcnsGlo_tow_ms <- getWord32le- _msgFcnsGlo_fcns <- replicateM 32 getWord8- return MsgFcnsGlo {..}-- put MsgFcnsGlo {..} = do- putWord16le _msgFcnsGlo_wn- putWord32le _msgFcnsGlo_tow_ms- mapM_ putWord8 _msgFcnsGlo_fcns--$(makeSBP 'msgFcnsGlo ''MsgFcnsGlo)-$(makeJSON "_msgFcnsGlo_" ''MsgFcnsGlo)-$(makeLenses ''MsgFcnsGlo)
@@ -33,6 +33,11 @@ import SwiftNav.SBP.Types import SwiftNav.SBP.Gnss +{-# ANN module ("HLint: ignore Use camelCase"::String) #-}+{-# ANN module ("HLint: ignore Redundant do"::String) #-}+{-# ANN module ("HLint: ignore Use newtype instead of data"::String) #-}++ msgAlmanac :: Word16 msgAlmanac = 0x0069 @@ -45,10 +50,10 @@ instance Binary MsgAlmanac where get =- return MsgAlmanac+ pure MsgAlmanac put MsgAlmanac =- return ()+ pure () $(makeSBP 'msgAlmanac ''MsgAlmanac) $(makeJSON "_msgAlmanac_" ''MsgAlmanac) $(makeLenses ''MsgAlmanac)@@ -65,10 +70,10 @@ instance Binary MsgSetTime where get =- return MsgSetTime+ pure MsgSetTime put MsgSetTime =- return ()+ pure () $(makeSBP 'msgSetTime ''MsgSetTime) $(makeJSON "_msgSetTime_" ''MsgSetTime) $(makeLenses ''MsgSetTime)@@ -87,7 +92,7 @@ instance Binary MsgReset where get = do _msgReset_flags <- getWord32le- return MsgReset {..}+ pure MsgReset {..} put MsgReset {..} = do putWord32le _msgReset_flags@@ -107,10 +112,10 @@ instance Binary MsgResetDep where get =- return MsgResetDep+ pure MsgResetDep put MsgResetDep =- return ()+ pure () $(makeSBP 'msgResetDep ''MsgResetDep) $(makeJSON "_msgResetDep_" ''MsgResetDep) $(makeLenses ''MsgResetDep)@@ -128,10 +133,10 @@ instance Binary MsgCwResults where get =- return MsgCwResults+ pure MsgCwResults put MsgCwResults =- return ()+ pure () $(makeSBP 'msgCwResults ''MsgCwResults) $(makeJSON "_msgCwResults_" ''MsgCwResults) $(makeLenses ''MsgCwResults)@@ -149,10 +154,10 @@ instance Binary MsgCwStart where get =- return MsgCwStart+ pure MsgCwStart put MsgCwStart =- return ()+ pure () $(makeSBP 'msgCwStart ''MsgCwStart) $(makeJSON "_msgCwStart_" ''MsgCwStart) $(makeLenses ''MsgCwStart)@@ -172,7 +177,7 @@ instance Binary MsgResetFilters where get = do _msgResetFilters_filter <- getWord8- return MsgResetFilters {..}+ pure MsgResetFilters {..} put MsgResetFilters {..} = do putWord8 _msgResetFilters_filter@@ -195,10 +200,10 @@ instance Binary MsgInitBase where get =- return MsgInitBase+ pure MsgInitBase put MsgInitBase =- return ()+ pure () $(makeSBP 'msgInitBase ''MsgInitBase) $(makeJSON "_msgInitBase_" ''MsgInitBase) $(makeLenses ''MsgInitBase)@@ -226,7 +231,7 @@ _msgThreadState_name <- decodeUtf8 <$> getByteString 20 _msgThreadState_cpu <- getWord16le _msgThreadState_stack_free <- getWord32le- return MsgThreadState {..}+ pure MsgThreadState {..} put MsgThreadState {..} = do putByteString $ encodeUtf8 _msgThreadState_name@@ -264,7 +269,7 @@ _uARTChannel_io_error_count <- getWord16le _uARTChannel_tx_buffer_level <- getWord8 _uARTChannel_rx_buffer_level <- getWord8- return UARTChannel {..}+ pure UARTChannel {..} put UARTChannel {..} = do putFloat32le _uARTChannel_tx_throughput@@ -301,7 +306,7 @@ _period_pmin <- fromIntegral <$> getWord32le _period_pmax <- fromIntegral <$> getWord32le _period_current <- fromIntegral <$> getWord32le- return Period {..}+ pure Period {..} put Period {..} = do putWord32le $ fromIntegral _period_avg@@ -335,7 +340,7 @@ _latency_lmin <- fromIntegral <$> getWord32le _latency_lmax <- fromIntegral <$> getWord32le _latency_current <- fromIntegral <$> getWord32le- return Latency {..}+ pure Latency {..} put Latency {..} = do putWord32le $ fromIntegral _latency_avg@@ -379,7 +384,7 @@ _msgUartState_uart_ftdi <- get _msgUartState_latency <- get _msgUartState_obs_period <- get- return MsgUartState {..}+ pure MsgUartState {..} put MsgUartState {..} = do put _msgUartState_uart_a@@ -415,7 +420,7 @@ _msgUartStateDepa_uart_b <- get _msgUartStateDepa_uart_ftdi <- get _msgUartStateDepa_latency <- get- return MsgUartStateDepa {..}+ pure MsgUartStateDepa {..} put MsgUartStateDepa {..} = do put _msgUartStateDepa_uart_a@@ -443,7 +448,7 @@ instance Binary MsgIarState where get = do _msgIarState_num_hyps <- getWord32le- return MsgIarState {..}+ pure MsgIarState {..} put MsgIarState {..} = do putWord32le _msgIarState_num_hyps@@ -470,7 +475,7 @@ get = do _msgMaskSatellite_mask <- getWord8 _msgMaskSatellite_sid <- get- return MsgMaskSatellite {..}+ pure MsgMaskSatellite {..} put MsgMaskSatellite {..} = do putWord8 _msgMaskSatellite_mask@@ -508,7 +513,7 @@ _msgDeviceMonitor_cpu_vaux <- fromIntegral <$> getWord16le _msgDeviceMonitor_cpu_temperature <- fromIntegral <$> getWord16le _msgDeviceMonitor_fe_temperature <- fromIntegral <$> getWord16le- return MsgDeviceMonitor {..}+ pure MsgDeviceMonitor {..} put MsgDeviceMonitor {..} = do putWord16le $ fromIntegral _msgDeviceMonitor_dev_vin@@ -539,7 +544,7 @@ get = do _msgCommandReq_sequence <- getWord32le _msgCommandReq_command <- decodeUtf8 . toStrict <$> getRemainingLazyByteString- return MsgCommandReq {..}+ pure MsgCommandReq {..} put MsgCommandReq {..} = do putWord32le _msgCommandReq_sequence@@ -567,7 +572,7 @@ get = do _msgCommandResp_sequence <- getWord32le _msgCommandResp_code <- fromIntegral <$> getWord32le- return MsgCommandResp {..}+ pure MsgCommandResp {..} put MsgCommandResp {..} = do putWord32le _msgCommandResp_sequence@@ -596,7 +601,7 @@ get = do _msgCommandOutput_sequence <- getWord32le _msgCommandOutput_line <- decodeUtf8 . toStrict <$> getRemainingLazyByteString- return MsgCommandOutput {..}+ pure MsgCommandOutput {..} put MsgCommandOutput {..} = do putWord32le _msgCommandOutput_sequence@@ -618,10 +623,10 @@ instance Binary MsgNetworkStateReq where get =- return MsgNetworkStateReq+ pure MsgNetworkStateReq put MsgNetworkStateReq =- return ()+ pure () $(makeSBP 'msgNetworkStateReq ''MsgNetworkStateReq) $(makeJSON "_msgNetworkStateReq_" ''MsgNetworkStateReq) $(makeLenses ''MsgNetworkStateReq)@@ -662,7 +667,7 @@ _msgNetworkStateResp_tx_bytes <- getWord32le _msgNetworkStateResp_interface_name <- decodeUtf8 <$> getByteString 16 _msgNetworkStateResp_flags <- getWord32le- return MsgNetworkStateResp {..}+ pure MsgNetworkStateResp {..} put MsgNetworkStateResp {..} = do mapM_ putWord8 _msgNetworkStateResp_ipv4_address@@ -710,7 +715,7 @@ _msgSpecan_amplitude_ref <- getFloat32le _msgSpecan_amplitude_unit <- getFloat32le _msgSpecan_amplitude_value <- whileM (not <$> isEmpty) getWord8- return MsgSpecan {..}+ pure MsgSpecan {..} put MsgSpecan {..} = do putWord16le _msgSpecan_channel_tag
@@ -34,6 +34,11 @@ import SwiftNav.SBP.TH import SwiftNav.SBP.Types +{-# ANN module ("HLint: ignore Use camelCase"::String) #-}+{-# ANN module ("HLint: ignore Redundant do"::String) #-}+{-# ANN module ("HLint: ignore Use newtype instead of data"::String) #-}++ msgSettingsSave :: Word16 msgSettingsSave = 0x00A1 @@ -46,10 +51,10 @@ instance Binary MsgSettingsSave where get =- return MsgSettingsSave+ pure MsgSettingsSave put MsgSettingsSave =- return ()+ pure () $(makeSBP 'msgSettingsSave ''MsgSettingsSave) $(makeJSON "_msgSettingsSave_" ''MsgSettingsSave) $(makeLenses ''MsgSettingsSave)@@ -70,7 +75,7 @@ instance Binary MsgSettingsWrite where get = do _msgSettingsWrite_setting <- decodeUtf8 . toStrict <$> getRemainingLazyByteString- return MsgSettingsWrite {..}+ pure MsgSettingsWrite {..} put MsgSettingsWrite {..} = do putByteString $ encodeUtf8 _msgSettingsWrite_setting@@ -95,7 +100,7 @@ instance Binary MsgSettingsReadReq where get = do _msgSettingsReadReq_setting <- decodeUtf8 . toStrict <$> getRemainingLazyByteString- return MsgSettingsReadReq {..}+ pure MsgSettingsReadReq {..} put MsgSettingsReadReq {..} = do putByteString $ encodeUtf8 _msgSettingsReadReq_setting@@ -119,7 +124,7 @@ instance Binary MsgSettingsReadResp where get = do _msgSettingsReadResp_setting <- decodeUtf8 . toStrict <$> getRemainingLazyByteString- return MsgSettingsReadResp {..}+ pure MsgSettingsReadResp {..} put MsgSettingsReadResp {..} = do putByteString $ encodeUtf8 _msgSettingsReadResp_setting@@ -146,7 +151,7 @@ instance Binary MsgSettingsReadByIndexReq where get = do _msgSettingsReadByIndexReq_index <- getWord16le- return MsgSettingsReadByIndexReq {..}+ pure MsgSettingsReadByIndexReq {..} put MsgSettingsReadByIndexReq {..} = do putWord16le _msgSettingsReadByIndexReq_index@@ -176,7 +181,7 @@ get = do _msgSettingsReadByIndexResp_index <- getWord16le _msgSettingsReadByIndexResp_setting <- decodeUtf8 . toStrict <$> getRemainingLazyByteString- return MsgSettingsReadByIndexResp {..}+ pure MsgSettingsReadByIndexResp {..} put MsgSettingsReadByIndexResp {..} = do putWord16le _msgSettingsReadByIndexResp_index@@ -197,10 +202,10 @@ instance Binary MsgSettingsReadByIndexDone where get =- return MsgSettingsReadByIndexDone+ pure MsgSettingsReadByIndexDone put MsgSettingsReadByIndexDone =- return ()+ pure () $(makeSBP 'msgSettingsReadByIndexDone ''MsgSettingsReadByIndexDone) $(makeJSON "_msgSettingsReadByIndexDone_" ''MsgSettingsReadByIndexDone) $(makeLenses ''MsgSettingsReadByIndexDone)@@ -222,7 +227,7 @@ instance Binary MsgSettingsRegister where get = do _msgSettingsRegister_setting <- decodeUtf8 . toStrict <$> getRemainingLazyByteString- return MsgSettingsRegister {..}+ pure MsgSettingsRegister {..} put MsgSettingsRegister {..} = do putByteString $ encodeUtf8 _msgSettingsRegister_setting
@@ -30,6 +30,11 @@ import SwiftNav.SBP.TH import SwiftNav.SBP.Types +{-# ANN module ("HLint: ignore Use camelCase"::String) #-}+{-# ANN module ("HLint: ignore Redundant do"::String) #-}+{-# ANN module ("HLint: ignore Use newtype instead of data"::String) #-}++ msgStartup :: Word16 msgStartup = 0xFF00 @@ -52,7 +57,7 @@ _msgStartup_cause <- getWord8 _msgStartup_startup_type <- getWord8 _msgStartup_reserved <- getWord16le- return MsgStartup {..}+ pure MsgStartup {..} put MsgStartup {..} = do putWord8 _msgStartup_cause@@ -88,7 +93,7 @@ _msgDgnssStatus_latency <- getWord16le _msgDgnssStatus_num_signals <- getWord8 _msgDgnssStatus_source <- decodeUtf8 . toStrict <$> getRemainingLazyByteString- return MsgDgnssStatus {..}+ pure MsgDgnssStatus {..} put MsgDgnssStatus {..} = do putWord8 _msgDgnssStatus_flags@@ -120,7 +125,7 @@ instance Binary MsgHeartbeat where get = do _msgHeartbeat_flags <- getWord32le- return MsgHeartbeat {..}+ pure MsgHeartbeat {..} put MsgHeartbeat {..} = do putWord32le _msgHeartbeat_flags
@@ -31,6 +31,11 @@ import SwiftNav.SBP.Types import SwiftNav.SBP.Gnss +{-# ANN module ("HLint: ignore Use camelCase"::String) #-}+{-# ANN module ("HLint: ignore Redundant do"::String) #-}+{-# ANN module ("HLint: ignore Use newtype instead of data"::String) #-}++ msgTrackingStateDetailed :: Word16 msgTrackingStateDetailed = 0x0011 @@ -112,7 +117,7 @@ _msgTrackingStateDetailed_nav_flags <- getWord8 _msgTrackingStateDetailed_pset_flags <- getWord8 _msgTrackingStateDetailed_misc_flags <- getWord8- return MsgTrackingStateDetailed {..}+ pure MsgTrackingStateDetailed {..} put MsgTrackingStateDetailed {..} = do putWord64le _msgTrackingStateDetailed_recv_time@@ -159,7 +164,7 @@ _trackingChannelState_sid <- get _trackingChannelState_fcn <- getWord8 _trackingChannelState_cn0 <- getWord8- return TrackingChannelState {..}+ pure TrackingChannelState {..} put TrackingChannelState {..} = do put _trackingChannelState_sid@@ -185,7 +190,7 @@ instance Binary MsgTrackingState where get = do _msgTrackingState_states <- whileM (not <$> isEmpty) get- return MsgTrackingState {..}+ pure MsgTrackingState {..} put MsgTrackingState {..} = do mapM_ put _msgTrackingState_states@@ -208,7 +213,7 @@ get = do _trackingChannelCorrelation_I <- fromIntegral <$> getWord32le _trackingChannelCorrelation_Q <- fromIntegral <$> getWord32le- return TrackingChannelCorrelation {..}+ pure TrackingChannelCorrelation {..} put TrackingChannelCorrelation {..} = do putWord32le $ fromIntegral _trackingChannelCorrelation_I@@ -238,7 +243,7 @@ _msgTrackingIq_channel <- getWord8 _msgTrackingIq_sid <- get _msgTrackingIq_corrs <- replicateM 3 get- return MsgTrackingIq {..}+ pure MsgTrackingIq {..} put MsgTrackingIq {..} = do putWord8 _msgTrackingIq_channel@@ -266,7 +271,7 @@ _trackingChannelStateDepA_state <- getWord8 _trackingChannelStateDepA_prn <- getWord8 _trackingChannelStateDepA_cn0 <- getFloat32le- return TrackingChannelStateDepA {..}+ pure TrackingChannelStateDepA {..} put TrackingChannelStateDepA {..} = do putWord8 _trackingChannelStateDepA_state@@ -290,7 +295,7 @@ instance Binary MsgTrackingStateDepA where get = do _msgTrackingStateDepA_states <- whileM (not <$> isEmpty) get- return MsgTrackingStateDepA {..}+ pure MsgTrackingStateDepA {..} put MsgTrackingStateDepA {..} = do mapM_ put _msgTrackingStateDepA_states@@ -316,7 +321,7 @@ _trackingChannelStateDepB_state <- getWord8 _trackingChannelStateDepB_sid <- get _trackingChannelStateDepB_cn0 <- getFloat32le- return TrackingChannelStateDepB {..}+ pure TrackingChannelStateDepB {..} put TrackingChannelStateDepB {..} = do putWord8 _trackingChannelStateDepB_state@@ -340,7 +345,7 @@ instance Binary MsgTrackingStateDepB where get = do _msgTrackingStateDepB_states <- whileM (not <$> isEmpty) get- return MsgTrackingStateDepB {..}+ pure MsgTrackingStateDepB {..} put MsgTrackingStateDepB {..} = do mapM_ put _msgTrackingStateDepB_states
@@ -81,7 +81,7 @@ _msgSBPLen <- getWord8 _msgSBPPayload <- fmap Bytes $ getByteString $ fromIntegral _msgSBPLen _msgSBPCrc <- getWord16le- return Msg {..}+ pure Msg {..} put Msg {..} = do putWord16le _msgSBPType
@@ -30,6 +30,11 @@ import SwiftNav.SBP.TH import SwiftNav.SBP.Types +{-# ANN module ("HLint: ignore Use camelCase"::String) #-}+{-# ANN module ("HLint: ignore Redundant do"::String) #-}+{-# ANN module ("HLint: ignore Use newtype instead of data"::String) #-}++ msgUserData :: Word16 msgUserData = 0x0800 @@ -45,7 +50,7 @@ instance Binary MsgUserData where get = do _msgUserData_contents <- whileM (not <$> isEmpty) getWord8- return MsgUserData {..}+ pure MsgUserData {..} put MsgUserData {..} = do mapM_ putWord8 _msgUserData_contents