packages feed

sbp 2.2.11 → 2.2.12

raw patch · 23 files changed

+260/−221 lines, 23 filesdep −resourcet

Dependencies removed: resourcet

Files

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
src/SwiftNav/SBP/Acquisition.hs view
@@ -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
src/SwiftNav/SBP/Bootload.hs view
@@ -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
src/SwiftNav/SBP/ExtEvents.hs view
@@ -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
src/SwiftNav/SBP/FileIo.hs view
@@ -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
src/SwiftNav/SBP/Flash.hs view
@@ -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
src/SwiftNav/SBP/Gnss.hs view
@@ -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
src/SwiftNav/SBP/Imu.hs view
@@ -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
src/SwiftNav/SBP/Logging.hs view
@@ -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
src/SwiftNav/SBP/Msg.hs view
@@ -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
src/SwiftNav/SBP/Navigation.hs view
@@ -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
src/SwiftNav/SBP/Ndb.hs view
@@ -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
src/SwiftNav/SBP/Observation.hs view
@@ -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)
src/SwiftNav/SBP/Piksi.hs view
@@ -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
src/SwiftNav/SBP/Settings.hs view
@@ -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
src/SwiftNav/SBP/System.hs view
@@ -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
src/SwiftNav/SBP/Tracking.hs view
@@ -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
src/SwiftNav/SBP/Types.hs view
@@ -81,7 +81,7 @@     _msgSBPLen     <- getWord8     _msgSBPPayload <- fmap Bytes $ getByteString $ fromIntegral _msgSBPLen     _msgSBPCrc     <- getWord16le-    return Msg {..}+    pure Msg {..}    put Msg {..} = do     putWord16le   _msgSBPType
src/SwiftNav/SBP/User.hs view
@@ -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