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 +1/−1
- src/SwiftNav/SBP/Integrity.hs +180/−18
- src/SwiftNav/SBP/Navigation.hs +120/−6
- src/SwiftNav/SBP/Ssr.hs +442/−23
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
@@ -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)
@@ -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)
@@ -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)