sbp 2.3.6 → 2.3.9
raw patch · 3 files changed
+69/−1 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- sbp.cabal +1/−1
- src/SwiftNav/SBP/Msg.hs +6/−0
- src/SwiftNav/SBP/Piksi.hs +62/−0
sbp.cabal view
@@ -1,5 +1,5 @@ name: sbp-version: 2.3.6+version: 2.3.9 synopsis: SwiftNav's SBP Library homepage: https://github.com/swift-nav/libsbp license: LGPL-3
@@ -134,6 +134,7 @@ | SBPMsgNapDeviceDnaReq MsgNapDeviceDnaReq Msg | SBPMsgNapDeviceDnaResp MsgNapDeviceDnaResp Msg | SBPMsgNdbEvent MsgNdbEvent Msg+ | SBPMsgNetworkBandwidthUsage MsgNetworkBandwidthUsage Msg | SBPMsgNetworkStateReq MsgNetworkStateReq Msg | SBPMsgNetworkStateResp MsgNetworkStateResp Msg | SBPMsgObs MsgObs Msg@@ -289,6 +290,7 @@ | _msgSBPType == msgNapDeviceDnaReq = SBPMsgNapDeviceDnaReq (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgNapDeviceDnaResp = SBPMsgNapDeviceDnaResp (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgNdbEvent = SBPMsgNdbEvent (decode (fromStrict (unBytes _msgSBPPayload))) m+ | _msgSBPType == msgNetworkBandwidthUsage = SBPMsgNetworkBandwidthUsage (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgNetworkStateReq = SBPMsgNetworkStateReq (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgNetworkStateResp = SBPMsgNetworkStateResp (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgObs = SBPMsgObs (decode (fromStrict (unBytes _msgSBPPayload))) m@@ -436,6 +438,7 @@ encoder (SBPMsgNapDeviceDnaReq _ m) = put m encoder (SBPMsgNapDeviceDnaResp _ m) = put m encoder (SBPMsgNdbEvent _ m) = put m+ encoder (SBPMsgNetworkBandwidthUsage _ m) = put m encoder (SBPMsgNetworkStateReq _ m) = put m encoder (SBPMsgNetworkStateResp _ m) = put m encoder (SBPMsgObs _ m) = put m@@ -587,6 +590,7 @@ | msgType == msgNapDeviceDnaReq = SBPMsgNapDeviceDnaReq <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgNapDeviceDnaResp = SBPMsgNapDeviceDnaResp <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgNdbEvent = SBPMsgNdbEvent <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj+ | msgType == msgNetworkBandwidthUsage = SBPMsgNetworkBandwidthUsage <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgNetworkStateReq = SBPMsgNetworkStateReq <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgNetworkStateResp = SBPMsgNetworkStateResp <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgObs = SBPMsgObs <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj@@ -739,6 +743,7 @@ toJSON (SBPMsgNapDeviceDnaReq n m) = toJSON n <<>> toJSON m toJSON (SBPMsgNapDeviceDnaResp n m) = toJSON n <<>> toJSON m toJSON (SBPMsgNdbEvent n m) = toJSON n <<>> toJSON m+ toJSON (SBPMsgNetworkBandwidthUsage n m) = toJSON n <<>> toJSON m toJSON (SBPMsgNetworkStateReq n m) = toJSON n <<>> toJSON m toJSON (SBPMsgNetworkStateResp n m) = toJSON n <<>> toJSON m toJSON (SBPMsgObs n m) = toJSON n <<>> toJSON m@@ -885,6 +890,7 @@ msg f (SBPMsgNapDeviceDnaReq n m) = SBPMsgNapDeviceDnaReq n <$> f m msg f (SBPMsgNapDeviceDnaResp n m) = SBPMsgNapDeviceDnaResp n <$> f m msg f (SBPMsgNdbEvent n m) = SBPMsgNdbEvent n <$> f m+ msg f (SBPMsgNetworkBandwidthUsage n m) = SBPMsgNetworkBandwidthUsage n <$> f m msg f (SBPMsgNetworkStateReq n m) = SBPMsgNetworkStateReq n <$> f m msg f (SBPMsgNetworkStateResp n m) = SBPMsgNetworkStateResp n <$> f m msg f (SBPMsgObs n m) = SBPMsgObs n <$> f m
@@ -710,6 +710,68 @@ $(makeJSON "_msgNetworkStateResp_" ''MsgNetworkStateResp) $(makeLenses ''MsgNetworkStateResp) +-- | NetworkUsage.+--+-- The bandwidth usage for each interface can be reported within this struct+-- and utilize multiple fields to fully specify the type of traffic that is+-- being tracked. As either the interval of collection or the collection time+-- may vary, both a timestamp and period field is provided, though may not+-- necessarily be populated with a value.+data NetworkUsage = NetworkUsage+ { _networkUsage_duration :: !Word64+ -- ^ Duration over which the measurement was collected+ , _networkUsage_total_bytes :: !Word64+ -- ^ Number of bytes handled in total within period+ , _networkUsage_rx_bytes :: !Word32+ -- ^ Number of bytes transmitted within period+ , _networkUsage_tx_bytes :: !Word32+ -- ^ Number of bytes received within period+ , _networkUsage_interface_name :: !Text+ -- ^ Interface Name+ } deriving ( Show, Read, Eq )++instance Binary NetworkUsage where+ get = do+ _networkUsage_duration <- getWord64le+ _networkUsage_total_bytes <- getWord64le+ _networkUsage_rx_bytes <- getWord32le+ _networkUsage_tx_bytes <- getWord32le+ _networkUsage_interface_name <- decodeUtf8 <$> getByteString 16+ pure NetworkUsage {..}++ put NetworkUsage {..} = do+ putWord64le _networkUsage_duration+ putWord64le _networkUsage_total_bytes+ putWord32le _networkUsage_rx_bytes+ putWord32le _networkUsage_tx_bytes+ putByteString $ encodeUtf8 _networkUsage_interface_name++$(makeJSON "_networkUsage_" ''NetworkUsage)+$(makeLenses ''NetworkUsage)++msgNetworkBandwidthUsage :: Word16+msgNetworkBandwidthUsage = 0x00BD++-- | SBP class for message MSG_NETWORK_BANDWIDTH_USAGE (0x00BD).+--+-- The bandwidth usage, a list of usage by interface.+data MsgNetworkBandwidthUsage = MsgNetworkBandwidthUsage+ { _msgNetworkBandwidthUsage_interfaces :: ![NetworkUsage]+ -- ^ Usage measurement array+ } deriving ( Show, Read, Eq )++instance Binary MsgNetworkBandwidthUsage where+ get = do+ _msgNetworkBandwidthUsage_interfaces <- whileM (not <$> isEmpty) get+ pure MsgNetworkBandwidthUsage {..}++ put MsgNetworkBandwidthUsage {..} = do+ mapM_ put _msgNetworkBandwidthUsage_interfaces++$(makeSBP 'msgNetworkBandwidthUsage ''MsgNetworkBandwidthUsage)+$(makeJSON "_msgNetworkBandwidthUsage_" ''MsgNetworkBandwidthUsage)+$(makeLenses ''MsgNetworkBandwidthUsage)+ msgSpecanDep :: Word16 msgSpecanDep = 0x0050