sbp 4.10.0 → 4.11.0
raw patch · 5 files changed
+360/−62 lines, 5 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- SwiftNav.SBP: SBPMsgSsrTileDefinitionDep :: MsgSsrTileDefinitionDep -> Msg -> SBPMsg
- SwiftNav.SBP: _SBPMsgSsrTileDefinitionDep :: Prism' SBPMsg (MsgSsrTileDefinitionDep, Msg)
- SwiftNav.SBP.Ssr: MsgSsrTileDefinitionDep :: !Word16 -> !Word16 -> !Int16 -> !Int16 -> !Word16 -> !Word16 -> !Word16 -> !Word16 -> !Word64 -> MsgSsrTileDefinitionDep
- SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDep_bitmask] :: MsgSsrTileDefinitionDep -> !Word64
- SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDep_cols] :: MsgSsrTileDefinitionDep -> !Word16
- SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDep_corner_nw_lat] :: MsgSsrTileDefinitionDep -> !Int16
- SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDep_corner_nw_lon] :: MsgSsrTileDefinitionDep -> !Int16
- SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDep_rows] :: MsgSsrTileDefinitionDep -> !Word16
- SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDep_spacing_lat] :: MsgSsrTileDefinitionDep -> !Word16
- SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDep_spacing_lon] :: MsgSsrTileDefinitionDep -> !Word16
- SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDep_tile_id] :: MsgSsrTileDefinitionDep -> !Word16
- SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDep_tile_set_id] :: MsgSsrTileDefinitionDep -> !Word16
- SwiftNav.SBP.Ssr: [_msgSsrTileDefinition_ssr_sol_id] :: MsgSsrTileDefinition -> !Word8
- SwiftNav.SBP.Ssr: data MsgSsrTileDefinitionDep
- SwiftNav.SBP.Ssr: instance Data.Aeson.Types.FromJSON.FromJSON SwiftNav.SBP.Ssr.MsgSsrTileDefinitionDep
- SwiftNav.SBP.Ssr: instance Data.Aeson.Types.ToJSON.ToJSON SwiftNav.SBP.Ssr.MsgSsrTileDefinitionDep
- SwiftNav.SBP.Ssr: instance Data.Binary.Class.Binary SwiftNav.SBP.Ssr.MsgSsrTileDefinitionDep
- SwiftNav.SBP.Ssr: instance GHC.Classes.Eq SwiftNav.SBP.Ssr.MsgSsrTileDefinitionDep
- SwiftNav.SBP.Ssr: instance GHC.Read.Read SwiftNav.SBP.Ssr.MsgSsrTileDefinitionDep
- SwiftNav.SBP.Ssr: instance GHC.Show.Show SwiftNav.SBP.Ssr.MsgSsrTileDefinitionDep
- SwiftNav.SBP.Ssr: instance SwiftNav.SBP.Types.ToSBP SwiftNav.SBP.Ssr.MsgSsrTileDefinitionDep
- SwiftNav.SBP.Ssr: msgSsrTileDefinitionDep :: Word16
- SwiftNav.SBP.Ssr: msgSsrTileDefinitionDep_bitmask :: Lens' MsgSsrTileDefinitionDep Word64
- SwiftNav.SBP.Ssr: msgSsrTileDefinitionDep_cols :: Lens' MsgSsrTileDefinitionDep Word16
- SwiftNav.SBP.Ssr: msgSsrTileDefinitionDep_corner_nw_lat :: Lens' MsgSsrTileDefinitionDep Int16
- SwiftNav.SBP.Ssr: msgSsrTileDefinitionDep_corner_nw_lon :: Lens' MsgSsrTileDefinitionDep Int16
- SwiftNav.SBP.Ssr: msgSsrTileDefinitionDep_rows :: Lens' MsgSsrTileDefinitionDep Word16
- SwiftNav.SBP.Ssr: msgSsrTileDefinitionDep_spacing_lat :: Lens' MsgSsrTileDefinitionDep Word16
- SwiftNav.SBP.Ssr: msgSsrTileDefinitionDep_spacing_lon :: Lens' MsgSsrTileDefinitionDep Word16
- SwiftNav.SBP.Ssr: msgSsrTileDefinitionDep_tile_id :: Lens' MsgSsrTileDefinitionDep Word16
- SwiftNav.SBP.Ssr: msgSsrTileDefinitionDep_tile_set_id :: Lens' MsgSsrTileDefinitionDep Word16
- SwiftNav.SBP.Ssr: msgSsrTileDefinition_ssr_sol_id :: Lens' MsgSsrTileDefinition Word8
+ SwiftNav.SBP: SBPMsgSsrSatelliteApcDep :: MsgSsrSatelliteApcDep -> Msg -> SBPMsg
+ SwiftNav.SBP: SBPMsgSsrTileDefinitionDepA :: MsgSsrTileDefinitionDepA -> Msg -> SBPMsg
+ SwiftNav.SBP: SBPMsgSsrTileDefinitionDepB :: MsgSsrTileDefinitionDepB -> Msg -> SBPMsg
+ SwiftNav.SBP: SBPMsgTelSv :: MsgTelSv -> Msg -> SBPMsg
+ SwiftNav.SBP: _SBPMsgSsrSatelliteApcDep :: Prism' SBPMsg (MsgSsrSatelliteApcDep, Msg)
+ SwiftNav.SBP: _SBPMsgSsrTileDefinitionDepA :: Prism' SBPMsg (MsgSsrTileDefinitionDepA, Msg)
+ SwiftNav.SBP: _SBPMsgSsrTileDefinitionDepB :: Prism' SBPMsg (MsgSsrTileDefinitionDepB, Msg)
+ SwiftNav.SBP: _SBPMsgTelSv :: Prism' SBPMsg (MsgTelSv, Msg)
+ SwiftNav.SBP.Ssr: MsgSsrSatelliteApcDep :: ![SatelliteAPC] -> MsgSsrSatelliteApcDep
+ SwiftNav.SBP.Ssr: MsgSsrTileDefinitionDepA :: !Word16 -> !Word16 -> !Int16 -> !Int16 -> !Word16 -> !Word16 -> !Word16 -> !Word16 -> !Word64 -> MsgSsrTileDefinitionDepA
+ SwiftNav.SBP.Ssr: MsgSsrTileDefinitionDepB :: !Word8 -> !Word16 -> !Word16 -> !Int16 -> !Int16 -> !Word16 -> !Word16 -> !Word16 -> !Word16 -> !Word64 -> MsgSsrTileDefinitionDepB
+ SwiftNav.SBP.Ssr: [_msgSsrSatelliteApcDep_apc] :: MsgSsrSatelliteApcDep -> ![SatelliteAPC]
+ SwiftNav.SBP.Ssr: [_msgSsrSatelliteApc_iod_ssr] :: MsgSsrSatelliteApc -> !Word8
+ SwiftNav.SBP.Ssr: [_msgSsrSatelliteApc_sol_id] :: MsgSsrSatelliteApc -> !Word8
+ SwiftNav.SBP.Ssr: [_msgSsrSatelliteApc_time] :: MsgSsrSatelliteApc -> !GpsTimeSec
+ SwiftNav.SBP.Ssr: [_msgSsrSatelliteApc_update_interval] :: MsgSsrSatelliteApc -> !Word8
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDepA_bitmask] :: MsgSsrTileDefinitionDepA -> !Word64
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDepA_cols] :: MsgSsrTileDefinitionDepA -> !Word16
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDepA_corner_nw_lat] :: MsgSsrTileDefinitionDepA -> !Int16
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDepA_corner_nw_lon] :: MsgSsrTileDefinitionDepA -> !Int16
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDepA_rows] :: MsgSsrTileDefinitionDepA -> !Word16
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDepA_spacing_lat] :: MsgSsrTileDefinitionDepA -> !Word16
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDepA_spacing_lon] :: MsgSsrTileDefinitionDepA -> !Word16
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDepA_tile_id] :: MsgSsrTileDefinitionDepA -> !Word16
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDepA_tile_set_id] :: MsgSsrTileDefinitionDepA -> !Word16
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDepB_bitmask] :: MsgSsrTileDefinitionDepB -> !Word64
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDepB_cols] :: MsgSsrTileDefinitionDepB -> !Word16
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDepB_corner_nw_lat] :: MsgSsrTileDefinitionDepB -> !Int16
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDepB_corner_nw_lon] :: MsgSsrTileDefinitionDepB -> !Int16
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDepB_rows] :: MsgSsrTileDefinitionDepB -> !Word16
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDepB_spacing_lat] :: MsgSsrTileDefinitionDepB -> !Word16
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDepB_spacing_lon] :: MsgSsrTileDefinitionDepB -> !Word16
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDepB_ssr_sol_id] :: MsgSsrTileDefinitionDepB -> !Word8
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDepB_tile_id] :: MsgSsrTileDefinitionDepB -> !Word16
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinitionDepB_tile_set_id] :: MsgSsrTileDefinitionDepB -> !Word16
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinition_iod_atmo] :: MsgSsrTileDefinition -> !Word8
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinition_sol_id] :: MsgSsrTileDefinition -> !Word8
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinition_time] :: MsgSsrTileDefinition -> !GpsTimeSec
+ SwiftNav.SBP.Ssr: [_msgSsrTileDefinition_update_interval] :: MsgSsrTileDefinition -> !Word8
+ SwiftNav.SBP.Ssr: data MsgSsrSatelliteApcDep
+ SwiftNav.SBP.Ssr: data MsgSsrTileDefinitionDepA
+ SwiftNav.SBP.Ssr: data MsgSsrTileDefinitionDepB
+ SwiftNav.SBP.Ssr: instance Data.Aeson.Types.FromJSON.FromJSON SwiftNav.SBP.Ssr.MsgSsrSatelliteApcDep
+ SwiftNav.SBP.Ssr: instance Data.Aeson.Types.FromJSON.FromJSON SwiftNav.SBP.Ssr.MsgSsrTileDefinitionDepA
+ SwiftNav.SBP.Ssr: instance Data.Aeson.Types.FromJSON.FromJSON SwiftNav.SBP.Ssr.MsgSsrTileDefinitionDepB
+ SwiftNav.SBP.Ssr: instance Data.Aeson.Types.ToJSON.ToJSON SwiftNav.SBP.Ssr.MsgSsrSatelliteApcDep
+ SwiftNav.SBP.Ssr: instance Data.Aeson.Types.ToJSON.ToJSON SwiftNav.SBP.Ssr.MsgSsrTileDefinitionDepA
+ SwiftNav.SBP.Ssr: instance Data.Aeson.Types.ToJSON.ToJSON SwiftNav.SBP.Ssr.MsgSsrTileDefinitionDepB
+ SwiftNav.SBP.Ssr: instance Data.Binary.Class.Binary SwiftNav.SBP.Ssr.MsgSsrSatelliteApcDep
+ SwiftNav.SBP.Ssr: instance Data.Binary.Class.Binary SwiftNav.SBP.Ssr.MsgSsrTileDefinitionDepA
+ SwiftNav.SBP.Ssr: instance Data.Binary.Class.Binary SwiftNav.SBP.Ssr.MsgSsrTileDefinitionDepB
+ SwiftNav.SBP.Ssr: instance GHC.Classes.Eq SwiftNav.SBP.Ssr.MsgSsrSatelliteApcDep
+ SwiftNav.SBP.Ssr: instance GHC.Classes.Eq SwiftNav.SBP.Ssr.MsgSsrTileDefinitionDepA
+ SwiftNav.SBP.Ssr: instance GHC.Classes.Eq SwiftNav.SBP.Ssr.MsgSsrTileDefinitionDepB
+ SwiftNav.SBP.Ssr: instance GHC.Read.Read SwiftNav.SBP.Ssr.MsgSsrSatelliteApcDep
+ SwiftNav.SBP.Ssr: instance GHC.Read.Read SwiftNav.SBP.Ssr.MsgSsrTileDefinitionDepA
+ SwiftNav.SBP.Ssr: instance GHC.Read.Read SwiftNav.SBP.Ssr.MsgSsrTileDefinitionDepB
+ SwiftNav.SBP.Ssr: instance GHC.Show.Show SwiftNav.SBP.Ssr.MsgSsrSatelliteApcDep
+ SwiftNav.SBP.Ssr: instance GHC.Show.Show SwiftNav.SBP.Ssr.MsgSsrTileDefinitionDepA
+ SwiftNav.SBP.Ssr: instance GHC.Show.Show SwiftNav.SBP.Ssr.MsgSsrTileDefinitionDepB
+ SwiftNav.SBP.Ssr: instance SwiftNav.SBP.Types.ToSBP SwiftNav.SBP.Ssr.MsgSsrSatelliteApcDep
+ SwiftNav.SBP.Ssr: instance SwiftNav.SBP.Types.ToSBP SwiftNav.SBP.Ssr.MsgSsrTileDefinitionDepA
+ SwiftNav.SBP.Ssr: instance SwiftNav.SBP.Types.ToSBP SwiftNav.SBP.Ssr.MsgSsrTileDefinitionDepB
+ SwiftNav.SBP.Ssr: msgSsrSatelliteApcDep :: Word16
+ SwiftNav.SBP.Ssr: msgSsrSatelliteApcDep_apc :: Iso' MsgSsrSatelliteApcDep [SatelliteAPC]
+ SwiftNav.SBP.Ssr: msgSsrSatelliteApc_iod_ssr :: Lens' MsgSsrSatelliteApc Word8
+ SwiftNav.SBP.Ssr: msgSsrSatelliteApc_sol_id :: Lens' MsgSsrSatelliteApc Word8
+ SwiftNav.SBP.Ssr: msgSsrSatelliteApc_time :: Lens' MsgSsrSatelliteApc GpsTimeSec
+ SwiftNav.SBP.Ssr: msgSsrSatelliteApc_update_interval :: Lens' MsgSsrSatelliteApc Word8
+ SwiftNav.SBP.Ssr: msgSsrTileDefinitionDepA :: Word16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinitionDepA_bitmask :: Lens' MsgSsrTileDefinitionDepA Word64
+ SwiftNav.SBP.Ssr: msgSsrTileDefinitionDepA_cols :: Lens' MsgSsrTileDefinitionDepA Word16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinitionDepA_corner_nw_lat :: Lens' MsgSsrTileDefinitionDepA Int16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinitionDepA_corner_nw_lon :: Lens' MsgSsrTileDefinitionDepA Int16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinitionDepA_rows :: Lens' MsgSsrTileDefinitionDepA Word16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinitionDepA_spacing_lat :: Lens' MsgSsrTileDefinitionDepA Word16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinitionDepA_spacing_lon :: Lens' MsgSsrTileDefinitionDepA Word16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinitionDepA_tile_id :: Lens' MsgSsrTileDefinitionDepA Word16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinitionDepA_tile_set_id :: Lens' MsgSsrTileDefinitionDepA Word16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinitionDepB :: Word16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinitionDepB_bitmask :: Lens' MsgSsrTileDefinitionDepB Word64
+ SwiftNav.SBP.Ssr: msgSsrTileDefinitionDepB_cols :: Lens' MsgSsrTileDefinitionDepB Word16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinitionDepB_corner_nw_lat :: Lens' MsgSsrTileDefinitionDepB Int16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinitionDepB_corner_nw_lon :: Lens' MsgSsrTileDefinitionDepB Int16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinitionDepB_rows :: Lens' MsgSsrTileDefinitionDepB Word16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinitionDepB_spacing_lat :: Lens' MsgSsrTileDefinitionDepB Word16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinitionDepB_spacing_lon :: Lens' MsgSsrTileDefinitionDepB Word16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinitionDepB_ssr_sol_id :: Lens' MsgSsrTileDefinitionDepB Word8
+ SwiftNav.SBP.Ssr: msgSsrTileDefinitionDepB_tile_id :: Lens' MsgSsrTileDefinitionDepB Word16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinitionDepB_tile_set_id :: Lens' MsgSsrTileDefinitionDepB Word16
+ SwiftNav.SBP.Ssr: msgSsrTileDefinition_iod_atmo :: Lens' MsgSsrTileDefinition Word8
+ SwiftNav.SBP.Ssr: msgSsrTileDefinition_sol_id :: Lens' MsgSsrTileDefinition Word8
+ SwiftNav.SBP.Ssr: msgSsrTileDefinition_time :: Lens' MsgSsrTileDefinition GpsTimeSec
+ SwiftNav.SBP.Ssr: msgSsrTileDefinition_update_interval :: Lens' MsgSsrTileDefinition Word8
+ SwiftNav.SBP.Telemetry: MsgTelSv :: !Word16 -> !Word32 -> !Word8 -> !Word8 -> ![TelemetrySV] -> MsgTelSv
+ SwiftNav.SBP.Telemetry: TelemetrySV :: !Word8 -> !Int8 -> !Word8 -> !Int16 -> !Int16 -> !Word8 -> !Word8 -> !Word8 -> !GnssSignal -> TelemetrySV
+ SwiftNav.SBP.Telemetry: [_msgTelSv_n_obs] :: MsgTelSv -> !Word8
+ SwiftNav.SBP.Telemetry: [_msgTelSv_origin_flags] :: MsgTelSv -> !Word8
+ SwiftNav.SBP.Telemetry: [_msgTelSv_sv_tel] :: MsgTelSv -> ![TelemetrySV]
+ SwiftNav.SBP.Telemetry: [_msgTelSv_tow] :: MsgTelSv -> !Word32
+ SwiftNav.SBP.Telemetry: [_msgTelSv_wn] :: MsgTelSv -> !Word16
+ SwiftNav.SBP.Telemetry: [_telemetrySV_availability_flags] :: TelemetrySV -> !Word8
+ SwiftNav.SBP.Telemetry: [_telemetrySV_az] :: TelemetrySV -> !Word8
+ SwiftNav.SBP.Telemetry: [_telemetrySV_correction_flags] :: TelemetrySV -> !Word8
+ SwiftNav.SBP.Telemetry: [_telemetrySV_el] :: TelemetrySV -> !Int8
+ SwiftNav.SBP.Telemetry: [_telemetrySV_ephemeris_flags] :: TelemetrySV -> !Word8
+ SwiftNav.SBP.Telemetry: [_telemetrySV_outlier_flags] :: TelemetrySV -> !Word8
+ SwiftNav.SBP.Telemetry: [_telemetrySV_phase_residual] :: TelemetrySV -> !Int16
+ SwiftNav.SBP.Telemetry: [_telemetrySV_pseudorange_residual] :: TelemetrySV -> !Int16
+ SwiftNav.SBP.Telemetry: [_telemetrySV_sid] :: TelemetrySV -> !GnssSignal
+ SwiftNav.SBP.Telemetry: data MsgTelSv
+ SwiftNav.SBP.Telemetry: data TelemetrySV
+ SwiftNav.SBP.Telemetry: instance Data.Aeson.Types.FromJSON.FromJSON SwiftNav.SBP.Telemetry.MsgTelSv
+ SwiftNav.SBP.Telemetry: instance Data.Aeson.Types.FromJSON.FromJSON SwiftNav.SBP.Telemetry.TelemetrySV
+ SwiftNav.SBP.Telemetry: instance Data.Aeson.Types.ToJSON.ToJSON SwiftNav.SBP.Telemetry.MsgTelSv
+ SwiftNav.SBP.Telemetry: instance Data.Aeson.Types.ToJSON.ToJSON SwiftNav.SBP.Telemetry.TelemetrySV
+ SwiftNav.SBP.Telemetry: instance Data.Binary.Class.Binary SwiftNav.SBP.Telemetry.MsgTelSv
+ SwiftNav.SBP.Telemetry: instance Data.Binary.Class.Binary SwiftNav.SBP.Telemetry.TelemetrySV
+ SwiftNav.SBP.Telemetry: instance GHC.Classes.Eq SwiftNav.SBP.Telemetry.MsgTelSv
+ SwiftNav.SBP.Telemetry: instance GHC.Classes.Eq SwiftNav.SBP.Telemetry.TelemetrySV
+ SwiftNav.SBP.Telemetry: instance GHC.Read.Read SwiftNav.SBP.Telemetry.MsgTelSv
+ SwiftNav.SBP.Telemetry: instance GHC.Read.Read SwiftNav.SBP.Telemetry.TelemetrySV
+ SwiftNav.SBP.Telemetry: instance GHC.Show.Show SwiftNav.SBP.Telemetry.MsgTelSv
+ SwiftNav.SBP.Telemetry: instance GHC.Show.Show SwiftNav.SBP.Telemetry.TelemetrySV
+ SwiftNav.SBP.Telemetry: instance SwiftNav.SBP.Types.ToSBP SwiftNav.SBP.Telemetry.MsgTelSv
+ SwiftNav.SBP.Telemetry: msgTelSv :: Word16
+ SwiftNav.SBP.Telemetry: msgTelSv_n_obs :: Lens' MsgTelSv Word8
+ SwiftNav.SBP.Telemetry: msgTelSv_origin_flags :: Lens' MsgTelSv Word8
+ SwiftNav.SBP.Telemetry: msgTelSv_sv_tel :: Lens' MsgTelSv [TelemetrySV]
+ SwiftNav.SBP.Telemetry: msgTelSv_tow :: Lens' MsgTelSv Word32
+ SwiftNav.SBP.Telemetry: msgTelSv_wn :: Lens' MsgTelSv Word16
+ SwiftNav.SBP.Telemetry: telemetrySV_availability_flags :: Lens' TelemetrySV Word8
+ SwiftNav.SBP.Telemetry: telemetrySV_az :: Lens' TelemetrySV Word8
+ SwiftNav.SBP.Telemetry: telemetrySV_correction_flags :: Lens' TelemetrySV Word8
+ SwiftNav.SBP.Telemetry: telemetrySV_el :: Lens' TelemetrySV Int8
+ SwiftNav.SBP.Telemetry: telemetrySV_ephemeris_flags :: Lens' TelemetrySV Word8
+ SwiftNav.SBP.Telemetry: telemetrySV_outlier_flags :: Lens' TelemetrySV Word8
+ SwiftNav.SBP.Telemetry: telemetrySV_phase_residual :: Lens' TelemetrySV Int16
+ SwiftNav.SBP.Telemetry: telemetrySV_pseudorange_residual :: Lens' TelemetrySV Int16
+ SwiftNav.SBP.Telemetry: telemetrySV_sid :: Lens' TelemetrySV GnssSignal
- SwiftNav.SBP.Ssr: MsgSsrSatelliteApc :: ![SatelliteAPC] -> MsgSsrSatelliteApc
+ SwiftNav.SBP.Ssr: MsgSsrSatelliteApc :: !GpsTimeSec -> !Word8 -> !Word8 -> !Word8 -> ![SatelliteAPC] -> MsgSsrSatelliteApc
- SwiftNav.SBP.Ssr: MsgSsrTileDefinition :: !Word8 -> !Word16 -> !Word16 -> !Int16 -> !Int16 -> !Word16 -> !Word16 -> !Word16 -> !Word16 -> !Word64 -> MsgSsrTileDefinition
+ SwiftNav.SBP.Ssr: MsgSsrTileDefinition :: !GpsTimeSec -> !Word8 -> !Word8 -> !Word8 -> !Word16 -> !Word16 -> !Int16 -> !Int16 -> !Word16 -> !Word16 -> !Word16 -> !Word16 -> !Word64 -> MsgSsrTileDefinition
- SwiftNav.SBP.Ssr: msgSsrSatelliteApc_apc :: Iso' MsgSsrSatelliteApc [SatelliteAPC]
+ SwiftNav.SBP.Ssr: msgSsrSatelliteApc_apc :: Lens' MsgSsrSatelliteApc [SatelliteAPC]
- SwiftNav.SBP.Types: class HasMsg c_aePH
+ SwiftNav.SBP.Types: class HasMsg c_aeQe
- SwiftNav.SBP.Types: msg :: HasMsg c_aePH => Lens' c_aePH Msg
+ SwiftNav.SBP.Types: msg :: HasMsg c_aeQe => Lens' c_aeQe Msg
- SwiftNav.SBP.Types: msgSBPCrc :: HasMsg c_aePH => Lens' c_aePH Word16
+ SwiftNav.SBP.Types: msgSBPCrc :: HasMsg c_aeQe => Lens' c_aeQe Word16
- SwiftNav.SBP.Types: msgSBPLen :: HasMsg c_aePH => Lens' c_aePH Word8
+ SwiftNav.SBP.Types: msgSBPLen :: HasMsg c_aeQe => Lens' c_aeQe Word8
- SwiftNav.SBP.Types: msgSBPPayload :: HasMsg c_aePH => Lens' c_aePH Bytes
+ SwiftNav.SBP.Types: msgSBPPayload :: HasMsg c_aeQe => Lens' c_aeQe Bytes
- SwiftNav.SBP.Types: msgSBPSender :: HasMsg c_aePH => Lens' c_aePH Word16
+ SwiftNav.SBP.Types: msgSBPSender :: HasMsg c_aeQe => Lens' c_aeQe Word16
- SwiftNav.SBP.Types: msgSBPType :: HasMsg c_aePH => Lens' c_aePH Word16
+ SwiftNav.SBP.Types: msgSBPType :: HasMsg c_aeQe => Lens' c_aeQe Word16
Files
- sbp.cabal +2/−1
- src/SwiftNav/SBP.hs +1/−0
- src/SwiftNav/SBP/Msg.hs +25/−6
- src/SwiftNav/SBP/Ssr.hs +203/−55
- src/SwiftNav/SBP/Telemetry.hs +129/−0
sbp.cabal view
@@ -1,5 +1,5 @@ name: sbp-version: 4.10.0+version: 4.11.0 synopsis: SwiftNav's SBP Library homepage: https://github.com/swift-nav/libsbp license: MIT@@ -47,6 +47,7 @@ , SwiftNav.SBP.SolutionMeta , SwiftNav.SBP.Ssr , SwiftNav.SBP.System+ , SwiftNav.SBP.Telemetry , SwiftNav.SBP.Tracking , SwiftNav.SBP.User , SwiftNav.SBP.Vehicle
@@ -36,6 +36,7 @@ import SwiftNav.SBP.SolutionMeta as Exports import SwiftNav.SBP.Ssr as Exports import SwiftNav.SBP.System as Exports+import SwiftNav.SBP.Telemetry as Exports import SwiftNav.SBP.Tracking as Exports import SwiftNav.SBP.User as Exports import SwiftNav.SBP.Vehicle as Exports
@@ -46,6 +46,7 @@ import SwiftNav.SBP.SolutionMeta import SwiftNav.SBP.Ssr import SwiftNav.SBP.System+import SwiftNav.SBP.Telemetry import SwiftNav.SBP.Tracking import SwiftNav.SBP.User import SwiftNav.SBP.Vehicle@@ -239,11 +240,13 @@ | SBPMsgSsrOrbitClockDepA MsgSsrOrbitClockDepA Msg | SBPMsgSsrPhaseBiases MsgSsrPhaseBiases Msg | SBPMsgSsrSatelliteApc MsgSsrSatelliteApc Msg+ | SBPMsgSsrSatelliteApcDep MsgSsrSatelliteApcDep Msg | SBPMsgSsrStecCorrection MsgSsrStecCorrection Msg | SBPMsgSsrStecCorrectionDep MsgSsrStecCorrectionDep Msg | SBPMsgSsrStecCorrectionDepA MsgSsrStecCorrectionDepA Msg | SBPMsgSsrTileDefinition MsgSsrTileDefinition Msg- | SBPMsgSsrTileDefinitionDep MsgSsrTileDefinitionDep Msg+ | SBPMsgSsrTileDefinitionDepA MsgSsrTileDefinitionDepA Msg+ | SBPMsgSsrTileDefinitionDepB MsgSsrTileDefinitionDepB Msg | SBPMsgStartup MsgStartup Msg | SBPMsgStatusJournal MsgStatusJournal Msg | SBPMsgStatusReport MsgStatusReport Msg@@ -253,6 +256,7 @@ | SBPMsgStmUniqueIdResp MsgStmUniqueIdResp Msg | SBPMsgSvAzEl MsgSvAzEl Msg | SBPMsgSvConfigurationGpsDep MsgSvConfigurationGpsDep Msg+ | SBPMsgTelSv MsgTelSv Msg | SBPMsgThreadState MsgThreadState Msg | SBPMsgTrackingIq MsgTrackingIq Msg | SBPMsgTrackingIqDepA MsgTrackingIqDepA Msg@@ -476,11 +480,13 @@ | _msgSBPType == msgSsrOrbitClockDepA = SBPMsgSsrOrbitClockDepA (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgSsrPhaseBiases = SBPMsgSsrPhaseBiases (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgSsrSatelliteApc = SBPMsgSsrSatelliteApc (decode (fromStrict (unBytes _msgSBPPayload))) m+ | _msgSBPType == msgSsrSatelliteApcDep = SBPMsgSsrSatelliteApcDep (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgSsrStecCorrection = SBPMsgSsrStecCorrection (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgSsrStecCorrectionDep = SBPMsgSsrStecCorrectionDep (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgSsrStecCorrectionDepA = SBPMsgSsrStecCorrectionDepA (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgSsrTileDefinition = SBPMsgSsrTileDefinition (decode (fromStrict (unBytes _msgSBPPayload))) m- | _msgSBPType == msgSsrTileDefinitionDep = SBPMsgSsrTileDefinitionDep (decode (fromStrict (unBytes _msgSBPPayload))) m+ | _msgSBPType == msgSsrTileDefinitionDepA = SBPMsgSsrTileDefinitionDepA (decode (fromStrict (unBytes _msgSBPPayload))) m+ | _msgSBPType == msgSsrTileDefinitionDepB = SBPMsgSsrTileDefinitionDepB (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgStartup = SBPMsgStartup (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgStatusJournal = SBPMsgStatusJournal (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgStatusReport = SBPMsgStatusReport (decode (fromStrict (unBytes _msgSBPPayload))) m@@ -490,6 +496,7 @@ | _msgSBPType == msgStmUniqueIdResp = SBPMsgStmUniqueIdResp (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgSvAzEl = SBPMsgSvAzEl (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgSvConfigurationGpsDep = SBPMsgSvConfigurationGpsDep (decode (fromStrict (unBytes _msgSBPPayload))) m+ | _msgSBPType == msgTelSv = SBPMsgTelSv (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgThreadState = SBPMsgThreadState (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgTrackingIq = SBPMsgTrackingIq (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgTrackingIqDepA = SBPMsgTrackingIqDepA (decode (fromStrict (unBytes _msgSBPPayload))) m@@ -705,11 +712,13 @@ encoder (SBPMsgSsrOrbitClockDepA _ m) = put m encoder (SBPMsgSsrPhaseBiases _ m) = put m encoder (SBPMsgSsrSatelliteApc _ m) = put m+ encoder (SBPMsgSsrSatelliteApcDep _ m) = put m encoder (SBPMsgSsrStecCorrection _ m) = put m encoder (SBPMsgSsrStecCorrectionDep _ m) = put m encoder (SBPMsgSsrStecCorrectionDepA _ m) = put m encoder (SBPMsgSsrTileDefinition _ m) = put m- encoder (SBPMsgSsrTileDefinitionDep _ m) = put m+ encoder (SBPMsgSsrTileDefinitionDepA _ m) = put m+ encoder (SBPMsgSsrTileDefinitionDepB _ m) = put m encoder (SBPMsgStartup _ m) = put m encoder (SBPMsgStatusJournal _ m) = put m encoder (SBPMsgStatusReport _ m) = put m@@ -719,6 +728,7 @@ encoder (SBPMsgStmUniqueIdResp _ m) = put m encoder (SBPMsgSvAzEl _ m) = put m encoder (SBPMsgSvConfigurationGpsDep _ m) = put m+ encoder (SBPMsgTelSv _ m) = put m encoder (SBPMsgThreadState _ m) = put m encoder (SBPMsgTrackingIq _ m) = put m encoder (SBPMsgTrackingIqDepA _ m) = put m@@ -938,11 +948,13 @@ | msgType == msgSsrOrbitClockDepA = SBPMsgSsrOrbitClockDepA <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgSsrPhaseBiases = SBPMsgSsrPhaseBiases <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgSsrSatelliteApc = SBPMsgSsrSatelliteApc <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj+ | msgType == msgSsrSatelliteApcDep = SBPMsgSsrSatelliteApcDep <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgSsrStecCorrection = SBPMsgSsrStecCorrection <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgSsrStecCorrectionDep = SBPMsgSsrStecCorrectionDep <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgSsrStecCorrectionDepA = SBPMsgSsrStecCorrectionDepA <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgSsrTileDefinition = SBPMsgSsrTileDefinition <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj- | msgType == msgSsrTileDefinitionDep = SBPMsgSsrTileDefinitionDep <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj+ | msgType == msgSsrTileDefinitionDepA = SBPMsgSsrTileDefinitionDepA <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj+ | msgType == msgSsrTileDefinitionDepB = SBPMsgSsrTileDefinitionDepB <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgStartup = SBPMsgStartup <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgStatusJournal = SBPMsgStatusJournal <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgStatusReport = SBPMsgStatusReport <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj@@ -952,6 +964,7 @@ | msgType == msgStmUniqueIdResp = SBPMsgStmUniqueIdResp <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgSvAzEl = SBPMsgSvAzEl <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgSvConfigurationGpsDep = SBPMsgSvConfigurationGpsDep <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj+ | msgType == msgTelSv = SBPMsgTelSv <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgThreadState = SBPMsgThreadState <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgTrackingIq = SBPMsgTrackingIq <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgTrackingIqDepA = SBPMsgTrackingIqDepA <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj@@ -1172,11 +1185,13 @@ toJSON (SBPMsgSsrOrbitClockDepA n m) = toJSON n <<>> toJSON m toJSON (SBPMsgSsrPhaseBiases n m) = toJSON n <<>> toJSON m toJSON (SBPMsgSsrSatelliteApc n m) = toJSON n <<>> toJSON m+ toJSON (SBPMsgSsrSatelliteApcDep n m) = toJSON n <<>> toJSON m toJSON (SBPMsgSsrStecCorrection n m) = toJSON n <<>> toJSON m toJSON (SBPMsgSsrStecCorrectionDep n m) = toJSON n <<>> toJSON m toJSON (SBPMsgSsrStecCorrectionDepA n m) = toJSON n <<>> toJSON m toJSON (SBPMsgSsrTileDefinition n m) = toJSON n <<>> toJSON m- toJSON (SBPMsgSsrTileDefinitionDep n m) = toJSON n <<>> toJSON m+ toJSON (SBPMsgSsrTileDefinitionDepA n m) = toJSON n <<>> toJSON m+ toJSON (SBPMsgSsrTileDefinitionDepB n m) = toJSON n <<>> toJSON m toJSON (SBPMsgStartup n m) = toJSON n <<>> toJSON m toJSON (SBPMsgStatusJournal n m) = toJSON n <<>> toJSON m toJSON (SBPMsgStatusReport n m) = toJSON n <<>> toJSON m@@ -1186,6 +1201,7 @@ toJSON (SBPMsgStmUniqueIdResp n m) = toJSON n <<>> toJSON m toJSON (SBPMsgSvAzEl n m) = toJSON n <<>> toJSON m toJSON (SBPMsgSvConfigurationGpsDep n m) = toJSON n <<>> toJSON m+ toJSON (SBPMsgTelSv n m) = toJSON n <<>> toJSON m toJSON (SBPMsgThreadState n m) = toJSON n <<>> toJSON m toJSON (SBPMsgTrackingIq n m) = toJSON n <<>> toJSON m toJSON (SBPMsgTrackingIqDepA n m) = toJSON n <<>> toJSON m@@ -1400,11 +1416,13 @@ msg f (SBPMsgSsrOrbitClockDepA n m) = SBPMsgSsrOrbitClockDepA n <$> f m msg f (SBPMsgSsrPhaseBiases n m) = SBPMsgSsrPhaseBiases n <$> f m msg f (SBPMsgSsrSatelliteApc n m) = SBPMsgSsrSatelliteApc n <$> f m+ msg f (SBPMsgSsrSatelliteApcDep n m) = SBPMsgSsrSatelliteApcDep n <$> f m msg f (SBPMsgSsrStecCorrection n m) = SBPMsgSsrStecCorrection n <$> f m msg f (SBPMsgSsrStecCorrectionDep n m) = SBPMsgSsrStecCorrectionDep n <$> f m msg f (SBPMsgSsrStecCorrectionDepA n m) = SBPMsgSsrStecCorrectionDepA n <$> f m msg f (SBPMsgSsrTileDefinition n m) = SBPMsgSsrTileDefinition n <$> f m- msg f (SBPMsgSsrTileDefinitionDep n m) = SBPMsgSsrTileDefinitionDep n <$> f m+ msg f (SBPMsgSsrTileDefinitionDepA n m) = SBPMsgSsrTileDefinitionDepA n <$> f m+ msg f (SBPMsgSsrTileDefinitionDepB n m) = SBPMsgSsrTileDefinitionDepB n <$> f m msg f (SBPMsgStartup n m) = SBPMsgStartup n <$> f m msg f (SBPMsgStatusJournal n m) = SBPMsgStatusJournal n <$> f m msg f (SBPMsgStatusReport n m) = SBPMsgStatusReport n <$> f m@@ -1414,6 +1432,7 @@ msg f (SBPMsgStmUniqueIdResp n m) = SBPMsgStmUniqueIdResp n <$> f m msg f (SBPMsgSvAzEl n m) = SBPMsgSvAzEl n <$> f m msg f (SBPMsgSvConfigurationGpsDep n m) = SBPMsgSvConfigurationGpsDep n <$> f m+ msg f (SBPMsgTelSv n m) = SBPMsgTelSv n <$> f m msg f (SBPMsgThreadState n m) = SBPMsgThreadState n <$> f m msg f (SBPMsgTrackingIq n m) = SBPMsgTrackingIq n <$> f m msg f (SBPMsgTrackingIqDepA n m) = SBPMsgTrackingIqDepA n <$> f m
@@ -759,10 +759,10 @@ $(makeJSON "_msgSsrGriddedCorrectionBounds_" ''MsgSsrGriddedCorrectionBounds) $(makeLenses ''MsgSsrGriddedCorrectionBounds) -msgSsrTileDefinitionDep :: Word16-msgSsrTileDefinitionDep = 0x05F6+msgSsrTileDefinitionDepA :: Word16+msgSsrTileDefinitionDepA = 0x05F6 --- | SBP class for message MSG_SSR_TILE_DEFINITION_DEP (0x05F6).+-- | SBP class for message MSG_SSR_TILE_DEFINITION_DEP_A (0x05F6). -- -- Provides the correction point coordinates for the atmospheric correction -- values in the MSG_SSR_STEC_CORRECTION_DEP and MSG_SSR_GRIDDED_CORRECTION@@ -771,13 +771,13 @@ -- Based on ETSI TS 137 355 V16.1.0 (LTE Positioning Protocol) information -- element GNSS-SSR-CorrectionPoints. SBP only supports gridded arrays of -- correction points, not lists of points.-data MsgSsrTileDefinitionDep = MsgSsrTileDefinitionDep- { _msgSsrTileDefinitionDep_tile_set_id :: !Word16+data MsgSsrTileDefinitionDepA = MsgSsrTileDefinitionDepA+ { _msgSsrTileDefinitionDepA_tile_set_id :: !Word16 -- ^ Unique identifier of the tile set this tile belongs to.- , _msgSsrTileDefinitionDep_tile_id :: !Word16+ , _msgSsrTileDefinitionDepA_tile_id :: !Word16 -- ^ Unique identifier of this tile in the tile set. -- See GNSS-SSR-ArrayOfCorrectionPoints field correctionPointSetID.- , _msgSsrTileDefinitionDep_corner_nw_lat :: !Int16+ , _msgSsrTileDefinitionDepA_corner_nw_lat :: !Int16 -- ^ North-West corner correction point latitude. -- -- The relation between the latitude X in the range [-90, 90] and the@@ -786,7 +786,7 @@ -- N = floor((X / 90) * 2^14) -- -- See GNSS-SSR-ArrayOfCorrectionPoints field referencePointLatitude.- , _msgSsrTileDefinitionDep_corner_nw_lon :: !Int16+ , _msgSsrTileDefinitionDepA_corner_nw_lon :: !Int16 -- ^ North-West corner correction point longitude. -- -- The relation between the longitude X in the range [-180, 180] and the@@ -795,23 +795,23 @@ -- N = floor((X / 180) * 2^15) -- -- See GNSS-SSR-ArrayOfCorrectionPoints field referencePointLongitude.- , _msgSsrTileDefinitionDep_spacing_lat :: !Word16+ , _msgSsrTileDefinitionDepA_spacing_lat :: !Word16 -- ^ Spacing of the correction points in the latitude direction. -- -- See GNSS-SSR-ArrayOfCorrectionPoints field stepOfLatitude.- , _msgSsrTileDefinitionDep_spacing_lon :: !Word16+ , _msgSsrTileDefinitionDepA_spacing_lon :: !Word16 -- ^ Spacing of the correction points in the longitude direction. -- -- See GNSS-SSR-ArrayOfCorrectionPoints field stepOfLongitude.- , _msgSsrTileDefinitionDep_rows :: !Word16+ , _msgSsrTileDefinitionDepA_rows :: !Word16 -- ^ Number of steps in the latitude direction. -- -- See GNSS-SSR-ArrayOfCorrectionPoints field numberOfStepsLatitude.- , _msgSsrTileDefinitionDep_cols :: !Word16+ , _msgSsrTileDefinitionDepA_cols :: !Word16 -- ^ Number of steps in the longitude direction. -- -- See GNSS-SSR-ArrayOfCorrectionPoints field numberOfStepsLongitude.- , _msgSsrTileDefinitionDep_bitmask :: !Word64+ , _msgSsrTileDefinitionDepA_bitmask :: !Word64 -- ^ Specifies the availability of correction data at the correction points -- in the array. --@@ -829,38 +829,38 @@ -- definition of the bits is inverted. } deriving ( Show, Read, Eq ) -instance Binary MsgSsrTileDefinitionDep where+instance Binary MsgSsrTileDefinitionDepA where get = do- _msgSsrTileDefinitionDep_tile_set_id <- getWord16le- _msgSsrTileDefinitionDep_tile_id <- getWord16le- _msgSsrTileDefinitionDep_corner_nw_lat <- (fromIntegral <$> getWord16le)- _msgSsrTileDefinitionDep_corner_nw_lon <- (fromIntegral <$> getWord16le)- _msgSsrTileDefinitionDep_spacing_lat <- getWord16le- _msgSsrTileDefinitionDep_spacing_lon <- getWord16le- _msgSsrTileDefinitionDep_rows <- getWord16le- _msgSsrTileDefinitionDep_cols <- getWord16le- _msgSsrTileDefinitionDep_bitmask <- getWord64le- pure MsgSsrTileDefinitionDep {..}+ _msgSsrTileDefinitionDepA_tile_set_id <- getWord16le+ _msgSsrTileDefinitionDepA_tile_id <- getWord16le+ _msgSsrTileDefinitionDepA_corner_nw_lat <- (fromIntegral <$> getWord16le)+ _msgSsrTileDefinitionDepA_corner_nw_lon <- (fromIntegral <$> getWord16le)+ _msgSsrTileDefinitionDepA_spacing_lat <- getWord16le+ _msgSsrTileDefinitionDepA_spacing_lon <- getWord16le+ _msgSsrTileDefinitionDepA_rows <- getWord16le+ _msgSsrTileDefinitionDepA_cols <- getWord16le+ _msgSsrTileDefinitionDepA_bitmask <- getWord64le+ pure MsgSsrTileDefinitionDepA {..} - put MsgSsrTileDefinitionDep {..} = do- putWord16le _msgSsrTileDefinitionDep_tile_set_id- putWord16le _msgSsrTileDefinitionDep_tile_id- (putWord16le . fromIntegral) _msgSsrTileDefinitionDep_corner_nw_lat- (putWord16le . fromIntegral) _msgSsrTileDefinitionDep_corner_nw_lon- putWord16le _msgSsrTileDefinitionDep_spacing_lat- putWord16le _msgSsrTileDefinitionDep_spacing_lon- putWord16le _msgSsrTileDefinitionDep_rows- putWord16le _msgSsrTileDefinitionDep_cols- putWord64le _msgSsrTileDefinitionDep_bitmask+ put MsgSsrTileDefinitionDepA {..} = do+ putWord16le _msgSsrTileDefinitionDepA_tile_set_id+ putWord16le _msgSsrTileDefinitionDepA_tile_id+ (putWord16le . fromIntegral) _msgSsrTileDefinitionDepA_corner_nw_lat+ (putWord16le . fromIntegral) _msgSsrTileDefinitionDepA_corner_nw_lon+ putWord16le _msgSsrTileDefinitionDepA_spacing_lat+ putWord16le _msgSsrTileDefinitionDepA_spacing_lon+ putWord16le _msgSsrTileDefinitionDepA_rows+ putWord16le _msgSsrTileDefinitionDepA_cols+ putWord64le _msgSsrTileDefinitionDepA_bitmask -$(makeSBP 'msgSsrTileDefinitionDep ''MsgSsrTileDefinitionDep)-$(makeJSON "_msgSsrTileDefinitionDep_" ''MsgSsrTileDefinitionDep)-$(makeLenses ''MsgSsrTileDefinitionDep)+$(makeSBP 'msgSsrTileDefinitionDepA ''MsgSsrTileDefinitionDepA)+$(makeJSON "_msgSsrTileDefinitionDepA_" ''MsgSsrTileDefinitionDepA)+$(makeLenses ''MsgSsrTileDefinitionDepA) -msgSsrTileDefinition :: Word16-msgSsrTileDefinition = 0x05F7+msgSsrTileDefinitionDepB :: Word16+msgSsrTileDefinitionDepB = 0x05F7 --- | SBP class for message MSG_SSR_TILE_DEFINITION (0x05F7).+-- | SBP class for message MSG_SSR_TILE_DEFINITION_DEP_B (0x05F7). -- -- Provides the correction point coordinates for the atmospheric correction -- values in the MSG_SSR_STEC_CORRECTION and MSG_SSR_GRIDDED_CORRECTION@@ -869,15 +869,15 @@ -- Based on ETSI TS 137 355 V16.1.0 (LTE Positioning Protocol) information -- element GNSS-SSR-CorrectionPoints. SBP only supports gridded arrays of -- correction points, not lists of points.-data MsgSsrTileDefinition = MsgSsrTileDefinition- { _msgSsrTileDefinition_ssr_sol_id :: !Word8+data MsgSsrTileDefinitionDepB = MsgSsrTileDefinitionDepB+ { _msgSsrTileDefinitionDepB_ssr_sol_id :: !Word8 -- ^ SSR Solution ID.- , _msgSsrTileDefinition_tile_set_id :: !Word16+ , _msgSsrTileDefinitionDepB_tile_set_id :: !Word16 -- ^ Unique identifier of the tile set this tile belongs to.- , _msgSsrTileDefinition_tile_id :: !Word16+ , _msgSsrTileDefinitionDepB_tile_id :: !Word16 -- ^ Unique identifier of this tile in the tile set. -- See GNSS-SSR-ArrayOfCorrectionPoints field correctionPointSetID.- , _msgSsrTileDefinition_corner_nw_lat :: !Int16+ , _msgSsrTileDefinitionDepB_corner_nw_lat :: !Int16 -- ^ North-West corner correction point latitude. -- -- The relation between the latitude X in the range [-90, 90] and the@@ -886,7 +886,7 @@ -- N = floor((X / 90) * 2^14) -- -- See GNSS-SSR-ArrayOfCorrectionPoints field referencePointLatitude.- , _msgSsrTileDefinition_corner_nw_lon :: !Int16+ , _msgSsrTileDefinitionDepB_corner_nw_lon :: !Int16 -- ^ North-West corner correction point longitude. -- -- The relation between the longitude X in the range [-180, 180] and the@@ -895,23 +895,23 @@ -- N = floor((X / 180) * 2^15) -- -- See GNSS-SSR-ArrayOfCorrectionPoints field referencePointLongitude.- , _msgSsrTileDefinition_spacing_lat :: !Word16+ , _msgSsrTileDefinitionDepB_spacing_lat :: !Word16 -- ^ Spacing of the correction points in the latitude direction. -- -- See GNSS-SSR-ArrayOfCorrectionPoints field stepOfLatitude.- , _msgSsrTileDefinition_spacing_lon :: !Word16+ , _msgSsrTileDefinitionDepB_spacing_lon :: !Word16 -- ^ Spacing of the correction points in the longitude direction. -- -- See GNSS-SSR-ArrayOfCorrectionPoints field stepOfLongitude.- , _msgSsrTileDefinition_rows :: !Word16+ , _msgSsrTileDefinitionDepB_rows :: !Word16 -- ^ Number of steps in the latitude direction. -- -- See GNSS-SSR-ArrayOfCorrectionPoints field numberOfStepsLatitude.- , _msgSsrTileDefinition_cols :: !Word16+ , _msgSsrTileDefinitionDepB_cols :: !Word16 -- ^ Number of steps in the longitude direction. -- -- See GNSS-SSR-ArrayOfCorrectionPoints field numberOfStepsLongitude.- , _msgSsrTileDefinition_bitmask :: !Word64+ , _msgSsrTileDefinitionDepB_bitmask :: !Word64 -- ^ Specifies the availability of correction data at the correction points -- in the array. --@@ -929,9 +929,116 @@ -- definition of the bits is inverted. } deriving ( Show, Read, Eq ) +instance Binary MsgSsrTileDefinitionDepB where+ get = do+ _msgSsrTileDefinitionDepB_ssr_sol_id <- getWord8+ _msgSsrTileDefinitionDepB_tile_set_id <- getWord16le+ _msgSsrTileDefinitionDepB_tile_id <- getWord16le+ _msgSsrTileDefinitionDepB_corner_nw_lat <- (fromIntegral <$> getWord16le)+ _msgSsrTileDefinitionDepB_corner_nw_lon <- (fromIntegral <$> getWord16le)+ _msgSsrTileDefinitionDepB_spacing_lat <- getWord16le+ _msgSsrTileDefinitionDepB_spacing_lon <- getWord16le+ _msgSsrTileDefinitionDepB_rows <- getWord16le+ _msgSsrTileDefinitionDepB_cols <- getWord16le+ _msgSsrTileDefinitionDepB_bitmask <- getWord64le+ pure MsgSsrTileDefinitionDepB {..}++ put MsgSsrTileDefinitionDepB {..} = do+ putWord8 _msgSsrTileDefinitionDepB_ssr_sol_id+ putWord16le _msgSsrTileDefinitionDepB_tile_set_id+ putWord16le _msgSsrTileDefinitionDepB_tile_id+ (putWord16le . fromIntegral) _msgSsrTileDefinitionDepB_corner_nw_lat+ (putWord16le . fromIntegral) _msgSsrTileDefinitionDepB_corner_nw_lon+ putWord16le _msgSsrTileDefinitionDepB_spacing_lat+ putWord16le _msgSsrTileDefinitionDepB_spacing_lon+ putWord16le _msgSsrTileDefinitionDepB_rows+ putWord16le _msgSsrTileDefinitionDepB_cols+ putWord64le _msgSsrTileDefinitionDepB_bitmask++$(makeSBP 'msgSsrTileDefinitionDepB ''MsgSsrTileDefinitionDepB)+$(makeJSON "_msgSsrTileDefinitionDepB_" ''MsgSsrTileDefinitionDepB)+$(makeLenses ''MsgSsrTileDefinitionDepB)++msgSsrTileDefinition :: Word16+msgSsrTileDefinition = 0x05F8++-- | SBP class for message MSG_SSR_TILE_DEFINITION (0x05F8).+--+-- Provides the correction point coordinates for the atmospheric correction+-- values in the MSG_SSR_STEC_CORRECTION and MSG_SSR_GRIDDED_CORRECTION+-- messages.+--+-- Based on ETSI TS 137 355 V16.1.0 (LTE Positioning Protocol) information+-- element GNSS-SSR-CorrectionPoints. SBP only supports gridded arrays of+-- correction points, not lists of points.+data MsgSsrTileDefinition = MsgSsrTileDefinition+ { _msgSsrTileDefinition_time :: !GpsTimeSec+ -- ^ GNSS reference time of the correction+ , _msgSsrTileDefinition_update_interval :: !Word8+ -- ^ Update interval between consecutive corrections. Encoded following RTCM+ -- DF391 specification.+ , _msgSsrTileDefinition_sol_id :: !Word8+ -- ^ SSR Solution ID. Similar to RTCM DF415.+ , _msgSsrTileDefinition_iod_atmo :: !Word8+ -- ^ IOD of the SSR atmospheric correction.+ , _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 absence of correction data at the correction points in+ -- the array (grid).+ --+ -- Only the first rows * cols bits are used, and if a specific bit is+ -- enabled (set to 1), the correction is not available. If there are more+ -- than 64 correction points the remaining corrections are always+ -- available.+ --+ -- The correction points are packed by rows, starting with the northwest+ -- corner of the array (top-left on a north oriented map), with each row+ -- spanning 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_ssr_sol_id <- getWord8+ _msgSsrTileDefinition_time <- get+ _msgSsrTileDefinition_update_interval <- getWord8+ _msgSsrTileDefinition_sol_id <- getWord8+ _msgSsrTileDefinition_iod_atmo <- getWord8 _msgSsrTileDefinition_tile_set_id <- getWord16le _msgSsrTileDefinition_tile_id <- getWord16le _msgSsrTileDefinition_corner_nw_lat <- (fromIntegral <$> getWord16le)@@ -944,7 +1051,10 @@ pure MsgSsrTileDefinition {..} put MsgSsrTileDefinition {..} = do- putWord8 _msgSsrTileDefinition_ssr_sol_id+ put _msgSsrTileDefinition_time+ putWord8 _msgSsrTileDefinition_update_interval+ putWord8 _msgSsrTileDefinition_sol_id+ putWord8 _msgSsrTileDefinition_iod_atmo putWord16le _msgSsrTileDefinition_tile_set_id putWord16le _msgSsrTileDefinition_tile_id (putWord16le . fromIntegral) _msgSsrTileDefinition_corner_nw_lat@@ -998,20 +1108,58 @@ $(makeJSON "_satelliteAPC_" ''SatelliteAPC) $(makeLenses ''SatelliteAPC) +msgSsrSatelliteApcDep :: Word16+msgSsrSatelliteApcDep = 0x0604++data MsgSsrSatelliteApcDep = MsgSsrSatelliteApcDep+ { _msgSsrSatelliteApcDep_apc :: ![SatelliteAPC]+ -- ^ Satellite antenna phase center corrections+ } deriving ( Show, Read, Eq )++instance Binary MsgSsrSatelliteApcDep where+ get = do+ _msgSsrSatelliteApcDep_apc <- whileM (not <$> isEmpty) get+ pure MsgSsrSatelliteApcDep {..}++ put MsgSsrSatelliteApcDep {..} = do+ mapM_ put _msgSsrSatelliteApcDep_apc++$(makeSBP 'msgSsrSatelliteApcDep ''MsgSsrSatelliteApcDep)+$(makeJSON "_msgSsrSatelliteApcDep_" ''MsgSsrSatelliteApcDep)+$(makeLenses ''MsgSsrSatelliteApcDep)+ msgSsrSatelliteApc :: Word16-msgSsrSatelliteApc = 0x0604+msgSsrSatelliteApc = 0x0605 data MsgSsrSatelliteApc = MsgSsrSatelliteApc- { _msgSsrSatelliteApc_apc :: ![SatelliteAPC]+ { _msgSsrSatelliteApc_time :: !GpsTimeSec+ -- ^ GNSS reference time of the correction+ , _msgSsrSatelliteApc_update_interval :: !Word8+ -- ^ Update interval between consecutive corrections. Encoded following RTCM+ -- DF391 specification.+ , _msgSsrSatelliteApc_sol_id :: !Word8+ -- ^ SSR Solution ID. Similar to RTCM DF415.+ , _msgSsrSatelliteApc_iod_ssr :: !Word8+ -- ^ IOD of the SSR correction. A change of Issue Of Data SSR is used to+ -- indicate a change in the SSR generating configuration+ , _msgSsrSatelliteApc_apc :: ![SatelliteAPC] -- ^ Satellite antenna phase center corrections } deriving ( Show, Read, Eq ) instance Binary MsgSsrSatelliteApc where get = do+ _msgSsrSatelliteApc_time <- get+ _msgSsrSatelliteApc_update_interval <- getWord8+ _msgSsrSatelliteApc_sol_id <- getWord8+ _msgSsrSatelliteApc_iod_ssr <- getWord8 _msgSsrSatelliteApc_apc <- whileM (not <$> isEmpty) get pure MsgSsrSatelliteApc {..} put MsgSsrSatelliteApc {..} = do+ put _msgSsrSatelliteApc_time+ putWord8 _msgSsrSatelliteApc_update_interval+ putWord8 _msgSsrSatelliteApc_sol_id+ putWord8 _msgSsrSatelliteApc_iod_ssr mapM_ put _msgSsrSatelliteApc_apc $(makeSBP 'msgSsrSatelliteApc ''MsgSsrSatelliteApc)
@@ -0,0 +1,129 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE RecordWildCards #-}++-- |+-- Module: SwiftNav.SBP.Telemetry+-- Copyright: Copyright (C) 2015-2021 Swift Navigation, Inc.+-- License: MIT+-- Contact: https://support.swiftnav.com+-- Stability: experimental+-- Portability: portable+--+-- \< Telemetry messages reported by Starling engine. The messages include+-- various byproducts of state estimation and other logic across Starling and+-- are aimed at efficient issue diagnostics. \>++module SwiftNav.SBP.Telemetry+ ( module SwiftNav.SBP.Telemetry+ ) where++import BasicPrelude+import Control.Lens+import Control.Monad.Loops+import Data.Binary+import Data.Binary.Get+import Data.Binary.IEEE754+import Data.Binary.Put+import Data.ByteString.Lazy hiding (ByteString)+import Data.Int+import Data.Word+import SwiftNav.SBP.TH+import SwiftNav.SBP.Gnss++{-# ANN module ("HLint: ignore Use camelCase"::String) #-}+{-# ANN module ("HLint: ignore Redundant do"::String) #-}+{-# ANN module ("HLint: ignore Use newtype instead of data"::String) #-}+++data TelemetrySV = TelemetrySV+ { _telemetrySV_az :: !Word8+ -- ^ Azimuth angle (range 0..179)+ , _telemetrySV_el :: !Int8+ -- ^ Elevation angle (range -90..90)+ , _telemetrySV_availability_flags :: !Word8+ -- ^ Observation availability at filter update+ , _telemetrySV_pseudorange_residual :: !Int16+ -- ^ Pseudorange observation residual+ , _telemetrySV_phase_residual :: !Int16+ -- ^ Carrier-phase or carrier-phase-derived observation residual+ , _telemetrySV_outlier_flags :: !Word8+ -- ^ Reports if observation is marked as an outlier and is excluded from the+ -- update+ , _telemetrySV_ephemeris_flags :: !Word8+ -- ^ Ephemeris metadata+ , _telemetrySV_correction_flags :: !Word8+ -- ^ Reserved+ , _telemetrySV_sid :: !GnssSignal+ -- ^ GNSS signal identifier (16 bit)+ } deriving ( Show, Read, Eq )++instance Binary TelemetrySV where+ get = do+ _telemetrySV_az <- getWord8+ _telemetrySV_el <- (fromIntegral <$> getWord8)+ _telemetrySV_availability_flags <- getWord8+ _telemetrySV_pseudorange_residual <- (fromIntegral <$> getWord16le)+ _telemetrySV_phase_residual <- (fromIntegral <$> getWord16le)+ _telemetrySV_outlier_flags <- getWord8+ _telemetrySV_ephemeris_flags <- getWord8+ _telemetrySV_correction_flags <- getWord8+ _telemetrySV_sid <- get+ pure TelemetrySV {..}++ put TelemetrySV {..} = do+ putWord8 _telemetrySV_az+ (putWord8 . fromIntegral) _telemetrySV_el+ putWord8 _telemetrySV_availability_flags+ (putWord16le . fromIntegral) _telemetrySV_pseudorange_residual+ (putWord16le . fromIntegral) _telemetrySV_phase_residual+ putWord8 _telemetrySV_outlier_flags+ putWord8 _telemetrySV_ephemeris_flags+ putWord8 _telemetrySV_correction_flags+ put _telemetrySV_sid++$(makeJSON "_telemetrySV_" ''TelemetrySV)+$(makeLenses ''TelemetrySV)++msgTelSv :: Word16+msgTelSv = 0x0120++-- | SBP class for message MSG_TEL_SV (0x0120).+--+-- This message includes telemetry pertinent to satellite signals available to+-- Starling.+data MsgTelSv = MsgTelSv+ { _msgTelSv_wn :: !Word16+ -- ^ GPS week number+ , _msgTelSv_tow :: !Word32+ -- ^ GPS Time of Week+ , _msgTelSv_n_obs :: !Word8+ -- ^ Total number of observations. First nibble is the size of the sequence+ -- (n), second nibble is the zero-indexed counter (ith packet of n)+ , _msgTelSv_origin_flags :: !Word8+ -- ^ Flags to identify the filter type from which the telemetry is reported+ -- from+ , _msgTelSv_sv_tel :: ![TelemetrySV]+ -- ^ Array of per-signal telemetry entries+ } deriving ( Show, Read, Eq )++instance Binary MsgTelSv where+ get = do+ _msgTelSv_wn <- getWord16le+ _msgTelSv_tow <- getWord32le+ _msgTelSv_n_obs <- getWord8+ _msgTelSv_origin_flags <- getWord8+ _msgTelSv_sv_tel <- whileM (not <$> isEmpty) get+ pure MsgTelSv {..}++ put MsgTelSv {..} = do+ putWord16le _msgTelSv_wn+ putWord32le _msgTelSv_tow+ putWord8 _msgTelSv_n_obs+ putWord8 _msgTelSv_origin_flags+ mapM_ put _msgTelSv_sv_tel++$(makeSBP 'msgTelSv ''MsgTelSv)+$(makeJSON "_msgTelSv_" ''MsgTelSv)+$(makeLenses ''MsgTelSv)