packages feed

sbp 4.4.0 → 4.5.0

raw patch · 4 files changed

+743/−48 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- SwiftNav.SBP.Integrity: [_msgSsrFlagHighLevel_stub] :: MsgSsrFlagHighLevel -> ![Word8]
- SwiftNav.SBP.Integrity: [_msgSsrFlagIonoGridPointSatLos_stub] :: MsgSsrFlagIonoGridPointSatLos -> ![Word8]
- SwiftNav.SBP.Integrity: [_msgSsrFlagIonoGridPoints_stub] :: MsgSsrFlagIonoGridPoints -> ![Word8]
- SwiftNav.SBP.Integrity: [_msgSsrFlagIonoTileSatLos_stub] :: MsgSsrFlagIonoTileSatLos -> ![Word8]
- SwiftNav.SBP.Integrity: [_msgSsrFlagSatellites_stub] :: MsgSsrFlagSatellites -> ![Word8]
- SwiftNav.SBP.Integrity: [_msgSsrFlagTropoGridPoints_stub] :: MsgSsrFlagTropoGridPoints -> ![Word8]
- SwiftNav.SBP.Integrity: msgSsrFlagHighLevel_stub :: Iso' MsgSsrFlagHighLevel [Word8]
- SwiftNav.SBP.Integrity: msgSsrFlagIonoGridPointSatLos_stub :: Iso' MsgSsrFlagIonoGridPointSatLos [Word8]
- SwiftNav.SBP.Integrity: msgSsrFlagIonoGridPoints_stub :: Iso' MsgSsrFlagIonoGridPoints [Word8]
- SwiftNav.SBP.Integrity: msgSsrFlagIonoTileSatLos_stub :: Iso' MsgSsrFlagIonoTileSatLos [Word8]
- SwiftNav.SBP.Integrity: msgSsrFlagSatellites_stub :: Iso' MsgSsrFlagSatellites [Word8]
- SwiftNav.SBP.Integrity: msgSsrFlagTropoGridPoints_stub :: Iso' MsgSsrFlagTropoGridPoints [Word8]
- SwiftNav.SBP.Navigation: [_msgReferenceFrameParam_stub] :: MsgReferenceFrameParam -> ![Word8]
- SwiftNav.SBP.Navigation: [_msgUtcLeapSecond_stub] :: MsgUtcLeapSecond -> ![Word8]
- SwiftNav.SBP.Navigation: msgReferenceFrameParam_stub :: Iso' MsgReferenceFrameParam [Word8]
- SwiftNav.SBP.Navigation: msgUtcLeapSecond_stub :: Iso' MsgUtcLeapSecond [Word8]
- SwiftNav.SBP.Ssr: [_msgSsrCodePhaseBiasesBounds_stub] :: MsgSsrCodePhaseBiasesBounds -> ![Word8]
- SwiftNav.SBP.Ssr: [_msgSsrGriddedCorrectionBounds_stub] :: MsgSsrGriddedCorrectionBounds -> ![Word8]
- SwiftNav.SBP.Ssr: [_msgSsrOrbitClockBoundsDegradation_stub] :: MsgSsrOrbitClockBoundsDegradation -> ![Word8]
- SwiftNav.SBP.Ssr: [_msgSsrOrbitClockBounds_stub] :: MsgSsrOrbitClockBounds -> ![Word8]
- SwiftNav.SBP.Ssr: [_msgSsrStecCorrection_stub] :: MsgSsrStecCorrection -> ![Word8]
- SwiftNav.SBP.Ssr: [_msgSsrTileDefinition_stub] :: MsgSsrTileDefinition -> ![Word8]
- SwiftNav.SBP.Ssr: msgSsrCodePhaseBiasesBounds_stub :: Iso' MsgSsrCodePhaseBiasesBounds [Word8]
- SwiftNav.SBP.Ssr: msgSsrGriddedCorrectionBounds_stub :: Iso' MsgSsrGriddedCorrectionBounds [Word8]
- SwiftNav.SBP.Ssr: msgSsrOrbitClockBoundsDegradation_stub :: Iso' MsgSsrOrbitClockBoundsDegradation [Word8]
- SwiftNav.SBP.Ssr: msgSsrOrbitClockBounds_stub :: Iso' MsgSsrOrbitClockBounds [Word8]
- SwiftNav.SBP.Ssr: msgSsrStecCorrection_stub :: Iso' MsgSsrStecCorrection [Word8]
- SwiftNav.SBP.Ssr: msgSsrTileDefinition_stub :: Iso' MsgSsrTileDefinition [Word8]
+ SwiftNav.SBP.Integrity: IntegritySSRHeader :: !GpsTimeSec -> !Word8 -> !Word8 -> !Word8 -> !Word16 -> !Word16 -> !Word8 -> IntegritySSRHeader
+ SwiftNav.SBP.Integrity: [_integritySSRHeader_chain_id] :: IntegritySSRHeader -> !Word8
+ SwiftNav.SBP.Integrity: [_integritySSRHeader_num_msgs] :: IntegritySSRHeader -> !Word8
+ SwiftNav.SBP.Integrity: [_integritySSRHeader_obs_time] :: IntegritySSRHeader -> !GpsTimeSec
+ SwiftNav.SBP.Integrity: [_integritySSRHeader_seq_num] :: IntegritySSRHeader -> !Word8
+ SwiftNav.SBP.Integrity: [_integritySSRHeader_ssr_sol_id] :: IntegritySSRHeader -> !Word8
+ SwiftNav.SBP.Integrity: [_integritySSRHeader_tile_id] :: IntegritySSRHeader -> !Word16
+ SwiftNav.SBP.Integrity: [_integritySSRHeader_tile_set_id] :: IntegritySSRHeader -> !Word16
+ SwiftNav.SBP.Integrity: [_msgSsrFlagHighLevel_chain_id] :: MsgSsrFlagHighLevel -> !Word8
+ SwiftNav.SBP.Integrity: [_msgSsrFlagHighLevel_corr_time] :: MsgSsrFlagHighLevel -> !GpsTimeSec
+ SwiftNav.SBP.Integrity: [_msgSsrFlagHighLevel_obs_time] :: MsgSsrFlagHighLevel -> !GpsTimeSec
+ SwiftNav.SBP.Integrity: [_msgSsrFlagHighLevel_reserved] :: MsgSsrFlagHighLevel -> ![Word8]
+ SwiftNav.SBP.Integrity: [_msgSsrFlagHighLevel_ssr_sol_id] :: MsgSsrFlagHighLevel -> !Word8
+ SwiftNav.SBP.Integrity: [_msgSsrFlagHighLevel_tile_id] :: MsgSsrFlagHighLevel -> !Word16
+ SwiftNav.SBP.Integrity: [_msgSsrFlagHighLevel_tile_set_id] :: MsgSsrFlagHighLevel -> !Word16
+ SwiftNav.SBP.Integrity: [_msgSsrFlagHighLevel_use_bds_sat] :: MsgSsrFlagHighLevel -> !Word8
+ SwiftNav.SBP.Integrity: [_msgSsrFlagHighLevel_use_gal_sat] :: MsgSsrFlagHighLevel -> !Word8
+ SwiftNav.SBP.Integrity: [_msgSsrFlagHighLevel_use_gps_sat] :: MsgSsrFlagHighLevel -> !Word8
+ SwiftNav.SBP.Integrity: [_msgSsrFlagHighLevel_use_iono_grid_point_sat_los] :: MsgSsrFlagHighLevel -> !Word8
+ SwiftNav.SBP.Integrity: [_msgSsrFlagHighLevel_use_iono_grid_points] :: MsgSsrFlagHighLevel -> !Word8
+ SwiftNav.SBP.Integrity: [_msgSsrFlagHighLevel_use_iono_tile_sat_los] :: MsgSsrFlagHighLevel -> !Word8
+ SwiftNav.SBP.Integrity: [_msgSsrFlagHighLevel_use_tropo_grid_points] :: MsgSsrFlagHighLevel -> !Word8
+ SwiftNav.SBP.Integrity: [_msgSsrFlagIonoGridPointSatLos_faulty_los] :: MsgSsrFlagIonoGridPointSatLos -> ![SvId]
+ SwiftNav.SBP.Integrity: [_msgSsrFlagIonoGridPointSatLos_grid_point_id] :: MsgSsrFlagIonoGridPointSatLos -> !Word16
+ SwiftNav.SBP.Integrity: [_msgSsrFlagIonoGridPointSatLos_header] :: MsgSsrFlagIonoGridPointSatLos -> !IntegritySSRHeader
+ SwiftNav.SBP.Integrity: [_msgSsrFlagIonoGridPointSatLos_n_faulty_los] :: MsgSsrFlagIonoGridPointSatLos -> !Word8
+ SwiftNav.SBP.Integrity: [_msgSsrFlagIonoGridPoints_faulty_points] :: MsgSsrFlagIonoGridPoints -> ![Word16]
+ SwiftNav.SBP.Integrity: [_msgSsrFlagIonoGridPoints_header] :: MsgSsrFlagIonoGridPoints -> !IntegritySSRHeader
+ SwiftNav.SBP.Integrity: [_msgSsrFlagIonoGridPoints_n_faulty_points] :: MsgSsrFlagIonoGridPoints -> !Word8
+ SwiftNav.SBP.Integrity: [_msgSsrFlagIonoTileSatLos_faulty_los] :: MsgSsrFlagIonoTileSatLos -> ![SvId]
+ SwiftNav.SBP.Integrity: [_msgSsrFlagIonoTileSatLos_header] :: MsgSsrFlagIonoTileSatLos -> !IntegritySSRHeader
+ SwiftNav.SBP.Integrity: [_msgSsrFlagIonoTileSatLos_n_faulty_los] :: MsgSsrFlagIonoTileSatLos -> !Word8
+ SwiftNav.SBP.Integrity: [_msgSsrFlagSatellites_chain_id] :: MsgSsrFlagSatellites -> !Word8
+ SwiftNav.SBP.Integrity: [_msgSsrFlagSatellites_const_id] :: MsgSsrFlagSatellites -> !Word8
+ SwiftNav.SBP.Integrity: [_msgSsrFlagSatellites_faulty_sats] :: MsgSsrFlagSatellites -> ![Word8]
+ SwiftNav.SBP.Integrity: [_msgSsrFlagSatellites_n_faulty_sats] :: MsgSsrFlagSatellites -> !Word8
+ SwiftNav.SBP.Integrity: [_msgSsrFlagSatellites_num_msgs] :: MsgSsrFlagSatellites -> !Word8
+ SwiftNav.SBP.Integrity: [_msgSsrFlagSatellites_obs_time] :: MsgSsrFlagSatellites -> !GpsTimeSec
+ SwiftNav.SBP.Integrity: [_msgSsrFlagSatellites_seq_num] :: MsgSsrFlagSatellites -> !Word8
+ SwiftNav.SBP.Integrity: [_msgSsrFlagSatellites_ssr_sol_id] :: MsgSsrFlagSatellites -> !Word8
+ SwiftNav.SBP.Integrity: [_msgSsrFlagTropoGridPoints_faulty_points] :: MsgSsrFlagTropoGridPoints -> ![Word16]
+ SwiftNav.SBP.Integrity: [_msgSsrFlagTropoGridPoints_header] :: MsgSsrFlagTropoGridPoints -> !IntegritySSRHeader
+ SwiftNav.SBP.Integrity: [_msgSsrFlagTropoGridPoints_n_faulty_points] :: MsgSsrFlagTropoGridPoints -> !Word8
+ SwiftNav.SBP.Integrity: data IntegritySSRHeader
+ SwiftNav.SBP.Integrity: instance Data.Aeson.Types.FromJSON.FromJSON SwiftNav.SBP.Integrity.IntegritySSRHeader
+ SwiftNav.SBP.Integrity: instance Data.Aeson.Types.ToJSON.ToJSON SwiftNav.SBP.Integrity.IntegritySSRHeader
+ SwiftNav.SBP.Integrity: instance Data.Binary.Class.Binary SwiftNav.SBP.Integrity.IntegritySSRHeader
+ SwiftNav.SBP.Integrity: instance GHC.Classes.Eq SwiftNav.SBP.Integrity.IntegritySSRHeader
+ SwiftNav.SBP.Integrity: instance GHC.Read.Read SwiftNav.SBP.Integrity.IntegritySSRHeader
+ SwiftNav.SBP.Integrity: instance GHC.Show.Show SwiftNav.SBP.Integrity.IntegritySSRHeader
+ SwiftNav.SBP.Integrity: integritySSRHeader_chain_id :: Lens' IntegritySSRHeader Word8
+ SwiftNav.SBP.Integrity: integritySSRHeader_num_msgs :: Lens' IntegritySSRHeader Word8
+ SwiftNav.SBP.Integrity: integritySSRHeader_obs_time :: Lens' IntegritySSRHeader GpsTimeSec
+ SwiftNav.SBP.Integrity: integritySSRHeader_seq_num :: Lens' IntegritySSRHeader Word8
+ SwiftNav.SBP.Integrity: integritySSRHeader_ssr_sol_id :: Lens' IntegritySSRHeader Word8
+ SwiftNav.SBP.Integrity: integritySSRHeader_tile_id :: Lens' IntegritySSRHeader Word16
+ SwiftNav.SBP.Integrity: integritySSRHeader_tile_set_id :: Lens' IntegritySSRHeader Word16
+ SwiftNav.SBP.Integrity: msgSsrFlagHighLevel_chain_id :: Lens' MsgSsrFlagHighLevel Word8
+ SwiftNav.SBP.Integrity: msgSsrFlagHighLevel_corr_time :: Lens' MsgSsrFlagHighLevel GpsTimeSec
+ SwiftNav.SBP.Integrity: msgSsrFlagHighLevel_obs_time :: Lens' MsgSsrFlagHighLevel GpsTimeSec
+ SwiftNav.SBP.Integrity: msgSsrFlagHighLevel_reserved :: Lens' MsgSsrFlagHighLevel [Word8]
+ SwiftNav.SBP.Integrity: msgSsrFlagHighLevel_ssr_sol_id :: Lens' MsgSsrFlagHighLevel Word8
+ SwiftNav.SBP.Integrity: msgSsrFlagHighLevel_tile_id :: Lens' MsgSsrFlagHighLevel Word16
+ SwiftNav.SBP.Integrity: msgSsrFlagHighLevel_tile_set_id :: Lens' MsgSsrFlagHighLevel Word16
+ SwiftNav.SBP.Integrity: msgSsrFlagHighLevel_use_bds_sat :: Lens' MsgSsrFlagHighLevel Word8
+ SwiftNav.SBP.Integrity: msgSsrFlagHighLevel_use_gal_sat :: Lens' MsgSsrFlagHighLevel Word8
+ SwiftNav.SBP.Integrity: msgSsrFlagHighLevel_use_gps_sat :: Lens' MsgSsrFlagHighLevel Word8
+ SwiftNav.SBP.Integrity: msgSsrFlagHighLevel_use_iono_grid_point_sat_los :: Lens' MsgSsrFlagHighLevel Word8
+ SwiftNav.SBP.Integrity: msgSsrFlagHighLevel_use_iono_grid_points :: Lens' MsgSsrFlagHighLevel Word8
+ SwiftNav.SBP.Integrity: msgSsrFlagHighLevel_use_iono_tile_sat_los :: Lens' MsgSsrFlagHighLevel Word8
+ SwiftNav.SBP.Integrity: msgSsrFlagHighLevel_use_tropo_grid_points :: Lens' MsgSsrFlagHighLevel Word8
+ SwiftNav.SBP.Integrity: msgSsrFlagIonoGridPointSatLos_faulty_los :: Lens' MsgSsrFlagIonoGridPointSatLos [SvId]
+ SwiftNav.SBP.Integrity: msgSsrFlagIonoGridPointSatLos_grid_point_id :: Lens' MsgSsrFlagIonoGridPointSatLos Word16
+ SwiftNav.SBP.Integrity: msgSsrFlagIonoGridPointSatLos_header :: Lens' MsgSsrFlagIonoGridPointSatLos IntegritySSRHeader
+ SwiftNav.SBP.Integrity: msgSsrFlagIonoGridPointSatLos_n_faulty_los :: Lens' MsgSsrFlagIonoGridPointSatLos Word8
+ SwiftNav.SBP.Integrity: msgSsrFlagIonoGridPoints_faulty_points :: Lens' MsgSsrFlagIonoGridPoints [Word16]
+ SwiftNav.SBP.Integrity: msgSsrFlagIonoGridPoints_header :: Lens' MsgSsrFlagIonoGridPoints IntegritySSRHeader
+ SwiftNav.SBP.Integrity: msgSsrFlagIonoGridPoints_n_faulty_points :: Lens' MsgSsrFlagIonoGridPoints Word8
+ SwiftNav.SBP.Integrity: msgSsrFlagIonoTileSatLos_faulty_los :: Lens' MsgSsrFlagIonoTileSatLos [SvId]
+ SwiftNav.SBP.Integrity: msgSsrFlagIonoTileSatLos_header :: Lens' MsgSsrFlagIonoTileSatLos IntegritySSRHeader
+ SwiftNav.SBP.Integrity: msgSsrFlagIonoTileSatLos_n_faulty_los :: Lens' MsgSsrFlagIonoTileSatLos Word8
+ SwiftNav.SBP.Integrity: msgSsrFlagSatellites_chain_id :: Lens' MsgSsrFlagSatellites Word8
+ SwiftNav.SBP.Integrity: msgSsrFlagSatellites_const_id :: Lens' MsgSsrFlagSatellites Word8
+ SwiftNav.SBP.Integrity: msgSsrFlagSatellites_faulty_sats :: Lens' MsgSsrFlagSatellites [Word8]
+ SwiftNav.SBP.Integrity: msgSsrFlagSatellites_n_faulty_sats :: Lens' MsgSsrFlagSatellites Word8
+ SwiftNav.SBP.Integrity: msgSsrFlagSatellites_num_msgs :: Lens' MsgSsrFlagSatellites Word8
+ SwiftNav.SBP.Integrity: msgSsrFlagSatellites_obs_time :: Lens' MsgSsrFlagSatellites GpsTimeSec
+ SwiftNav.SBP.Integrity: msgSsrFlagSatellites_seq_num :: Lens' MsgSsrFlagSatellites Word8
+ SwiftNav.SBP.Integrity: msgSsrFlagSatellites_ssr_sol_id :: Lens' MsgSsrFlagSatellites Word8
+ SwiftNav.SBP.Integrity: msgSsrFlagTropoGridPoints_faulty_points :: Lens' MsgSsrFlagTropoGridPoints [Word16]
+ SwiftNav.SBP.Integrity: msgSsrFlagTropoGridPoints_header :: Lens' MsgSsrFlagTropoGridPoints IntegritySSRHeader
+ SwiftNav.SBP.Integrity: msgSsrFlagTropoGridPoints_n_faulty_points :: Lens' MsgSsrFlagTropoGridPoints Word8
+ SwiftNav.SBP.Navigation: [_msgReferenceFrameParam_delta_X0] :: MsgReferenceFrameParam -> !Int32
+ SwiftNav.SBP.Navigation: [_msgReferenceFrameParam_delta_Y0] :: MsgReferenceFrameParam -> !Int32
+ SwiftNav.SBP.Navigation: [_msgReferenceFrameParam_delta_Z0] :: MsgReferenceFrameParam -> !Int32
+ SwiftNav.SBP.Navigation: [_msgReferenceFrameParam_dot_delta_X0] :: MsgReferenceFrameParam -> !Int32
+ SwiftNav.SBP.Navigation: [_msgReferenceFrameParam_dot_delta_Y0] :: MsgReferenceFrameParam -> !Int32
+ SwiftNav.SBP.Navigation: [_msgReferenceFrameParam_dot_delta_Z0] :: MsgReferenceFrameParam -> !Int32
+ SwiftNav.SBP.Navigation: [_msgReferenceFrameParam_dot_scale] :: MsgReferenceFrameParam -> !Int16
+ SwiftNav.SBP.Navigation: [_msgReferenceFrameParam_dot_theta_01] :: MsgReferenceFrameParam -> !Int32
+ SwiftNav.SBP.Navigation: [_msgReferenceFrameParam_dot_theta_02] :: MsgReferenceFrameParam -> !Int32
+ SwiftNav.SBP.Navigation: [_msgReferenceFrameParam_dot_theta_03] :: MsgReferenceFrameParam -> !Int32
+ SwiftNav.SBP.Navigation: [_msgReferenceFrameParam_re_t0] :: MsgReferenceFrameParam -> !Word16
+ SwiftNav.SBP.Navigation: [_msgReferenceFrameParam_scale] :: MsgReferenceFrameParam -> !Int32
+ SwiftNav.SBP.Navigation: [_msgReferenceFrameParam_sin] :: MsgReferenceFrameParam -> !Word8
+ SwiftNav.SBP.Navigation: [_msgReferenceFrameParam_sn] :: MsgReferenceFrameParam -> !Text
+ SwiftNav.SBP.Navigation: [_msgReferenceFrameParam_ssr_iod] :: MsgReferenceFrameParam -> !Word8
+ SwiftNav.SBP.Navigation: [_msgReferenceFrameParam_theta_01] :: MsgReferenceFrameParam -> !Int32
+ SwiftNav.SBP.Navigation: [_msgReferenceFrameParam_theta_02] :: MsgReferenceFrameParam -> !Int32
+ SwiftNav.SBP.Navigation: [_msgReferenceFrameParam_theta_03] :: MsgReferenceFrameParam -> !Int32
+ SwiftNav.SBP.Navigation: [_msgReferenceFrameParam_tn] :: MsgReferenceFrameParam -> !Text
+ SwiftNav.SBP.Navigation: [_msgReferenceFrameParam_utn] :: MsgReferenceFrameParam -> !Word16
+ SwiftNav.SBP.Navigation: [_msgUtcLeapSecond_bias_coeff] :: MsgUtcLeapSecond -> !Int16
+ SwiftNav.SBP.Navigation: [_msgUtcLeapSecond_count_after] :: MsgUtcLeapSecond -> !Int8
+ SwiftNav.SBP.Navigation: [_msgUtcLeapSecond_count_before] :: MsgUtcLeapSecond -> !Int8
+ SwiftNav.SBP.Navigation: [_msgUtcLeapSecond_drift_coeff] :: MsgUtcLeapSecond -> !Int16
+ SwiftNav.SBP.Navigation: [_msgUtcLeapSecond_drift_rate_coeff] :: MsgUtcLeapSecond -> !Int8
+ SwiftNav.SBP.Navigation: [_msgUtcLeapSecond_ref_dn] :: MsgUtcLeapSecond -> !Word8
+ SwiftNav.SBP.Navigation: [_msgUtcLeapSecond_ref_wn] :: MsgUtcLeapSecond -> !Word16
+ SwiftNav.SBP.Navigation: [_msgUtcLeapSecond_tow_s] :: MsgUtcLeapSecond -> !Word16
+ SwiftNav.SBP.Navigation: [_msgUtcLeapSecond_wn] :: MsgUtcLeapSecond -> !Word16
+ SwiftNav.SBP.Navigation: msgReferenceFrameParam_delta_X0 :: Lens' MsgReferenceFrameParam Int32
+ SwiftNav.SBP.Navigation: msgReferenceFrameParam_delta_Y0 :: Lens' MsgReferenceFrameParam Int32
+ SwiftNav.SBP.Navigation: msgReferenceFrameParam_delta_Z0 :: Lens' MsgReferenceFrameParam Int32
+ SwiftNav.SBP.Navigation: msgReferenceFrameParam_dot_delta_X0 :: Lens' MsgReferenceFrameParam Int32
+ SwiftNav.SBP.Navigation: msgReferenceFrameParam_dot_delta_Y0 :: Lens' MsgReferenceFrameParam Int32
+ SwiftNav.SBP.Navigation: msgReferenceFrameParam_dot_delta_Z0 :: Lens' MsgReferenceFrameParam Int32
+ SwiftNav.SBP.Navigation: msgReferenceFrameParam_dot_scale :: Lens' MsgReferenceFrameParam Int16
+ SwiftNav.SBP.Navigation: msgReferenceFrameParam_dot_theta_01 :: Lens' MsgReferenceFrameParam Int32
+ SwiftNav.SBP.Navigation: msgReferenceFrameParam_dot_theta_02 :: Lens' MsgReferenceFrameParam Int32
+ SwiftNav.SBP.Navigation: msgReferenceFrameParam_dot_theta_03 :: Lens' MsgReferenceFrameParam Int32
+ SwiftNav.SBP.Navigation: msgReferenceFrameParam_re_t0 :: Lens' MsgReferenceFrameParam Word16
+ SwiftNav.SBP.Navigation: msgReferenceFrameParam_scale :: Lens' MsgReferenceFrameParam Int32
+ SwiftNav.SBP.Navigation: msgReferenceFrameParam_sin :: Lens' MsgReferenceFrameParam Word8
+ SwiftNav.SBP.Navigation: msgReferenceFrameParam_sn :: Lens' MsgReferenceFrameParam Text
+ SwiftNav.SBP.Navigation: msgReferenceFrameParam_ssr_iod :: Lens' MsgReferenceFrameParam Word8
+ SwiftNav.SBP.Navigation: msgReferenceFrameParam_theta_01 :: Lens' MsgReferenceFrameParam Int32
+ SwiftNav.SBP.Navigation: msgReferenceFrameParam_theta_02 :: Lens' MsgReferenceFrameParam Int32
+ SwiftNav.SBP.Navigation: msgReferenceFrameParam_theta_03 :: Lens' MsgReferenceFrameParam Int32
+ SwiftNav.SBP.Navigation: msgReferenceFrameParam_tn :: Lens' MsgReferenceFrameParam Text
+ SwiftNav.SBP.Navigation: msgReferenceFrameParam_utn :: Lens' MsgReferenceFrameParam Word16
+ SwiftNav.SBP.Navigation: msgUtcLeapSecond_bias_coeff :: Lens' MsgUtcLeapSecond Int16
+ SwiftNav.SBP.Navigation: msgUtcLeapSecond_count_after :: Lens' MsgUtcLeapSecond Int8
+ SwiftNav.SBP.Navigation: msgUtcLeapSecond_count_before :: Lens' MsgUtcLeapSecond Int8
+ SwiftNav.SBP.Navigation: msgUtcLeapSecond_drift_coeff :: Lens' MsgUtcLeapSecond Int16
+ SwiftNav.SBP.Navigation: msgUtcLeapSecond_drift_rate_coeff :: Lens' MsgUtcLeapSecond Int8
+ SwiftNav.SBP.Navigation: msgUtcLeapSecond_ref_dn :: Lens' MsgUtcLeapSecond Word8
+ SwiftNav.SBP.Navigation: msgUtcLeapSecond_ref_wn :: Lens' MsgUtcLeapSecond Word16
+ SwiftNav.SBP.Navigation: msgUtcLeapSecond_tow_s :: Lens' MsgUtcLeapSecond Word16
+ SwiftNav.SBP.Navigation: msgUtcLeapSecond_wn :: Lens' MsgUtcLeapSecond Word16
+ SwiftNav.SBP.Ssr: BoundsHeader :: !GpsTimeSec -> !Word8 -> !Word8 -> !Word8 -> !Word8 -> BoundsHeader
+ SwiftNav.SBP.Ssr: CodePhaseBiasesSatSig :: !Word8 -> !Word8 -> !Word8 -> !Word8 -> !Word8 -> !Word8 -> CodePhaseBiasesSatSig
+ SwiftNav.SBP.Ssr: OrbitClockBound :: !Word8 -> !Word8 -> !Word8 -> !Word8 -> !Word8 -> !Word8 -> !Word8 -> !Word8 -> !Word8 -> OrbitClockBound
+ SwiftNav.SBP.Ssr: OrbitClockBoundDegradation :: !Word8 -> !Word8 -> !Word8 -> !Word8 -> !Word8 -> !Word8 -> !Word8 -> !Word8 -> OrbitClockBoundDegradation
+ SwiftNav.SBP.Ssr: STECSatElementIntegrity :: !STECResidual -> !Word8 -> !Word8 -> !Word8 -> !Word8 -> STECSatElementIntegrity
+ SwiftNav.SBP.Ssr: [_boundsHeader_num_msgs] :: BoundsHeader -> !Word8
+ SwiftNav.SBP.Ssr: [_boundsHeader_seq_num] :: BoundsHeader -> !Word8
+ SwiftNav.SBP.Ssr: [_boundsHeader_sol_id] :: BoundsHeader -> !Word8
+ SwiftNav.SBP.Ssr: [_boundsHeader_time] :: BoundsHeader -> !GpsTimeSec
+ SwiftNav.SBP.Ssr: [_boundsHeader_update_interval] :: BoundsHeader -> !Word8
+ SwiftNav.SBP.Ssr: [_codePhaseBiasesSatSig_code_bias_bound_mu] :: CodePhaseBiasesSatSig -> !Word8
+ SwiftNav.SBP.Ssr: [_codePhaseBiasesSatSig_code_bias_bound_sig] :: CodePhaseBiasesSatSig -> !Word8
+ SwiftNav.SBP.Ssr: [_codePhaseBiasesSatSig_phase_bias_bound_mu] :: CodePhaseBiasesSatSig -> !Word8
+ SwiftNav.SBP.Ssr: [_codePhaseBiasesSatSig_phase_bias_bound_sig] :: CodePhaseBiasesSatSig -> !Word8
+ SwiftNav.SBP.Ssr: [_codePhaseBiasesSatSig_sat_id] :: CodePhaseBiasesSatSig -> !Word8
+ SwiftNav.SBP.Ssr: [_codePhaseBiasesSatSig_signal_id] :: CodePhaseBiasesSatSig -> !Word8
+ SwiftNav.SBP.Ssr: [_msgSsrCodePhaseBiasesBounds_const_id] :: MsgSsrCodePhaseBiasesBounds -> !Word8
+ SwiftNav.SBP.Ssr: [_msgSsrCodePhaseBiasesBounds_header] :: MsgSsrCodePhaseBiasesBounds -> !BoundsHeader
+ SwiftNav.SBP.Ssr: [_msgSsrCodePhaseBiasesBounds_n_sats_signals] :: MsgSsrCodePhaseBiasesBounds -> !Word8
+ SwiftNav.SBP.Ssr: [_msgSsrCodePhaseBiasesBounds_satellites_signals] :: MsgSsrCodePhaseBiasesBounds -> ![CodePhaseBiasesSatSig]
+ SwiftNav.SBP.Ssr: [_msgSsrCodePhaseBiasesBounds_ssr_iod] :: MsgSsrCodePhaseBiasesBounds -> !Word8
+ SwiftNav.SBP.Ssr: [_msgSsrGriddedCorrectionBounds_grid_point_id] :: MsgSsrGriddedCorrectionBounds -> !Word16
+ SwiftNav.SBP.Ssr: [_msgSsrGriddedCorrectionBounds_header] :: MsgSsrGriddedCorrectionBounds -> !BoundsHeader
+ SwiftNav.SBP.Ssr: [_msgSsrGriddedCorrectionBounds_n_sats] :: MsgSsrGriddedCorrectionBounds -> !Word8
+ SwiftNav.SBP.Ssr: [_msgSsrGriddedCorrectionBounds_ssr_iod_atmo] :: MsgSsrGriddedCorrectionBounds -> !Word8
+ SwiftNav.SBP.Ssr: [_msgSsrGriddedCorrectionBounds_stec_sat_list] :: MsgSsrGriddedCorrectionBounds -> ![STECSatElementIntegrity]
+ SwiftNav.SBP.Ssr: [_msgSsrGriddedCorrectionBounds_tile_id] :: MsgSsrGriddedCorrectionBounds -> !Word16
+ SwiftNav.SBP.Ssr: [_msgSsrGriddedCorrectionBounds_tile_set_id] :: MsgSsrGriddedCorrectionBounds -> !Word16
+ SwiftNav.SBP.Ssr: [_msgSsrGriddedCorrectionBounds_tropo_delay_correction] :: MsgSsrGriddedCorrectionBounds -> !TroposphericDelayCorrection
+ SwiftNav.SBP.Ssr: [_msgSsrGriddedCorrectionBounds_tropo_qi] :: MsgSsrGriddedCorrectionBounds -> !Word8
+ SwiftNav.SBP.Ssr: [_msgSsrGriddedCorrectionBounds_tropo_v_hydro_bound_mu] :: MsgSsrGriddedCorrectionBounds -> !Word8
+ SwiftNav.SBP.Ssr: [_msgSsrGriddedCorrectionBounds_tropo_v_hydro_bound_sig] :: MsgSsrGriddedCorrectionBounds -> !Word8
+ SwiftNav.SBP.Ssr: [_msgSsrGriddedCorrectionBounds_tropo_v_wet_bound_mu] :: MsgSsrGriddedCorrectionBounds -> !Word8
+ SwiftNav.SBP.Ssr: [_msgSsrGriddedCorrectionBounds_tropo_v_wet_bound_sig] :: MsgSsrGriddedCorrectionBounds -> !Word8
+ SwiftNav.SBP.Ssr: [_msgSsrOrbitClockBoundsDegradation_const_id] :: MsgSsrOrbitClockBoundsDegradation -> !Word8
+ SwiftNav.SBP.Ssr: [_msgSsrOrbitClockBoundsDegradation_header] :: MsgSsrOrbitClockBoundsDegradation -> !BoundsHeader
+ SwiftNav.SBP.Ssr: [_msgSsrOrbitClockBoundsDegradation_orbit_clock_bounds_degradation] :: MsgSsrOrbitClockBoundsDegradation -> !OrbitClockBoundDegradation
+ SwiftNav.SBP.Ssr: [_msgSsrOrbitClockBoundsDegradation_sat_bitmask] :: MsgSsrOrbitClockBoundsDegradation -> !Word64
+ SwiftNav.SBP.Ssr: [_msgSsrOrbitClockBoundsDegradation_ssr_iod] :: MsgSsrOrbitClockBoundsDegradation -> !Word8
+ SwiftNav.SBP.Ssr: [_msgSsrOrbitClockBounds_const_id] :: MsgSsrOrbitClockBounds -> !Word8
+ SwiftNav.SBP.Ssr: [_msgSsrOrbitClockBounds_header] :: MsgSsrOrbitClockBounds -> !BoundsHeader
+ SwiftNav.SBP.Ssr: [_msgSsrOrbitClockBounds_n_sats] :: MsgSsrOrbitClockBounds -> !Word8
+ SwiftNav.SBP.Ssr: [_msgSsrOrbitClockBounds_orbit_clock_bounds] :: MsgSsrOrbitClockBounds -> ![OrbitClockBound]
+ SwiftNav.SBP.Ssr: [_msgSsrOrbitClockBounds_ssr_iod] :: MsgSsrOrbitClockBounds -> !Word8
+ SwiftNav.SBP.Ssr: [_msgSsrStecCorrection_header] :: MsgSsrStecCorrection -> !BoundsHeader
+ SwiftNav.SBP.Ssr: [_msgSsrStecCorrection_n_sats] :: MsgSsrStecCorrection -> !Word8
+ SwiftNav.SBP.Ssr: [_msgSsrStecCorrection_ssr_iod_atmo] :: MsgSsrStecCorrection -> !Word8
+ SwiftNav.SBP.Ssr: [_msgSsrStecCorrection_stec_sat_list] :: MsgSsrStecCorrection -> ![STECSatElement]
+ SwiftNav.SBP.Ssr: [_msgSsrStecCorrection_tile_id] :: MsgSsrStecCorrection -> !Word16
+ SwiftNav.SBP.Ssr: [_msgSsrStecCorrection_tile_set_id] :: MsgSsrStecCorrection -> !Word16
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinition_bitmask] :: MsgSsrTileDefinition -> !Word64
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinition_cols] :: MsgSsrTileDefinition -> !Word16
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinition_corner_nw_lat] :: MsgSsrTileDefinition -> !Int16
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinition_corner_nw_lon] :: MsgSsrTileDefinition -> !Int16
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinition_rows] :: MsgSsrTileDefinition -> !Word16
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinition_spacing_lat] :: MsgSsrTileDefinition -> !Word16
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinition_spacing_lon] :: MsgSsrTileDefinition -> !Word16
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinition_ssr_sol_id] :: MsgSsrTileDefinition -> !Word8
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinition_tile_id] :: MsgSsrTileDefinition -> !Word16
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinition_tile_set_id] :: MsgSsrTileDefinition -> !Word16
+ SwiftNav.SBP.Ssr: [_orbitClockBoundDegradation_clock_bound_mu_dot] :: OrbitClockBoundDegradation -> !Word8
+ SwiftNav.SBP.Ssr: [_orbitClockBoundDegradation_clock_bound_sig_dot] :: OrbitClockBoundDegradation -> !Word8
+ SwiftNav.SBP.Ssr: [_orbitClockBoundDegradation_orb_along_bound_mu_dot] :: OrbitClockBoundDegradation -> !Word8
+ SwiftNav.SBP.Ssr: [_orbitClockBoundDegradation_orb_along_bound_sig_dot] :: OrbitClockBoundDegradation -> !Word8
+ SwiftNav.SBP.Ssr: [_orbitClockBoundDegradation_orb_cross_bound_mu_dot] :: OrbitClockBoundDegradation -> !Word8
+ SwiftNav.SBP.Ssr: [_orbitClockBoundDegradation_orb_cross_bound_sig_dot] :: OrbitClockBoundDegradation -> !Word8
+ SwiftNav.SBP.Ssr: [_orbitClockBoundDegradation_orb_radial_bound_mu_dot] :: OrbitClockBoundDegradation -> !Word8
+ SwiftNav.SBP.Ssr: [_orbitClockBoundDegradation_orb_radial_bound_sig_dot] :: OrbitClockBoundDegradation -> !Word8
+ SwiftNav.SBP.Ssr: [_orbitClockBound_clock_bound_mu] :: OrbitClockBound -> !Word8
+ SwiftNav.SBP.Ssr: [_orbitClockBound_clock_bound_sig] :: OrbitClockBound -> !Word8
+ SwiftNav.SBP.Ssr: [_orbitClockBound_orb_along_bound_mu] :: OrbitClockBound -> !Word8
+ SwiftNav.SBP.Ssr: [_orbitClockBound_orb_along_bound_sig] :: OrbitClockBound -> !Word8
+ SwiftNav.SBP.Ssr: [_orbitClockBound_orb_cross_bound_mu] :: OrbitClockBound -> !Word8
+ SwiftNav.SBP.Ssr: [_orbitClockBound_orb_cross_bound_sig] :: OrbitClockBound -> !Word8
+ SwiftNav.SBP.Ssr: [_orbitClockBound_orb_radial_bound_mu] :: OrbitClockBound -> !Word8
+ SwiftNav.SBP.Ssr: [_orbitClockBound_orb_radial_bound_sig] :: OrbitClockBound -> !Word8
+ SwiftNav.SBP.Ssr: [_orbitClockBound_sat_id] :: OrbitClockBound -> !Word8
+ SwiftNav.SBP.Ssr: [_sTECSatElementIntegrity_stec_bound_mu] :: STECSatElementIntegrity -> !Word8
+ SwiftNav.SBP.Ssr: [_sTECSatElementIntegrity_stec_bound_mu_dot] :: STECSatElementIntegrity -> !Word8
+ SwiftNav.SBP.Ssr: [_sTECSatElementIntegrity_stec_bound_sig] :: STECSatElementIntegrity -> !Word8
+ SwiftNav.SBP.Ssr: [_sTECSatElementIntegrity_stec_bound_sig_dot] :: STECSatElementIntegrity -> !Word8
+ SwiftNav.SBP.Ssr: [_sTECSatElementIntegrity_stec_residual] :: STECSatElementIntegrity -> !STECResidual
+ SwiftNav.SBP.Ssr: boundsHeader_num_msgs :: Lens' BoundsHeader Word8
+ SwiftNav.SBP.Ssr: boundsHeader_seq_num :: Lens' BoundsHeader Word8
+ SwiftNav.SBP.Ssr: boundsHeader_sol_id :: Lens' BoundsHeader Word8
+ SwiftNav.SBP.Ssr: boundsHeader_time :: Lens' BoundsHeader GpsTimeSec
+ SwiftNav.SBP.Ssr: boundsHeader_update_interval :: Lens' BoundsHeader Word8
+ SwiftNav.SBP.Ssr: codePhaseBiasesSatSig_code_bias_bound_mu :: Lens' CodePhaseBiasesSatSig Word8
+ SwiftNav.SBP.Ssr: codePhaseBiasesSatSig_code_bias_bound_sig :: Lens' CodePhaseBiasesSatSig Word8
+ SwiftNav.SBP.Ssr: codePhaseBiasesSatSig_phase_bias_bound_mu :: Lens' CodePhaseBiasesSatSig Word8
+ SwiftNav.SBP.Ssr: codePhaseBiasesSatSig_phase_bias_bound_sig :: Lens' CodePhaseBiasesSatSig Word8
+ SwiftNav.SBP.Ssr: codePhaseBiasesSatSig_sat_id :: Lens' CodePhaseBiasesSatSig Word8
+ SwiftNav.SBP.Ssr: codePhaseBiasesSatSig_signal_id :: Lens' CodePhaseBiasesSatSig Word8
+ SwiftNav.SBP.Ssr: data BoundsHeader
+ SwiftNav.SBP.Ssr: data CodePhaseBiasesSatSig
+ SwiftNav.SBP.Ssr: data OrbitClockBound
+ SwiftNav.SBP.Ssr: data OrbitClockBoundDegradation
+ SwiftNav.SBP.Ssr: data STECSatElementIntegrity
+ SwiftNav.SBP.Ssr: instance Data.Aeson.Types.FromJSON.FromJSON SwiftNav.SBP.Ssr.BoundsHeader
+ SwiftNav.SBP.Ssr: instance Data.Aeson.Types.FromJSON.FromJSON SwiftNav.SBP.Ssr.CodePhaseBiasesSatSig
+ SwiftNav.SBP.Ssr: instance Data.Aeson.Types.FromJSON.FromJSON SwiftNav.SBP.Ssr.OrbitClockBound
+ SwiftNav.SBP.Ssr: instance Data.Aeson.Types.FromJSON.FromJSON SwiftNav.SBP.Ssr.OrbitClockBoundDegradation
+ SwiftNav.SBP.Ssr: instance Data.Aeson.Types.FromJSON.FromJSON SwiftNav.SBP.Ssr.STECSatElementIntegrity
+ SwiftNav.SBP.Ssr: instance Data.Aeson.Types.ToJSON.ToJSON SwiftNav.SBP.Ssr.BoundsHeader
+ SwiftNav.SBP.Ssr: instance Data.Aeson.Types.ToJSON.ToJSON SwiftNav.SBP.Ssr.CodePhaseBiasesSatSig
+ SwiftNav.SBP.Ssr: instance Data.Aeson.Types.ToJSON.ToJSON SwiftNav.SBP.Ssr.OrbitClockBound
+ SwiftNav.SBP.Ssr: instance Data.Aeson.Types.ToJSON.ToJSON SwiftNav.SBP.Ssr.OrbitClockBoundDegradation
+ SwiftNav.SBP.Ssr: instance Data.Aeson.Types.ToJSON.ToJSON SwiftNav.SBP.Ssr.STECSatElementIntegrity
+ SwiftNav.SBP.Ssr: instance Data.Binary.Class.Binary SwiftNav.SBP.Ssr.BoundsHeader
+ SwiftNav.SBP.Ssr: instance Data.Binary.Class.Binary SwiftNav.SBP.Ssr.CodePhaseBiasesSatSig
+ SwiftNav.SBP.Ssr: instance Data.Binary.Class.Binary SwiftNav.SBP.Ssr.OrbitClockBound
+ SwiftNav.SBP.Ssr: instance Data.Binary.Class.Binary SwiftNav.SBP.Ssr.OrbitClockBoundDegradation
+ SwiftNav.SBP.Ssr: instance Data.Binary.Class.Binary SwiftNav.SBP.Ssr.STECSatElementIntegrity
+ SwiftNav.SBP.Ssr: instance GHC.Classes.Eq SwiftNav.SBP.Ssr.BoundsHeader
+ SwiftNav.SBP.Ssr: instance GHC.Classes.Eq SwiftNav.SBP.Ssr.CodePhaseBiasesSatSig
+ SwiftNav.SBP.Ssr: instance GHC.Classes.Eq SwiftNav.SBP.Ssr.OrbitClockBound
+ SwiftNav.SBP.Ssr: instance GHC.Classes.Eq SwiftNav.SBP.Ssr.OrbitClockBoundDegradation
+ SwiftNav.SBP.Ssr: instance GHC.Classes.Eq SwiftNav.SBP.Ssr.STECSatElementIntegrity
+ SwiftNav.SBP.Ssr: instance GHC.Read.Read SwiftNav.SBP.Ssr.BoundsHeader
+ SwiftNav.SBP.Ssr: instance GHC.Read.Read SwiftNav.SBP.Ssr.CodePhaseBiasesSatSig
+ SwiftNav.SBP.Ssr: instance GHC.Read.Read SwiftNav.SBP.Ssr.OrbitClockBound
+ SwiftNav.SBP.Ssr: instance GHC.Read.Read SwiftNav.SBP.Ssr.OrbitClockBoundDegradation
+ SwiftNav.SBP.Ssr: instance GHC.Read.Read SwiftNav.SBP.Ssr.STECSatElementIntegrity
+ SwiftNav.SBP.Ssr: instance GHC.Show.Show SwiftNav.SBP.Ssr.BoundsHeader
+ SwiftNav.SBP.Ssr: instance GHC.Show.Show SwiftNav.SBP.Ssr.CodePhaseBiasesSatSig
+ SwiftNav.SBP.Ssr: instance GHC.Show.Show SwiftNav.SBP.Ssr.OrbitClockBound
+ SwiftNav.SBP.Ssr: instance GHC.Show.Show SwiftNav.SBP.Ssr.OrbitClockBoundDegradation
+ SwiftNav.SBP.Ssr: instance GHC.Show.Show SwiftNav.SBP.Ssr.STECSatElementIntegrity
+ SwiftNav.SBP.Ssr: msgSsrCodePhaseBiasesBounds_const_id :: Lens' MsgSsrCodePhaseBiasesBounds Word8
+ SwiftNav.SBP.Ssr: msgSsrCodePhaseBiasesBounds_header :: Lens' MsgSsrCodePhaseBiasesBounds BoundsHeader
+ SwiftNav.SBP.Ssr: msgSsrCodePhaseBiasesBounds_n_sats_signals :: Lens' MsgSsrCodePhaseBiasesBounds Word8
+ SwiftNav.SBP.Ssr: msgSsrCodePhaseBiasesBounds_satellites_signals :: Lens' MsgSsrCodePhaseBiasesBounds [CodePhaseBiasesSatSig]
+ SwiftNav.SBP.Ssr: msgSsrCodePhaseBiasesBounds_ssr_iod :: Lens' MsgSsrCodePhaseBiasesBounds Word8
+ SwiftNav.SBP.Ssr: msgSsrGriddedCorrectionBounds_grid_point_id :: Lens' MsgSsrGriddedCorrectionBounds Word16
+ SwiftNav.SBP.Ssr: msgSsrGriddedCorrectionBounds_header :: Lens' MsgSsrGriddedCorrectionBounds BoundsHeader
+ SwiftNav.SBP.Ssr: msgSsrGriddedCorrectionBounds_n_sats :: Lens' MsgSsrGriddedCorrectionBounds Word8
+ SwiftNav.SBP.Ssr: msgSsrGriddedCorrectionBounds_ssr_iod_atmo :: Lens' MsgSsrGriddedCorrectionBounds Word8
+ SwiftNav.SBP.Ssr: msgSsrGriddedCorrectionBounds_stec_sat_list :: Lens' MsgSsrGriddedCorrectionBounds [STECSatElementIntegrity]
+ SwiftNav.SBP.Ssr: msgSsrGriddedCorrectionBounds_tile_id :: Lens' MsgSsrGriddedCorrectionBounds Word16
+ SwiftNav.SBP.Ssr: msgSsrGriddedCorrectionBounds_tile_set_id :: Lens' MsgSsrGriddedCorrectionBounds Word16
+ SwiftNav.SBP.Ssr: msgSsrGriddedCorrectionBounds_tropo_delay_correction :: Lens' MsgSsrGriddedCorrectionBounds TroposphericDelayCorrection
+ SwiftNav.SBP.Ssr: msgSsrGriddedCorrectionBounds_tropo_qi :: Lens' MsgSsrGriddedCorrectionBounds Word8
+ SwiftNav.SBP.Ssr: msgSsrGriddedCorrectionBounds_tropo_v_hydro_bound_mu :: Lens' MsgSsrGriddedCorrectionBounds Word8
+ SwiftNav.SBP.Ssr: msgSsrGriddedCorrectionBounds_tropo_v_hydro_bound_sig :: Lens' MsgSsrGriddedCorrectionBounds Word8
+ SwiftNav.SBP.Ssr: msgSsrGriddedCorrectionBounds_tropo_v_wet_bound_mu :: Lens' MsgSsrGriddedCorrectionBounds Word8
+ SwiftNav.SBP.Ssr: msgSsrGriddedCorrectionBounds_tropo_v_wet_bound_sig :: Lens' MsgSsrGriddedCorrectionBounds Word8
+ SwiftNav.SBP.Ssr: msgSsrOrbitClockBoundsDegradation_const_id :: Lens' MsgSsrOrbitClockBoundsDegradation Word8
+ SwiftNav.SBP.Ssr: msgSsrOrbitClockBoundsDegradation_header :: Lens' MsgSsrOrbitClockBoundsDegradation BoundsHeader
+ SwiftNav.SBP.Ssr: msgSsrOrbitClockBoundsDegradation_orbit_clock_bounds_degradation :: Lens' MsgSsrOrbitClockBoundsDegradation OrbitClockBoundDegradation
+ SwiftNav.SBP.Ssr: msgSsrOrbitClockBoundsDegradation_sat_bitmask :: Lens' MsgSsrOrbitClockBoundsDegradation Word64
+ SwiftNav.SBP.Ssr: msgSsrOrbitClockBoundsDegradation_ssr_iod :: Lens' MsgSsrOrbitClockBoundsDegradation Word8
+ SwiftNav.SBP.Ssr: msgSsrOrbitClockBounds_const_id :: Lens' MsgSsrOrbitClockBounds Word8
+ SwiftNav.SBP.Ssr: msgSsrOrbitClockBounds_header :: Lens' MsgSsrOrbitClockBounds BoundsHeader
+ SwiftNav.SBP.Ssr: msgSsrOrbitClockBounds_n_sats :: Lens' MsgSsrOrbitClockBounds Word8
+ SwiftNav.SBP.Ssr: msgSsrOrbitClockBounds_orbit_clock_bounds :: Lens' MsgSsrOrbitClockBounds [OrbitClockBound]
+ SwiftNav.SBP.Ssr: msgSsrOrbitClockBounds_ssr_iod :: Lens' MsgSsrOrbitClockBounds Word8
+ SwiftNav.SBP.Ssr: msgSsrStecCorrection_header :: Lens' MsgSsrStecCorrection BoundsHeader
+ SwiftNav.SBP.Ssr: msgSsrStecCorrection_n_sats :: Lens' MsgSsrStecCorrection Word8
+ SwiftNav.SBP.Ssr: msgSsrStecCorrection_ssr_iod_atmo :: Lens' MsgSsrStecCorrection Word8
+ SwiftNav.SBP.Ssr: msgSsrStecCorrection_stec_sat_list :: Lens' MsgSsrStecCorrection [STECSatElement]
+ SwiftNav.SBP.Ssr: msgSsrStecCorrection_tile_id :: Lens' MsgSsrStecCorrection Word16
+ SwiftNav.SBP.Ssr: msgSsrStecCorrection_tile_set_id :: Lens' MsgSsrStecCorrection Word16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinition_bitmask :: Lens' MsgSsrTileDefinition Word64
+ SwiftNav.SBP.Ssr: msgSsrTileDefinition_cols :: Lens' MsgSsrTileDefinition Word16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinition_corner_nw_lat :: Lens' MsgSsrTileDefinition Int16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinition_corner_nw_lon :: Lens' MsgSsrTileDefinition Int16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinition_rows :: Lens' MsgSsrTileDefinition Word16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinition_spacing_lat :: Lens' MsgSsrTileDefinition Word16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinition_spacing_lon :: Lens' MsgSsrTileDefinition Word16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinition_ssr_sol_id :: Lens' MsgSsrTileDefinition Word8
+ SwiftNav.SBP.Ssr: msgSsrTileDefinition_tile_id :: Lens' MsgSsrTileDefinition Word16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinition_tile_set_id :: Lens' MsgSsrTileDefinition Word16
+ SwiftNav.SBP.Ssr: orbitClockBoundDegradation_clock_bound_mu_dot :: Lens' OrbitClockBoundDegradation Word8
+ SwiftNav.SBP.Ssr: orbitClockBoundDegradation_clock_bound_sig_dot :: Lens' OrbitClockBoundDegradation Word8
+ SwiftNav.SBP.Ssr: orbitClockBoundDegradation_orb_along_bound_mu_dot :: Lens' OrbitClockBoundDegradation Word8
+ SwiftNav.SBP.Ssr: orbitClockBoundDegradation_orb_along_bound_sig_dot :: Lens' OrbitClockBoundDegradation Word8
+ SwiftNav.SBP.Ssr: orbitClockBoundDegradation_orb_cross_bound_mu_dot :: Lens' OrbitClockBoundDegradation Word8
+ SwiftNav.SBP.Ssr: orbitClockBoundDegradation_orb_cross_bound_sig_dot :: Lens' OrbitClockBoundDegradation Word8
+ SwiftNav.SBP.Ssr: orbitClockBoundDegradation_orb_radial_bound_mu_dot :: Lens' OrbitClockBoundDegradation Word8
+ SwiftNav.SBP.Ssr: orbitClockBoundDegradation_orb_radial_bound_sig_dot :: Lens' OrbitClockBoundDegradation Word8
+ SwiftNav.SBP.Ssr: orbitClockBound_clock_bound_mu :: Lens' OrbitClockBound Word8
+ SwiftNav.SBP.Ssr: orbitClockBound_clock_bound_sig :: Lens' OrbitClockBound Word8
+ SwiftNav.SBP.Ssr: orbitClockBound_orb_along_bound_mu :: Lens' OrbitClockBound Word8
+ SwiftNav.SBP.Ssr: orbitClockBound_orb_along_bound_sig :: Lens' OrbitClockBound Word8
+ SwiftNav.SBP.Ssr: orbitClockBound_orb_cross_bound_mu :: Lens' OrbitClockBound Word8
+ SwiftNav.SBP.Ssr: orbitClockBound_orb_cross_bound_sig :: Lens' OrbitClockBound Word8
+ SwiftNav.SBP.Ssr: orbitClockBound_orb_radial_bound_mu :: Lens' OrbitClockBound Word8
+ SwiftNav.SBP.Ssr: orbitClockBound_orb_radial_bound_sig :: Lens' OrbitClockBound Word8
+ SwiftNav.SBP.Ssr: orbitClockBound_sat_id :: Lens' OrbitClockBound Word8
+ SwiftNav.SBP.Ssr: sTECSatElementIntegrity_stec_bound_mu :: Lens' STECSatElementIntegrity Word8
+ SwiftNav.SBP.Ssr: sTECSatElementIntegrity_stec_bound_mu_dot :: Lens' STECSatElementIntegrity Word8
+ SwiftNav.SBP.Ssr: sTECSatElementIntegrity_stec_bound_sig :: Lens' STECSatElementIntegrity Word8
+ SwiftNav.SBP.Ssr: sTECSatElementIntegrity_stec_bound_sig_dot :: Lens' STECSatElementIntegrity Word8
+ SwiftNav.SBP.Ssr: sTECSatElementIntegrity_stec_residual :: Lens' STECSatElementIntegrity STECResidual
- SwiftNav.SBP.Integrity: MsgSsrFlagHighLevel :: ![Word8] -> MsgSsrFlagHighLevel
+ SwiftNav.SBP.Integrity: MsgSsrFlagHighLevel :: !GpsTimeSec -> !GpsTimeSec -> !Word8 -> !Word16 -> !Word16 -> !Word8 -> !Word8 -> !Word8 -> !Word8 -> ![Word8] -> !Word8 -> !Word8 -> !Word8 -> !Word8 -> MsgSsrFlagHighLevel
- SwiftNav.SBP.Integrity: MsgSsrFlagIonoGridPointSatLos :: ![Word8] -> MsgSsrFlagIonoGridPointSatLos
+ SwiftNav.SBP.Integrity: MsgSsrFlagIonoGridPointSatLos :: !IntegritySSRHeader -> !Word16 -> !Word8 -> ![SvId] -> MsgSsrFlagIonoGridPointSatLos
- SwiftNav.SBP.Integrity: MsgSsrFlagIonoGridPoints :: ![Word8] -> MsgSsrFlagIonoGridPoints
+ SwiftNav.SBP.Integrity: MsgSsrFlagIonoGridPoints :: !IntegritySSRHeader -> !Word8 -> ![Word16] -> MsgSsrFlagIonoGridPoints
- SwiftNav.SBP.Integrity: MsgSsrFlagIonoTileSatLos :: ![Word8] -> MsgSsrFlagIonoTileSatLos
+ SwiftNav.SBP.Integrity: MsgSsrFlagIonoTileSatLos :: !IntegritySSRHeader -> !Word8 -> ![SvId] -> MsgSsrFlagIonoTileSatLos
- SwiftNav.SBP.Integrity: MsgSsrFlagSatellites :: ![Word8] -> MsgSsrFlagSatellites
+ SwiftNav.SBP.Integrity: MsgSsrFlagSatellites :: !GpsTimeSec -> !Word8 -> !Word8 -> !Word8 -> !Word8 -> !Word8 -> !Word8 -> ![Word8] -> MsgSsrFlagSatellites
- SwiftNav.SBP.Integrity: MsgSsrFlagTropoGridPoints :: ![Word8] -> MsgSsrFlagTropoGridPoints
+ SwiftNav.SBP.Integrity: MsgSsrFlagTropoGridPoints :: !IntegritySSRHeader -> !Word8 -> ![Word16] -> MsgSsrFlagTropoGridPoints
- SwiftNav.SBP.Navigation: MsgReferenceFrameParam :: ![Word8] -> MsgReferenceFrameParam
+ SwiftNav.SBP.Navigation: MsgReferenceFrameParam :: !Word8 -> !Text -> !Text -> !Word8 -> !Word16 -> !Word16 -> !Int32 -> !Int32 -> !Int32 -> !Int32 -> !Int32 -> !Int32 -> !Int32 -> !Int32 -> !Int32 -> !Int32 -> !Int32 -> !Int32 -> !Int32 -> !Int16 -> MsgReferenceFrameParam
- SwiftNav.SBP.Navigation: MsgUtcLeapSecond :: ![Word8] -> MsgUtcLeapSecond
+ SwiftNav.SBP.Navigation: MsgUtcLeapSecond :: !Int16 -> !Int16 -> !Int8 -> !Int8 -> !Word16 -> !Word16 -> !Word16 -> !Word8 -> !Int8 -> MsgUtcLeapSecond
- SwiftNav.SBP.Ssr: MsgSsrCodePhaseBiasesBounds :: ![Word8] -> MsgSsrCodePhaseBiasesBounds
+ SwiftNav.SBP.Ssr: MsgSsrCodePhaseBiasesBounds :: !BoundsHeader -> !Word8 -> !Word8 -> !Word8 -> ![CodePhaseBiasesSatSig] -> MsgSsrCodePhaseBiasesBounds
- SwiftNav.SBP.Ssr: MsgSsrGriddedCorrectionBounds :: ![Word8] -> MsgSsrGriddedCorrectionBounds
+ SwiftNav.SBP.Ssr: MsgSsrGriddedCorrectionBounds :: !BoundsHeader -> !Word8 -> !Word16 -> !Word16 -> !Word8 -> !Word16 -> !TroposphericDelayCorrection -> !Word8 -> !Word8 -> !Word8 -> !Word8 -> !Word8 -> ![STECSatElementIntegrity] -> MsgSsrGriddedCorrectionBounds
- SwiftNav.SBP.Ssr: MsgSsrOrbitClockBounds :: ![Word8] -> MsgSsrOrbitClockBounds
+ SwiftNav.SBP.Ssr: MsgSsrOrbitClockBounds :: !BoundsHeader -> !Word8 -> !Word8 -> !Word8 -> ![OrbitClockBound] -> MsgSsrOrbitClockBounds
- SwiftNav.SBP.Ssr: MsgSsrOrbitClockBoundsDegradation :: ![Word8] -> MsgSsrOrbitClockBoundsDegradation
+ SwiftNav.SBP.Ssr: MsgSsrOrbitClockBoundsDegradation :: !BoundsHeader -> !Word8 -> !Word8 -> !Word64 -> !OrbitClockBoundDegradation -> MsgSsrOrbitClockBoundsDegradation
- SwiftNav.SBP.Ssr: MsgSsrStecCorrection :: ![Word8] -> MsgSsrStecCorrection
+ SwiftNav.SBP.Ssr: MsgSsrStecCorrection :: !BoundsHeader -> !Word8 -> !Word16 -> !Word16 -> !Word8 -> ![STECSatElement] -> MsgSsrStecCorrection
- SwiftNav.SBP.Ssr: MsgSsrTileDefinition :: ![Word8] -> MsgSsrTileDefinition
+ SwiftNav.SBP.Ssr: MsgSsrTileDefinition :: !Word8 -> !Word16 -> !Word16 -> !Int16 -> !Int16 -> !Word16 -> !Word16 -> !Word16 -> !Word16 -> !Word64 -> MsgSsrTileDefinition
- SwiftNav.SBP.Types: class HasMsg c_af31
+ SwiftNav.SBP.Types: class HasMsg c_af3S
- SwiftNav.SBP.Types: msg :: HasMsg c_af31 => Lens' c_af31 Msg
+ SwiftNav.SBP.Types: msg :: HasMsg c_af3S => Lens' c_af3S Msg
- SwiftNav.SBP.Types: msgSBPCrc :: HasMsg c_af31 => Lens' c_af31 Word16
+ SwiftNav.SBP.Types: msgSBPCrc :: HasMsg c_af3S => Lens' c_af3S Word16
- SwiftNav.SBP.Types: msgSBPLen :: HasMsg c_af31 => Lens' c_af31 Word8
+ SwiftNav.SBP.Types: msgSBPLen :: HasMsg c_af3S => Lens' c_af3S Word8
- SwiftNav.SBP.Types: msgSBPPayload :: HasMsg c_af31 => Lens' c_af31 Bytes
+ SwiftNav.SBP.Types: msgSBPPayload :: HasMsg c_af3S => Lens' c_af3S Bytes
- SwiftNav.SBP.Types: msgSBPSender :: HasMsg c_af31 => Lens' c_af31 Word16
+ SwiftNav.SBP.Types: msgSBPSender :: HasMsg c_af3S => Lens' c_af3S Word16
- SwiftNav.SBP.Types: msgSBPType :: HasMsg c_af31 => Lens' c_af31 Word16
+ SwiftNav.SBP.Types: msgSBPType :: HasMsg c_af3S => Lens' c_af3S Word16

