packages feed

sbp 2.2.3 → 2.2.6

raw patch · 5 files changed

+177/−8 lines, 5 files

Files

sbp.cabal view
@@ -1,5 +1,5 @@ name:                  sbp-version:               2.2.3+version:               2.2.6 synopsis:              SwiftNav's SBP Library homepage:              https://github.com/swift-nav/libsbp license:               LGPL-3
src/SwiftNav/SBP/Msg.hs view
@@ -59,6 +59,7 @@    | SBPMsgBootloaderHandshakeReq MsgBootloaderHandshakeReq Msg    | SBPMsgBootloaderHandshakeResp MsgBootloaderHandshakeResp Msg    | SBPMsgBootloaderJumpToApp MsgBootloaderJumpToApp Msg+   | SBPMsgCommandOutput MsgCommandOutput Msg    | SBPMsgCommandReq MsgCommandReq Msg    | SBPMsgCommandResp MsgCommandResp Msg    | SBPMsgCwResults MsgCwResults Msg@@ -73,6 +74,8 @@    | SBPMsgEphemerisDepD MsgEphemerisDepD Msg    | SBPMsgEphemerisGlo MsgEphemerisGlo Msg    | SBPMsgEphemerisGloDepA MsgEphemerisGloDepA Msg+   | SBPMsgEphemerisGloDepB MsgEphemerisGloDepB Msg+   | SBPMsgEphemerisGloDepC MsgEphemerisGloDepC Msg    | SBPMsgEphemerisGps MsgEphemerisGps Msg    | SBPMsgEphemerisGpsDepE MsgEphemerisGpsDepE Msg    | SBPMsgEphemerisSbas MsgEphemerisSbas Msg@@ -186,6 +189,7 @@           | _msgSBPType == msgBootloaderHandshakeReq = SBPMsgBootloaderHandshakeReq (decode (fromStrict _msgSBPPayload)) m           | _msgSBPType == msgBootloaderHandshakeResp = SBPMsgBootloaderHandshakeResp (decode (fromStrict _msgSBPPayload)) m           | _msgSBPType == msgBootloaderJumpToApp = SBPMsgBootloaderJumpToApp (decode (fromStrict _msgSBPPayload)) m+          | _msgSBPType == msgCommandOutput = SBPMsgCommandOutput (decode (fromStrict _msgSBPPayload)) m           | _msgSBPType == msgCommandReq = SBPMsgCommandReq (decode (fromStrict _msgSBPPayload)) m           | _msgSBPType == msgCommandResp = SBPMsgCommandResp (decode (fromStrict _msgSBPPayload)) m           | _msgSBPType == msgCwResults = SBPMsgCwResults (decode (fromStrict _msgSBPPayload)) m@@ -200,6 +204,8 @@           | _msgSBPType == msgEphemerisDepD = SBPMsgEphemerisDepD (decode (fromStrict _msgSBPPayload)) m           | _msgSBPType == msgEphemerisGlo = SBPMsgEphemerisGlo (decode (fromStrict _msgSBPPayload)) m           | _msgSBPType == msgEphemerisGloDepA = SBPMsgEphemerisGloDepA (decode (fromStrict _msgSBPPayload)) m+          | _msgSBPType == msgEphemerisGloDepB = SBPMsgEphemerisGloDepB (decode (fromStrict _msgSBPPayload)) m+          | _msgSBPType == msgEphemerisGloDepC = SBPMsgEphemerisGloDepC (decode (fromStrict _msgSBPPayload)) m           | _msgSBPType == msgEphemerisGps = SBPMsgEphemerisGps (decode (fromStrict _msgSBPPayload)) m           | _msgSBPType == msgEphemerisGpsDepE = SBPMsgEphemerisGpsDepE (decode (fromStrict _msgSBPPayload)) m           | _msgSBPType == msgEphemerisSbas = SBPMsgEphemerisSbas (decode (fromStrict _msgSBPPayload)) m@@ -305,6 +311,7 @@       encode' (SBPMsgBootloaderHandshakeReq _ m) = put m       encode' (SBPMsgBootloaderHandshakeResp _ m) = put m       encode' (SBPMsgBootloaderJumpToApp _ m) = put m+      encode' (SBPMsgCommandOutput _ m) = put m       encode' (SBPMsgCommandReq _ m) = put m       encode' (SBPMsgCommandResp _ m) = put m       encode' (SBPMsgCwResults _ m) = put m@@ -319,6 +326,8 @@       encode' (SBPMsgEphemerisDepD _ m) = put m       encode' (SBPMsgEphemerisGlo _ m) = put m       encode' (SBPMsgEphemerisGloDepA _ m) = put m+      encode' (SBPMsgEphemerisGloDepB _ m) = put m+      encode' (SBPMsgEphemerisGloDepC _ m) = put m       encode' (SBPMsgEphemerisGps _ m) = put m       encode' (SBPMsgEphemerisGpsDepE _ m) = put m       encode' (SBPMsgEphemerisSbas _ m) = put m@@ -427,6 +436,7 @@         | msgType == msgBootloaderHandshakeReq = SBPMsgBootloaderHandshakeReq <$> parseJSON obj <*> parseJSON obj         | msgType == msgBootloaderHandshakeResp = SBPMsgBootloaderHandshakeResp <$> parseJSON obj <*> parseJSON obj         | msgType == msgBootloaderJumpToApp = SBPMsgBootloaderJumpToApp <$> parseJSON obj <*> parseJSON obj+        | msgType == msgCommandOutput = SBPMsgCommandOutput <$> parseJSON obj <*> parseJSON obj         | msgType == msgCommandReq = SBPMsgCommandReq <$> parseJSON obj <*> parseJSON obj         | msgType == msgCommandResp = SBPMsgCommandResp <$> parseJSON obj <*> parseJSON obj         | msgType == msgCwResults = SBPMsgCwResults <$> parseJSON obj <*> parseJSON obj@@ -441,6 +451,8 @@         | msgType == msgEphemerisDepD = SBPMsgEphemerisDepD <$> parseJSON obj <*> parseJSON obj         | msgType == msgEphemerisGlo = SBPMsgEphemerisGlo <$> parseJSON obj <*> parseJSON obj         | msgType == msgEphemerisGloDepA = SBPMsgEphemerisGloDepA <$> parseJSON obj <*> parseJSON obj+        | msgType == msgEphemerisGloDepB = SBPMsgEphemerisGloDepB <$> parseJSON obj <*> parseJSON obj+        | msgType == msgEphemerisGloDepC = SBPMsgEphemerisGloDepC <$> parseJSON obj <*> parseJSON obj         | msgType == msgEphemerisGps = SBPMsgEphemerisGps <$> parseJSON obj <*> parseJSON obj         | msgType == msgEphemerisGpsDepE = SBPMsgEphemerisGpsDepE <$> parseJSON obj <*> parseJSON obj         | msgType == msgEphemerisSbas = SBPMsgEphemerisSbas <$> parseJSON obj <*> parseJSON obj@@ -551,6 +563,7 @@   toJSON (SBPMsgBootloaderHandshakeReq n m) = toJSON n `mergeValues` toJSON m   toJSON (SBPMsgBootloaderHandshakeResp n m) = toJSON n `mergeValues` toJSON m   toJSON (SBPMsgBootloaderJumpToApp n m) = toJSON n `mergeValues` toJSON m+  toJSON (SBPMsgCommandOutput n m) = toJSON n `mergeValues` toJSON m   toJSON (SBPMsgCommandReq n m) = toJSON n `mergeValues` toJSON m   toJSON (SBPMsgCommandResp n m) = toJSON n `mergeValues` toJSON m   toJSON (SBPMsgCwResults n m) = toJSON n `mergeValues` toJSON m@@ -565,6 +578,8 @@   toJSON (SBPMsgEphemerisDepD n m) = toJSON n `mergeValues` toJSON m   toJSON (SBPMsgEphemerisGlo n m) = toJSON n `mergeValues` toJSON m   toJSON (SBPMsgEphemerisGloDepA n m) = toJSON n `mergeValues` toJSON m+  toJSON (SBPMsgEphemerisGloDepB n m) = toJSON n `mergeValues` toJSON m+  toJSON (SBPMsgEphemerisGloDepC n m) = toJSON n `mergeValues` toJSON m   toJSON (SBPMsgEphemerisGps n m) = toJSON n `mergeValues` toJSON m   toJSON (SBPMsgEphemerisGpsDepE n m) = toJSON n `mergeValues` toJSON m   toJSON (SBPMsgEphemerisSbas n m) = toJSON n `mergeValues` toJSON m@@ -669,6 +684,7 @@   msg f (SBPMsgBootloaderHandshakeReq n m) = SBPMsgBootloaderHandshakeReq n <$> f m   msg f (SBPMsgBootloaderHandshakeResp n m) = SBPMsgBootloaderHandshakeResp n <$> f m   msg f (SBPMsgBootloaderJumpToApp n m) = SBPMsgBootloaderJumpToApp n <$> f m+  msg f (SBPMsgCommandOutput n m) = SBPMsgCommandOutput n <$> f m   msg f (SBPMsgCommandReq n m) = SBPMsgCommandReq n <$> f m   msg f (SBPMsgCommandResp n m) = SBPMsgCommandResp n <$> f m   msg f (SBPMsgCwResults n m) = SBPMsgCwResults n <$> f m@@ -683,6 +699,8 @@   msg f (SBPMsgEphemerisDepD n m) = SBPMsgEphemerisDepD n <$> f m   msg f (SBPMsgEphemerisGlo n m) = SBPMsgEphemerisGlo n <$> f m   msg f (SBPMsgEphemerisGloDepA n m) = SBPMsgEphemerisGloDepA n <$> f m+  msg f (SBPMsgEphemerisGloDepB n m) = SBPMsgEphemerisGloDepB n <$> f m+  msg f (SBPMsgEphemerisGloDepC n m) = SBPMsgEphemerisGloDepC n <$> f m   msg f (SBPMsgEphemerisGps n m) = SBPMsgEphemerisGps n <$> f m   msg f (SBPMsgEphemerisGpsDepE n m) = SBPMsgEphemerisGpsDepE n <$> f m   msg f (SBPMsgEphemerisSbas n m) = SBPMsgEphemerisSbas n <$> f m
src/SwiftNav/SBP/Navigation.hs view
@@ -434,7 +434,7 @@   , _msgVelEcef_z      :: Int32     -- ^ Velocity ECEF Z coordinate   , _msgVelEcef_accuracy :: Word16-    -- ^ Velocity accuracy estimate (not implemented). Defaults to 0.+    -- ^ Velocity accuracy estimate   , _msgVelEcef_n_sats :: Word8     -- ^ Number of satellites used in solution   , _msgVelEcef_flags  :: Word8@@ -486,9 +486,9 @@   , _msgVelNed_d        :: Int32     -- ^ Velocity Down coordinate   , _msgVelNed_h_accuracy :: Word16-    -- ^ Horizontal velocity accuracy estimate (not implemented). Defaults to 0.+    -- ^ Horizontal velocity accuracy estimate   , _msgVelNed_v_accuracy :: Word16-    -- ^ Vertical velocity accuracy estimate (not implemented). Defaults to 0.+    -- ^ Vertical velocity accuracy estimate   , _msgVelNed_n_sats   :: Word8     -- ^ Number of satellites used in solution   , _msgVelNed_flags    :: Word8@@ -818,7 +818,7 @@   , _msgBaselineEcefDepA_z      :: Int32     -- ^ Baseline ECEF Z coordinate   , _msgBaselineEcefDepA_accuracy :: Word16-    -- ^ Position accuracy estimate (not implemented). Defaults to 0.+    -- ^ Position accuracy estimate   , _msgBaselineEcefDepA_n_sats :: Word8     -- ^ Number of satellites used in solution   , _msgBaselineEcefDepA_flags  :: Word8
src/SwiftNav/SBP/Observation.hs view
@@ -682,10 +682,114 @@              ''MsgEphemerisSbas) $(makeLenses ''MsgEphemerisSbas) +msgEphemerisGloDepB :: Word16+msgEphemerisGloDepB = 0x0085++-- | SBP class for message MSG_EPHEMERIS_GLO_DEP_B (0x0085).+--+-- The ephemeris message returns a set of satellite orbit parameters that is+-- used to calculate GLO satellite position, velocity, and clock offset. Please+-- see the GLO ICD 5.1 "Table 4.5 Characteristics of words of immediate+-- information (ephemeris parameters)" for more details.+data MsgEphemerisGloDepB = MsgEphemerisGloDepB+  { _msgEphemerisGloDepB_common :: EphemerisCommonContent+    -- ^ Values common for all ephemeris types+  , _msgEphemerisGloDepB_gamma :: Double+    -- ^ Relative deviation of predicted carrier frequency from nominal+  , _msgEphemerisGloDepB_tau  :: Double+    -- ^ Correction to the SV time+  , _msgEphemerisGloDepB_pos  :: [Double]+    -- ^ Position of the SV at tb in PZ-90.02 coordinates system+  , _msgEphemerisGloDepB_vel  :: [Double]+    -- ^ Velocity vector of the SV at tb in PZ-90.02 coordinates system+  , _msgEphemerisGloDepB_acc  :: [Double]+    -- ^ Acceleration vector of the SV at tb in PZ-90.02 coordinates sys+  } deriving ( Show, Read, Eq )++instance Binary MsgEphemerisGloDepB where+  get = do+    _msgEphemerisGloDepB_common <- get+    _msgEphemerisGloDepB_gamma <- getFloat64le+    _msgEphemerisGloDepB_tau <- getFloat64le+    _msgEphemerisGloDepB_pos <- replicateM 3 getFloat64le+    _msgEphemerisGloDepB_vel <- replicateM 3 getFloat64le+    _msgEphemerisGloDepB_acc <- replicateM 3 getFloat64le+    return MsgEphemerisGloDepB {..}++  put MsgEphemerisGloDepB {..} = do+    put _msgEphemerisGloDepB_common+    putFloat64le _msgEphemerisGloDepB_gamma+    putFloat64le _msgEphemerisGloDepB_tau+    mapM_ putFloat64le _msgEphemerisGloDepB_pos+    mapM_ putFloat64le _msgEphemerisGloDepB_vel+    mapM_ putFloat64le _msgEphemerisGloDepB_acc++$(deriveSBP 'msgEphemerisGloDepB ''MsgEphemerisGloDepB)++$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgEphemerisGloDepB_" . P.stripPrefix "_msgEphemerisGloDepB_"}+             ''MsgEphemerisGloDepB)+$(makeLenses ''MsgEphemerisGloDepB)++msgEphemerisGloDepC :: Word16+msgEphemerisGloDepC = 0x0087++-- | SBP class for message MSG_EPHEMERIS_GLO_DEP_C (0x0087).+--+-- The ephemeris message returns a set of satellite orbit parameters that is+-- used to calculate GLO satellite position, velocity, and clock offset. Please+-- see the GLO ICD 5.1 "Table 4.5 Characteristics of words of immediate+-- information (ephemeris parameters)" for more details.+data MsgEphemerisGloDepC = MsgEphemerisGloDepC+  { _msgEphemerisGloDepC_common :: EphemerisCommonContent+    -- ^ Values common for all ephemeris types+  , _msgEphemerisGloDepC_gamma :: Double+    -- ^ Relative deviation of predicted carrier frequency from nominal+  , _msgEphemerisGloDepC_tau  :: Double+    -- ^ Correction to the SV time+  , _msgEphemerisGloDepC_d_tau :: Double+    -- ^ Equipment delay between L1 and L2+  , _msgEphemerisGloDepC_pos  :: [Double]+    -- ^ Position of the SV at tb in PZ-90.02 coordinates system+  , _msgEphemerisGloDepC_vel  :: [Double]+    -- ^ Velocity vector of the SV at tb in PZ-90.02 coordinates system+  , _msgEphemerisGloDepC_acc  :: [Double]+    -- ^ Acceleration vector of the SV at tb in PZ-90.02 coordinates sys+  , _msgEphemerisGloDepC_fcn  :: Word8+    -- ^ Frequency slot. FCN+8 (that is [1..14]). 0 or 0xFF for invalid+  } deriving ( Show, Read, Eq )++instance Binary MsgEphemerisGloDepC where+  get = do+    _msgEphemerisGloDepC_common <- get+    _msgEphemerisGloDepC_gamma <- getFloat64le+    _msgEphemerisGloDepC_tau <- getFloat64le+    _msgEphemerisGloDepC_d_tau <- getFloat64le+    _msgEphemerisGloDepC_pos <- replicateM 3 getFloat64le+    _msgEphemerisGloDepC_vel <- replicateM 3 getFloat64le+    _msgEphemerisGloDepC_acc <- replicateM 3 getFloat64le+    _msgEphemerisGloDepC_fcn <- getWord8+    return MsgEphemerisGloDepC {..}++  put MsgEphemerisGloDepC {..} = do+    put _msgEphemerisGloDepC_common+    putFloat64le _msgEphemerisGloDepC_gamma+    putFloat64le _msgEphemerisGloDepC_tau+    putFloat64le _msgEphemerisGloDepC_d_tau+    mapM_ putFloat64le _msgEphemerisGloDepC_pos+    mapM_ putFloat64le _msgEphemerisGloDepC_vel+    mapM_ putFloat64le _msgEphemerisGloDepC_acc+    putWord8 _msgEphemerisGloDepC_fcn++$(deriveSBP 'msgEphemerisGloDepC ''MsgEphemerisGloDepC)++$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgEphemerisGloDepC_" . P.stripPrefix "_msgEphemerisGloDepC_"}+             ''MsgEphemerisGloDepC)+$(makeLenses ''MsgEphemerisGloDepC)+ msgEphemerisGlo :: Word16-msgEphemerisGlo = 0x0085+msgEphemerisGlo = 0x0088 --- | SBP class for message MSG_EPHEMERIS_GLO (0x0085).+-- | SBP class for message MSG_EPHEMERIS_GLO (0x0088). -- -- The ephemeris message returns a set of satellite orbit parameters that is -- used to calculate GLO satellite position, velocity, and clock offset. Please@@ -698,12 +802,18 @@     -- ^ Relative deviation of predicted carrier frequency from nominal   , _msgEphemerisGlo_tau  :: Double     -- ^ Correction to the SV time+  , _msgEphemerisGlo_d_tau :: Double+    -- ^ Equipment delay between L1 and L2   , _msgEphemerisGlo_pos  :: [Double]     -- ^ Position of the SV at tb in PZ-90.02 coordinates system   , _msgEphemerisGlo_vel  :: [Double]     -- ^ Velocity vector of the SV at tb in PZ-90.02 coordinates system   , _msgEphemerisGlo_acc  :: [Double]     -- ^ Acceleration vector of the SV at tb in PZ-90.02 coordinates sys+  , _msgEphemerisGlo_fcn  :: Word8+    -- ^ Frequency slot. FCN+8 (that is [1..14]). 0 or 0xFF for invalid+  , _msgEphemerisGlo_iod  :: Word8+    -- ^ Issue of ephemeris data   } deriving ( Show, Read, Eq )  instance Binary MsgEphemerisGlo where@@ -711,18 +821,24 @@     _msgEphemerisGlo_common <- get     _msgEphemerisGlo_gamma <- getFloat64le     _msgEphemerisGlo_tau <- getFloat64le+    _msgEphemerisGlo_d_tau <- getFloat64le     _msgEphemerisGlo_pos <- replicateM 3 getFloat64le     _msgEphemerisGlo_vel <- replicateM 3 getFloat64le     _msgEphemerisGlo_acc <- replicateM 3 getFloat64le+    _msgEphemerisGlo_fcn <- getWord8+    _msgEphemerisGlo_iod <- getWord8     return MsgEphemerisGlo {..}    put MsgEphemerisGlo {..} = do     put _msgEphemerisGlo_common     putFloat64le _msgEphemerisGlo_gamma     putFloat64le _msgEphemerisGlo_tau+    putFloat64le _msgEphemerisGlo_d_tau     mapM_ putFloat64le _msgEphemerisGlo_pos     mapM_ putFloat64le _msgEphemerisGlo_vel     mapM_ putFloat64le _msgEphemerisGlo_acc+    putWord8 _msgEphemerisGlo_fcn+    putWord8 _msgEphemerisGlo_iod  $(deriveSBP 'msgEphemerisGlo ''MsgEphemerisGlo) 
src/SwiftNav/SBP/Piksi.hs view
@@ -612,6 +612,37 @@              ''MsgCommandResp) $(makeLenses ''MsgCommandResp) +msgCommandOutput :: Word16+msgCommandOutput = 0x00BC++-- | SBP class for message MSG_COMMAND_OUTPUT (0x00BC).+--+-- Returns the standard output and standard error of the command requested by+-- MSG_COMMAND_REQ. The sequence number can be used to filter for filtering the+-- correct command.+data MsgCommandOutput = MsgCommandOutput+  { _msgCommandOutput_sequence :: Word32+    -- ^ Sequence number+  , _msgCommandOutput_line   :: Text+    -- ^ Line of standard output or standard error+  } deriving ( Show, Read, Eq )++instance Binary MsgCommandOutput where+  get = do+    _msgCommandOutput_sequence <- getWord32le+    _msgCommandOutput_line <- decodeUtf8 . toStrict <$> getRemainingLazyByteString+    return MsgCommandOutput {..}++  put MsgCommandOutput {..} = do+    putWord32le _msgCommandOutput_sequence+    putByteString $ encodeUtf8 _msgCommandOutput_line++$(deriveSBP 'msgCommandOutput ''MsgCommandOutput)++$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgCommandOutput_" . P.stripPrefix "_msgCommandOutput_"}+             ''MsgCommandOutput)+$(makeLenses ''MsgCommandOutput)+ msgNetworkStateReq :: Word16 msgNetworkStateReq = 0x00BA @@ -696,7 +727,9 @@ -- -- Spectrum analyzer packet. data MsgSpecan = MsgSpecan-  { _msgSpecan_t             :: GpsTime+  { _msgSpecan_channel_tag   :: Word16+    -- ^ Channel ID+  , _msgSpecan_t             :: GpsTime     -- ^ Receiver time of this observation   , _msgSpecan_freq_ref      :: Float     -- ^ Reference frequency of this packet@@ -712,6 +745,7 @@  instance Binary MsgSpecan where   get = do+    _msgSpecan_channel_tag <- getWord16le     _msgSpecan_t <- get     _msgSpecan_freq_ref <- getFloat32le     _msgSpecan_freq_step <- getFloat32le@@ -721,6 +755,7 @@     return MsgSpecan {..}    put MsgSpecan {..} = do+    putWord16le _msgSpecan_channel_tag     put _msgSpecan_t     putFloat32le _msgSpecan_freq_ref     putFloat32le _msgSpecan_freq_step