packages feed

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 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
src/SwiftNav/SBP.hs view
@@ -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
src/SwiftNav/SBP/Msg.hs view
@@ -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
src/SwiftNav/SBP/Ssr.hs view
@@ -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)
+ src/SwiftNav/SBP/Telemetry.hs view
@@ -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)