packages feed

sbp 2.2.1 → 2.2.2

raw patch · 4 files changed

+122/−13 lines, 4 files

Files

sbp.cabal view
@@ -1,5 +1,5 @@ name:                  sbp-version:               2.2.1+version:               2.2.2 synopsis:              SwiftNav's SBP Library homepage:              https://github.com/swift-nav/libsbp license:               LGPL-3
src/SwiftNav/SBP.hs view
@@ -9,7 +9,7 @@ -- SBP message containers.  module SwiftNav.SBP-  ( SBPMsg (..)+  ( module SwiftNav.SBP   , module SwiftNav.SBP.Types   , module SwiftNav.SBP.Acquisition   , module SwiftNav.SBP.Bootload@@ -150,6 +150,7 @@    | SBPMsgSettingsRegister MsgSettingsRegister Msg    | SBPMsgSettingsSave MsgSettingsSave Msg    | SBPMsgSettingsWrite MsgSettingsWrite Msg+   | SBPMsgSpecan MsgSpecan Msg    | SBPMsgStartup MsgStartup Msg    | SBPMsgStmFlashLockSector MsgStmFlashLockSector Msg    | SBPMsgStmFlashUnlockSector MsgStmFlashUnlockSector Msg@@ -160,6 +161,7 @@    | SBPMsgTrackingIq MsgTrackingIq Msg    | SBPMsgTrackingState MsgTrackingState Msg    | SBPMsgTrackingStateDepA MsgTrackingStateDepA Msg+   | SBPMsgTrackingStateDepB MsgTrackingStateDepB Msg    | SBPMsgTrackingStateDetailed MsgTrackingStateDetailed Msg    | SBPMsgTweet MsgTweet Msg    | SBPMsgUartState MsgUartState Msg@@ -275,6 +277,7 @@           | _msgSBPType == msgSettingsRegister = SBPMsgSettingsRegister (decode (fromStrict _msgSBPPayload)) m           | _msgSBPType == msgSettingsSave = SBPMsgSettingsSave (decode (fromStrict _msgSBPPayload)) m           | _msgSBPType == msgSettingsWrite = SBPMsgSettingsWrite (decode (fromStrict _msgSBPPayload)) m+          | _msgSBPType == msgSpecan = SBPMsgSpecan (decode (fromStrict _msgSBPPayload)) m           | _msgSBPType == msgStartup = SBPMsgStartup (decode (fromStrict _msgSBPPayload)) m           | _msgSBPType == msgStmFlashLockSector = SBPMsgStmFlashLockSector (decode (fromStrict _msgSBPPayload)) m           | _msgSBPType == msgStmFlashUnlockSector = SBPMsgStmFlashUnlockSector (decode (fromStrict _msgSBPPayload)) m@@ -285,6 +288,7 @@           | _msgSBPType == msgTrackingIq = SBPMsgTrackingIq (decode (fromStrict _msgSBPPayload)) m           | _msgSBPType == msgTrackingState = SBPMsgTrackingState (decode (fromStrict _msgSBPPayload)) m           | _msgSBPType == msgTrackingStateDepA = SBPMsgTrackingStateDepA (decode (fromStrict _msgSBPPayload)) m+          | _msgSBPType == msgTrackingStateDepB = SBPMsgTrackingStateDepB (decode (fromStrict _msgSBPPayload)) m           | _msgSBPType == msgTrackingStateDetailed = SBPMsgTrackingStateDetailed (decode (fromStrict _msgSBPPayload)) m           | _msgSBPType == msgTweet = SBPMsgTweet (decode (fromStrict _msgSBPPayload)) m           | _msgSBPType == msgUartState = SBPMsgUartState (decode (fromStrict _msgSBPPayload)) m@@ -392,6 +396,7 @@       encode' (SBPMsgSettingsRegister _ m) = put m       encode' (SBPMsgSettingsSave _ m) = put m       encode' (SBPMsgSettingsWrite _ m) = put m+      encode' (SBPMsgSpecan _ m) = put m       encode' (SBPMsgStartup _ m) = put m       encode' (SBPMsgStmFlashLockSector _ m) = put m       encode' (SBPMsgStmFlashUnlockSector _ m) = put m@@ -402,6 +407,7 @@       encode' (SBPMsgTrackingIq _ m) = put m       encode' (SBPMsgTrackingState _ m) = put m       encode' (SBPMsgTrackingStateDepA _ m) = put m+      encode' (SBPMsgTrackingStateDepB _ m) = put m       encode' (SBPMsgTrackingStateDetailed _ m) = put m       encode' (SBPMsgTweet _ m) = put m       encode' (SBPMsgUartState _ m) = put m@@ -512,6 +518,7 @@         | msgType == msgSettingsRegister = SBPMsgSettingsRegister <$> parseJSON obj <*> parseJSON obj         | msgType == msgSettingsSave = SBPMsgSettingsSave <$> parseJSON obj <*> parseJSON obj         | msgType == msgSettingsWrite = SBPMsgSettingsWrite <$> parseJSON obj <*> parseJSON obj+        | msgType == msgSpecan = SBPMsgSpecan <$> parseJSON obj <*> parseJSON obj         | msgType == msgStartup = SBPMsgStartup <$> parseJSON obj <*> parseJSON obj         | msgType == msgStmFlashLockSector = SBPMsgStmFlashLockSector <$> parseJSON obj <*> parseJSON obj         | msgType == msgStmFlashUnlockSector = SBPMsgStmFlashUnlockSector <$> parseJSON obj <*> parseJSON obj@@ -522,6 +529,7 @@         | msgType == msgTrackingIq = SBPMsgTrackingIq <$> parseJSON obj <*> parseJSON obj         | msgType == msgTrackingState = SBPMsgTrackingState <$> parseJSON obj <*> parseJSON obj         | msgType == msgTrackingStateDepA = SBPMsgTrackingStateDepA <$> parseJSON obj <*> parseJSON obj+        | msgType == msgTrackingStateDepB = SBPMsgTrackingStateDepB <$> parseJSON obj <*> parseJSON obj         | msgType == msgTrackingStateDetailed = SBPMsgTrackingStateDetailed <$> parseJSON obj <*> parseJSON obj         | msgType == msgTweet = SBPMsgTweet <$> parseJSON obj <*> parseJSON obj         | msgType == msgUartState = SBPMsgUartState <$> parseJSON obj <*> parseJSON obj@@ -634,6 +642,7 @@   toJSON (SBPMsgSettingsRegister n m) = toJSON n `mergeValues` toJSON m   toJSON (SBPMsgSettingsSave n m) = toJSON n `mergeValues` toJSON m   toJSON (SBPMsgSettingsWrite n m) = toJSON n `mergeValues` toJSON m+  toJSON (SBPMsgSpecan n m) = toJSON n `mergeValues` toJSON m   toJSON (SBPMsgStartup n m) = toJSON n `mergeValues` toJSON m   toJSON (SBPMsgStmFlashLockSector n m) = toJSON n `mergeValues` toJSON m   toJSON (SBPMsgStmFlashUnlockSector n m) = toJSON n `mergeValues` toJSON m@@ -644,6 +653,7 @@   toJSON (SBPMsgTrackingIq n m) = toJSON n `mergeValues` toJSON m   toJSON (SBPMsgTrackingState n m) = toJSON n `mergeValues` toJSON m   toJSON (SBPMsgTrackingStateDepA n m) = toJSON n `mergeValues` toJSON m+  toJSON (SBPMsgTrackingStateDepB n m) = toJSON n `mergeValues` toJSON m   toJSON (SBPMsgTrackingStateDetailed n m) = toJSON n `mergeValues` toJSON m   toJSON (SBPMsgTweet n m) = toJSON n `mergeValues` toJSON m   toJSON (SBPMsgUartState n m) = toJSON n `mergeValues` toJSON m@@ -750,6 +760,7 @@   msg f (SBPMsgSettingsRegister n m) = SBPMsgSettingsRegister n <$> f m   msg f (SBPMsgSettingsSave n m) = SBPMsgSettingsSave n <$> f m   msg f (SBPMsgSettingsWrite n m) = SBPMsgSettingsWrite n <$> f m+  msg f (SBPMsgSpecan n m) = SBPMsgSpecan n <$> f m   msg f (SBPMsgStartup n m) = SBPMsgStartup n <$> f m   msg f (SBPMsgStmFlashLockSector n m) = SBPMsgStmFlashLockSector n <$> f m   msg f (SBPMsgStmFlashUnlockSector n m) = SBPMsgStmFlashUnlockSector n <$> f m@@ -760,6 +771,7 @@   msg f (SBPMsgTrackingIq n m) = SBPMsgTrackingIq n <$> f m   msg f (SBPMsgTrackingState n m) = SBPMsgTrackingState n <$> f m   msg f (SBPMsgTrackingStateDepA n m) = SBPMsgTrackingStateDepA n <$> f m+  msg f (SBPMsgTrackingStateDepB n m) = SBPMsgTrackingStateDepB n <$> f m   msg f (SBPMsgTrackingStateDetailed n m) = SBPMsgTrackingStateDetailed n <$> f m   msg f (SBPMsgTweet n m) = SBPMsgTweet n <$> f m   msg f (SBPMsgUartState n m) = SBPMsgUartState n <$> f m
src/SwiftNav/SBP/Piksi.hs view
@@ -688,3 +688,48 @@ $(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgNetworkStateResp_" . P.stripPrefix "_msgNetworkStateResp_"}              ''MsgNetworkStateResp) $(makeLenses ''MsgNetworkStateResp)++msgSpecan :: Word16+msgSpecan = 0x0050++-- | SBP class for message MSG_SPECAN (0x0050).+--+-- Spectrum analyzer packet.+data MsgSpecan = MsgSpecan+  { _msgSpecan_t             :: GpsTime+    -- ^ Receiver time of this observation+  , _msgSpecan_freq_ref      :: Float+    -- ^ Reference frequency of this packet+  , _msgSpecan_freq_step     :: Float+    -- ^ Frequency step of points in this packet+  , _msgSpecan_amplitude_ref :: Float+    -- ^ Reference amplitude of this packet+  , _msgSpecan_amplitude_unit :: Float+    -- ^ Amplitude unit value of points in this packet+  , _msgSpecan_amplitude_value :: [Word8]+    -- ^ Amplitude values (in the above units) of points in this packet+  } deriving ( Show, Read, Eq )++instance Binary MsgSpecan where+  get = do+    _msgSpecan_t <- get+    _msgSpecan_freq_ref <- getFloat32le+    _msgSpecan_freq_step <- getFloat32le+    _msgSpecan_amplitude_ref <- getFloat32le+    _msgSpecan_amplitude_unit <- getFloat32le+    _msgSpecan_amplitude_value <- whileM (not <$> isEmpty) getWord8+    return MsgSpecan {..}++  put MsgSpecan {..} = do+    put _msgSpecan_t+    putFloat32le _msgSpecan_freq_ref+    putFloat32le _msgSpecan_freq_step+    putFloat32le _msgSpecan_amplitude_ref+    putFloat32le _msgSpecan_amplitude_unit+    mapM_ putWord8 _msgSpecan_amplitude_value++$(deriveSBP 'msgSpecan ''MsgSpecan)++$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgSpecan_" . P.stripPrefix "_msgSpecan_"}+             ''MsgSpecan)+$(makeLenses ''MsgSpecan)
src/SwiftNav/SBP/Tracking.hs view
@@ -145,33 +145,33 @@ -- Tracking channel state for a specific satellite signal and measured signal -- power. data TrackingChannelState = TrackingChannelState-  { _trackingChannelState_state :: Word8-    -- ^ Status of tracking channel-  , _trackingChannelState_sid :: GnssSignal+  { _trackingChannelState_sid :: GnssSignal16     -- ^ GNSS signal being tracked-  , _trackingChannelState_cn0 :: Float-    -- ^ Carrier-to-noise density+  , _trackingChannelState_fcn :: Word8+    -- ^ Frequency channel number (GLONASS only)+  , _trackingChannelState_cn0 :: Word8+    -- ^ Carrier-to-Noise density.  Zero implies invalid cn0.   } deriving ( Show, Read, Eq )  instance Binary TrackingChannelState where   get = do-    _trackingChannelState_state <- getWord8     _trackingChannelState_sid <- get-    _trackingChannelState_cn0 <- getFloat32le+    _trackingChannelState_fcn <- getWord8+    _trackingChannelState_cn0 <- getWord8     return TrackingChannelState {..}    put TrackingChannelState {..} = do-    putWord8 _trackingChannelState_state     put _trackingChannelState_sid-    putFloat32le _trackingChannelState_cn0+    putWord8 _trackingChannelState_fcn+    putWord8 _trackingChannelState_cn0 $(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_trackingChannelState_" . P.stripPrefix "_trackingChannelState_"}              ''TrackingChannelState) $(makeLenses ''TrackingChannelState)  msgTrackingState :: Word16-msgTrackingState = 0x0013+msgTrackingState = 0x0041 --- | SBP class for message MSG_TRACKING_STATE (0x0013).+-- | SBP class for message MSG_TRACKING_STATE (0x0041). -- -- The tracking message returns a variable-length array of tracking channel -- states. It reports status and carrier-to-noise density measurements for all@@ -303,3 +303,55 @@ $(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgTrackingStateDepA_" . P.stripPrefix "_msgTrackingStateDepA_"}              ''MsgTrackingStateDepA) $(makeLenses ''MsgTrackingStateDepA)++-- | TrackingChannelStateDepB.+--+-- Deprecated.+data TrackingChannelStateDepB = TrackingChannelStateDepB+  { _trackingChannelStateDepB_state :: Word8+    -- ^ Status of tracking channel+  , _trackingChannelStateDepB_sid :: GnssSignal+    -- ^ GNSS signal being tracked+  , _trackingChannelStateDepB_cn0 :: Float+    -- ^ Carrier-to-noise density+  } deriving ( Show, Read, Eq )++instance Binary TrackingChannelStateDepB where+  get = do+    _trackingChannelStateDepB_state <- getWord8+    _trackingChannelStateDepB_sid <- get+    _trackingChannelStateDepB_cn0 <- getFloat32le+    return TrackingChannelStateDepB {..}++  put TrackingChannelStateDepB {..} = do+    putWord8 _trackingChannelStateDepB_state+    put _trackingChannelStateDepB_sid+    putFloat32le _trackingChannelStateDepB_cn0+$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_trackingChannelStateDepB_" . P.stripPrefix "_trackingChannelStateDepB_"}+             ''TrackingChannelStateDepB)+$(makeLenses ''TrackingChannelStateDepB)++msgTrackingStateDepB :: Word16+msgTrackingStateDepB = 0x0013++-- | SBP class for message MSG_TRACKING_STATE_DEP_B (0x0013).+--+-- Deprecated.+data MsgTrackingStateDepB = MsgTrackingStateDepB+  { _msgTrackingStateDepB_states :: [TrackingChannelStateDepB]+    -- ^ Signal tracking channel state+  } deriving ( Show, Read, Eq )++instance Binary MsgTrackingStateDepB where+  get = do+    _msgTrackingStateDepB_states <- whileM (not <$> isEmpty) get+    return MsgTrackingStateDepB {..}++  put MsgTrackingStateDepB {..} = do+    mapM_ put _msgTrackingStateDepB_states++$(deriveSBP 'msgTrackingStateDepB ''MsgTrackingStateDepB)++$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgTrackingStateDepB_" . P.stripPrefix "_msgTrackingStateDepB_"}+             ''MsgTrackingStateDepB)+$(makeLenses ''MsgTrackingStateDepB)