sbp 6.2.2 → 6.3.0
raw patch · 3 files changed
+97/−7 lines, 3 files
Files
- sbp.cabal +1/−1
- src/SwiftNav/SBP/Integrity.hs +90/−6
- src/SwiftNav/SBP/Msg.hs +6/−0
sbp.cabal view
@@ -1,5 +1,5 @@ name: sbp-version: 6.2.2+version: 6.3.0 synopsis: SwiftNav's SBP Library homepage: https://github.com/swift-nav/libsbp license: MIT
@@ -76,10 +76,89 @@ $(makeJSON "_integritySSRHeader_" ''IntegritySSRHeader) $(makeLenses ''IntegritySSRHeader) +msgSsrFlagHighLevelDepA :: Word16+msgSsrFlagHighLevelDepA = 0x0BB9++-- | SBP class for message MSG_SSR_FLAG_HIGH_LEVEL_DEP_A (0x0BB9).+--+-- Deprecated.+data MsgSsrFlagHighLevelDepA = MsgSsrFlagHighLevelDepA+ { _msgSsrFlagHighLevelDepA_obs_time :: !GpsTimeSec+ -- ^ GNSS reference time of the observation used to generate the flag.+ , _msgSsrFlagHighLevelDepA_corr_time :: !GpsTimeSec+ -- ^ GNSS reference time of the correction associated to the flag.+ , _msgSsrFlagHighLevelDepA_ssr_sol_id :: !Word8+ -- ^ SSR Solution ID.+ , _msgSsrFlagHighLevelDepA_tile_set_id :: !Word16+ -- ^ Unique identifier of the set this tile belongs to.+ , _msgSsrFlagHighLevelDepA_tile_id :: !Word16+ -- ^ Unique identifier of this tile in the tile set.+ , _msgSsrFlagHighLevelDepA_chain_id :: !Word8+ -- ^ Chain and type of flag.+ , _msgSsrFlagHighLevelDepA_use_gps_sat :: !Word8+ -- ^ Use GPS satellites.+ , _msgSsrFlagHighLevelDepA_use_gal_sat :: !Word8+ -- ^ Use GAL satellites.+ , _msgSsrFlagHighLevelDepA_use_bds_sat :: !Word8+ -- ^ Use BDS satellites.+ , _msgSsrFlagHighLevelDepA_use_qzss_sat :: !Word8+ -- ^ Use QZSS satellites.+ , _msgSsrFlagHighLevelDepA_reserved :: ![Word8]+ -- ^ Reserved+ , _msgSsrFlagHighLevelDepA_use_tropo_grid_points :: !Word8+ -- ^ Use tropo grid points.+ , _msgSsrFlagHighLevelDepA_use_iono_grid_points :: !Word8+ -- ^ Use iono grid points.+ , _msgSsrFlagHighLevelDepA_use_iono_tile_sat_los :: !Word8+ -- ^ Use iono tile satellite LoS.+ , _msgSsrFlagHighLevelDepA_use_iono_grid_point_sat_los :: !Word8+ -- ^ Use iono grid point satellite LoS.+ } deriving ( Show, Read, Eq )++instance Binary MsgSsrFlagHighLevelDepA where+ get = do+ _msgSsrFlagHighLevelDepA_obs_time <- get+ _msgSsrFlagHighLevelDepA_corr_time <- get+ _msgSsrFlagHighLevelDepA_ssr_sol_id <- getWord8+ _msgSsrFlagHighLevelDepA_tile_set_id <- getWord16le+ _msgSsrFlagHighLevelDepA_tile_id <- getWord16le+ _msgSsrFlagHighLevelDepA_chain_id <- getWord8+ _msgSsrFlagHighLevelDepA_use_gps_sat <- getWord8+ _msgSsrFlagHighLevelDepA_use_gal_sat <- getWord8+ _msgSsrFlagHighLevelDepA_use_bds_sat <- getWord8+ _msgSsrFlagHighLevelDepA_use_qzss_sat <- getWord8+ _msgSsrFlagHighLevelDepA_reserved <- replicateM 5 getWord8+ _msgSsrFlagHighLevelDepA_use_tropo_grid_points <- getWord8+ _msgSsrFlagHighLevelDepA_use_iono_grid_points <- getWord8+ _msgSsrFlagHighLevelDepA_use_iono_tile_sat_los <- getWord8+ _msgSsrFlagHighLevelDepA_use_iono_grid_point_sat_los <- getWord8+ pure MsgSsrFlagHighLevelDepA {..}++ put MsgSsrFlagHighLevelDepA {..} = do+ put _msgSsrFlagHighLevelDepA_obs_time+ put _msgSsrFlagHighLevelDepA_corr_time+ putWord8 _msgSsrFlagHighLevelDepA_ssr_sol_id+ putWord16le _msgSsrFlagHighLevelDepA_tile_set_id+ putWord16le _msgSsrFlagHighLevelDepA_tile_id+ putWord8 _msgSsrFlagHighLevelDepA_chain_id+ putWord8 _msgSsrFlagHighLevelDepA_use_gps_sat+ putWord8 _msgSsrFlagHighLevelDepA_use_gal_sat+ putWord8 _msgSsrFlagHighLevelDepA_use_bds_sat+ putWord8 _msgSsrFlagHighLevelDepA_use_qzss_sat+ mapM_ putWord8 _msgSsrFlagHighLevelDepA_reserved+ putWord8 _msgSsrFlagHighLevelDepA_use_tropo_grid_points+ putWord8 _msgSsrFlagHighLevelDepA_use_iono_grid_points+ putWord8 _msgSsrFlagHighLevelDepA_use_iono_tile_sat_los+ putWord8 _msgSsrFlagHighLevelDepA_use_iono_grid_point_sat_los++$(makeSBP 'msgSsrFlagHighLevelDepA ''MsgSsrFlagHighLevelDepA)+$(makeJSON "_msgSsrFlagHighLevelDepA_" ''MsgSsrFlagHighLevelDepA)+$(makeLenses ''MsgSsrFlagHighLevelDepA)+ msgSsrFlagHighLevel :: Word16-msgSsrFlagHighLevel = 0x0BB9+msgSsrFlagHighLevel = 0x0BBA --- | SBP class for message MSG_SSR_FLAG_HIGH_LEVEL (0x0BB9).+-- | SBP class for message MSG_SSR_FLAG_HIGH_LEVEL (0x0BBA). -- -- Integrity monitoring flags for multiple aggregated elements. An element -- could be a satellite, SSR grid point, or SSR tile. A group of aggregated@@ -109,8 +188,11 @@ data MsgSsrFlagHighLevel = MsgSsrFlagHighLevel { _msgSsrFlagHighLevel_obs_time :: !GpsTimeSec -- ^ GNSS reference time of the observation used to generate the flag.- , _msgSsrFlagHighLevel_corr_time :: !GpsTimeSec- -- ^ GNSS reference time of the correction associated to the flag.+ , _msgSsrFlagHighLevel_iono_corr_time :: !GpsTimeSec+ -- ^ GNSS reference time of the ionospheric correction associated to the+ -- flag.+ , _msgSsrFlagHighLevel_sat_corr_time :: !GpsTimeSec+ -- ^ GNSS reference time of the satellite correction associated to the flag. , _msgSsrFlagHighLevel_ssr_sol_id :: !Word8 -- ^ SSR Solution ID. , _msgSsrFlagHighLevel_tile_set_id :: !Word16@@ -142,7 +224,8 @@ instance Binary MsgSsrFlagHighLevel where get = do _msgSsrFlagHighLevel_obs_time <- get- _msgSsrFlagHighLevel_corr_time <- get+ _msgSsrFlagHighLevel_iono_corr_time <- get+ _msgSsrFlagHighLevel_sat_corr_time <- get _msgSsrFlagHighLevel_ssr_sol_id <- getWord8 _msgSsrFlagHighLevel_tile_set_id <- getWord16le _msgSsrFlagHighLevel_tile_id <- getWord16le@@ -160,7 +243,8 @@ put MsgSsrFlagHighLevel {..} = do put _msgSsrFlagHighLevel_obs_time- put _msgSsrFlagHighLevel_corr_time+ put _msgSsrFlagHighLevel_iono_corr_time+ put _msgSsrFlagHighLevel_sat_corr_time putWord8 _msgSsrFlagHighLevel_ssr_sol_id putWord16le _msgSsrFlagHighLevel_tile_set_id putWord16le _msgSsrFlagHighLevel_tile_id
@@ -237,6 +237,7 @@ | SBPMsgSsrCodeBiases MsgSsrCodeBiases Msg | SBPMsgSsrCodePhaseBiasesBounds MsgSsrCodePhaseBiasesBounds Msg | SBPMsgSsrFlagHighLevel MsgSsrFlagHighLevel Msg+ | SBPMsgSsrFlagHighLevelDepA MsgSsrFlagHighLevelDepA Msg | SBPMsgSsrFlagIonoGridPointSatLos MsgSsrFlagIonoGridPointSatLos Msg | SBPMsgSsrFlagIonoGridPoints MsgSsrFlagIonoGridPoints Msg | SBPMsgSsrFlagIonoTileSatLos MsgSsrFlagIonoTileSatLos Msg@@ -489,6 +490,7 @@ | _msgSBPType == msgSsrCodeBiases = SBPMsgSsrCodeBiases (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgSsrCodePhaseBiasesBounds = SBPMsgSsrCodePhaseBiasesBounds (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgSsrFlagHighLevel = SBPMsgSsrFlagHighLevel (decode (fromStrict (unBytes _msgSBPPayload))) m+ | _msgSBPType == msgSsrFlagHighLevelDepA = SBPMsgSsrFlagHighLevelDepA (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgSsrFlagIonoGridPointSatLos = SBPMsgSsrFlagIonoGridPointSatLos (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgSsrFlagIonoGridPoints = SBPMsgSsrFlagIonoGridPoints (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgSsrFlagIonoTileSatLos = SBPMsgSsrFlagIonoTileSatLos (decode (fromStrict (unBytes _msgSBPPayload))) m@@ -733,6 +735,7 @@ encoder (SBPMsgSsrCodeBiases _ m) = put m encoder (SBPMsgSsrCodePhaseBiasesBounds _ m) = put m encoder (SBPMsgSsrFlagHighLevel _ m) = put m+ encoder (SBPMsgSsrFlagHighLevelDepA _ m) = put m encoder (SBPMsgSsrFlagIonoGridPointSatLos _ m) = put m encoder (SBPMsgSsrFlagIonoGridPoints _ m) = put m encoder (SBPMsgSsrFlagIonoTileSatLos _ m) = put m@@ -981,6 +984,7 @@ | msgType == msgSsrCodeBiases = SBPMsgSsrCodeBiases <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgSsrCodePhaseBiasesBounds = SBPMsgSsrCodePhaseBiasesBounds <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgSsrFlagHighLevel = SBPMsgSsrFlagHighLevel <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj+ | msgType == msgSsrFlagHighLevelDepA = SBPMsgSsrFlagHighLevelDepA <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgSsrFlagIonoGridPointSatLos = SBPMsgSsrFlagIonoGridPointSatLos <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgSsrFlagIonoGridPoints = SBPMsgSsrFlagIonoGridPoints <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgSsrFlagIonoTileSatLos = SBPMsgSsrFlagIonoTileSatLos <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj@@ -1230,6 +1234,7 @@ toJSON (SBPMsgSsrCodeBiases n m) = toJSON n <<>> toJSON m toJSON (SBPMsgSsrCodePhaseBiasesBounds n m) = toJSON n <<>> toJSON m toJSON (SBPMsgSsrFlagHighLevel n m) = toJSON n <<>> toJSON m+ toJSON (SBPMsgSsrFlagHighLevelDepA n m) = toJSON n <<>> toJSON m toJSON (SBPMsgSsrFlagIonoGridPointSatLos n m) = toJSON n <<>> toJSON m toJSON (SBPMsgSsrFlagIonoGridPoints n m) = toJSON n <<>> toJSON m toJSON (SBPMsgSsrFlagIonoTileSatLos n m) = toJSON n <<>> toJSON m@@ -1473,6 +1478,7 @@ msg f (SBPMsgSsrCodeBiases n m) = SBPMsgSsrCodeBiases n <$> f m msg f (SBPMsgSsrCodePhaseBiasesBounds n m) = SBPMsgSsrCodePhaseBiasesBounds n <$> f m msg f (SBPMsgSsrFlagHighLevel n m) = SBPMsgSsrFlagHighLevel n <$> f m+ msg f (SBPMsgSsrFlagHighLevelDepA n m) = SBPMsgSsrFlagHighLevelDepA n <$> f m msg f (SBPMsgSsrFlagIonoGridPointSatLos n m) = SBPMsgSsrFlagIonoGridPointSatLos n <$> f m msg f (SBPMsgSsrFlagIonoGridPoints n m) = SBPMsgSsrFlagIonoGridPoints n <$> f m msg f (SBPMsgSsrFlagIonoTileSatLos n m) = SBPMsgSsrFlagIonoTileSatLos n <$> f m