packages feed

sbp 6.0.1 → 6.1.0

raw patch · 5 files changed

+69/−3 lines, 5 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ SwiftNav.SBP: SBPMsgAesCmacSignature :: MsgAesCmacSignature -> Msg -> SBPMsg
+ SwiftNav.SBP: _SBPMsgAesCmacSignature :: Prism' SBPMsg (MsgAesCmacSignature, Msg)
+ SwiftNav.SBP.Integrity: [_msgSsrFlagHighLevel_use_qzss_sat] :: MsgSsrFlagHighLevel -> !Word8
+ SwiftNav.SBP.Integrity: msgSsrFlagHighLevel_use_qzss_sat :: Lens' MsgSsrFlagHighLevel Word8
+ SwiftNav.SBP.Signing: MsgAesCmacSignature :: !Word8 -> !Word8 -> ![Word8] -> ![Word8] -> !Word8 -> ![Word8] -> MsgAesCmacSignature
+ SwiftNav.SBP.Signing: [_msgAesCmacSignature_certificate_id] :: MsgAesCmacSignature -> ![Word8]
+ SwiftNav.SBP.Signing: [_msgAesCmacSignature_flags] :: MsgAesCmacSignature -> !Word8
+ SwiftNav.SBP.Signing: [_msgAesCmacSignature_on_demand_counter] :: MsgAesCmacSignature -> !Word8
+ SwiftNav.SBP.Signing: [_msgAesCmacSignature_signature] :: MsgAesCmacSignature -> ![Word8]
+ SwiftNav.SBP.Signing: [_msgAesCmacSignature_signed_messages] :: MsgAesCmacSignature -> ![Word8]
+ SwiftNav.SBP.Signing: [_msgAesCmacSignature_stream_counter] :: MsgAesCmacSignature -> !Word8
+ SwiftNav.SBP.Signing: data MsgAesCmacSignature
+ SwiftNav.SBP.Signing: instance Data.Aeson.Types.FromJSON.FromJSON SwiftNav.SBP.Signing.MsgAesCmacSignature
+ SwiftNav.SBP.Signing: instance Data.Aeson.Types.ToJSON.ToJSON SwiftNav.SBP.Signing.MsgAesCmacSignature
+ SwiftNav.SBP.Signing: instance Data.Binary.Class.Binary SwiftNav.SBP.Signing.MsgAesCmacSignature
+ SwiftNav.SBP.Signing: instance GHC.Classes.Eq SwiftNav.SBP.Signing.MsgAesCmacSignature
+ SwiftNav.SBP.Signing: instance GHC.Read.Read SwiftNav.SBP.Signing.MsgAesCmacSignature
+ SwiftNav.SBP.Signing: instance GHC.Show.Show SwiftNav.SBP.Signing.MsgAesCmacSignature
+ SwiftNav.SBP.Signing: instance SwiftNav.SBP.Types.ToSBP SwiftNav.SBP.Signing.MsgAesCmacSignature
+ SwiftNav.SBP.Signing: msgAesCmacSignature :: Word16
+ SwiftNav.SBP.Signing: msgAesCmacSignature_certificate_id :: Lens' MsgAesCmacSignature [Word8]
+ SwiftNav.SBP.Signing: msgAesCmacSignature_flags :: Lens' MsgAesCmacSignature Word8
+ SwiftNav.SBP.Signing: msgAesCmacSignature_on_demand_counter :: Lens' MsgAesCmacSignature Word8
+ SwiftNav.SBP.Signing: msgAesCmacSignature_signature :: Lens' MsgAesCmacSignature [Word8]
+ SwiftNav.SBP.Signing: msgAesCmacSignature_signed_messages :: Lens' MsgAesCmacSignature [Word8]
+ SwiftNav.SBP.Signing: msgAesCmacSignature_stream_counter :: Lens' MsgAesCmacSignature Word8
- SwiftNav.SBP.Integrity: MsgSsrFlagHighLevel :: !GpsTimeSec -> !GpsTimeSec -> !Word8 -> !Word16 -> !Word16 -> !Word8 -> !Word8 -> !Word8 -> !Word8 -> ![Word8] -> !Word8 -> !Word8 -> !Word8 -> !Word8 -> MsgSsrFlagHighLevel
+ SwiftNav.SBP.Integrity: MsgSsrFlagHighLevel :: !GpsTimeSec -> !GpsTimeSec -> !Word8 -> !Word16 -> !Word16 -> !Word8 -> !Word8 -> !Word8 -> !Word8 -> !Word8 -> ![Word8] -> !Word8 -> !Word8 -> !Word8 -> !Word8 -> MsgSsrFlagHighLevel
- SwiftNav.SBP.Types: class HasMsg c_aeX3
+ SwiftNav.SBP.Types: class HasMsg c_aeKR
- SwiftNav.SBP.Types: msg :: HasMsg c_aeX3 => Lens' c_aeX3 Msg
+ SwiftNav.SBP.Types: msg :: HasMsg c_aeKR => Lens' c_aeKR Msg
- SwiftNav.SBP.Types: msgSBPCrc :: HasMsg c_aeX3 => Lens' c_aeX3 Word16
+ SwiftNav.SBP.Types: msgSBPCrc :: HasMsg c_aeKR => Lens' c_aeKR Word16
- SwiftNav.SBP.Types: msgSBPLen :: HasMsg c_aeX3 => Lens' c_aeX3 Word8
+ SwiftNav.SBP.Types: msgSBPLen :: HasMsg c_aeKR => Lens' c_aeKR Word8
- SwiftNav.SBP.Types: msgSBPPayload :: HasMsg c_aeX3 => Lens' c_aeX3 Bytes
+ SwiftNav.SBP.Types: msgSBPPayload :: HasMsg c_aeKR => Lens' c_aeKR Bytes
- SwiftNav.SBP.Types: msgSBPSender :: HasMsg c_aeX3 => Lens' c_aeX3 Word16
+ SwiftNav.SBP.Types: msgSBPSender :: HasMsg c_aeKR => Lens' c_aeKR Word16
- SwiftNav.SBP.Types: msgSBPType :: HasMsg c_aeX3 => Lens' c_aeX3 Word16
+ SwiftNav.SBP.Types: msgSBPType :: HasMsg c_aeKR => Lens' c_aeKR Word16