Files

sbp.cabal view
@@ -1,5 +1,5 @@ name:                  sbp-version:               4.4.0+version:               4.5.0 synopsis:              SwiftNav's SBP Library homepage:              https://github.com/swift-nav/libsbp license:               MIT
src/SwiftNav/SBP/Integrity.hs view
@@ -36,20 +36,113 @@ {-# ANN module ("HLint: ignore Use newtype instead of data"::String) #-}  +data IntegritySSRHeader = IntegritySSRHeader+  { _integritySSRHeader_obs_time  :: !GpsTimeSec+    -- ^ GNSS reference time of the observation used to generate the flag.+  , _integritySSRHeader_num_msgs  :: !Word8+    -- ^ Number of messages in the dataset+  , _integritySSRHeader_seq_num   :: !Word8+    -- ^ Position of this message in the dataset+  , _integritySSRHeader_ssr_sol_id :: !Word8+    -- ^ SSR Solution ID.+  , _integritySSRHeader_tile_set_id :: !Word16+    -- ^ Unique identifier of the set this tile belongs to.+  , _integritySSRHeader_tile_id   :: !Word16+    -- ^ Unique identifier of this tile in the tile set.+  , _integritySSRHeader_chain_id  :: !Word8+    -- ^ Chain and type of flag.+  } deriving ( Show, Read, Eq )++instance Binary IntegritySSRHeader where+  get = do+    _integritySSRHeader_obs_time <- get+    _integritySSRHeader_num_msgs <- getWord8+    _integritySSRHeader_seq_num <- getWord8+    _integritySSRHeader_ssr_sol_id <- getWord8+    _integritySSRHeader_tile_set_id <- getWord16le+    _integritySSRHeader_tile_id <- getWord16le+    _integritySSRHeader_chain_id <- getWord8+    pure IntegritySSRHeader {..}++  put IntegritySSRHeader {..} = do+    put _integritySSRHeader_obs_time+    putWord8 _integritySSRHeader_num_msgs+    putWord8 _integritySSRHeader_seq_num+    putWord8 _integritySSRHeader_ssr_sol_id+    putWord16le _integritySSRHeader_tile_set_id+    putWord16le _integritySSRHeader_tile_id+    putWord8 _integritySSRHeader_chain_id++$(makeJSON "_integritySSRHeader_" ''IntegritySSRHeader)+$(makeLenses ''IntegritySSRHeader)+ msgSsrFlagHighLevel :: Word16 msgSsrFlagHighLevel = 0x0BB9  data MsgSsrFlagHighLevel = MsgSsrFlagHighLevel-  { _msgSsrFlagHighLevel_stub :: ![Word8]+  { _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_ssr_sol_id                :: !Word8+    -- ^ SSR Solution ID.+  , _msgSsrFlagHighLevel_tile_set_id               :: !Word16+    -- ^ Unique identifier of the set this tile belongs to.+  , _msgSsrFlagHighLevel_tile_id                   :: !Word16+    -- ^ Unique identifier of this tile in the tile set.+  , _msgSsrFlagHighLevel_chain_id                  :: !Word8+    -- ^ Chain and type of flag.+  , _msgSsrFlagHighLevel_use_gps_sat               :: !Word8+    -- ^ Use GPS satellites.+  , _msgSsrFlagHighLevel_use_gal_sat               :: !Word8+    -- ^ Use GAL satellites.+  , _msgSsrFlagHighLevel_use_bds_sat               :: !Word8+    -- ^ Use BDS satellites.+  , _msgSsrFlagHighLevel_reserved                  :: ![Word8]+    -- ^ Reserved+  , _msgSsrFlagHighLevel_use_tropo_grid_points     :: !Word8+    -- ^ Use tropo grid points.+  , _msgSsrFlagHighLevel_use_iono_grid_points      :: !Word8+    -- ^ Use iono grid points.+  , _msgSsrFlagHighLevel_use_iono_tile_sat_los     :: !Word8+    -- ^ Use iono tile satellite LoS.+  , _msgSsrFlagHighLevel_use_iono_grid_point_sat_los :: !Word8+    -- ^ Use iono grid point satellite LoS.   } deriving ( Show, Read, Eq )  instance Binary MsgSsrFlagHighLevel where   get = do-    _msgSsrFlagHighLevel_stub <- whileM (not <$> isEmpty) getWord8+    _msgSsrFlagHighLevel_obs_time <- get+    _msgSsrFlagHighLevel_corr_time <- get+    _msgSsrFlagHighLevel_ssr_sol_id <- getWord8+    _msgSsrFlagHighLevel_tile_set_id <- getWord16le+    _msgSsrFlagHighLevel_tile_id <- getWord16le+    _msgSsrFlagHighLevel_chain_id <- getWord8+    _msgSsrFlagHighLevel_use_gps_sat <- getWord8+    _msgSsrFlagHighLevel_use_gal_sat <- getWord8+    _msgSsrFlagHighLevel_use_bds_sat <- getWord8+    _msgSsrFlagHighLevel_reserved <- replicateM 6 getWord8+    _msgSsrFlagHighLevel_use_tropo_grid_points <- getWord8+    _msgSsrFlagHighLevel_use_iono_grid_points <- getWord8+    _msgSsrFlagHighLevel_use_iono_tile_sat_los <- getWord8+    _msgSsrFlagHighLevel_use_iono_grid_point_sat_los <- getWord8     pure MsgSsrFlagHighLevel {..}    put MsgSsrFlagHighLevel {..} = do-    mapM_ putWord8 _msgSsrFlagHighLevel_stub+    put _msgSsrFlagHighLevel_obs_time+    put _msgSsrFlagHighLevel_corr_time+    putWord8 _msgSsrFlagHighLevel_ssr_sol_id+    putWord16le _msgSsrFlagHighLevel_tile_set_id+    putWord16le _msgSsrFlagHighLevel_tile_id+    putWord8 _msgSsrFlagHighLevel_chain_id+    putWord8 _msgSsrFlagHighLevel_use_gps_sat+    putWord8 _msgSsrFlagHighLevel_use_gal_sat+    putWord8 _msgSsrFlagHighLevel_use_bds_sat+    mapM_ putWord8 _msgSsrFlagHighLevel_reserved+    putWord8 _msgSsrFlagHighLevel_use_tropo_grid_points+    putWord8 _msgSsrFlagHighLevel_use_iono_grid_points+    putWord8 _msgSsrFlagHighLevel_use_iono_tile_sat_los+    putWord8 _msgSsrFlagHighLevel_use_iono_grid_point_sat_los  $(makeSBP 'msgSsrFlagHighLevel ''MsgSsrFlagHighLevel) $(makeJSON "_msgSsrFlagHighLevel_" ''MsgSsrFlagHighLevel)@@ -59,16 +152,45 @@ msgSsrFlagSatellites = 0x0BBD  data MsgSsrFlagSatellites = MsgSsrFlagSatellites-  { _msgSsrFlagSatellites_stub :: ![Word8]+  { _msgSsrFlagSatellites_obs_time    :: !GpsTimeSec+    -- ^ GNSS reference time of the observation used to generate the flag.+  , _msgSsrFlagSatellites_num_msgs    :: !Word8+    -- ^ Number of messages in the dataset+  , _msgSsrFlagSatellites_seq_num     :: !Word8+    -- ^ Position of this message in the dataset+  , _msgSsrFlagSatellites_ssr_sol_id  :: !Word8+    -- ^ SSR Solution ID.+  , _msgSsrFlagSatellites_chain_id    :: !Word8+    -- ^ Chain and type of flag.+  , _msgSsrFlagSatellites_const_id    :: !Word8+    -- ^ Constellation ID.+  , _msgSsrFlagSatellites_n_faulty_sats :: !Word8+    -- ^ Number of faulty satellites.+  , _msgSsrFlagSatellites_faulty_sats :: ![Word8]+    -- ^ List of faulty satellites.   } deriving ( Show, Read, Eq )  instance Binary MsgSsrFlagSatellites where   get = do-    _msgSsrFlagSatellites_stub <- whileM (not <$> isEmpty) getWord8+    _msgSsrFlagSatellites_obs_time <- get+    _msgSsrFlagSatellites_num_msgs <- getWord8+    _msgSsrFlagSatellites_seq_num <- getWord8+    _msgSsrFlagSatellites_ssr_sol_id <- getWord8+    _msgSsrFlagSatellites_chain_id <- getWord8+    _msgSsrFlagSatellites_const_id <- getWord8+    _msgSsrFlagSatellites_n_faulty_sats <- getWord8+    _msgSsrFlagSatellites_faulty_sats <- whileM (not <$> isEmpty) getWord8     pure MsgSsrFlagSatellites {..}    put MsgSsrFlagSatellites {..} = do-    mapM_ putWord8 _msgSsrFlagSatellites_stub+    put _msgSsrFlagSatellites_obs_time+    putWord8 _msgSsrFlagSatellites_num_msgs+    putWord8 _msgSsrFlagSatellites_seq_num+    putWord8 _msgSsrFlagSatellites_ssr_sol_id+    putWord8 _msgSsrFlagSatellites_chain_id+    putWord8 _msgSsrFlagSatellites_const_id+    putWord8 _msgSsrFlagSatellites_n_faulty_sats+    mapM_ putWord8 _msgSsrFlagSatellites_faulty_sats  $(makeSBP 'msgSsrFlagSatellites ''MsgSsrFlagSatellites) $(makeJSON "_msgSsrFlagSatellites_" ''MsgSsrFlagSatellites)@@ -78,16 +200,25 @@ msgSsrFlagTropoGridPoints = 0x0BC3  data MsgSsrFlagTropoGridPoints = MsgSsrFlagTropoGridPoints-  { _msgSsrFlagTropoGridPoints_stub :: ![Word8]+  { _msgSsrFlagTropoGridPoints_header        :: !IntegritySSRHeader+    -- ^ Header of an integrity message.+  , _msgSsrFlagTropoGridPoints_n_faulty_points :: !Word8+    -- ^ Number of faulty grid points.+  , _msgSsrFlagTropoGridPoints_faulty_points :: ![Word16]+    -- ^ List of faulty grid points.   } deriving ( Show, Read, Eq )  instance Binary MsgSsrFlagTropoGridPoints where   get = do-    _msgSsrFlagTropoGridPoints_stub <- whileM (not <$> isEmpty) getWord8+    _msgSsrFlagTropoGridPoints_header <- get+    _msgSsrFlagTropoGridPoints_n_faulty_points <- getWord8+    _msgSsrFlagTropoGridPoints_faulty_points <- whileM (not <$> isEmpty) getWord16le     pure MsgSsrFlagTropoGridPoints {..}    put MsgSsrFlagTropoGridPoints {..} = do-    mapM_ putWord8 _msgSsrFlagTropoGridPoints_stub+    put _msgSsrFlagTropoGridPoints_header+    putWord8 _msgSsrFlagTropoGridPoints_n_faulty_points+    mapM_ putWord16le _msgSsrFlagTropoGridPoints_faulty_points  $(makeSBP 'msgSsrFlagTropoGridPoints ''MsgSsrFlagTropoGridPoints) $(makeJSON "_msgSsrFlagTropoGridPoints_" ''MsgSsrFlagTropoGridPoints)@@ -97,16 +228,25 @@ msgSsrFlagIonoGridPoints = 0x0BC7  data MsgSsrFlagIonoGridPoints = MsgSsrFlagIonoGridPoints-  { _msgSsrFlagIonoGridPoints_stub :: ![Word8]+  { _msgSsrFlagIonoGridPoints_header        :: !IntegritySSRHeader+    -- ^ Header of an integrity message.+  , _msgSsrFlagIonoGridPoints_n_faulty_points :: !Word8+    -- ^ Number of faulty grid points.+  , _msgSsrFlagIonoGridPoints_faulty_points :: ![Word16]+    -- ^ List of faulty grid points.   } deriving ( Show, Read, Eq )  instance Binary MsgSsrFlagIonoGridPoints where   get = do-    _msgSsrFlagIonoGridPoints_stub <- whileM (not <$> isEmpty) getWord8+    _msgSsrFlagIonoGridPoints_header <- get+    _msgSsrFlagIonoGridPoints_n_faulty_points <- getWord8+    _msgSsrFlagIonoGridPoints_faulty_points <- whileM (not <$> isEmpty) getWord16le     pure MsgSsrFlagIonoGridPoints {..}    put MsgSsrFlagIonoGridPoints {..} = do-    mapM_ putWord8 _msgSsrFlagIonoGridPoints_stub+    put _msgSsrFlagIonoGridPoints_header+    putWord8 _msgSsrFlagIonoGridPoints_n_faulty_points+    mapM_ putWord16le _msgSsrFlagIonoGridPoints_faulty_points  $(makeSBP 'msgSsrFlagIonoGridPoints ''MsgSsrFlagIonoGridPoints) $(makeJSON "_msgSsrFlagIonoGridPoints_" ''MsgSsrFlagIonoGridPoints)@@ -116,16 +256,25 @@ msgSsrFlagIonoTileSatLos = 0x0BCD  data MsgSsrFlagIonoTileSatLos = MsgSsrFlagIonoTileSatLos-  { _msgSsrFlagIonoTileSatLos_stub :: ![Word8]+  { _msgSsrFlagIonoTileSatLos_header     :: !IntegritySSRHeader+    -- ^ Header of an integrity message.+  , _msgSsrFlagIonoTileSatLos_n_faulty_los :: !Word8+    -- ^ Number of faulty LOS.+  , _msgSsrFlagIonoTileSatLos_faulty_los :: ![SvId]+    -- ^ List of faulty LOS   } deriving ( Show, Read, Eq )  instance Binary MsgSsrFlagIonoTileSatLos where   get = do-    _msgSsrFlagIonoTileSatLos_stub <- whileM (not <$> isEmpty) getWord8+    _msgSsrFlagIonoTileSatLos_header <- get+    _msgSsrFlagIonoTileSatLos_n_faulty_los <- getWord8+    _msgSsrFlagIonoTileSatLos_faulty_los <- whileM (not <$> isEmpty) get     pure MsgSsrFlagIonoTileSatLos {..}    put MsgSsrFlagIonoTileSatLos {..} = do-    mapM_ putWord8 _msgSsrFlagIonoTileSatLos_stub+    put _msgSsrFlagIonoTileSatLos_header+    putWord8 _msgSsrFlagIonoTileSatLos_n_faulty_los+    mapM_ put _msgSsrFlagIonoTileSatLos_faulty_los  $(makeSBP 'msgSsrFlagIonoTileSatLos ''MsgSsrFlagIonoTileSatLos) $(makeJSON "_msgSsrFlagIonoTileSatLos_" ''MsgSsrFlagIonoTileSatLos)@@ -135,16 +284,29 @@ msgSsrFlagIonoGridPointSatLos = 0x0BD1  data MsgSsrFlagIonoGridPointSatLos = MsgSsrFlagIonoGridPointSatLos-  { _msgSsrFlagIonoGridPointSatLos_stub :: ![Word8]+  { _msgSsrFlagIonoGridPointSatLos_header      :: !IntegritySSRHeader+    -- ^ Header of an integrity message.+  , _msgSsrFlagIonoGridPointSatLos_grid_point_id :: !Word16+    -- ^ Index of the grid point.+  , _msgSsrFlagIonoGridPointSatLos_n_faulty_los :: !Word8+    -- ^ Number of faulty LOS.+  , _msgSsrFlagIonoGridPointSatLos_faulty_los  :: ![SvId]+    -- ^ List of faulty LOS   } deriving ( Show, Read, Eq )  instance Binary MsgSsrFlagIonoGridPointSatLos where   get = do-    _msgSsrFlagIonoGridPointSatLos_stub <- whileM (not <$> isEmpty) getWord8+    _msgSsrFlagIonoGridPointSatLos_header <- get+    _msgSsrFlagIonoGridPointSatLos_grid_point_id <- getWord16le+    _msgSsrFlagIonoGridPointSatLos_n_faulty_los <- getWord8+    _msgSsrFlagIonoGridPointSatLos_faulty_los <- whileM (not <$> isEmpty) get     pure MsgSsrFlagIonoGridPointSatLos {..}    put MsgSsrFlagIonoGridPointSatLos {..} = do-    mapM_ putWord8 _msgSsrFlagIonoGridPointSatLos_stub+    put _msgSsrFlagIonoGridPointSatLos_header+    putWord16le _msgSsrFlagIonoGridPointSatLos_grid_point_id+    putWord8 _msgSsrFlagIonoGridPointSatLos_n_faulty_los+    mapM_ put _msgSsrFlagIonoGridPointSatLos_faulty_los  $(makeSBP 'msgSsrFlagIonoGridPointSatLos ''MsgSsrFlagIonoGridPointSatLos) $(makeJSON "_msgSsrFlagIonoGridPointSatLos_" ''MsgSsrFlagIonoGridPointSatLos)
src/SwiftNav/SBP/Navigation.hs view
@@ -2312,16 +2312,52 @@ -- Emulates the GPS CNAV message, reserving bytes for future broadcast of the -- drift model parameters. data MsgUtcLeapSecond = MsgUtcLeapSecond-  { _msgUtcLeapSecond_stub :: ![Word8]+  { _msgUtcLeapSecond_bias_coeff     :: !Int16+    -- ^ Reserved. Bias coefficient of GPS time scale with respect to UTC drift+    -- model.+  , _msgUtcLeapSecond_drift_coeff    :: !Int16+    -- ^ Reserved. Drift coefficient of GPS time scale with respect to UTC drift+    -- model.+  , _msgUtcLeapSecond_drift_rate_coeff :: !Int8+    -- ^ Reserved. Drift rate correction coefficient of GPS time scale with+    -- respect to UTC drift model.+  , _msgUtcLeapSecond_count_before   :: !Int8+    -- ^ Leap second count before insertion.+  , _msgUtcLeapSecond_tow_s          :: !Word16+    -- ^ Reserved. Drift model reference week second.+  , _msgUtcLeapSecond_wn             :: !Word16+    -- ^ Reserved. Drift model reference week number.+  , _msgUtcLeapSecond_ref_wn         :: !Word16+    -- ^ Leap second reference week number.+  , _msgUtcLeapSecond_ref_dn         :: !Word8+    -- ^ Leap second reference day number.+  , _msgUtcLeapSecond_count_after    :: !Int8+    -- ^ Leap second count after insertion.   } deriving ( Show, Read, Eq )  instance Binary MsgUtcLeapSecond where   get = do-    _msgUtcLeapSecond_stub <- whileM (not <$> isEmpty) getWord8+    _msgUtcLeapSecond_bias_coeff <- (fromIntegral <$> getWord16le)+    _msgUtcLeapSecond_drift_coeff <- (fromIntegral <$> getWord16le)+    _msgUtcLeapSecond_drift_rate_coeff <- (fromIntegral <$> getWord8)+    _msgUtcLeapSecond_count_before <- (fromIntegral <$> getWord8)+    _msgUtcLeapSecond_tow_s <- getWord16le+    _msgUtcLeapSecond_wn <- getWord16le+    _msgUtcLeapSecond_ref_wn <- getWord16le+    _msgUtcLeapSecond_ref_dn <- getWord8+    _msgUtcLeapSecond_count_after <- (fromIntegral <$> getWord8)     pure MsgUtcLeapSecond {..}    put MsgUtcLeapSecond {..} = do-    mapM_ putWord8 _msgUtcLeapSecond_stub+    (putWord16le . fromIntegral) _msgUtcLeapSecond_bias_coeff+    (putWord16le . fromIntegral) _msgUtcLeapSecond_drift_coeff+    (putWord8 . fromIntegral) _msgUtcLeapSecond_drift_rate_coeff+    (putWord8 . fromIntegral) _msgUtcLeapSecond_count_before+    putWord16le _msgUtcLeapSecond_tow_s+    putWord16le _msgUtcLeapSecond_wn+    putWord16le _msgUtcLeapSecond_ref_wn+    putWord8 _msgUtcLeapSecond_ref_dn+    (putWord8 . fromIntegral) _msgUtcLeapSecond_count_after  $(makeSBP 'msgUtcLeapSecond ''MsgUtcLeapSecond) $(makeJSON "_msgUtcLeapSecond_" ''MsgUtcLeapSecond)@@ -2331,16 +2367,94 @@ msgReferenceFrameParam = 0x0244  data MsgReferenceFrameParam = MsgReferenceFrameParam-  { _msgReferenceFrameParam_stub :: ![Word8]+  { _msgReferenceFrameParam_ssr_iod    :: !Word8+    -- ^ SSR IOD parameter.+  , _msgReferenceFrameParam_sn         :: !Text+    -- ^ Name of source coordinate-system using the EPSG identification code.+  , _msgReferenceFrameParam_tn         :: !Text+    -- ^ Name of target coordinate-system using the EPSG identification code.+  , _msgReferenceFrameParam_sin        :: !Word8+    -- ^ System Identification Number.+  , _msgReferenceFrameParam_utn        :: !Word16+    -- ^ Utilized Transformation Message.+  , _msgReferenceFrameParam_re_t0      :: !Word16+    -- ^ Reference Epoch t0 for transformation parameter set given as Modified+    -- Julian Day (MJD) Number minus 44244 days.+  , _msgReferenceFrameParam_delta_X0   :: !Int32+    -- ^ Translation in X for Reference Epoch t0.+  , _msgReferenceFrameParam_delta_Y0   :: !Int32+    -- ^ Translation in Y for Reference Epoch t0.+  , _msgReferenceFrameParam_delta_Z0   :: !Int32+    -- ^ Translation in Z for Reference Epoch t0.+  , _msgReferenceFrameParam_theta_01   :: !Int32+    -- ^ Rotation around the X-axis for Reference Epoch t0.+  , _msgReferenceFrameParam_theta_02   :: !Int32+    -- ^ Rotation around the Y-axis for Reference Epoch t0.+  , _msgReferenceFrameParam_theta_03   :: !Int32+    -- ^ Rotation around the Z-axis for Reference Epoch t0.+  , _msgReferenceFrameParam_scale      :: !Int32+    -- ^ Scale correction for Reference Epoch t0.+  , _msgReferenceFrameParam_dot_delta_X0 :: !Int32+    -- ^ Rate of change of translation in X.+  , _msgReferenceFrameParam_dot_delta_Y0 :: !Int32+    -- ^ Rate of change of translation in Y.+  , _msgReferenceFrameParam_dot_delta_Z0 :: !Int32+    -- ^ Rate of change of translation in Z.+  , _msgReferenceFrameParam_dot_theta_01 :: !Int32+    -- ^ Rate of change of rotation around the X-axis.+  , _msgReferenceFrameParam_dot_theta_02 :: !Int32+    -- ^ Rate of change of rotation around the Y-axis.+  , _msgReferenceFrameParam_dot_theta_03 :: !Int32+    -- ^ Rate of change of rotation around the Z-axis.+  , _msgReferenceFrameParam_dot_scale  :: !Int16+    -- ^ Rate of change of scale correction.   } deriving ( Show, Read, Eq )  instance Binary MsgReferenceFrameParam where   get = do-    _msgReferenceFrameParam_stub <- whileM (not <$> isEmpty) getWord8+    _msgReferenceFrameParam_ssr_iod <- getWord8+    _msgReferenceFrameParam_sn <- decodeUtf8 <$> getByteString 32+    _msgReferenceFrameParam_tn <- decodeUtf8 <$> getByteString 32+    _msgReferenceFrameParam_sin <- getWord8+    _msgReferenceFrameParam_utn <- getWord16le+    _msgReferenceFrameParam_re_t0 <- getWord16le+    _msgReferenceFrameParam_delta_X0 <- (fromIntegral <$> getWord32le)+    _msgReferenceFrameParam_delta_Y0 <- (fromIntegral <$> getWord32le)+    _msgReferenceFrameParam_delta_Z0 <- (fromIntegral <$> getWord32le)+    _msgReferenceFrameParam_theta_01 <- (fromIntegral <$> getWord32le)+    _msgReferenceFrameParam_theta_02 <- (fromIntegral <$> getWord32le)+    _msgReferenceFrameParam_theta_03 <- (fromIntegral <$> getWord32le)+    _msgReferenceFrameParam_scale <- (fromIntegral <$> getWord32le)+    _msgReferenceFrameParam_dot_delta_X0 <- (fromIntegral <$> getWord32le)+    _msgReferenceFrameParam_dot_delta_Y0 <- (fromIntegral <$> getWord32le)+    _msgReferenceFrameParam_dot_delta_Z0 <- (fromIntegral <$> getWord32le)+    _msgReferenceFrameParam_dot_theta_01 <- (fromIntegral <$> getWord32le)+    _msgReferenceFrameParam_dot_theta_02 <- (fromIntegral <$> getWord32le)+    _msgReferenceFrameParam_dot_theta_03 <- (fromIntegral <$> getWord32le)+    _msgReferenceFrameParam_dot_scale <- (fromIntegral <$> getWord16le)     pure MsgReferenceFrameParam {..}    put MsgReferenceFrameParam {..} = do-    mapM_ putWord8 _msgReferenceFrameParam_stub+    putWord8 _msgReferenceFrameParam_ssr_iod+    putByteString $ encodeUtf8 _msgReferenceFrameParam_sn+    putByteString $ encodeUtf8 _msgReferenceFrameParam_tn+    putWord8 _msgReferenceFrameParam_sin+    putWord16le _msgReferenceFrameParam_utn+    putWord16le _msgReferenceFrameParam_re_t0+    (putWord32le . fromIntegral) _msgReferenceFrameParam_delta_X0+    (putWord32le . fromIntegral) _msgReferenceFrameParam_delta_Y0+    (putWord32le . fromIntegral) _msgReferenceFrameParam_delta_Z0+    (putWord32le . fromIntegral) _msgReferenceFrameParam_theta_01+    (putWord32le . fromIntegral) _msgReferenceFrameParam_theta_02+    (putWord32le . fromIntegral) _msgReferenceFrameParam_theta_03+    (putWord32le . fromIntegral) _msgReferenceFrameParam_scale+    (putWord32le . fromIntegral) _msgReferenceFrameParam_dot_delta_X0+    (putWord32le . fromIntegral) _msgReferenceFrameParam_dot_delta_Y0+    (putWord32le . fromIntegral) _msgReferenceFrameParam_dot_delta_Z0+    (putWord32le . fromIntegral) _msgReferenceFrameParam_dot_theta_01+    (putWord32le . fromIntegral) _msgReferenceFrameParam_dot_theta_02+    (putWord32le . fromIntegral) _msgReferenceFrameParam_dot_theta_03+    (putWord16le . fromIntegral) _msgReferenceFrameParam_dot_scale  $(makeSBP 'msgReferenceFrameParam ''MsgReferenceFrameParam) $(makeJSON "_msgReferenceFrameParam_" ''MsgReferenceFrameParam)
src/SwiftNav/SBP/Ssr.hs view
@@ -204,7 +204,8 @@     -- ^ Quality of the STEC data. Encoded following RTCM DF389 specification     -- but in units of TECU instead of m.   , _sTECSatElement_stec_coeff           :: ![Int16]-    -- ^ Coefficients of the STEC polynomial in the order of C00, C01, C10, C11+    -- ^ Coefficients of the STEC polynomial in the order of C00, C01, C10, C11.+    -- C00 = 0.05 TECU, C01/C10 = 0.02 TECU/deg, C11 0.02 TECU/deg^2   } deriving ( Show, Read, Eq )  instance Binary STECSatElement where@@ -251,11 +252,12 @@ -- point. data TroposphericDelayCorrection = TroposphericDelayCorrection   { _troposphericDelayCorrection_hydro :: !Int16-    -- ^ Hydrostatic vertical delay+    -- ^ Hydrostatic vertical delay. Add 2.3 m to get actual value.   , _troposphericDelayCorrection_wet  :: !Int8-    -- ^ Wet vertical delay+    -- ^ Wet vertical delay. Add 0.252 m to get actual value.   , _troposphericDelayCorrection_stddev :: !Word8-    -- ^ stddev+    -- ^ Modified DF389 scale. Class is upper 3 bits, value is lower 5. stddev+    -- <= (3^class * (1 + value/16) - 1) mm   } deriving ( Show, Read, Eq )  instance Binary TroposphericDelayCorrection where@@ -306,7 +308,8 @@   , _sTECResidual_residual :: !Int16     -- ^ STEC residual   , _sTECResidual_stddev :: !Word8-    -- ^ stddev+    -- ^ Modified DF389 scale. Class is upper 3 bits, value is lower 5. stddev+    -- <= (3^class * (1 + value/16) - 1) * 10 TECU   } deriving ( Show, Read, Eq )  instance Binary STECResidual where@@ -539,20 +542,73 @@ $(makeJSON "_msgSsrStecCorrectionDep_" ''MsgSsrStecCorrectionDep) $(makeLenses ''MsgSsrStecCorrectionDep) +data BoundsHeader = BoundsHeader+  { _boundsHeader_time          :: !GpsTimeSec+    -- ^ GNSS reference time of the bound+  , _boundsHeader_num_msgs      :: !Word8+    -- ^ Number of messages in the dataset+  , _boundsHeader_seq_num       :: !Word8+    -- ^ Position of this message in the dataset+  , _boundsHeader_update_interval :: !Word8+    -- ^ Update interval between consecutive bounds. Similar to RTCM DF391.+  , _boundsHeader_sol_id        :: !Word8+    -- ^ SSR Solution ID.+  } deriving ( Show, Read, Eq )++instance Binary BoundsHeader where+  get = do+    _boundsHeader_time <- get+    _boundsHeader_num_msgs <- getWord8+    _boundsHeader_seq_num <- getWord8+    _boundsHeader_update_interval <- getWord8+    _boundsHeader_sol_id <- getWord8+    pure BoundsHeader {..}++  put BoundsHeader {..} = do+    put _boundsHeader_time+    putWord8 _boundsHeader_num_msgs+    putWord8 _boundsHeader_seq_num+    putWord8 _boundsHeader_update_interval+    putWord8 _boundsHeader_sol_id++$(makeJSON "_boundsHeader_" ''BoundsHeader)+$(makeLenses ''BoundsHeader)+ msgSsrStecCorrection :: Word16 msgSsrStecCorrection = 0x05FD  data MsgSsrStecCorrection = MsgSsrStecCorrection-  { _msgSsrStecCorrection_stub :: ![Word8]+  { _msgSsrStecCorrection_header      :: !BoundsHeader+    -- ^ Header of a STEC correction with bounds message.+  , _msgSsrStecCorrection_ssr_iod_atmo :: !Word8+    -- ^ IOD of the SSR atmospheric correction+  , _msgSsrStecCorrection_tile_set_id :: !Word16+    -- ^ Tile set ID+  , _msgSsrStecCorrection_tile_id     :: !Word16+    -- ^ Tile ID+  , _msgSsrStecCorrection_n_sats      :: !Word8+    -- ^ Number of satellites.+  , _msgSsrStecCorrection_stec_sat_list :: ![STECSatElement]+    -- ^ Array of STEC polynomial coefficients for each space vehicle.   } deriving ( Show, Read, Eq )  instance Binary MsgSsrStecCorrection where   get = do-    _msgSsrStecCorrection_stub <- whileM (not <$> isEmpty) getWord8+    _msgSsrStecCorrection_header <- get+    _msgSsrStecCorrection_ssr_iod_atmo <- getWord8+    _msgSsrStecCorrection_tile_set_id <- getWord16le+    _msgSsrStecCorrection_tile_id <- getWord16le+    _msgSsrStecCorrection_n_sats <- getWord8+    _msgSsrStecCorrection_stec_sat_list <- whileM (not <$> isEmpty) get     pure MsgSsrStecCorrection {..}    put MsgSsrStecCorrection {..} = do-    mapM_ putWord8 _msgSsrStecCorrection_stub+    put _msgSsrStecCorrection_header+    putWord8 _msgSsrStecCorrection_ssr_iod_atmo+    putWord16le _msgSsrStecCorrection_tile_set_id+    putWord16le _msgSsrStecCorrection_tile_id+    putWord8 _msgSsrStecCorrection_n_sats+    mapM_ put _msgSsrStecCorrection_stec_sat_list  $(makeSBP 'msgSsrStecCorrection ''MsgSsrStecCorrection) $(makeJSON "_msgSsrStecCorrection_" ''MsgSsrStecCorrection)@@ -595,20 +651,109 @@ $(makeJSON "_msgSsrGriddedCorrection_" ''MsgSsrGriddedCorrection) $(makeLenses ''MsgSsrGriddedCorrection) +-- | STECSatElementIntegrity.+--+-- STEC polynomial and bounds for the given satellite.+data STECSatElementIntegrity = STECSatElementIntegrity+  { _sTECSatElementIntegrity_stec_residual    :: !STECResidual+    -- ^ STEC residuals (mean, stddev)+  , _sTECSatElementIntegrity_stec_bound_mu    :: !Word8+    -- ^ Error Bound Mean. See Note 1.+  , _sTECSatElementIntegrity_stec_bound_sig   :: !Word8+    -- ^ Error Bound StDev. See Note 1.+  , _sTECSatElementIntegrity_stec_bound_mu_dot :: !Word8+    -- ^ Error Bound Mean First derivative.+  , _sTECSatElementIntegrity_stec_bound_sig_dot :: !Word8+    -- ^ Error Bound StDev First derivative.+  } deriving ( Show, Read, Eq )++instance Binary STECSatElementIntegrity where+  get = do+    _sTECSatElementIntegrity_stec_residual <- get+    _sTECSatElementIntegrity_stec_bound_mu <- getWord8+    _sTECSatElementIntegrity_stec_bound_sig <- getWord8+    _sTECSatElementIntegrity_stec_bound_mu_dot <- getWord8+    _sTECSatElementIntegrity_stec_bound_sig_dot <- getWord8+    pure STECSatElementIntegrity {..}++  put STECSatElementIntegrity {..} = do+    put _sTECSatElementIntegrity_stec_residual+    putWord8 _sTECSatElementIntegrity_stec_bound_mu+    putWord8 _sTECSatElementIntegrity_stec_bound_sig+    putWord8 _sTECSatElementIntegrity_stec_bound_mu_dot+    putWord8 _sTECSatElementIntegrity_stec_bound_sig_dot++$(makeJSON "_sTECSatElementIntegrity_" ''STECSatElementIntegrity)+$(makeLenses ''STECSatElementIntegrity)+ msgSsrGriddedCorrectionBounds :: Word16 msgSsrGriddedCorrectionBounds = 0x05FE +-- | SBP class for message MSG_SSR_GRIDDED_CORRECTION_BOUNDS (0x05FE).+--+-- Note 1: Range: 0-17.5 m. i<= 200, mean = 0.01i; 200<i<=230,+-- mean=2+0.1(i-200); i>230, mean=5+0.5(i-230). data MsgSsrGriddedCorrectionBounds = MsgSsrGriddedCorrectionBounds-  { _msgSsrGriddedCorrectionBounds_stub :: ![Word8]+  { _msgSsrGriddedCorrectionBounds_header                :: !BoundsHeader+    -- ^ Header of a bounds message.+  , _msgSsrGriddedCorrectionBounds_ssr_iod_atmo          :: !Word8+    -- ^ IOD of the correction.+  , _msgSsrGriddedCorrectionBounds_tile_set_id           :: !Word16+    -- ^ Set this tile belongs to.+  , _msgSsrGriddedCorrectionBounds_tile_id               :: !Word16+    -- ^ Unique identifier of this tile in the tile set.+  , _msgSsrGriddedCorrectionBounds_tropo_qi              :: !Word8+    -- ^ Tropo Quality Indicator. Similar to RTCM DF389.+  , _msgSsrGriddedCorrectionBounds_grid_point_id         :: !Word16+    -- ^ Index of the Grid Point.+  , _msgSsrGriddedCorrectionBounds_tropo_delay_correction :: !TroposphericDelayCorrection+    -- ^ Tropospheric delay at grid point.+  , _msgSsrGriddedCorrectionBounds_tropo_v_hydro_bound_mu :: !Word8+    -- ^ Vertical Hydrostatic Error Bound Mean.+  , _msgSsrGriddedCorrectionBounds_tropo_v_hydro_bound_sig :: !Word8+    -- ^ Vertical Hydrostatic Error Bound StDev.+  , _msgSsrGriddedCorrectionBounds_tropo_v_wet_bound_mu  :: !Word8+    -- ^ Vertical Wet Error Bound Mean.+  , _msgSsrGriddedCorrectionBounds_tropo_v_wet_bound_sig :: !Word8+    -- ^ Vertical Wet Error Bound StDev.+  , _msgSsrGriddedCorrectionBounds_n_sats                :: !Word8+    -- ^ Number of satellites.+  , _msgSsrGriddedCorrectionBounds_stec_sat_list         :: ![STECSatElementIntegrity]+    -- ^ Array of STEC polynomial coefficients and its bounds for each space+    -- vehicle.   } deriving ( Show, Read, Eq )  instance Binary MsgSsrGriddedCorrectionBounds where   get = do-    _msgSsrGriddedCorrectionBounds_stub <- whileM (not <$> isEmpty) getWord8+    _msgSsrGriddedCorrectionBounds_header <- get+    _msgSsrGriddedCorrectionBounds_ssr_iod_atmo <- getWord8+    _msgSsrGriddedCorrectionBounds_tile_set_id <- getWord16le+    _msgSsrGriddedCorrectionBounds_tile_id <- getWord16le+    _msgSsrGriddedCorrectionBounds_tropo_qi <- getWord8+    _msgSsrGriddedCorrectionBounds_grid_point_id <- getWord16le+    _msgSsrGriddedCorrectionBounds_tropo_delay_correction <- get+    _msgSsrGriddedCorrectionBounds_tropo_v_hydro_bound_mu <- getWord8+    _msgSsrGriddedCorrectionBounds_tropo_v_hydro_bound_sig <- getWord8+    _msgSsrGriddedCorrectionBounds_tropo_v_wet_bound_mu <- getWord8+    _msgSsrGriddedCorrectionBounds_tropo_v_wet_bound_sig <- getWord8+    _msgSsrGriddedCorrectionBounds_n_sats <- getWord8+    _msgSsrGriddedCorrectionBounds_stec_sat_list <- whileM (not <$> isEmpty) get     pure MsgSsrGriddedCorrectionBounds {..}    put MsgSsrGriddedCorrectionBounds {..} = do-    mapM_ putWord8 _msgSsrGriddedCorrectionBounds_stub+    put _msgSsrGriddedCorrectionBounds_header+    putWord8 _msgSsrGriddedCorrectionBounds_ssr_iod_atmo+    putWord16le _msgSsrGriddedCorrectionBounds_tile_set_id+    putWord16le _msgSsrGriddedCorrectionBounds_tile_id+    putWord8 _msgSsrGriddedCorrectionBounds_tropo_qi+    putWord16le _msgSsrGriddedCorrectionBounds_grid_point_id+    put _msgSsrGriddedCorrectionBounds_tropo_delay_correction+    putWord8 _msgSsrGriddedCorrectionBounds_tropo_v_hydro_bound_mu+    putWord8 _msgSsrGriddedCorrectionBounds_tropo_v_hydro_bound_sig+    putWord8 _msgSsrGriddedCorrectionBounds_tropo_v_wet_bound_mu+    putWord8 _msgSsrGriddedCorrectionBounds_tropo_v_wet_bound_sig+    putWord8 _msgSsrGriddedCorrectionBounds_n_sats+    mapM_ put _msgSsrGriddedCorrectionBounds_stec_sat_list  $(makeSBP 'msgSsrGriddedCorrectionBounds ''MsgSsrGriddedCorrectionBounds) $(makeJSON "_msgSsrGriddedCorrectionBounds_" ''MsgSsrGriddedCorrectionBounds)@@ -725,16 +870,90 @@ -- element GNSS-SSR-CorrectionPoints. SBP only supports gridded arrays of -- correction points, not lists of points. data MsgSsrTileDefinition = MsgSsrTileDefinition-  { _msgSsrTileDefinition_stub :: ![Word8]+  { _msgSsrTileDefinition_ssr_sol_id  :: !Word8+    -- ^ SSR Solution ID.+  , _msgSsrTileDefinition_tile_set_id :: !Word16+    -- ^ Unique identifier of the tile set this tile belongs to.+  , _msgSsrTileDefinition_tile_id     :: !Word16+    -- ^ Unique identifier of this tile in the tile set.+    -- See GNSS-SSR-ArrayOfCorrectionPoints field correctionPointSetID.+  , _msgSsrTileDefinition_corner_nw_lat :: !Int16+    -- ^ North-West corner correction point latitude.+    --+    -- The relation between the latitude X in the range [-90, 90] and the+    -- coded number N is:+    --+    -- N = floor((X / 90) * 2^14)+    --+    -- See GNSS-SSR-ArrayOfCorrectionPoints field referencePointLatitude.+  , _msgSsrTileDefinition_corner_nw_lon :: !Int16+    -- ^ North-West corner correction point longitude.+    --+    -- The relation between the longitude X in the range [-180, 180] and the+    -- coded number N is:+    --+    -- N = floor((X / 180) * 2^15)+    --+    -- See GNSS-SSR-ArrayOfCorrectionPoints field referencePointLongitude.+  , _msgSsrTileDefinition_spacing_lat :: !Word16+    -- ^ Spacing of the correction points in the latitude direction.+    --+    -- See GNSS-SSR-ArrayOfCorrectionPoints field stepOfLatitude.+  , _msgSsrTileDefinition_spacing_lon :: !Word16+    -- ^ Spacing of the correction points in the longitude direction.+    --+    -- See GNSS-SSR-ArrayOfCorrectionPoints field stepOfLongitude.+  , _msgSsrTileDefinition_rows        :: !Word16+    -- ^ Number of steps in the latitude direction.+    --+    -- See GNSS-SSR-ArrayOfCorrectionPoints field numberOfStepsLatitude.+  , _msgSsrTileDefinition_cols        :: !Word16+    -- ^ Number of steps in the longitude direction.+    --+    -- See GNSS-SSR-ArrayOfCorrectionPoints field numberOfStepsLongitude.+  , _msgSsrTileDefinition_bitmask     :: !Word64+    -- ^ Specifies the availability of correction data at the correction points+    -- in the array.+    --+    -- If a specific bit is enabled (set to 1), the correction is not+    -- available. Only the first rows * cols bits are used, the remainder are+    -- set to 0. If there are more then 64 correction points the remaining+    -- corrections are always available.+    --+    -- Starting with the northwest corner of the array (top left on a north+    -- oriented map) the correction points are enumerated with row precedence+    -- - first row west to east, second row west to east, until last row west+    -- to east - ending with the southeast corner of the array.+    --+    -- See GNSS-SSR-ArrayOfCorrectionPoints field bitmaskOfGrids but note the+    -- definition of the bits is inverted.   } deriving ( Show, Read, Eq )  instance Binary MsgSsrTileDefinition where   get = do-    _msgSsrTileDefinition_stub <- whileM (not <$> isEmpty) getWord8+    _msgSsrTileDefinition_ssr_sol_id <- getWord8+    _msgSsrTileDefinition_tile_set_id <- getWord16le+    _msgSsrTileDefinition_tile_id <- getWord16le+    _msgSsrTileDefinition_corner_nw_lat <- (fromIntegral <$> getWord16le)+    _msgSsrTileDefinition_corner_nw_lon <- (fromIntegral <$> getWord16le)+    _msgSsrTileDefinition_spacing_lat <- getWord16le+    _msgSsrTileDefinition_spacing_lon <- getWord16le+    _msgSsrTileDefinition_rows <- getWord16le+    _msgSsrTileDefinition_cols <- getWord16le+    _msgSsrTileDefinition_bitmask <- getWord64le     pure MsgSsrTileDefinition {..}    put MsgSsrTileDefinition {..} = do-    mapM_ putWord8 _msgSsrTileDefinition_stub+    putWord8 _msgSsrTileDefinition_ssr_sol_id+    putWord16le _msgSsrTileDefinition_tile_set_id+    putWord16le _msgSsrTileDefinition_tile_id+    (putWord16le . fromIntegral) _msgSsrTileDefinition_corner_nw_lat+    (putWord16le . fromIntegral) _msgSsrTileDefinition_corner_nw_lon+    putWord16le _msgSsrTileDefinition_spacing_lat+    putWord16le _msgSsrTileDefinition_spacing_lon+    putWord16le _msgSsrTileDefinition_rows+    putWord16le _msgSsrTileDefinition_cols+    putWord64le _msgSsrTileDefinition_bitmask  $(makeSBP 'msgSsrTileDefinition ''MsgSsrTileDefinition) $(makeJSON "_msgSsrTileDefinition_" ''MsgSsrTileDefinition)@@ -1110,58 +1329,258 @@ $(makeJSON "_msgSsrGridDefinitionDepA_" ''MsgSsrGridDefinitionDepA) $(makeLenses ''MsgSsrGridDefinitionDepA) +-- | OrbitClockBound.+--+-- Orbit and clock bound.+data OrbitClockBound = OrbitClockBound+  { _orbitClockBound_sat_id             :: !Word8+    -- ^ Satellite ID. Similar to either RTCM DF068 (GPS), DF252 (Galileo), or+    -- DF488 (BDS) depending on the constellation.+  , _orbitClockBound_orb_radial_bound_mu :: !Word8+    -- ^ Mean Radial. See Note 1.+  , _orbitClockBound_orb_along_bound_mu :: !Word8+    -- ^ Mean Along-Track. See Note 1.+  , _orbitClockBound_orb_cross_bound_mu :: !Word8+    -- ^ Mean Cross-Track. See Note 1.+  , _orbitClockBound_orb_radial_bound_sig :: !Word8+    -- ^ Standard Deviation Radial. See Note 2.+  , _orbitClockBound_orb_along_bound_sig :: !Word8+    -- ^ Standard Deviation Along-Track. See Note 2.+  , _orbitClockBound_orb_cross_bound_sig :: !Word8+    -- ^ Standard Deviation Cross-Track. See Note 2.+  , _orbitClockBound_clock_bound_mu     :: !Word8+    -- ^ Clock Bound Mean. See Note 1.+  , _orbitClockBound_clock_bound_sig    :: !Word8+    -- ^ Clock Bound Standard Deviation. See Note 2.+  } deriving ( Show, Read, Eq )++instance Binary OrbitClockBound where+  get = do+    _orbitClockBound_sat_id <- getWord8+    _orbitClockBound_orb_radial_bound_mu <- getWord8+    _orbitClockBound_orb_along_bound_mu <- getWord8+    _orbitClockBound_orb_cross_bound_mu <- getWord8+    _orbitClockBound_orb_radial_bound_sig <- getWord8+    _orbitClockBound_orb_along_bound_sig <- getWord8+    _orbitClockBound_orb_cross_bound_sig <- getWord8+    _orbitClockBound_clock_bound_mu <- getWord8+    _orbitClockBound_clock_bound_sig <- getWord8+    pure OrbitClockBound {..}++  put OrbitClockBound {..} = do+    putWord8 _orbitClockBound_sat_id+    putWord8 _orbitClockBound_orb_radial_bound_mu+    putWord8 _orbitClockBound_orb_along_bound_mu+    putWord8 _orbitClockBound_orb_cross_bound_mu+    putWord8 _orbitClockBound_orb_radial_bound_sig+    putWord8 _orbitClockBound_orb_along_bound_sig+    putWord8 _orbitClockBound_orb_cross_bound_sig+    putWord8 _orbitClockBound_clock_bound_mu+    putWord8 _orbitClockBound_clock_bound_sig++$(makeJSON "_orbitClockBound_" ''OrbitClockBound)+$(makeLenses ''OrbitClockBound)+ msgSsrOrbitClockBounds :: Word16 msgSsrOrbitClockBounds = 0x05DE +-- | SBP class for message MSG_SSR_ORBIT_CLOCK_BOUNDS (0x05DE).+--+-- Note 1: Range: 0-17.5 m. i<=200, mean=0.01i; 200<i<=230, mean=2+0.1(i-200);+-- i>230, mean=5+0.5(i-230).+--+-- Note 2: Range: 0-17.5 m. i<=200, std=0.01i; 200<i<=230, std=2+0.1(i-200)+-- i>230, std=5+0.5(i-230). data MsgSsrOrbitClockBounds = MsgSsrOrbitClockBounds-  { _msgSsrOrbitClockBounds_stub :: ![Word8]+  { _msgSsrOrbitClockBounds_header           :: !BoundsHeader+    -- ^ Header of a bounds message.+  , _msgSsrOrbitClockBounds_ssr_iod          :: !Word8+    -- ^ IOD of the SSR bound.+  , _msgSsrOrbitClockBounds_const_id         :: !Word8+    -- ^ Constellation ID to which the SVs belong.+  , _msgSsrOrbitClockBounds_n_sats           :: !Word8+    -- ^ Number of satellites.+  , _msgSsrOrbitClockBounds_orbit_clock_bounds :: ![OrbitClockBound]+    -- ^ Orbit and Clock Bounds per Satellite   } deriving ( Show, Read, Eq )  instance Binary MsgSsrOrbitClockBounds where   get = do-    _msgSsrOrbitClockBounds_stub <- whileM (not <$> isEmpty) getWord8+    _msgSsrOrbitClockBounds_header <- get+    _msgSsrOrbitClockBounds_ssr_iod <- getWord8+    _msgSsrOrbitClockBounds_const_id <- getWord8+    _msgSsrOrbitClockBounds_n_sats <- getWord8+    _msgSsrOrbitClockBounds_orbit_clock_bounds <- whileM (not <$> isEmpty) get     pure MsgSsrOrbitClockBounds {..}    put MsgSsrOrbitClockBounds {..} = do-    mapM_ putWord8 _msgSsrOrbitClockBounds_stub+    put _msgSsrOrbitClockBounds_header+    putWord8 _msgSsrOrbitClockBounds_ssr_iod+    putWord8 _msgSsrOrbitClockBounds_const_id+    putWord8 _msgSsrOrbitClockBounds_n_sats+    mapM_ put _msgSsrOrbitClockBounds_orbit_clock_bounds  $(makeSBP 'msgSsrOrbitClockBounds ''MsgSsrOrbitClockBounds) $(makeJSON "_msgSsrOrbitClockBounds_" ''MsgSsrOrbitClockBounds) $(makeLenses ''MsgSsrOrbitClockBounds) +data CodePhaseBiasesSatSig = CodePhaseBiasesSatSig+  { _codePhaseBiasesSatSig_sat_id             :: !Word8+    -- ^ Satellite ID. Similar to either RTCM DF068 (GPS), DF252 (Galileo), or+    -- DF488 (BDS) depending on the constellation.+  , _codePhaseBiasesSatSig_signal_id          :: !Word8+    -- ^ Signal and Tracking Mode Identifier. Similar to either RTCM DF380+    -- (GPS), DF382 (Galileo) or DF467 (BDS) depending on the constellation.+  , _codePhaseBiasesSatSig_code_bias_bound_mu :: !Word8+    -- ^ Code Bias Mean. Range: 0-1.275 m+  , _codePhaseBiasesSatSig_code_bias_bound_sig :: !Word8+    -- ^ Code Bias Standard Deviation.  Range: 0-1.275 m+  , _codePhaseBiasesSatSig_phase_bias_bound_mu :: !Word8+    -- ^ Phase Bias Mean. Range: 0-1.275 m+  , _codePhaseBiasesSatSig_phase_bias_bound_sig :: !Word8+    -- ^ Phase Bias Standard Deviation.  Range: 0-1.275 m+  } deriving ( Show, Read, Eq )++instance Binary CodePhaseBiasesSatSig where+  get = do+    _codePhaseBiasesSatSig_sat_id <- getWord8+    _codePhaseBiasesSatSig_signal_id <- getWord8+    _codePhaseBiasesSatSig_code_bias_bound_mu <- getWord8+    _codePhaseBiasesSatSig_code_bias_bound_sig <- getWord8+    _codePhaseBiasesSatSig_phase_bias_bound_mu <- getWord8+    _codePhaseBiasesSatSig_phase_bias_bound_sig <- getWord8+    pure CodePhaseBiasesSatSig {..}++  put CodePhaseBiasesSatSig {..} = do+    putWord8 _codePhaseBiasesSatSig_sat_id+    putWord8 _codePhaseBiasesSatSig_signal_id+    putWord8 _codePhaseBiasesSatSig_code_bias_bound_mu+    putWord8 _codePhaseBiasesSatSig_code_bias_bound_sig+    putWord8 _codePhaseBiasesSatSig_phase_bias_bound_mu+    putWord8 _codePhaseBiasesSatSig_phase_bias_bound_sig++$(makeJSON "_codePhaseBiasesSatSig_" ''CodePhaseBiasesSatSig)+$(makeLenses ''CodePhaseBiasesSatSig)+ msgSsrCodePhaseBiasesBounds :: Word16 msgSsrCodePhaseBiasesBounds = 0x05EC  data MsgSsrCodePhaseBiasesBounds = MsgSsrCodePhaseBiasesBounds-  { _msgSsrCodePhaseBiasesBounds_stub :: ![Word8]+  { _msgSsrCodePhaseBiasesBounds_header           :: !BoundsHeader+    -- ^ Header of a bounds message.+  , _msgSsrCodePhaseBiasesBounds_ssr_iod          :: !Word8+    -- ^ IOD of the SSR bound.+  , _msgSsrCodePhaseBiasesBounds_const_id         :: !Word8+    -- ^ Constellation ID to which the SVs belong.+  , _msgSsrCodePhaseBiasesBounds_n_sats_signals   :: !Word8+    -- ^ Number of satellite-signal couples.+  , _msgSsrCodePhaseBiasesBounds_satellites_signals :: ![CodePhaseBiasesSatSig]+    -- ^ Code and Phase Biases Bounds per Satellite-Signal couple.   } deriving ( Show, Read, Eq )  instance Binary MsgSsrCodePhaseBiasesBounds where   get = do-    _msgSsrCodePhaseBiasesBounds_stub <- whileM (not <$> isEmpty) getWord8+    _msgSsrCodePhaseBiasesBounds_header <- get+    _msgSsrCodePhaseBiasesBounds_ssr_iod <- getWord8+    _msgSsrCodePhaseBiasesBounds_const_id <- getWord8+    _msgSsrCodePhaseBiasesBounds_n_sats_signals <- getWord8+    _msgSsrCodePhaseBiasesBounds_satellites_signals <- whileM (not <$> isEmpty) get     pure MsgSsrCodePhaseBiasesBounds {..}    put MsgSsrCodePhaseBiasesBounds {..} = do-    mapM_ putWord8 _msgSsrCodePhaseBiasesBounds_stub+    put _msgSsrCodePhaseBiasesBounds_header+    putWord8 _msgSsrCodePhaseBiasesBounds_ssr_iod+    putWord8 _msgSsrCodePhaseBiasesBounds_const_id+    putWord8 _msgSsrCodePhaseBiasesBounds_n_sats_signals+    mapM_ put _msgSsrCodePhaseBiasesBounds_satellites_signals  $(makeSBP 'msgSsrCodePhaseBiasesBounds ''MsgSsrCodePhaseBiasesBounds) $(makeJSON "_msgSsrCodePhaseBiasesBounds_" ''MsgSsrCodePhaseBiasesBounds) $(makeLenses ''MsgSsrCodePhaseBiasesBounds) +-- | OrbitClockBoundDegradation.+--+-- Orbit and clock bound degradation.+data OrbitClockBoundDegradation = OrbitClockBoundDegradation+  { _orbitClockBoundDegradation_orb_radial_bound_mu_dot :: !Word8+    -- ^ Orbit Bound Mean Radial First derivative. Range: 0-0.255 m/s+  , _orbitClockBoundDegradation_orb_along_bound_mu_dot :: !Word8+    -- ^ Orbit Bound Mean Along-Track First derivative. Range: 0-0.255 m/s+  , _orbitClockBoundDegradation_orb_cross_bound_mu_dot :: !Word8+    -- ^ Orbit Bound Mean Cross-Track First derivative. Range: 0-0.255 m/s+  , _orbitClockBoundDegradation_orb_radial_bound_sig_dot :: !Word8+    -- ^ Orbit Bound Standard Deviation Radial First derivative. Range: 0-0.255+    -- m/s+  , _orbitClockBoundDegradation_orb_along_bound_sig_dot :: !Word8+    -- ^ Orbit Bound Standard Deviation Along-Track First derivative. Range:+    -- 0-0.255 m/s+  , _orbitClockBoundDegradation_orb_cross_bound_sig_dot :: !Word8+    -- ^ Orbit Bound Standard Deviation Cross-Track First derivative. Range:+    -- 0-0.255 m/s+  , _orbitClockBoundDegradation_clock_bound_mu_dot     :: !Word8+    -- ^ Clock Bound Mean First derivative. Range: 0-0.255 m/s+  , _orbitClockBoundDegradation_clock_bound_sig_dot    :: !Word8+    -- ^ Clock Bound Standard Deviation First derivative. Range: 0-0.255 m/s+  } deriving ( Show, Read, Eq )++instance Binary OrbitClockBoundDegradation where+  get = do+    _orbitClockBoundDegradation_orb_radial_bound_mu_dot <- getWord8+    _orbitClockBoundDegradation_orb_along_bound_mu_dot <- getWord8+    _orbitClockBoundDegradation_orb_cross_bound_mu_dot <- getWord8+    _orbitClockBoundDegradation_orb_radial_bound_sig_dot <- getWord8+    _orbitClockBoundDegradation_orb_along_bound_sig_dot <- getWord8+    _orbitClockBoundDegradation_orb_cross_bound_sig_dot <- getWord8+    _orbitClockBoundDegradation_clock_bound_mu_dot <- getWord8+    _orbitClockBoundDegradation_clock_bound_sig_dot <- getWord8+    pure OrbitClockBoundDegradation {..}++  put OrbitClockBoundDegradation {..} = do+    putWord8 _orbitClockBoundDegradation_orb_radial_bound_mu_dot+    putWord8 _orbitClockBoundDegradation_orb_along_bound_mu_dot+    putWord8 _orbitClockBoundDegradation_orb_cross_bound_mu_dot+    putWord8 _orbitClockBoundDegradation_orb_radial_bound_sig_dot+    putWord8 _orbitClockBoundDegradation_orb_along_bound_sig_dot+    putWord8 _orbitClockBoundDegradation_orb_cross_bound_sig_dot+    putWord8 _orbitClockBoundDegradation_clock_bound_mu_dot+    putWord8 _orbitClockBoundDegradation_clock_bound_sig_dot++$(makeJSON "_orbitClockBoundDegradation_" ''OrbitClockBoundDegradation)+$(makeLenses ''OrbitClockBoundDegradation)+ msgSsrOrbitClockBoundsDegradation :: Word16 msgSsrOrbitClockBoundsDegradation = 0x05DF  data MsgSsrOrbitClockBoundsDegradation = MsgSsrOrbitClockBoundsDegradation-  { _msgSsrOrbitClockBoundsDegradation_stub :: ![Word8]+  { _msgSsrOrbitClockBoundsDegradation_header                       :: !BoundsHeader+    -- ^ Header of a bounds message.+  , _msgSsrOrbitClockBoundsDegradation_ssr_iod                      :: !Word8+    -- ^ IOD of the SSR bound degradation parameter.+  , _msgSsrOrbitClockBoundsDegradation_const_id                     :: !Word8+    -- ^ Constellation ID to which the SVs belong.+  , _msgSsrOrbitClockBoundsDegradation_sat_bitmask                  :: !Word64+    -- ^ Satellite Bit Mask. Put 1 for each satellite where the following+    -- degradation parameters are applicable, 0 otherwise. Encoded following+    -- RTCM DF394 specification.+  , _msgSsrOrbitClockBoundsDegradation_orbit_clock_bounds_degradation :: !OrbitClockBoundDegradation+    -- ^ Orbit and Clock Bounds Degradation Parameters   } deriving ( Show, Read, Eq )  instance Binary MsgSsrOrbitClockBoundsDegradation where   get = do-    _msgSsrOrbitClockBoundsDegradation_stub <- whileM (not <$> isEmpty) getWord8+    _msgSsrOrbitClockBoundsDegradation_header <- get+    _msgSsrOrbitClockBoundsDegradation_ssr_iod <- getWord8+    _msgSsrOrbitClockBoundsDegradation_const_id <- getWord8+    _msgSsrOrbitClockBoundsDegradation_sat_bitmask <- getWord64le+    _msgSsrOrbitClockBoundsDegradation_orbit_clock_bounds_degradation <- get     pure MsgSsrOrbitClockBoundsDegradation {..}    put MsgSsrOrbitClockBoundsDegradation {..} = do-    mapM_ putWord8 _msgSsrOrbitClockBoundsDegradation_stub+    put _msgSsrOrbitClockBoundsDegradation_header+    putWord8 _msgSsrOrbitClockBoundsDegradation_ssr_iod+    putWord8 _msgSsrOrbitClockBoundsDegradation_const_id+    putWord64le _msgSsrOrbitClockBoundsDegradation_sat_bitmask+    put _msgSsrOrbitClockBoundsDegradation_orbit_clock_bounds_degradation  $(makeSBP 'msgSsrOrbitClockBoundsDegradation ''MsgSsrOrbitClockBoundsDegradation) $(makeJSON "_msgSsrOrbitClockBoundsDegradation_" ''MsgSsrOrbitClockBoundsDegradation)