packages feed

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 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
src/SwiftNav/SBP/Msg.hs view
@@ -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
src/SwiftNav/SBP/Piksi.hs view
@@ -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