Files

sbp.cabal view
@@ -1,5 +1,5 @@ name:                  sbp-version:               6.0.1+version:               6.1.0 synopsis:              SwiftNav's SBP Library homepage:              https://github.com/swift-nav/libsbp license:               MIT
src/SwiftNav/SBP/Integrity.hs view
@@ -85,7 +85,7 @@ -- could be a satellite, SSR grid point, or SSR tile. A group of aggregated -- elements being monitored for integrity could refer to: ----- - Satellites in a particular {GPS, GAL, BDS} constellation.+-- - Satellites in a particular {GPS, GAL, BDS, QZSS} constellation. -- -- - Satellites in the line-of-sight of a particular SSR tile. --@@ -125,6 +125,8 @@     -- ^ Use GAL satellites.   , _msgSsrFlagHighLevel_use_bds_sat               :: !Word8     -- ^ Use BDS satellites.+  , _msgSsrFlagHighLevel_use_qzss_sat              :: !Word8+    -- ^ Use QZSS satellites.   , _msgSsrFlagHighLevel_reserved                  :: ![Word8]     -- ^ Reserved   , _msgSsrFlagHighLevel_use_tropo_grid_points     :: !Word8@@ -148,7 +150,8 @@     _msgSsrFlagHighLevel_use_gps_sat <- getWord8     _msgSsrFlagHighLevel_use_gal_sat <- getWord8     _msgSsrFlagHighLevel_use_bds_sat <- getWord8-    _msgSsrFlagHighLevel_reserved <- replicateM 6 getWord8+    _msgSsrFlagHighLevel_use_qzss_sat <- getWord8+    _msgSsrFlagHighLevel_reserved <- replicateM 5 getWord8     _msgSsrFlagHighLevel_use_tropo_grid_points <- getWord8     _msgSsrFlagHighLevel_use_iono_grid_points <- getWord8     _msgSsrFlagHighLevel_use_iono_tile_sat_los <- getWord8@@ -165,6 +168,7 @@     putWord8 _msgSsrFlagHighLevel_use_gps_sat     putWord8 _msgSsrFlagHighLevel_use_gal_sat     putWord8 _msgSsrFlagHighLevel_use_bds_sat+    putWord8 _msgSsrFlagHighLevel_use_qzss_sat     mapM_ putWord8 _msgSsrFlagHighLevel_reserved     putWord8 _msgSsrFlagHighLevel_use_tropo_grid_points     putWord8 _msgSsrFlagHighLevel_use_iono_grid_points
src/SwiftNav/SBP/Msg.hs view
@@ -66,6 +66,7 @@    | SBPMsgAcqResultDepC MsgAcqResultDepC Msg    | SBPMsgAcqSvProfile MsgAcqSvProfile Msg    | SBPMsgAcqSvProfileDep MsgAcqSvProfileDep Msg+   | SBPMsgAesCmacSignature MsgAesCmacSignature Msg    | SBPMsgAgeCorrections MsgAgeCorrections Msg    | SBPMsgAlmanac MsgAlmanac Msg    | SBPMsgAlmanacGlo MsgAlmanacGlo Msg@@ -316,6 +317,7 @@           | _msgSBPType == msgAcqResultDepC = SBPMsgAcqResultDepC (decode (fromStrict (unBytes _msgSBPPayload))) m           | _msgSBPType == msgAcqSvProfile = SBPMsgAcqSvProfile (decode (fromStrict (unBytes _msgSBPPayload))) m           | _msgSBPType == msgAcqSvProfileDep = SBPMsgAcqSvProfileDep (decode (fromStrict (unBytes _msgSBPPayload))) m+          | _msgSBPType == msgAesCmacSignature = SBPMsgAesCmacSignature (decode (fromStrict (unBytes _msgSBPPayload))) m           | _msgSBPType == msgAgeCorrections = SBPMsgAgeCorrections (decode (fromStrict (unBytes _msgSBPPayload))) m           | _msgSBPType == msgAlmanac = SBPMsgAlmanac (decode (fromStrict (unBytes _msgSBPPayload))) m           | _msgSBPType == msgAlmanacGlo = SBPMsgAlmanacGlo (decode (fromStrict (unBytes _msgSBPPayload))) m@@ -558,6 +560,7 @@       encoder (SBPMsgAcqResultDepC _ m) = put m       encoder (SBPMsgAcqSvProfile _ m) = put m       encoder (SBPMsgAcqSvProfileDep _ m) = put m+      encoder (SBPMsgAesCmacSignature _ m) = put m       encoder (SBPMsgAgeCorrections _ m) = put m       encoder (SBPMsgAlmanac _ m) = put m       encoder (SBPMsgAlmanacGlo _ m) = put m@@ -804,6 +807,7 @@         | msgType == msgAcqResultDepC = SBPMsgAcqResultDepC <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj         | msgType == msgAcqSvProfile = SBPMsgAcqSvProfile <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj         | msgType == msgAcqSvProfileDep = SBPMsgAcqSvProfileDep <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj+        | msgType == msgAesCmacSignature = SBPMsgAesCmacSignature <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj         | msgType == msgAgeCorrections = SBPMsgAgeCorrections <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj         | msgType == msgAlmanac = SBPMsgAlmanac <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj         | msgType == msgAlmanacGlo = SBPMsgAlmanacGlo <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj@@ -1051,6 +1055,7 @@   toJSON (SBPMsgAcqResultDepC n m) = toJSON n <<>> toJSON m   toJSON (SBPMsgAcqSvProfile n m) = toJSON n <<>> toJSON m   toJSON (SBPMsgAcqSvProfileDep n m) = toJSON n <<>> toJSON m+  toJSON (SBPMsgAesCmacSignature n m) = toJSON n <<>> toJSON m   toJSON (SBPMsgAgeCorrections n m) = toJSON n <<>> toJSON m   toJSON (SBPMsgAlmanac _ m) = toJSON m   toJSON (SBPMsgAlmanacGlo n m) = toJSON n <<>> toJSON m@@ -1292,6 +1297,7 @@   msg f (SBPMsgAcqResultDepC n m) = SBPMsgAcqResultDepC n <$> f m   msg f (SBPMsgAcqSvProfile n m) = SBPMsgAcqSvProfile n <$> f m   msg f (SBPMsgAcqSvProfileDep n m) = SBPMsgAcqSvProfileDep n <$> f m+  msg f (SBPMsgAesCmacSignature n m) = SBPMsgAesCmacSignature n <$> f m   msg f (SBPMsgAgeCorrections n m) = SBPMsgAgeCorrections n <$> f m   msg f (SBPMsgAlmanac n m) = SBPMsgAlmanac n <$> f m   msg f (SBPMsgAlmanacGlo n m) = SBPMsgAlmanacGlo n <$> f m
src/SwiftNav/SBP/Observation.hs view
@@ -2731,6 +2731,7 @@     --   - bits 0-4: Signal health status. See IS-GPS-200H     --     Table 20-VIII. Codes for Health of SV Signal     --     Components.+    --     -- Satellite health status for GLO (see GLO ICD 5.1 table 5.1 for     -- details):     --   - bit 0: C(n), "unhealthy" flag that is transmitted within@@ -2781,6 +2782,7 @@     --   - bits 0-4: Signal health status. See IS-GPS-200H     --     Table 20-VIII. Codes for Health of SV Signal     --     Components.+    --     -- Satellite health status for GLO (see GLO ICD 5.1 table 5.1 for     -- details):     --   - bit 0: C(n), "unhealthy" flag that is transmitted within
src/SwiftNav/SBP/Signing.hs view
@@ -224,6 +224,60 @@ $(makeJSON "_msgCertificateChainDep_" ''MsgCertificateChainDep) $(makeLenses ''MsgCertificateChainDep) +msgAesCmacSignature :: Word16+msgAesCmacSignature = 0x0C10++-- | SBP class for message MSG_AES_CMAC_SIGNATURE (0x0C10).+--+-- Digital signature using AES-CMAC 128 algorithm used for data integrity.+data MsgAesCmacSignature = MsgAesCmacSignature+  { _msgAesCmacSignature_stream_counter  :: !Word8+    -- ^ Signature message counter. Zero indexed and incremented with each+    -- signature message.  The counter will not increment if this message was+    -- in response to an on demand request.  The counter will roll over after+    -- 256 messages. Upon connection, the value of the counter may not+    -- initially be zero.+  , _msgAesCmacSignature_on_demand_counter :: !Word8+    -- ^ On demand message counter. Zero indexed and incremented with each+    -- signature message sent in response to an on demand message. The counter+    -- will roll over after 256 messages.  Upon connection, the value of the+    -- counter may not initially be zero.+  , _msgAesCmacSignature_certificate_id  :: ![Word8]+    -- ^ The last 4 bytes of the certificate's SHA-1 fingerprint+  , _msgAesCmacSignature_signature       :: ![Word8]+    -- ^ Signature (CMAC tag value)+  , _msgAesCmacSignature_flags           :: !Word8+    -- ^ Describes the format of the 'signed messages' field below.+  , _msgAesCmacSignature_signed_messages :: ![Word8]+    -- ^ CRCs of the messages covered by this signature.  For Skylark, which+    -- delivers SBP messages wrapped in Swift's proprietary RTCM message,+    -- these are the 24-bit CRCs from the RTCM message framing. For SBP only+    -- streams, this will be 16-bit CRCs from the SBP framing.  See the+    -- `flags` field to determine the type of CRCs covered.+  } deriving ( Show, Read, Eq )++instance Binary MsgAesCmacSignature where+  get = do+    _msgAesCmacSignature_stream_counter <- getWord8+    _msgAesCmacSignature_on_demand_counter <- getWord8+    _msgAesCmacSignature_certificate_id <- replicateM 4 getWord8+    _msgAesCmacSignature_signature <- replicateM 16 getWord8+    _msgAesCmacSignature_flags <- getWord8+    _msgAesCmacSignature_signed_messages <- whileM (not <$> isEmpty) getWord8+    pure MsgAesCmacSignature {..}++  put MsgAesCmacSignature {..} = do+    putWord8 _msgAesCmacSignature_stream_counter+    putWord8 _msgAesCmacSignature_on_demand_counter+    mapM_ putWord8 _msgAesCmacSignature_certificate_id+    mapM_ putWord8 _msgAesCmacSignature_signature+    putWord8 _msgAesCmacSignature_flags+    mapM_ putWord8 _msgAesCmacSignature_signed_messages++$(makeSBP 'msgAesCmacSignature ''MsgAesCmacSignature)+$(makeJSON "_msgAesCmacSignature_" ''MsgAesCmacSignature)+$(makeLenses ''MsgAesCmacSignature)+ msgEcdsaSignature :: Word16 msgEcdsaSignature = 0x0C08