{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE RecordWildCards #-}
module SwiftNav.SBP.Observation
( module SwiftNav.SBP.Observation
) 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.Types
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 ObservationHeader = ObservationHeader
{ _observationHeader_t :: !GpsTime
, _observationHeader_n_obs :: !Word8
} deriving ( Show, Read, Eq )
instance Binary ObservationHeader where
get = do
_observationHeader_t <- get
_observationHeader_n_obs <- getWord8
pure ObservationHeader {..}
put ObservationHeader {..} = do
put _observationHeader_t
putWord8 _observationHeader_n_obs
$(makeJSON "_observationHeader_" ''ObservationHeader)
$(makeLenses ''ObservationHeader)
data Doppler = Doppler
{ _doppler_i :: !Int16
, _doppler_f :: !Word8
} deriving ( Show, Read, Eq )
instance Binary Doppler where
get = do
_doppler_i <- fromIntegral <$> getWord16le
_doppler_f <- getWord8
pure Doppler {..}
put Doppler {..} = do
putWord16le $ fromIntegral _doppler_i
putWord8 _doppler_f
$(makeJSON "_doppler_" ''Doppler)
$(makeLenses ''Doppler)
data PackedObsContent = PackedObsContent
{ _packedObsContent_P :: !Word32
, _packedObsContent_L :: !CarrierPhase
, _packedObsContent_D :: !Doppler
, _packedObsContent_cn0 :: !Word8
, _packedObsContent_lock :: !Word8
, _packedObsContent_flags :: !Word8
, _packedObsContent_sid :: !GnssSignal
} deriving ( Show, Read, Eq )
instance Binary PackedObsContent where
get = do
_packedObsContent_P <- getWord32le
_packedObsContent_L <- get
_packedObsContent_D <- get
_packedObsContent_cn0 <- getWord8
_packedObsContent_lock <- getWord8
_packedObsContent_flags <- getWord8
_packedObsContent_sid <- get
pure PackedObsContent {..}
put PackedObsContent {..} = do
putWord32le _packedObsContent_P
put _packedObsContent_L
put _packedObsContent_D
putWord8 _packedObsContent_cn0
putWord8 _packedObsContent_lock
putWord8 _packedObsContent_flags
put _packedObsContent_sid
$(makeJSON "_packedObsContent_" ''PackedObsContent)
$(makeLenses ''PackedObsContent)
msgObs :: Word16
msgObs = 0x004A
data MsgObs = MsgObs
{ _msgObs_header :: !ObservationHeader
, _msgObs_obs :: ![PackedObsContent]
} deriving ( Show, Read, Eq )
instance Binary MsgObs where
get = do
_msgObs_header <- get
_msgObs_obs <- whileM (not <$> isEmpty) get
pure MsgObs {..}
put MsgObs {..} = do
put _msgObs_header
mapM_ put _msgObs_obs
$(makeSBP 'msgObs ''MsgObs)
$(makeJSON "_msgObs_" ''MsgObs)
$(makeLenses ''MsgObs)
msgBasePosLlh :: Word16
msgBasePosLlh = 0x0044
data MsgBasePosLlh = MsgBasePosLlh
{ _msgBasePosLlh_lat :: !Double
, _msgBasePosLlh_lon :: !Double
, _msgBasePosLlh_height :: !Double
} deriving ( Show, Read, Eq )
instance Binary MsgBasePosLlh where
get = do
_msgBasePosLlh_lat <- getFloat64le
_msgBasePosLlh_lon <- getFloat64le
_msgBasePosLlh_height <- getFloat64le
pure MsgBasePosLlh {..}
put MsgBasePosLlh {..} = do
putFloat64le _msgBasePosLlh_lat
putFloat64le _msgBasePosLlh_lon
putFloat64le _msgBasePosLlh_height
$(makeSBP 'msgBasePosLlh ''MsgBasePosLlh)
$(makeJSON "_msgBasePosLlh_" ''MsgBasePosLlh)
$(makeLenses ''MsgBasePosLlh)
msgBasePosEcef :: Word16
msgBasePosEcef = 0x0048
data MsgBasePosEcef = MsgBasePosEcef
{ _msgBasePosEcef_x :: !Double
, _msgBasePosEcef_y :: !Double
, _msgBasePosEcef_z :: !Double
} deriving ( Show, Read, Eq )
instance Binary MsgBasePosEcef where
get = do
_msgBasePosEcef_x <- getFloat64le
_msgBasePosEcef_y <- getFloat64le
_msgBasePosEcef_z <- getFloat64le
pure MsgBasePosEcef {..}
put MsgBasePosEcef {..} = do
putFloat64le _msgBasePosEcef_x
putFloat64le _msgBasePosEcef_y
putFloat64le _msgBasePosEcef_z
$(makeSBP 'msgBasePosEcef ''MsgBasePosEcef)
$(makeJSON "_msgBasePosEcef_" ''MsgBasePosEcef)
$(makeLenses ''MsgBasePosEcef)
data EphemerisCommonContent = EphemerisCommonContent
{ _ephemerisCommonContent_sid :: !GnssSignal
, _ephemerisCommonContent_toe :: !GpsTimeSec
, _ephemerisCommonContent_ura :: !Float
, _ephemerisCommonContent_fit_interval :: !Word32
, _ephemerisCommonContent_valid :: !Word8
, _ephemerisCommonContent_health_bits :: !Word8
} deriving ( Show, Read, Eq )
instance Binary EphemerisCommonContent where
get = do
_ephemerisCommonContent_sid <- get
_ephemerisCommonContent_toe <- get
_ephemerisCommonContent_ura <- getFloat32le
_ephemerisCommonContent_fit_interval <- getWord32le
_ephemerisCommonContent_valid <- getWord8
_ephemerisCommonContent_health_bits <- getWord8
pure EphemerisCommonContent {..}
put EphemerisCommonContent {..} = do
put _ephemerisCommonContent_sid
put _ephemerisCommonContent_toe
putFloat32le _ephemerisCommonContent_ura
putWord32le _ephemerisCommonContent_fit_interval
putWord8 _ephemerisCommonContent_valid
putWord8 _ephemerisCommonContent_health_bits
$(makeJSON "_ephemerisCommonContent_" ''EphemerisCommonContent)
$(makeLenses ''EphemerisCommonContent)
data EphemerisCommonContentDepB = EphemerisCommonContentDepB
{ _ephemerisCommonContentDepB_sid :: !GnssSignal
, _ephemerisCommonContentDepB_toe :: !GpsTimeSec
, _ephemerisCommonContentDepB_ura :: !Double
, _ephemerisCommonContentDepB_fit_interval :: !Word32
, _ephemerisCommonContentDepB_valid :: !Word8
, _ephemerisCommonContentDepB_health_bits :: !Word8
} deriving ( Show, Read, Eq )
instance Binary EphemerisCommonContentDepB where
get = do
_ephemerisCommonContentDepB_sid <- get
_ephemerisCommonContentDepB_toe <- get
_ephemerisCommonContentDepB_ura <- getFloat64le
_ephemerisCommonContentDepB_fit_interval <- getWord32le
_ephemerisCommonContentDepB_valid <- getWord8
_ephemerisCommonContentDepB_health_bits <- getWord8
pure EphemerisCommonContentDepB {..}
put EphemerisCommonContentDepB {..} = do
put _ephemerisCommonContentDepB_sid
put _ephemerisCommonContentDepB_toe
putFloat64le _ephemerisCommonContentDepB_ura
putWord32le _ephemerisCommonContentDepB_fit_interval
putWord8 _ephemerisCommonContentDepB_valid
putWord8 _ephemerisCommonContentDepB_health_bits
$(makeJSON "_ephemerisCommonContentDepB_" ''EphemerisCommonContentDepB)
$(makeLenses ''EphemerisCommonContentDepB)
data EphemerisCommonContentDepA = EphemerisCommonContentDepA
{ _ephemerisCommonContentDepA_sid :: !GnssSignalDep
, _ephemerisCommonContentDepA_toe :: !GpsTimeDep
, _ephemerisCommonContentDepA_ura :: !Double
, _ephemerisCommonContentDepA_fit_interval :: !Word32
, _ephemerisCommonContentDepA_valid :: !Word8
, _ephemerisCommonContentDepA_health_bits :: !Word8
} deriving ( Show, Read, Eq )
instance Binary EphemerisCommonContentDepA where
get = do
_ephemerisCommonContentDepA_sid <- get
_ephemerisCommonContentDepA_toe <- get
_ephemerisCommonContentDepA_ura <- getFloat64le
_ephemerisCommonContentDepA_fit_interval <- getWord32le
_ephemerisCommonContentDepA_valid <- getWord8
_ephemerisCommonContentDepA_health_bits <- getWord8
pure EphemerisCommonContentDepA {..}
put EphemerisCommonContentDepA {..} = do
put _ephemerisCommonContentDepA_sid
put _ephemerisCommonContentDepA_toe
putFloat64le _ephemerisCommonContentDepA_ura
putWord32le _ephemerisCommonContentDepA_fit_interval
putWord8 _ephemerisCommonContentDepA_valid
putWord8 _ephemerisCommonContentDepA_health_bits
$(makeJSON "_ephemerisCommonContentDepA_" ''EphemerisCommonContentDepA)
$(makeLenses ''EphemerisCommonContentDepA)
msgEphemerisGpsDepE :: Word16
msgEphemerisGpsDepE = 0x0081
data MsgEphemerisGpsDepE = MsgEphemerisGpsDepE
{ _msgEphemerisGpsDepE_common :: !EphemerisCommonContentDepA
, _msgEphemerisGpsDepE_tgd :: !Double
, _msgEphemerisGpsDepE_c_rs :: !Double
, _msgEphemerisGpsDepE_c_rc :: !Double
, _msgEphemerisGpsDepE_c_uc :: !Double
, _msgEphemerisGpsDepE_c_us :: !Double
, _msgEphemerisGpsDepE_c_ic :: !Double
, _msgEphemerisGpsDepE_c_is :: !Double
, _msgEphemerisGpsDepE_dn :: !Double
, _msgEphemerisGpsDepE_m0 :: !Double
, _msgEphemerisGpsDepE_ecc :: !Double
, _msgEphemerisGpsDepE_sqrta :: !Double
, _msgEphemerisGpsDepE_omega0 :: !Double
, _msgEphemerisGpsDepE_omegadot :: !Double
, _msgEphemerisGpsDepE_w :: !Double
, _msgEphemerisGpsDepE_inc :: !Double
, _msgEphemerisGpsDepE_inc_dot :: !Double
, _msgEphemerisGpsDepE_af0 :: !Double
, _msgEphemerisGpsDepE_af1 :: !Double
, _msgEphemerisGpsDepE_af2 :: !Double
, _msgEphemerisGpsDepE_toc :: !GpsTimeDep
, _msgEphemerisGpsDepE_iode :: !Word8
, _msgEphemerisGpsDepE_iodc :: !Word16
} deriving ( Show, Read, Eq )
instance Binary MsgEphemerisGpsDepE where
get = do
_msgEphemerisGpsDepE_common <- get
_msgEphemerisGpsDepE_tgd <- getFloat64le
_msgEphemerisGpsDepE_c_rs <- getFloat64le
_msgEphemerisGpsDepE_c_rc <- getFloat64le
_msgEphemerisGpsDepE_c_uc <- getFloat64le
_msgEphemerisGpsDepE_c_us <- getFloat64le
_msgEphemerisGpsDepE_c_ic <- getFloat64le
_msgEphemerisGpsDepE_c_is <- getFloat64le
_msgEphemerisGpsDepE_dn <- getFloat64le
_msgEphemerisGpsDepE_m0 <- getFloat64le
_msgEphemerisGpsDepE_ecc <- getFloat64le
_msgEphemerisGpsDepE_sqrta <- getFloat64le
_msgEphemerisGpsDepE_omega0 <- getFloat64le
_msgEphemerisGpsDepE_omegadot <- getFloat64le
_msgEphemerisGpsDepE_w <- getFloat64le
_msgEphemerisGpsDepE_inc <- getFloat64le
_msgEphemerisGpsDepE_inc_dot <- getFloat64le
_msgEphemerisGpsDepE_af0 <- getFloat64le
_msgEphemerisGpsDepE_af1 <- getFloat64le
_msgEphemerisGpsDepE_af2 <- getFloat64le
_msgEphemerisGpsDepE_toc <- get
_msgEphemerisGpsDepE_iode <- getWord8
_msgEphemerisGpsDepE_iodc <- getWord16le
pure MsgEphemerisGpsDepE {..}
put MsgEphemerisGpsDepE {..} = do
put _msgEphemerisGpsDepE_common
putFloat64le _msgEphemerisGpsDepE_tgd
putFloat64le _msgEphemerisGpsDepE_c_rs
putFloat64le _msgEphemerisGpsDepE_c_rc
putFloat64le _msgEphemerisGpsDepE_c_uc
putFloat64le _msgEphemerisGpsDepE_c_us
putFloat64le _msgEphemerisGpsDepE_c_ic
putFloat64le _msgEphemerisGpsDepE_c_is
putFloat64le _msgEphemerisGpsDepE_dn
putFloat64le _msgEphemerisGpsDepE_m0
putFloat64le _msgEphemerisGpsDepE_ecc
putFloat64le _msgEphemerisGpsDepE_sqrta
putFloat64le _msgEphemerisGpsDepE_omega0
putFloat64le _msgEphemerisGpsDepE_omegadot
putFloat64le _msgEphemerisGpsDepE_w
putFloat64le _msgEphemerisGpsDepE_inc
putFloat64le _msgEphemerisGpsDepE_inc_dot
putFloat64le _msgEphemerisGpsDepE_af0
putFloat64le _msgEphemerisGpsDepE_af1
putFloat64le _msgEphemerisGpsDepE_af2
put _msgEphemerisGpsDepE_toc
putWord8 _msgEphemerisGpsDepE_iode
putWord16le _msgEphemerisGpsDepE_iodc
$(makeSBP 'msgEphemerisGpsDepE ''MsgEphemerisGpsDepE)
$(makeJSON "_msgEphemerisGpsDepE_" ''MsgEphemerisGpsDepE)
$(makeLenses ''MsgEphemerisGpsDepE)
msgEphemerisGpsDepF :: Word16
msgEphemerisGpsDepF = 0x0086
data MsgEphemerisGpsDepF = MsgEphemerisGpsDepF
{ _msgEphemerisGpsDepF_common :: !EphemerisCommonContentDepB
, _msgEphemerisGpsDepF_tgd :: !Double
, _msgEphemerisGpsDepF_c_rs :: !Double
, _msgEphemerisGpsDepF_c_rc :: !Double
, _msgEphemerisGpsDepF_c_uc :: !Double
, _msgEphemerisGpsDepF_c_us :: !Double
, _msgEphemerisGpsDepF_c_ic :: !Double
, _msgEphemerisGpsDepF_c_is :: !Double
, _msgEphemerisGpsDepF_dn :: !Double
, _msgEphemerisGpsDepF_m0 :: !Double
, _msgEphemerisGpsDepF_ecc :: !Double
, _msgEphemerisGpsDepF_sqrta :: !Double
, _msgEphemerisGpsDepF_omega0 :: !Double
, _msgEphemerisGpsDepF_omegadot :: !Double
, _msgEphemerisGpsDepF_w :: !Double
, _msgEphemerisGpsDepF_inc :: !Double
, _msgEphemerisGpsDepF_inc_dot :: !Double
, _msgEphemerisGpsDepF_af0 :: !Double
, _msgEphemerisGpsDepF_af1 :: !Double
, _msgEphemerisGpsDepF_af2 :: !Double
, _msgEphemerisGpsDepF_toc :: !GpsTimeSec
, _msgEphemerisGpsDepF_iode :: !Word8
, _msgEphemerisGpsDepF_iodc :: !Word16
} deriving ( Show, Read, Eq )
instance Binary MsgEphemerisGpsDepF where
get = do
_msgEphemerisGpsDepF_common <- get
_msgEphemerisGpsDepF_tgd <- getFloat64le
_msgEphemerisGpsDepF_c_rs <- getFloat64le
_msgEphemerisGpsDepF_c_rc <- getFloat64le
_msgEphemerisGpsDepF_c_uc <- getFloat64le
_msgEphemerisGpsDepF_c_us <- getFloat64le
_msgEphemerisGpsDepF_c_ic <- getFloat64le
_msgEphemerisGpsDepF_c_is <- getFloat64le
_msgEphemerisGpsDepF_dn <- getFloat64le
_msgEphemerisGpsDepF_m0 <- getFloat64le
_msgEphemerisGpsDepF_ecc <- getFloat64le
_msgEphemerisGpsDepF_sqrta <- getFloat64le
_msgEphemerisGpsDepF_omega0 <- getFloat64le
_msgEphemerisGpsDepF_omegadot <- getFloat64le
_msgEphemerisGpsDepF_w <- getFloat64le
_msgEphemerisGpsDepF_inc <- getFloat64le
_msgEphemerisGpsDepF_inc_dot <- getFloat64le
_msgEphemerisGpsDepF_af0 <- getFloat64le
_msgEphemerisGpsDepF_af1 <- getFloat64le
_msgEphemerisGpsDepF_af2 <- getFloat64le
_msgEphemerisGpsDepF_toc <- get
_msgEphemerisGpsDepF_iode <- getWord8
_msgEphemerisGpsDepF_iodc <- getWord16le
pure MsgEphemerisGpsDepF {..}
put MsgEphemerisGpsDepF {..} = do
put _msgEphemerisGpsDepF_common
putFloat64le _msgEphemerisGpsDepF_tgd
putFloat64le _msgEphemerisGpsDepF_c_rs
putFloat64le _msgEphemerisGpsDepF_c_rc
putFloat64le _msgEphemerisGpsDepF_c_uc
putFloat64le _msgEphemerisGpsDepF_c_us
putFloat64le _msgEphemerisGpsDepF_c_ic
putFloat64le _msgEphemerisGpsDepF_c_is
putFloat64le _msgEphemerisGpsDepF_dn
putFloat64le _msgEphemerisGpsDepF_m0
putFloat64le _msgEphemerisGpsDepF_ecc
putFloat64le _msgEphemerisGpsDepF_sqrta
putFloat64le _msgEphemerisGpsDepF_omega0
putFloat64le _msgEphemerisGpsDepF_omegadot
putFloat64le _msgEphemerisGpsDepF_w
putFloat64le _msgEphemerisGpsDepF_inc
putFloat64le _msgEphemerisGpsDepF_inc_dot
putFloat64le _msgEphemerisGpsDepF_af0
putFloat64le _msgEphemerisGpsDepF_af1
putFloat64le _msgEphemerisGpsDepF_af2
put _msgEphemerisGpsDepF_toc
putWord8 _msgEphemerisGpsDepF_iode
putWord16le _msgEphemerisGpsDepF_iodc
$(makeSBP 'msgEphemerisGpsDepF ''MsgEphemerisGpsDepF)
$(makeJSON "_msgEphemerisGpsDepF_" ''MsgEphemerisGpsDepF)
$(makeLenses ''MsgEphemerisGpsDepF)
msgEphemerisGps :: Word16
msgEphemerisGps = 0x008A
data MsgEphemerisGps = MsgEphemerisGps
{ _msgEphemerisGps_common :: !EphemerisCommonContent
, _msgEphemerisGps_tgd :: !Float
, _msgEphemerisGps_c_rs :: !Float
, _msgEphemerisGps_c_rc :: !Float
, _msgEphemerisGps_c_uc :: !Float
, _msgEphemerisGps_c_us :: !Float
, _msgEphemerisGps_c_ic :: !Float
, _msgEphemerisGps_c_is :: !Float
, _msgEphemerisGps_dn :: !Double
, _msgEphemerisGps_m0 :: !Double
, _msgEphemerisGps_ecc :: !Double
, _msgEphemerisGps_sqrta :: !Double
, _msgEphemerisGps_omega0 :: !Double
, _msgEphemerisGps_omegadot :: !Double
, _msgEphemerisGps_w :: !Double
, _msgEphemerisGps_inc :: !Double
, _msgEphemerisGps_inc_dot :: !Double
, _msgEphemerisGps_af0 :: !Float
, _msgEphemerisGps_af1 :: !Float
, _msgEphemerisGps_af2 :: !Float
, _msgEphemerisGps_toc :: !GpsTimeSec
, _msgEphemerisGps_iode :: !Word8
, _msgEphemerisGps_iodc :: !Word16
} deriving ( Show, Read, Eq )
instance Binary MsgEphemerisGps where
get = do
_msgEphemerisGps_common <- get
_msgEphemerisGps_tgd <- getFloat32le
_msgEphemerisGps_c_rs <- getFloat32le
_msgEphemerisGps_c_rc <- getFloat32le
_msgEphemerisGps_c_uc <- getFloat32le
_msgEphemerisGps_c_us <- getFloat32le
_msgEphemerisGps_c_ic <- getFloat32le
_msgEphemerisGps_c_is <- getFloat32le
_msgEphemerisGps_dn <- getFloat64le
_msgEphemerisGps_m0 <- getFloat64le
_msgEphemerisGps_ecc <- getFloat64le
_msgEphemerisGps_sqrta <- getFloat64le
_msgEphemerisGps_omega0 <- getFloat64le
_msgEphemerisGps_omegadot <- getFloat64le
_msgEphemerisGps_w <- getFloat64le
_msgEphemerisGps_inc <- getFloat64le
_msgEphemerisGps_inc_dot <- getFloat64le
_msgEphemerisGps_af0 <- getFloat32le
_msgEphemerisGps_af1 <- getFloat32le
_msgEphemerisGps_af2 <- getFloat32le
_msgEphemerisGps_toc <- get
_msgEphemerisGps_iode <- getWord8
_msgEphemerisGps_iodc <- getWord16le
pure MsgEphemerisGps {..}
put MsgEphemerisGps {..} = do
put _msgEphemerisGps_common
putFloat32le _msgEphemerisGps_tgd
putFloat32le _msgEphemerisGps_c_rs
putFloat32le _msgEphemerisGps_c_rc
putFloat32le _msgEphemerisGps_c_uc
putFloat32le _msgEphemerisGps_c_us
putFloat32le _msgEphemerisGps_c_ic
putFloat32le _msgEphemerisGps_c_is
putFloat64le _msgEphemerisGps_dn
putFloat64le _msgEphemerisGps_m0
putFloat64le _msgEphemerisGps_ecc
putFloat64le _msgEphemerisGps_sqrta
putFloat64le _msgEphemerisGps_omega0
putFloat64le _msgEphemerisGps_omegadot
putFloat64le _msgEphemerisGps_w
putFloat64le _msgEphemerisGps_inc
putFloat64le _msgEphemerisGps_inc_dot
putFloat32le _msgEphemerisGps_af0
putFloat32le _msgEphemerisGps_af1
putFloat32le _msgEphemerisGps_af2
put _msgEphemerisGps_toc
putWord8 _msgEphemerisGps_iode
putWord16le _msgEphemerisGps_iodc
$(makeSBP 'msgEphemerisGps ''MsgEphemerisGps)
$(makeJSON "_msgEphemerisGps_" ''MsgEphemerisGps)
$(makeLenses ''MsgEphemerisGps)
msgEphemerisBds :: Word16
msgEphemerisBds = 0x0089
data MsgEphemerisBds = MsgEphemerisBds
{ _msgEphemerisBds_common :: !EphemerisCommonContent
, _msgEphemerisBds_tgd1 :: !Float
, _msgEphemerisBds_tgd2 :: !Float
, _msgEphemerisBds_c_rs :: !Float
, _msgEphemerisBds_c_rc :: !Float
, _msgEphemerisBds_c_uc :: !Float
, _msgEphemerisBds_c_us :: !Float
, _msgEphemerisBds_c_ic :: !Float
, _msgEphemerisBds_c_is :: !Float
, _msgEphemerisBds_dn :: !Double
, _msgEphemerisBds_m0 :: !Double
, _msgEphemerisBds_ecc :: !Double
, _msgEphemerisBds_sqrta :: !Double
, _msgEphemerisBds_omega0 :: !Double
, _msgEphemerisBds_omegadot :: !Double
, _msgEphemerisBds_w :: !Double
, _msgEphemerisBds_inc :: !Double
, _msgEphemerisBds_inc_dot :: !Double
, _msgEphemerisBds_af0 :: !Double
, _msgEphemerisBds_af1 :: !Float
, _msgEphemerisBds_af2 :: !Float
, _msgEphemerisBds_toc :: !GpsTimeSec
, _msgEphemerisBds_iode :: !Word8
, _msgEphemerisBds_iodc :: !Word16
} deriving ( Show, Read, Eq )
instance Binary MsgEphemerisBds where
get = do
_msgEphemerisBds_common <- get
_msgEphemerisBds_tgd1 <- getFloat32le
_msgEphemerisBds_tgd2 <- getFloat32le
_msgEphemerisBds_c_rs <- getFloat32le
_msgEphemerisBds_c_rc <- getFloat32le
_msgEphemerisBds_c_uc <- getFloat32le
_msgEphemerisBds_c_us <- getFloat32le
_msgEphemerisBds_c_ic <- getFloat32le
_msgEphemerisBds_c_is <- getFloat32le
_msgEphemerisBds_dn <- getFloat64le
_msgEphemerisBds_m0 <- getFloat64le
_msgEphemerisBds_ecc <- getFloat64le
_msgEphemerisBds_sqrta <- getFloat64le
_msgEphemerisBds_omega0 <- getFloat64le
_msgEphemerisBds_omegadot <- getFloat64le
_msgEphemerisBds_w <- getFloat64le
_msgEphemerisBds_inc <- getFloat64le
_msgEphemerisBds_inc_dot <- getFloat64le
_msgEphemerisBds_af0 <- getFloat64le
_msgEphemerisBds_af1 <- getFloat32le
_msgEphemerisBds_af2 <- getFloat32le
_msgEphemerisBds_toc <- get
_msgEphemerisBds_iode <- getWord8
_msgEphemerisBds_iodc <- getWord16le
pure MsgEphemerisBds {..}
put MsgEphemerisBds {..} = do
put _msgEphemerisBds_common
putFloat32le _msgEphemerisBds_tgd1
putFloat32le _msgEphemerisBds_tgd2
putFloat32le _msgEphemerisBds_c_rs
putFloat32le _msgEphemerisBds_c_rc
putFloat32le _msgEphemerisBds_c_uc
putFloat32le _msgEphemerisBds_c_us
putFloat32le _msgEphemerisBds_c_ic
putFloat32le _msgEphemerisBds_c_is
putFloat64le _msgEphemerisBds_dn
putFloat64le _msgEphemerisBds_m0
putFloat64le _msgEphemerisBds_ecc
putFloat64le _msgEphemerisBds_sqrta
putFloat64le _msgEphemerisBds_omega0
putFloat64le _msgEphemerisBds_omegadot
putFloat64le _msgEphemerisBds_w
putFloat64le _msgEphemerisBds_inc
putFloat64le _msgEphemerisBds_inc_dot
putFloat64le _msgEphemerisBds_af0
putFloat32le _msgEphemerisBds_af1
putFloat32le _msgEphemerisBds_af2
put _msgEphemerisBds_toc
putWord8 _msgEphemerisBds_iode
putWord16le _msgEphemerisBds_iodc
$(makeSBP 'msgEphemerisBds ''MsgEphemerisBds)
$(makeJSON "_msgEphemerisBds_" ''MsgEphemerisBds)
$(makeLenses ''MsgEphemerisBds)
msgEphemerisGal :: Word16
msgEphemerisGal = 0x0095
data MsgEphemerisGal = MsgEphemerisGal
{ _msgEphemerisGal_common :: !EphemerisCommonContent
, _msgEphemerisGal_bgd_e1e5a :: !Float
, _msgEphemerisGal_bgd_e1e5b :: !Float
, _msgEphemerisGal_c_rs :: !Float
, _msgEphemerisGal_c_rc :: !Float
, _msgEphemerisGal_c_uc :: !Float
, _msgEphemerisGal_c_us :: !Float
, _msgEphemerisGal_c_ic :: !Float
, _msgEphemerisGal_c_is :: !Float
, _msgEphemerisGal_dn :: !Double
, _msgEphemerisGal_m0 :: !Double
, _msgEphemerisGal_ecc :: !Double
, _msgEphemerisGal_sqrta :: !Double
, _msgEphemerisGal_omega0 :: !Double
, _msgEphemerisGal_omegadot :: !Double
, _msgEphemerisGal_w :: !Double
, _msgEphemerisGal_inc :: !Double
, _msgEphemerisGal_inc_dot :: !Double
, _msgEphemerisGal_af0 :: !Double
, _msgEphemerisGal_af1 :: !Double
, _msgEphemerisGal_af2 :: !Float
, _msgEphemerisGal_toc :: !GpsTimeSec
, _msgEphemerisGal_iode :: !Word16
, _msgEphemerisGal_iodc :: !Word16
} deriving ( Show, Read, Eq )
instance Binary MsgEphemerisGal where
get = do
_msgEphemerisGal_common <- get
_msgEphemerisGal_bgd_e1e5a <- getFloat32le
_msgEphemerisGal_bgd_e1e5b <- getFloat32le
_msgEphemerisGal_c_rs <- getFloat32le
_msgEphemerisGal_c_rc <- getFloat32le
_msgEphemerisGal_c_uc <- getFloat32le
_msgEphemerisGal_c_us <- getFloat32le
_msgEphemerisGal_c_ic <- getFloat32le
_msgEphemerisGal_c_is <- getFloat32le
_msgEphemerisGal_dn <- getFloat64le
_msgEphemerisGal_m0 <- getFloat64le
_msgEphemerisGal_ecc <- getFloat64le
_msgEphemerisGal_sqrta <- getFloat64le
_msgEphemerisGal_omega0 <- getFloat64le
_msgEphemerisGal_omegadot <- getFloat64le
_msgEphemerisGal_w <- getFloat64le
_msgEphemerisGal_inc <- getFloat64le
_msgEphemerisGal_inc_dot <- getFloat64le
_msgEphemerisGal_af0 <- getFloat64le
_msgEphemerisGal_af1 <- getFloat64le
_msgEphemerisGal_af2 <- getFloat32le
_msgEphemerisGal_toc <- get
_msgEphemerisGal_iode <- getWord16le
_msgEphemerisGal_iodc <- getWord16le
pure MsgEphemerisGal {..}
put MsgEphemerisGal {..} = do
put _msgEphemerisGal_common
putFloat32le _msgEphemerisGal_bgd_e1e5a
putFloat32le _msgEphemerisGal_bgd_e1e5b
putFloat32le _msgEphemerisGal_c_rs
putFloat32le _msgEphemerisGal_c_rc
putFloat32le _msgEphemerisGal_c_uc
putFloat32le _msgEphemerisGal_c_us
putFloat32le _msgEphemerisGal_c_ic
putFloat32le _msgEphemerisGal_c_is
putFloat64le _msgEphemerisGal_dn
putFloat64le _msgEphemerisGal_m0
putFloat64le _msgEphemerisGal_ecc
putFloat64le _msgEphemerisGal_sqrta
putFloat64le _msgEphemerisGal_omega0
putFloat64le _msgEphemerisGal_omegadot
putFloat64le _msgEphemerisGal_w
putFloat64le _msgEphemerisGal_inc
putFloat64le _msgEphemerisGal_inc_dot
putFloat64le _msgEphemerisGal_af0
putFloat64le _msgEphemerisGal_af1
putFloat32le _msgEphemerisGal_af2
put _msgEphemerisGal_toc
putWord16le _msgEphemerisGal_iode
putWord16le _msgEphemerisGal_iodc
$(makeSBP 'msgEphemerisGal ''MsgEphemerisGal)
$(makeJSON "_msgEphemerisGal_" ''MsgEphemerisGal)
$(makeLenses ''MsgEphemerisGal)
msgEphemerisSbasDepA :: Word16
msgEphemerisSbasDepA = 0x0082
data MsgEphemerisSbasDepA = MsgEphemerisSbasDepA
{ _msgEphemerisSbasDepA_common :: !EphemerisCommonContentDepA
, _msgEphemerisSbasDepA_pos :: ![Double]
, _msgEphemerisSbasDepA_vel :: ![Double]
, _msgEphemerisSbasDepA_acc :: ![Double]
, _msgEphemerisSbasDepA_a_gf0 :: !Double
, _msgEphemerisSbasDepA_a_gf1 :: !Double
} deriving ( Show, Read, Eq )
instance Binary MsgEphemerisSbasDepA where
get = do
_msgEphemerisSbasDepA_common <- get
_msgEphemerisSbasDepA_pos <- replicateM 3 getFloat64le
_msgEphemerisSbasDepA_vel <- replicateM 3 getFloat64le
_msgEphemerisSbasDepA_acc <- replicateM 3 getFloat64le
_msgEphemerisSbasDepA_a_gf0 <- getFloat64le
_msgEphemerisSbasDepA_a_gf1 <- getFloat64le
pure MsgEphemerisSbasDepA {..}
put MsgEphemerisSbasDepA {..} = do
put _msgEphemerisSbasDepA_common
mapM_ putFloat64le _msgEphemerisSbasDepA_pos
mapM_ putFloat64le _msgEphemerisSbasDepA_vel
mapM_ putFloat64le _msgEphemerisSbasDepA_acc
putFloat64le _msgEphemerisSbasDepA_a_gf0
putFloat64le _msgEphemerisSbasDepA_a_gf1
$(makeSBP 'msgEphemerisSbasDepA ''MsgEphemerisSbasDepA)
$(makeJSON "_msgEphemerisSbasDepA_" ''MsgEphemerisSbasDepA)
$(makeLenses ''MsgEphemerisSbasDepA)
msgEphemerisGloDepA :: Word16
msgEphemerisGloDepA = 0x0083
data MsgEphemerisGloDepA = MsgEphemerisGloDepA
{ _msgEphemerisGloDepA_common :: !EphemerisCommonContentDepA
, _msgEphemerisGloDepA_gamma :: !Double
, _msgEphemerisGloDepA_tau :: !Double
, _msgEphemerisGloDepA_pos :: ![Double]
, _msgEphemerisGloDepA_vel :: ![Double]
, _msgEphemerisGloDepA_acc :: ![Double]
} deriving ( Show, Read, Eq )
instance Binary MsgEphemerisGloDepA where
get = do
_msgEphemerisGloDepA_common <- get
_msgEphemerisGloDepA_gamma <- getFloat64le
_msgEphemerisGloDepA_tau <- getFloat64le
_msgEphemerisGloDepA_pos <- replicateM 3 getFloat64le
_msgEphemerisGloDepA_vel <- replicateM 3 getFloat64le
_msgEphemerisGloDepA_acc <- replicateM 3 getFloat64le
pure MsgEphemerisGloDepA {..}
put MsgEphemerisGloDepA {..} = do
put _msgEphemerisGloDepA_common
putFloat64le _msgEphemerisGloDepA_gamma
putFloat64le _msgEphemerisGloDepA_tau
mapM_ putFloat64le _msgEphemerisGloDepA_pos
mapM_ putFloat64le _msgEphemerisGloDepA_vel
mapM_ putFloat64le _msgEphemerisGloDepA_acc
$(makeSBP 'msgEphemerisGloDepA ''MsgEphemerisGloDepA)
$(makeJSON "_msgEphemerisGloDepA_" ''MsgEphemerisGloDepA)
$(makeLenses ''MsgEphemerisGloDepA)
msgEphemerisSbasDepB :: Word16
msgEphemerisSbasDepB = 0x0084
data MsgEphemerisSbasDepB = MsgEphemerisSbasDepB
{ _msgEphemerisSbasDepB_common :: !EphemerisCommonContentDepB
, _msgEphemerisSbasDepB_pos :: ![Double]
, _msgEphemerisSbasDepB_vel :: ![Double]
, _msgEphemerisSbasDepB_acc :: ![Double]
, _msgEphemerisSbasDepB_a_gf0 :: !Double
, _msgEphemerisSbasDepB_a_gf1 :: !Double
} deriving ( Show, Read, Eq )
instance Binary MsgEphemerisSbasDepB where
get = do
_msgEphemerisSbasDepB_common <- get
_msgEphemerisSbasDepB_pos <- replicateM 3 getFloat64le
_msgEphemerisSbasDepB_vel <- replicateM 3 getFloat64le
_msgEphemerisSbasDepB_acc <- replicateM 3 getFloat64le
_msgEphemerisSbasDepB_a_gf0 <- getFloat64le
_msgEphemerisSbasDepB_a_gf1 <- getFloat64le
pure MsgEphemerisSbasDepB {..}
put MsgEphemerisSbasDepB {..} = do
put _msgEphemerisSbasDepB_common
mapM_ putFloat64le _msgEphemerisSbasDepB_pos
mapM_ putFloat64le _msgEphemerisSbasDepB_vel
mapM_ putFloat64le _msgEphemerisSbasDepB_acc
putFloat64le _msgEphemerisSbasDepB_a_gf0
putFloat64le _msgEphemerisSbasDepB_a_gf1
$(makeSBP 'msgEphemerisSbasDepB ''MsgEphemerisSbasDepB)
$(makeJSON "_msgEphemerisSbasDepB_" ''MsgEphemerisSbasDepB)
$(makeLenses ''MsgEphemerisSbasDepB)
msgEphemerisSbas :: Word16
msgEphemerisSbas = 0x008C
data MsgEphemerisSbas = MsgEphemerisSbas
{ _msgEphemerisSbas_common :: !EphemerisCommonContent
, _msgEphemerisSbas_pos :: ![Double]
, _msgEphemerisSbas_vel :: ![Float]
, _msgEphemerisSbas_acc :: ![Float]
, _msgEphemerisSbas_a_gf0 :: !Float
, _msgEphemerisSbas_a_gf1 :: !Float
} deriving ( Show, Read, Eq )
instance Binary MsgEphemerisSbas where
get = do
_msgEphemerisSbas_common <- get
_msgEphemerisSbas_pos <- replicateM 3 getFloat64le
_msgEphemerisSbas_vel <- replicateM 3 getFloat32le
_msgEphemerisSbas_acc <- replicateM 3 getFloat32le
_msgEphemerisSbas_a_gf0 <- getFloat32le
_msgEphemerisSbas_a_gf1 <- getFloat32le
pure MsgEphemerisSbas {..}
put MsgEphemerisSbas {..} = do
put _msgEphemerisSbas_common
mapM_ putFloat64le _msgEphemerisSbas_pos
mapM_ putFloat32le _msgEphemerisSbas_vel
mapM_ putFloat32le _msgEphemerisSbas_acc
putFloat32le _msgEphemerisSbas_a_gf0
putFloat32le _msgEphemerisSbas_a_gf1
$(makeSBP 'msgEphemerisSbas ''MsgEphemerisSbas)
$(makeJSON "_msgEphemerisSbas_" ''MsgEphemerisSbas)
$(makeLenses ''MsgEphemerisSbas)
msgEphemerisGloDepB :: Word16
msgEphemerisGloDepB = 0x0085
data MsgEphemerisGloDepB = MsgEphemerisGloDepB
{ _msgEphemerisGloDepB_common :: !EphemerisCommonContentDepB
, _msgEphemerisGloDepB_gamma :: !Double
, _msgEphemerisGloDepB_tau :: !Double
, _msgEphemerisGloDepB_pos :: ![Double]
, _msgEphemerisGloDepB_vel :: ![Double]
, _msgEphemerisGloDepB_acc :: ![Double]
} deriving ( Show, Read, Eq )
instance Binary MsgEphemerisGloDepB where
get = do
_msgEphemerisGloDepB_common <- get
_msgEphemerisGloDepB_gamma <- getFloat64le
_msgEphemerisGloDepB_tau <- getFloat64le
_msgEphemerisGloDepB_pos <- replicateM 3 getFloat64le
_msgEphemerisGloDepB_vel <- replicateM 3 getFloat64le
_msgEphemerisGloDepB_acc <- replicateM 3 getFloat64le
pure MsgEphemerisGloDepB {..}
put MsgEphemerisGloDepB {..} = do
put _msgEphemerisGloDepB_common
putFloat64le _msgEphemerisGloDepB_gamma
putFloat64le _msgEphemerisGloDepB_tau
mapM_ putFloat64le _msgEphemerisGloDepB_pos
mapM_ putFloat64le _msgEphemerisGloDepB_vel
mapM_ putFloat64le _msgEphemerisGloDepB_acc
$(makeSBP 'msgEphemerisGloDepB ''MsgEphemerisGloDepB)
$(makeJSON "_msgEphemerisGloDepB_" ''MsgEphemerisGloDepB)
$(makeLenses ''MsgEphemerisGloDepB)
msgEphemerisGloDepC :: Word16
msgEphemerisGloDepC = 0x0087
data MsgEphemerisGloDepC = MsgEphemerisGloDepC
{ _msgEphemerisGloDepC_common :: !EphemerisCommonContentDepB
, _msgEphemerisGloDepC_gamma :: !Double
, _msgEphemerisGloDepC_tau :: !Double
, _msgEphemerisGloDepC_d_tau :: !Double
, _msgEphemerisGloDepC_pos :: ![Double]
, _msgEphemerisGloDepC_vel :: ![Double]
, _msgEphemerisGloDepC_acc :: ![Double]
, _msgEphemerisGloDepC_fcn :: !Word8
} deriving ( Show, Read, Eq )
instance Binary MsgEphemerisGloDepC where
get = do
_msgEphemerisGloDepC_common <- get
_msgEphemerisGloDepC_gamma <- getFloat64le
_msgEphemerisGloDepC_tau <- getFloat64le
_msgEphemerisGloDepC_d_tau <- getFloat64le
_msgEphemerisGloDepC_pos <- replicateM 3 getFloat64le
_msgEphemerisGloDepC_vel <- replicateM 3 getFloat64le
_msgEphemerisGloDepC_acc <- replicateM 3 getFloat64le
_msgEphemerisGloDepC_fcn <- getWord8
pure MsgEphemerisGloDepC {..}
put MsgEphemerisGloDepC {..} = do
put _msgEphemerisGloDepC_common
putFloat64le _msgEphemerisGloDepC_gamma
putFloat64le _msgEphemerisGloDepC_tau
putFloat64le _msgEphemerisGloDepC_d_tau
mapM_ putFloat64le _msgEphemerisGloDepC_pos
mapM_ putFloat64le _msgEphemerisGloDepC_vel
mapM_ putFloat64le _msgEphemerisGloDepC_acc
putWord8 _msgEphemerisGloDepC_fcn
$(makeSBP 'msgEphemerisGloDepC ''MsgEphemerisGloDepC)
$(makeJSON "_msgEphemerisGloDepC_" ''MsgEphemerisGloDepC)
$(makeLenses ''MsgEphemerisGloDepC)
msgEphemerisGloDepD :: Word16
msgEphemerisGloDepD = 0x0088
data MsgEphemerisGloDepD = MsgEphemerisGloDepD
{ _msgEphemerisGloDepD_common :: !EphemerisCommonContentDepB
, _msgEphemerisGloDepD_gamma :: !Double
, _msgEphemerisGloDepD_tau :: !Double
, _msgEphemerisGloDepD_d_tau :: !Double
, _msgEphemerisGloDepD_pos :: ![Double]
, _msgEphemerisGloDepD_vel :: ![Double]
, _msgEphemerisGloDepD_acc :: ![Double]
, _msgEphemerisGloDepD_fcn :: !Word8
, _msgEphemerisGloDepD_iod :: !Word8
} deriving ( Show, Read, Eq )
instance Binary MsgEphemerisGloDepD where
get = do
_msgEphemerisGloDepD_common <- get
_msgEphemerisGloDepD_gamma <- getFloat64le
_msgEphemerisGloDepD_tau <- getFloat64le
_msgEphemerisGloDepD_d_tau <- getFloat64le
_msgEphemerisGloDepD_pos <- replicateM 3 getFloat64le
_msgEphemerisGloDepD_vel <- replicateM 3 getFloat64le
_msgEphemerisGloDepD_acc <- replicateM 3 getFloat64le
_msgEphemerisGloDepD_fcn <- getWord8
_msgEphemerisGloDepD_iod <- getWord8
pure MsgEphemerisGloDepD {..}
put MsgEphemerisGloDepD {..} = do
put _msgEphemerisGloDepD_common
putFloat64le _msgEphemerisGloDepD_gamma
putFloat64le _msgEphemerisGloDepD_tau
putFloat64le _msgEphemerisGloDepD_d_tau
mapM_ putFloat64le _msgEphemerisGloDepD_pos
mapM_ putFloat64le _msgEphemerisGloDepD_vel
mapM_ putFloat64le _msgEphemerisGloDepD_acc
putWord8 _msgEphemerisGloDepD_fcn
putWord8 _msgEphemerisGloDepD_iod
$(makeSBP 'msgEphemerisGloDepD ''MsgEphemerisGloDepD)
$(makeJSON "_msgEphemerisGloDepD_" ''MsgEphemerisGloDepD)
$(makeLenses ''MsgEphemerisGloDepD)
msgEphemerisGlo :: Word16
msgEphemerisGlo = 0x008B
data MsgEphemerisGlo = MsgEphemerisGlo
{ _msgEphemerisGlo_common :: !EphemerisCommonContent
, _msgEphemerisGlo_gamma :: !Float
, _msgEphemerisGlo_tau :: !Float
, _msgEphemerisGlo_d_tau :: !Float
, _msgEphemerisGlo_pos :: ![Double]
, _msgEphemerisGlo_vel :: ![Double]
, _msgEphemerisGlo_acc :: ![Float]
, _msgEphemerisGlo_fcn :: !Word8
, _msgEphemerisGlo_iod :: !Word8
} deriving ( Show, Read, Eq )
instance Binary MsgEphemerisGlo where
get = do
_msgEphemerisGlo_common <- get
_msgEphemerisGlo_gamma <- getFloat32le
_msgEphemerisGlo_tau <- getFloat32le
_msgEphemerisGlo_d_tau <- getFloat32le
_msgEphemerisGlo_pos <- replicateM 3 getFloat64le
_msgEphemerisGlo_vel <- replicateM 3 getFloat64le
_msgEphemerisGlo_acc <- replicateM 3 getFloat32le
_msgEphemerisGlo_fcn <- getWord8
_msgEphemerisGlo_iod <- getWord8
pure MsgEphemerisGlo {..}
put MsgEphemerisGlo {..} = do
put _msgEphemerisGlo_common
putFloat32le _msgEphemerisGlo_gamma
putFloat32le _msgEphemerisGlo_tau
putFloat32le _msgEphemerisGlo_d_tau
mapM_ putFloat64le _msgEphemerisGlo_pos
mapM_ putFloat64le _msgEphemerisGlo_vel
mapM_ putFloat32le _msgEphemerisGlo_acc
putWord8 _msgEphemerisGlo_fcn
putWord8 _msgEphemerisGlo_iod
$(makeSBP 'msgEphemerisGlo ''MsgEphemerisGlo)
$(makeJSON "_msgEphemerisGlo_" ''MsgEphemerisGlo)
$(makeLenses ''MsgEphemerisGlo)
msgEphemerisDepD :: Word16
msgEphemerisDepD = 0x0080
data MsgEphemerisDepD = MsgEphemerisDepD
{ _msgEphemerisDepD_tgd :: !Double
, _msgEphemerisDepD_c_rs :: !Double
, _msgEphemerisDepD_c_rc :: !Double
, _msgEphemerisDepD_c_uc :: !Double
, _msgEphemerisDepD_c_us :: !Double
, _msgEphemerisDepD_c_ic :: !Double
, _msgEphemerisDepD_c_is :: !Double
, _msgEphemerisDepD_dn :: !Double
, _msgEphemerisDepD_m0 :: !Double
, _msgEphemerisDepD_ecc :: !Double
, _msgEphemerisDepD_sqrta :: !Double
, _msgEphemerisDepD_omega0 :: !Double
, _msgEphemerisDepD_omegadot :: !Double
, _msgEphemerisDepD_w :: !Double
, _msgEphemerisDepD_inc :: !Double
, _msgEphemerisDepD_inc_dot :: !Double
, _msgEphemerisDepD_af0 :: !Double
, _msgEphemerisDepD_af1 :: !Double
, _msgEphemerisDepD_af2 :: !Double
, _msgEphemerisDepD_toe_tow :: !Double
, _msgEphemerisDepD_toe_wn :: !Word16
, _msgEphemerisDepD_toc_tow :: !Double
, _msgEphemerisDepD_toc_wn :: !Word16
, _msgEphemerisDepD_valid :: !Word8
, _msgEphemerisDepD_healthy :: !Word8
, _msgEphemerisDepD_sid :: !GnssSignalDep
, _msgEphemerisDepD_iode :: !Word8
, _msgEphemerisDepD_iodc :: !Word16
, _msgEphemerisDepD_reserved :: !Word32
} deriving ( Show, Read, Eq )
instance Binary MsgEphemerisDepD where
get = do
_msgEphemerisDepD_tgd <- getFloat64le
_msgEphemerisDepD_c_rs <- getFloat64le
_msgEphemerisDepD_c_rc <- getFloat64le
_msgEphemerisDepD_c_uc <- getFloat64le
_msgEphemerisDepD_c_us <- getFloat64le
_msgEphemerisDepD_c_ic <- getFloat64le
_msgEphemerisDepD_c_is <- getFloat64le
_msgEphemerisDepD_dn <- getFloat64le
_msgEphemerisDepD_m0 <- getFloat64le
_msgEphemerisDepD_ecc <- getFloat64le
_msgEphemerisDepD_sqrta <- getFloat64le
_msgEphemerisDepD_omega0 <- getFloat64le
_msgEphemerisDepD_omegadot <- getFloat64le
_msgEphemerisDepD_w <- getFloat64le
_msgEphemerisDepD_inc <- getFloat64le
_msgEphemerisDepD_inc_dot <- getFloat64le
_msgEphemerisDepD_af0 <- getFloat64le
_msgEphemerisDepD_af1 <- getFloat64le
_msgEphemerisDepD_af2 <- getFloat64le
_msgEphemerisDepD_toe_tow <- getFloat64le
_msgEphemerisDepD_toe_wn <- getWord16le
_msgEphemerisDepD_toc_tow <- getFloat64le
_msgEphemerisDepD_toc_wn <- getWord16le
_msgEphemerisDepD_valid <- getWord8
_msgEphemerisDepD_healthy <- getWord8
_msgEphemerisDepD_sid <- get
_msgEphemerisDepD_iode <- getWord8
_msgEphemerisDepD_iodc <- getWord16le
_msgEphemerisDepD_reserved <- getWord32le
pure MsgEphemerisDepD {..}
put MsgEphemerisDepD {..} = do
putFloat64le _msgEphemerisDepD_tgd
putFloat64le _msgEphemerisDepD_c_rs
putFloat64le _msgEphemerisDepD_c_rc
putFloat64le _msgEphemerisDepD_c_uc
putFloat64le _msgEphemerisDepD_c_us
putFloat64le _msgEphemerisDepD_c_ic
putFloat64le _msgEphemerisDepD_c_is
putFloat64le _msgEphemerisDepD_dn
putFloat64le _msgEphemerisDepD_m0
putFloat64le _msgEphemerisDepD_ecc
putFloat64le _msgEphemerisDepD_sqrta
putFloat64le _msgEphemerisDepD_omega0
putFloat64le _msgEphemerisDepD_omegadot
putFloat64le _msgEphemerisDepD_w
putFloat64le _msgEphemerisDepD_inc
putFloat64le _msgEphemerisDepD_inc_dot
putFloat64le _msgEphemerisDepD_af0
putFloat64le _msgEphemerisDepD_af1
putFloat64le _msgEphemerisDepD_af2
putFloat64le _msgEphemerisDepD_toe_tow
putWord16le _msgEphemerisDepD_toe_wn
putFloat64le _msgEphemerisDepD_toc_tow
putWord16le _msgEphemerisDepD_toc_wn
putWord8 _msgEphemerisDepD_valid
putWord8 _msgEphemerisDepD_healthy
put _msgEphemerisDepD_sid
putWord8 _msgEphemerisDepD_iode
putWord16le _msgEphemerisDepD_iodc
putWord32le _msgEphemerisDepD_reserved
$(makeSBP 'msgEphemerisDepD ''MsgEphemerisDepD)
$(makeJSON "_msgEphemerisDepD_" ''MsgEphemerisDepD)
$(makeLenses ''MsgEphemerisDepD)
msgEphemerisDepA :: Word16
msgEphemerisDepA = 0x001A
data MsgEphemerisDepA = MsgEphemerisDepA
{ _msgEphemerisDepA_tgd :: !Double
, _msgEphemerisDepA_c_rs :: !Double
, _msgEphemerisDepA_c_rc :: !Double
, _msgEphemerisDepA_c_uc :: !Double
, _msgEphemerisDepA_c_us :: !Double
, _msgEphemerisDepA_c_ic :: !Double
, _msgEphemerisDepA_c_is :: !Double
, _msgEphemerisDepA_dn :: !Double
, _msgEphemerisDepA_m0 :: !Double
, _msgEphemerisDepA_ecc :: !Double
, _msgEphemerisDepA_sqrta :: !Double
, _msgEphemerisDepA_omega0 :: !Double
, _msgEphemerisDepA_omegadot :: !Double
, _msgEphemerisDepA_w :: !Double
, _msgEphemerisDepA_inc :: !Double
, _msgEphemerisDepA_inc_dot :: !Double
, _msgEphemerisDepA_af0 :: !Double
, _msgEphemerisDepA_af1 :: !Double
, _msgEphemerisDepA_af2 :: !Double
, _msgEphemerisDepA_toe_tow :: !Double
, _msgEphemerisDepA_toe_wn :: !Word16
, _msgEphemerisDepA_toc_tow :: !Double
, _msgEphemerisDepA_toc_wn :: !Word16
, _msgEphemerisDepA_valid :: !Word8
, _msgEphemerisDepA_healthy :: !Word8
, _msgEphemerisDepA_prn :: !Word8
} deriving ( Show, Read, Eq )
instance Binary MsgEphemerisDepA where
get = do
_msgEphemerisDepA_tgd <- getFloat64le
_msgEphemerisDepA_c_rs <- getFloat64le
_msgEphemerisDepA_c_rc <- getFloat64le
_msgEphemerisDepA_c_uc <- getFloat64le
_msgEphemerisDepA_c_us <- getFloat64le
_msgEphemerisDepA_c_ic <- getFloat64le
_msgEphemerisDepA_c_is <- getFloat64le
_msgEphemerisDepA_dn <- getFloat64le
_msgEphemerisDepA_m0 <- getFloat64le
_msgEphemerisDepA_ecc <- getFloat64le
_msgEphemerisDepA_sqrta <- getFloat64le
_msgEphemerisDepA_omega0 <- getFloat64le
_msgEphemerisDepA_omegadot <- getFloat64le
_msgEphemerisDepA_w <- getFloat64le
_msgEphemerisDepA_inc <- getFloat64le
_msgEphemerisDepA_inc_dot <- getFloat64le
_msgEphemerisDepA_af0 <- getFloat64le
_msgEphemerisDepA_af1 <- getFloat64le
_msgEphemerisDepA_af2 <- getFloat64le
_msgEphemerisDepA_toe_tow <- getFloat64le
_msgEphemerisDepA_toe_wn <- getWord16le
_msgEphemerisDepA_toc_tow <- getFloat64le
_msgEphemerisDepA_toc_wn <- getWord16le
_msgEphemerisDepA_valid <- getWord8
_msgEphemerisDepA_healthy <- getWord8
_msgEphemerisDepA_prn <- getWord8
pure MsgEphemerisDepA {..}
put MsgEphemerisDepA {..} = do
putFloat64le _msgEphemerisDepA_tgd
putFloat64le _msgEphemerisDepA_c_rs
putFloat64le _msgEphemerisDepA_c_rc
putFloat64le _msgEphemerisDepA_c_uc
putFloat64le _msgEphemerisDepA_c_us
putFloat64le _msgEphemerisDepA_c_ic
putFloat64le _msgEphemerisDepA_c_is
putFloat64le _msgEphemerisDepA_dn
putFloat64le _msgEphemerisDepA_m0
putFloat64le _msgEphemerisDepA_ecc
putFloat64le _msgEphemerisDepA_sqrta
putFloat64le _msgEphemerisDepA_omega0
putFloat64le _msgEphemerisDepA_omegadot
putFloat64le _msgEphemerisDepA_w
putFloat64le _msgEphemerisDepA_inc
putFloat64le _msgEphemerisDepA_inc_dot
putFloat64le _msgEphemerisDepA_af0
putFloat64le _msgEphemerisDepA_af1
putFloat64le _msgEphemerisDepA_af2
putFloat64le _msgEphemerisDepA_toe_tow
putWord16le _msgEphemerisDepA_toe_wn
putFloat64le _msgEphemerisDepA_toc_tow
putWord16le _msgEphemerisDepA_toc_wn
putWord8 _msgEphemerisDepA_valid
putWord8 _msgEphemerisDepA_healthy
putWord8 _msgEphemerisDepA_prn
$(makeSBP 'msgEphemerisDepA ''MsgEphemerisDepA)
$(makeJSON "_msgEphemerisDepA_" ''MsgEphemerisDepA)
$(makeLenses ''MsgEphemerisDepA)
msgEphemerisDepB :: Word16
msgEphemerisDepB = 0x0046
data MsgEphemerisDepB = MsgEphemerisDepB
{ _msgEphemerisDepB_tgd :: !Double
, _msgEphemerisDepB_c_rs :: !Double
, _msgEphemerisDepB_c_rc :: !Double
, _msgEphemerisDepB_c_uc :: !Double
, _msgEphemerisDepB_c_us :: !Double
, _msgEphemerisDepB_c_ic :: !Double
, _msgEphemerisDepB_c_is :: !Double
, _msgEphemerisDepB_dn :: !Double
, _msgEphemerisDepB_m0 :: !Double
, _msgEphemerisDepB_ecc :: !Double
, _msgEphemerisDepB_sqrta :: !Double
, _msgEphemerisDepB_omega0 :: !Double
, _msgEphemerisDepB_omegadot :: !Double
, _msgEphemerisDepB_w :: !Double
, _msgEphemerisDepB_inc :: !Double
, _msgEphemerisDepB_inc_dot :: !Double
, _msgEphemerisDepB_af0 :: !Double
, _msgEphemerisDepB_af1 :: !Double
, _msgEphemerisDepB_af2 :: !Double
, _msgEphemerisDepB_toe_tow :: !Double
, _msgEphemerisDepB_toe_wn :: !Word16
, _msgEphemerisDepB_toc_tow :: !Double
, _msgEphemerisDepB_toc_wn :: !Word16
, _msgEphemerisDepB_valid :: !Word8
, _msgEphemerisDepB_healthy :: !Word8
, _msgEphemerisDepB_prn :: !Word8
, _msgEphemerisDepB_iode :: !Word8
} deriving ( Show, Read, Eq )
instance Binary MsgEphemerisDepB where
get = do
_msgEphemerisDepB_tgd <- getFloat64le
_msgEphemerisDepB_c_rs <- getFloat64le
_msgEphemerisDepB_c_rc <- getFloat64le
_msgEphemerisDepB_c_uc <- getFloat64le
_msgEphemerisDepB_c_us <- getFloat64le
_msgEphemerisDepB_c_ic <- getFloat64le
_msgEphemerisDepB_c_is <- getFloat64le
_msgEphemerisDepB_dn <- getFloat64le
_msgEphemerisDepB_m0 <- getFloat64le
_msgEphemerisDepB_ecc <- getFloat64le
_msgEphemerisDepB_sqrta <- getFloat64le
_msgEphemerisDepB_omega0 <- getFloat64le
_msgEphemerisDepB_omegadot <- getFloat64le
_msgEphemerisDepB_w <- getFloat64le
_msgEphemerisDepB_inc <- getFloat64le
_msgEphemerisDepB_inc_dot <- getFloat64le
_msgEphemerisDepB_af0 <- getFloat64le
_msgEphemerisDepB_af1 <- getFloat64le
_msgEphemerisDepB_af2 <- getFloat64le
_msgEphemerisDepB_toe_tow <- getFloat64le
_msgEphemerisDepB_toe_wn <- getWord16le
_msgEphemerisDepB_toc_tow <- getFloat64le
_msgEphemerisDepB_toc_wn <- getWord16le
_msgEphemerisDepB_valid <- getWord8
_msgEphemerisDepB_healthy <- getWord8
_msgEphemerisDepB_prn <- getWord8
_msgEphemerisDepB_iode <- getWord8
pure MsgEphemerisDepB {..}
put MsgEphemerisDepB {..} = do
putFloat64le _msgEphemerisDepB_tgd
putFloat64le _msgEphemerisDepB_c_rs
putFloat64le _msgEphemerisDepB_c_rc
putFloat64le _msgEphemerisDepB_c_uc
putFloat64le _msgEphemerisDepB_c_us
putFloat64le _msgEphemerisDepB_c_ic
putFloat64le _msgEphemerisDepB_c_is
putFloat64le _msgEphemerisDepB_dn
putFloat64le _msgEphemerisDepB_m0
putFloat64le _msgEphemerisDepB_ecc
putFloat64le _msgEphemerisDepB_sqrta
putFloat64le _msgEphemerisDepB_omega0
putFloat64le _msgEphemerisDepB_omegadot
putFloat64le _msgEphemerisDepB_w
putFloat64le _msgEphemerisDepB_inc
putFloat64le _msgEphemerisDepB_inc_dot
putFloat64le _msgEphemerisDepB_af0
putFloat64le _msgEphemerisDepB_af1
putFloat64le _msgEphemerisDepB_af2
putFloat64le _msgEphemerisDepB_toe_tow
putWord16le _msgEphemerisDepB_toe_wn
putFloat64le _msgEphemerisDepB_toc_tow
putWord16le _msgEphemerisDepB_toc_wn
putWord8 _msgEphemerisDepB_valid
putWord8 _msgEphemerisDepB_healthy
putWord8 _msgEphemerisDepB_prn
putWord8 _msgEphemerisDepB_iode
$(makeSBP 'msgEphemerisDepB ''MsgEphemerisDepB)
$(makeJSON "_msgEphemerisDepB_" ''MsgEphemerisDepB)
$(makeLenses ''MsgEphemerisDepB)
msgEphemerisDepC :: Word16
msgEphemerisDepC = 0x0047
data MsgEphemerisDepC = MsgEphemerisDepC
{ _msgEphemerisDepC_tgd :: !Double
, _msgEphemerisDepC_c_rs :: !Double
, _msgEphemerisDepC_c_rc :: !Double
, _msgEphemerisDepC_c_uc :: !Double
, _msgEphemerisDepC_c_us :: !Double
, _msgEphemerisDepC_c_ic :: !Double
, _msgEphemerisDepC_c_is :: !Double
, _msgEphemerisDepC_dn :: !Double
, _msgEphemerisDepC_m0 :: !Double
, _msgEphemerisDepC_ecc :: !Double
, _msgEphemerisDepC_sqrta :: !Double
, _msgEphemerisDepC_omega0 :: !Double
, _msgEphemerisDepC_omegadot :: !Double
, _msgEphemerisDepC_w :: !Double
, _msgEphemerisDepC_inc :: !Double
, _msgEphemerisDepC_inc_dot :: !Double
, _msgEphemerisDepC_af0 :: !Double
, _msgEphemerisDepC_af1 :: !Double
, _msgEphemerisDepC_af2 :: !Double
, _msgEphemerisDepC_toe_tow :: !Double
, _msgEphemerisDepC_toe_wn :: !Word16
, _msgEphemerisDepC_toc_tow :: !Double
, _msgEphemerisDepC_toc_wn :: !Word16
, _msgEphemerisDepC_valid :: !Word8
, _msgEphemerisDepC_healthy :: !Word8
, _msgEphemerisDepC_sid :: !GnssSignalDep
, _msgEphemerisDepC_iode :: !Word8
, _msgEphemerisDepC_iodc :: !Word16
, _msgEphemerisDepC_reserved :: !Word32
} deriving ( Show, Read, Eq )
instance Binary MsgEphemerisDepC where
get = do
_msgEphemerisDepC_tgd <- getFloat64le
_msgEphemerisDepC_c_rs <- getFloat64le
_msgEphemerisDepC_c_rc <- getFloat64le
_msgEphemerisDepC_c_uc <- getFloat64le
_msgEphemerisDepC_c_us <- getFloat64le
_msgEphemerisDepC_c_ic <- getFloat64le
_msgEphemerisDepC_c_is <- getFloat64le
_msgEphemerisDepC_dn <- getFloat64le
_msgEphemerisDepC_m0 <- getFloat64le
_msgEphemerisDepC_ecc <- getFloat64le
_msgEphemerisDepC_sqrta <- getFloat64le
_msgEphemerisDepC_omega0 <- getFloat64le
_msgEphemerisDepC_omegadot <- getFloat64le
_msgEphemerisDepC_w <- getFloat64le
_msgEphemerisDepC_inc <- getFloat64le
_msgEphemerisDepC_inc_dot <- getFloat64le
_msgEphemerisDepC_af0 <- getFloat64le
_msgEphemerisDepC_af1 <- getFloat64le
_msgEphemerisDepC_af2 <- getFloat64le
_msgEphemerisDepC_toe_tow <- getFloat64le
_msgEphemerisDepC_toe_wn <- getWord16le
_msgEphemerisDepC_toc_tow <- getFloat64le
_msgEphemerisDepC_toc_wn <- getWord16le
_msgEphemerisDepC_valid <- getWord8
_msgEphemerisDepC_healthy <- getWord8
_msgEphemerisDepC_sid <- get
_msgEphemerisDepC_iode <- getWord8
_msgEphemerisDepC_iodc <- getWord16le
_msgEphemerisDepC_reserved <- getWord32le
pure MsgEphemerisDepC {..}
put MsgEphemerisDepC {..} = do
putFloat64le _msgEphemerisDepC_tgd
putFloat64le _msgEphemerisDepC_c_rs
putFloat64le _msgEphemerisDepC_c_rc
putFloat64le _msgEphemerisDepC_c_uc
putFloat64le _msgEphemerisDepC_c_us
putFloat64le _msgEphemerisDepC_c_ic
putFloat64le _msgEphemerisDepC_c_is
putFloat64le _msgEphemerisDepC_dn
putFloat64le _msgEphemerisDepC_m0
putFloat64le _msgEphemerisDepC_ecc
putFloat64le _msgEphemerisDepC_sqrta
putFloat64le _msgEphemerisDepC_omega0
putFloat64le _msgEphemerisDepC_omegadot
putFloat64le _msgEphemerisDepC_w
putFloat64le _msgEphemerisDepC_inc
putFloat64le _msgEphemerisDepC_inc_dot
putFloat64le _msgEphemerisDepC_af0
putFloat64le _msgEphemerisDepC_af1
putFloat64le _msgEphemerisDepC_af2
putFloat64le _msgEphemerisDepC_toe_tow
putWord16le _msgEphemerisDepC_toe_wn
putFloat64le _msgEphemerisDepC_toc_tow
putWord16le _msgEphemerisDepC_toc_wn
putWord8 _msgEphemerisDepC_valid
putWord8 _msgEphemerisDepC_healthy
put _msgEphemerisDepC_sid
putWord8 _msgEphemerisDepC_iode
putWord16le _msgEphemerisDepC_iodc
putWord32le _msgEphemerisDepC_reserved
$(makeSBP 'msgEphemerisDepC ''MsgEphemerisDepC)
$(makeJSON "_msgEphemerisDepC_" ''MsgEphemerisDepC)
$(makeLenses ''MsgEphemerisDepC)
data ObservationHeaderDep = ObservationHeaderDep
{ _observationHeaderDep_t :: !GpsTimeDep
, _observationHeaderDep_n_obs :: !Word8
} deriving ( Show, Read, Eq )
instance Binary ObservationHeaderDep where
get = do
_observationHeaderDep_t <- get
_observationHeaderDep_n_obs <- getWord8
pure ObservationHeaderDep {..}
put ObservationHeaderDep {..} = do
put _observationHeaderDep_t
putWord8 _observationHeaderDep_n_obs
$(makeJSON "_observationHeaderDep_" ''ObservationHeaderDep)
$(makeLenses ''ObservationHeaderDep)
data CarrierPhaseDepA = CarrierPhaseDepA
{ _carrierPhaseDepA_i :: !Int32
, _carrierPhaseDepA_f :: !Word8
} deriving ( Show, Read, Eq )
instance Binary CarrierPhaseDepA where
get = do
_carrierPhaseDepA_i <- fromIntegral <$> getWord32le
_carrierPhaseDepA_f <- getWord8
pure CarrierPhaseDepA {..}
put CarrierPhaseDepA {..} = do
putWord32le $ fromIntegral _carrierPhaseDepA_i
putWord8 _carrierPhaseDepA_f
$(makeJSON "_carrierPhaseDepA_" ''CarrierPhaseDepA)
$(makeLenses ''CarrierPhaseDepA)
data PackedObsContentDepA = PackedObsContentDepA
{ _packedObsContentDepA_P :: !Word32
, _packedObsContentDepA_L :: !CarrierPhaseDepA
, _packedObsContentDepA_cn0 :: !Word8
, _packedObsContentDepA_lock :: !Word16
, _packedObsContentDepA_prn :: !Word8
} deriving ( Show, Read, Eq )
instance Binary PackedObsContentDepA where
get = do
_packedObsContentDepA_P <- getWord32le
_packedObsContentDepA_L <- get
_packedObsContentDepA_cn0 <- getWord8
_packedObsContentDepA_lock <- getWord16le
_packedObsContentDepA_prn <- getWord8
pure PackedObsContentDepA {..}
put PackedObsContentDepA {..} = do
putWord32le _packedObsContentDepA_P
put _packedObsContentDepA_L
putWord8 _packedObsContentDepA_cn0
putWord16le _packedObsContentDepA_lock
putWord8 _packedObsContentDepA_prn
$(makeJSON "_packedObsContentDepA_" ''PackedObsContentDepA)
$(makeLenses ''PackedObsContentDepA)
data PackedObsContentDepB = PackedObsContentDepB
{ _packedObsContentDepB_P :: !Word32
, _packedObsContentDepB_L :: !CarrierPhaseDepA
, _packedObsContentDepB_cn0 :: !Word8
, _packedObsContentDepB_lock :: !Word16
, _packedObsContentDepB_sid :: !GnssSignalDep
} deriving ( Show, Read, Eq )
instance Binary PackedObsContentDepB where
get = do
_packedObsContentDepB_P <- getWord32le
_packedObsContentDepB_L <- get
_packedObsContentDepB_cn0 <- getWord8
_packedObsContentDepB_lock <- getWord16le
_packedObsContentDepB_sid <- get
pure PackedObsContentDepB {..}
put PackedObsContentDepB {..} = do
putWord32le _packedObsContentDepB_P
put _packedObsContentDepB_L
putWord8 _packedObsContentDepB_cn0
putWord16le _packedObsContentDepB_lock
put _packedObsContentDepB_sid
$(makeJSON "_packedObsContentDepB_" ''PackedObsContentDepB)
$(makeLenses ''PackedObsContentDepB)
data PackedObsContentDepC = PackedObsContentDepC
{ _packedObsContentDepC_P :: !Word32
, _packedObsContentDepC_L :: !CarrierPhase
, _packedObsContentDepC_cn0 :: !Word8
, _packedObsContentDepC_lock :: !Word16
, _packedObsContentDepC_sid :: !GnssSignalDep
} deriving ( Show, Read, Eq )
instance Binary PackedObsContentDepC where
get = do
_packedObsContentDepC_P <- getWord32le
_packedObsContentDepC_L <- get
_packedObsContentDepC_cn0 <- getWord8
_packedObsContentDepC_lock <- getWord16le
_packedObsContentDepC_sid <- get
pure PackedObsContentDepC {..}
put PackedObsContentDepC {..} = do
putWord32le _packedObsContentDepC_P
put _packedObsContentDepC_L
putWord8 _packedObsContentDepC_cn0
putWord16le _packedObsContentDepC_lock
put _packedObsContentDepC_sid
$(makeJSON "_packedObsContentDepC_" ''PackedObsContentDepC)
$(makeLenses ''PackedObsContentDepC)
msgObsDepA :: Word16
msgObsDepA = 0x0045
data MsgObsDepA = MsgObsDepA
{ _msgObsDepA_header :: !ObservationHeaderDep
, _msgObsDepA_obs :: ![PackedObsContentDepA]
} deriving ( Show, Read, Eq )
instance Binary MsgObsDepA where
get = do
_msgObsDepA_header <- get
_msgObsDepA_obs <- whileM (not <$> isEmpty) get
pure MsgObsDepA {..}
put MsgObsDepA {..} = do
put _msgObsDepA_header
mapM_ put _msgObsDepA_obs
$(makeSBP 'msgObsDepA ''MsgObsDepA)
$(makeJSON "_msgObsDepA_" ''MsgObsDepA)
$(makeLenses ''MsgObsDepA)
msgObsDepB :: Word16
msgObsDepB = 0x0043
data MsgObsDepB = MsgObsDepB
{ _msgObsDepB_header :: !ObservationHeaderDep
, _msgObsDepB_obs :: ![PackedObsContentDepB]
} deriving ( Show, Read, Eq )
instance Binary MsgObsDepB where
get = do
_msgObsDepB_header <- get
_msgObsDepB_obs <- whileM (not <$> isEmpty) get
pure MsgObsDepB {..}
put MsgObsDepB {..} = do
put _msgObsDepB_header
mapM_ put _msgObsDepB_obs
$(makeSBP 'msgObsDepB ''MsgObsDepB)
$(makeJSON "_msgObsDepB_" ''MsgObsDepB)
$(makeLenses ''MsgObsDepB)
msgObsDepC :: Word16
msgObsDepC = 0x0049
data MsgObsDepC = MsgObsDepC
{ _msgObsDepC_header :: !ObservationHeaderDep
, _msgObsDepC_obs :: ![PackedObsContentDepC]
} deriving ( Show, Read, Eq )
instance Binary MsgObsDepC where
get = do
_msgObsDepC_header <- get
_msgObsDepC_obs <- whileM (not <$> isEmpty) get
pure MsgObsDepC {..}
put MsgObsDepC {..} = do
put _msgObsDepC_header
mapM_ put _msgObsDepC_obs
$(makeSBP 'msgObsDepC ''MsgObsDepC)
$(makeJSON "_msgObsDepC_" ''MsgObsDepC)
$(makeLenses ''MsgObsDepC)
msgIono :: Word16
msgIono = 0x0090
data MsgIono = MsgIono
{ _msgIono_t_nmct :: !GpsTimeSec
, _msgIono_a0 :: !Double
, _msgIono_a1 :: !Double
, _msgIono_a2 :: !Double
, _msgIono_a3 :: !Double
, _msgIono_b0 :: !Double
, _msgIono_b1 :: !Double
, _msgIono_b2 :: !Double
, _msgIono_b3 :: !Double
} deriving ( Show, Read, Eq )
instance Binary MsgIono where
get = do
_msgIono_t_nmct <- get
_msgIono_a0 <- getFloat64le
_msgIono_a1 <- getFloat64le
_msgIono_a2 <- getFloat64le
_msgIono_a3 <- getFloat64le
_msgIono_b0 <- getFloat64le
_msgIono_b1 <- getFloat64le
_msgIono_b2 <- getFloat64le
_msgIono_b3 <- getFloat64le
pure MsgIono {..}
put MsgIono {..} = do
put _msgIono_t_nmct
putFloat64le _msgIono_a0
putFloat64le _msgIono_a1
putFloat64le _msgIono_a2
putFloat64le _msgIono_a3
putFloat64le _msgIono_b0
putFloat64le _msgIono_b1
putFloat64le _msgIono_b2
putFloat64le _msgIono_b3
$(makeSBP 'msgIono ''MsgIono)
$(makeJSON "_msgIono_" ''MsgIono)
$(makeLenses ''MsgIono)
msgSvConfigurationGpsDep :: Word16
msgSvConfigurationGpsDep = 0x0091
data MsgSvConfigurationGpsDep = MsgSvConfigurationGpsDep
{ _msgSvConfigurationGpsDep_t_nmct :: !GpsTimeSec
, _msgSvConfigurationGpsDep_l2c_mask :: !Word32
} deriving ( Show, Read, Eq )
instance Binary MsgSvConfigurationGpsDep where
get = do
_msgSvConfigurationGpsDep_t_nmct <- get
_msgSvConfigurationGpsDep_l2c_mask <- getWord32le
pure MsgSvConfigurationGpsDep {..}
put MsgSvConfigurationGpsDep {..} = do
put _msgSvConfigurationGpsDep_t_nmct
putWord32le _msgSvConfigurationGpsDep_l2c_mask
$(makeSBP 'msgSvConfigurationGpsDep ''MsgSvConfigurationGpsDep)
$(makeJSON "_msgSvConfigurationGpsDep_" ''MsgSvConfigurationGpsDep)
$(makeLenses ''MsgSvConfigurationGpsDep)
data GnssCapb = GnssCapb
{ _gnssCapb_gps_active :: !Word64
, _gnssCapb_gps_l2c :: !Word64
, _gnssCapb_gps_l5 :: !Word64
, _gnssCapb_glo_active :: !Word32
, _gnssCapb_glo_l2of :: !Word32
, _gnssCapb_glo_l3 :: !Word32
, _gnssCapb_sbas_active :: !Word64
, _gnssCapb_sbas_l5 :: !Word64
, _gnssCapb_bds_active :: !Word64
, _gnssCapb_bds_d2nav :: !Word64
, _gnssCapb_bds_b2 :: !Word64
, _gnssCapb_bds_b2a :: !Word64
, _gnssCapb_qzss_active :: !Word32
, _gnssCapb_gal_active :: !Word64
, _gnssCapb_gal_e5 :: !Word64
} deriving ( Show, Read, Eq )
instance Binary GnssCapb where
get = do
_gnssCapb_gps_active <- getWord64le
_gnssCapb_gps_l2c <- getWord64le
_gnssCapb_gps_l5 <- getWord64le
_gnssCapb_glo_active <- getWord32le
_gnssCapb_glo_l2of <- getWord32le
_gnssCapb_glo_l3 <- getWord32le
_gnssCapb_sbas_active <- getWord64le
_gnssCapb_sbas_l5 <- getWord64le
_gnssCapb_bds_active <- getWord64le
_gnssCapb_bds_d2nav <- getWord64le
_gnssCapb_bds_b2 <- getWord64le
_gnssCapb_bds_b2a <- getWord64le
_gnssCapb_qzss_active <- getWord32le
_gnssCapb_gal_active <- getWord64le
_gnssCapb_gal_e5 <- getWord64le
pure GnssCapb {..}
put GnssCapb {..} = do
putWord64le _gnssCapb_gps_active
putWord64le _gnssCapb_gps_l2c
putWord64le _gnssCapb_gps_l5
putWord32le _gnssCapb_glo_active
putWord32le _gnssCapb_glo_l2of
putWord32le _gnssCapb_glo_l3
putWord64le _gnssCapb_sbas_active
putWord64le _gnssCapb_sbas_l5
putWord64le _gnssCapb_bds_active
putWord64le _gnssCapb_bds_d2nav
putWord64le _gnssCapb_bds_b2
putWord64le _gnssCapb_bds_b2a
putWord32le _gnssCapb_qzss_active
putWord64le _gnssCapb_gal_active
putWord64le _gnssCapb_gal_e5
$(makeJSON "_gnssCapb_" ''GnssCapb)
$(makeLenses ''GnssCapb)
msgGnssCapb :: Word16
msgGnssCapb = 0x0096
data MsgGnssCapb = MsgGnssCapb
{ _msgGnssCapb_t_nmct :: !GpsTimeSec
, _msgGnssCapb_gc :: !GnssCapb
} deriving ( Show, Read, Eq )
instance Binary MsgGnssCapb where
get = do
_msgGnssCapb_t_nmct <- get
_msgGnssCapb_gc <- get
pure MsgGnssCapb {..}
put MsgGnssCapb {..} = do
put _msgGnssCapb_t_nmct
put _msgGnssCapb_gc
$(makeSBP 'msgGnssCapb ''MsgGnssCapb)
$(makeJSON "_msgGnssCapb_" ''MsgGnssCapb)
$(makeLenses ''MsgGnssCapb)
msgGroupDelayDepA :: Word16
msgGroupDelayDepA = 0x0092
data MsgGroupDelayDepA = MsgGroupDelayDepA
{ _msgGroupDelayDepA_t_op :: !GpsTimeDep
, _msgGroupDelayDepA_prn :: !Word8
, _msgGroupDelayDepA_valid :: !Word8
, _msgGroupDelayDepA_tgd :: !Int16
, _msgGroupDelayDepA_isc_l1ca :: !Int16
, _msgGroupDelayDepA_isc_l2c :: !Int16
} deriving ( Show, Read, Eq )
instance Binary MsgGroupDelayDepA where
get = do
_msgGroupDelayDepA_t_op <- get
_msgGroupDelayDepA_prn <- getWord8
_msgGroupDelayDepA_valid <- getWord8
_msgGroupDelayDepA_tgd <- fromIntegral <$> getWord16le
_msgGroupDelayDepA_isc_l1ca <- fromIntegral <$> getWord16le
_msgGroupDelayDepA_isc_l2c <- fromIntegral <$> getWord16le
pure MsgGroupDelayDepA {..}
put MsgGroupDelayDepA {..} = do
put _msgGroupDelayDepA_t_op
putWord8 _msgGroupDelayDepA_prn
putWord8 _msgGroupDelayDepA_valid
putWord16le $ fromIntegral _msgGroupDelayDepA_tgd
putWord16le $ fromIntegral _msgGroupDelayDepA_isc_l1ca
putWord16le $ fromIntegral _msgGroupDelayDepA_isc_l2c
$(makeSBP 'msgGroupDelayDepA ''MsgGroupDelayDepA)
$(makeJSON "_msgGroupDelayDepA_" ''MsgGroupDelayDepA)
$(makeLenses ''MsgGroupDelayDepA)
msgGroupDelayDepB :: Word16
msgGroupDelayDepB = 0x0093
data MsgGroupDelayDepB = MsgGroupDelayDepB
{ _msgGroupDelayDepB_t_op :: !GpsTimeSec
, _msgGroupDelayDepB_sid :: !GnssSignalDep
, _msgGroupDelayDepB_valid :: !Word8
, _msgGroupDelayDepB_tgd :: !Int16
, _msgGroupDelayDepB_isc_l1ca :: !Int16
, _msgGroupDelayDepB_isc_l2c :: !Int16
} deriving ( Show, Read, Eq )
instance Binary MsgGroupDelayDepB where
get = do
_msgGroupDelayDepB_t_op <- get
_msgGroupDelayDepB_sid <- get
_msgGroupDelayDepB_valid <- getWord8
_msgGroupDelayDepB_tgd <- fromIntegral <$> getWord16le
_msgGroupDelayDepB_isc_l1ca <- fromIntegral <$> getWord16le
_msgGroupDelayDepB_isc_l2c <- fromIntegral <$> getWord16le
pure MsgGroupDelayDepB {..}
put MsgGroupDelayDepB {..} = do
put _msgGroupDelayDepB_t_op
put _msgGroupDelayDepB_sid
putWord8 _msgGroupDelayDepB_valid
putWord16le $ fromIntegral _msgGroupDelayDepB_tgd
putWord16le $ fromIntegral _msgGroupDelayDepB_isc_l1ca
putWord16le $ fromIntegral _msgGroupDelayDepB_isc_l2c
$(makeSBP 'msgGroupDelayDepB ''MsgGroupDelayDepB)
$(makeJSON "_msgGroupDelayDepB_" ''MsgGroupDelayDepB)
$(makeLenses ''MsgGroupDelayDepB)
msgGroupDelay :: Word16
msgGroupDelay = 0x0094
data MsgGroupDelay = MsgGroupDelay
{ _msgGroupDelay_t_op :: !GpsTimeSec
, _msgGroupDelay_sid :: !GnssSignal
, _msgGroupDelay_valid :: !Word8
, _msgGroupDelay_tgd :: !Int16
, _msgGroupDelay_isc_l1ca :: !Int16
, _msgGroupDelay_isc_l2c :: !Int16
} deriving ( Show, Read, Eq )
instance Binary MsgGroupDelay where
get = do
_msgGroupDelay_t_op <- get
_msgGroupDelay_sid <- get
_msgGroupDelay_valid <- getWord8
_msgGroupDelay_tgd <- fromIntegral <$> getWord16le
_msgGroupDelay_isc_l1ca <- fromIntegral <$> getWord16le
_msgGroupDelay_isc_l2c <- fromIntegral <$> getWord16le
pure MsgGroupDelay {..}
put MsgGroupDelay {..} = do
put _msgGroupDelay_t_op
put _msgGroupDelay_sid
putWord8 _msgGroupDelay_valid
putWord16le $ fromIntegral _msgGroupDelay_tgd
putWord16le $ fromIntegral _msgGroupDelay_isc_l1ca
putWord16le $ fromIntegral _msgGroupDelay_isc_l2c
$(makeSBP 'msgGroupDelay ''MsgGroupDelay)
$(makeJSON "_msgGroupDelay_" ''MsgGroupDelay)
$(makeLenses ''MsgGroupDelay)
data AlmanacCommonContent = AlmanacCommonContent
{ _almanacCommonContent_sid :: !GnssSignal
, _almanacCommonContent_toa :: !GpsTimeSec
, _almanacCommonContent_ura :: !Double
, _almanacCommonContent_fit_interval :: !Word32
, _almanacCommonContent_valid :: !Word8
, _almanacCommonContent_health_bits :: !Word8
} deriving ( Show, Read, Eq )
instance Binary AlmanacCommonContent where
get = do
_almanacCommonContent_sid <- get
_almanacCommonContent_toa <- get
_almanacCommonContent_ura <- getFloat64le
_almanacCommonContent_fit_interval <- getWord32le
_almanacCommonContent_valid <- getWord8
_almanacCommonContent_health_bits <- getWord8
pure AlmanacCommonContent {..}
put AlmanacCommonContent {..} = do
put _almanacCommonContent_sid
put _almanacCommonContent_toa
putFloat64le _almanacCommonContent_ura
putWord32le _almanacCommonContent_fit_interval
putWord8 _almanacCommonContent_valid
putWord8 _almanacCommonContent_health_bits
$(makeJSON "_almanacCommonContent_" ''AlmanacCommonContent)
$(makeLenses ''AlmanacCommonContent)
data AlmanacCommonContentDep = AlmanacCommonContentDep
{ _almanacCommonContentDep_sid :: !GnssSignalDep
, _almanacCommonContentDep_toa :: !GpsTimeSec
, _almanacCommonContentDep_ura :: !Double
, _almanacCommonContentDep_fit_interval :: !Word32
, _almanacCommonContentDep_valid :: !Word8
, _almanacCommonContentDep_health_bits :: !Word8
} deriving ( Show, Read, Eq )
instance Binary AlmanacCommonContentDep where
get = do
_almanacCommonContentDep_sid <- get
_almanacCommonContentDep_toa <- get
_almanacCommonContentDep_ura <- getFloat64le
_almanacCommonContentDep_fit_interval <- getWord32le
_almanacCommonContentDep_valid <- getWord8
_almanacCommonContentDep_health_bits <- getWord8
pure AlmanacCommonContentDep {..}
put AlmanacCommonContentDep {..} = do
put _almanacCommonContentDep_sid
put _almanacCommonContentDep_toa
putFloat64le _almanacCommonContentDep_ura
putWord32le _almanacCommonContentDep_fit_interval
putWord8 _almanacCommonContentDep_valid
putWord8 _almanacCommonContentDep_health_bits
$(makeJSON "_almanacCommonContentDep_" ''AlmanacCommonContentDep)
$(makeLenses ''AlmanacCommonContentDep)
msgAlmanacGpsDep :: Word16
msgAlmanacGpsDep = 0x0070
data MsgAlmanacGpsDep = MsgAlmanacGpsDep
{ _msgAlmanacGpsDep_common :: !AlmanacCommonContentDep
, _msgAlmanacGpsDep_m0 :: !Double
, _msgAlmanacGpsDep_ecc :: !Double
, _msgAlmanacGpsDep_sqrta :: !Double
, _msgAlmanacGpsDep_omega0 :: !Double
, _msgAlmanacGpsDep_omegadot :: !Double
, _msgAlmanacGpsDep_w :: !Double
, _msgAlmanacGpsDep_inc :: !Double
, _msgAlmanacGpsDep_af0 :: !Double
, _msgAlmanacGpsDep_af1 :: !Double
} deriving ( Show, Read, Eq )
instance Binary MsgAlmanacGpsDep where
get = do
_msgAlmanacGpsDep_common <- get
_msgAlmanacGpsDep_m0 <- getFloat64le
_msgAlmanacGpsDep_ecc <- getFloat64le
_msgAlmanacGpsDep_sqrta <- getFloat64le
_msgAlmanacGpsDep_omega0 <- getFloat64le
_msgAlmanacGpsDep_omegadot <- getFloat64le
_msgAlmanacGpsDep_w <- getFloat64le
_msgAlmanacGpsDep_inc <- getFloat64le
_msgAlmanacGpsDep_af0 <- getFloat64le
_msgAlmanacGpsDep_af1 <- getFloat64le
pure MsgAlmanacGpsDep {..}
put MsgAlmanacGpsDep {..} = do
put _msgAlmanacGpsDep_common
putFloat64le _msgAlmanacGpsDep_m0
putFloat64le _msgAlmanacGpsDep_ecc
putFloat64le _msgAlmanacGpsDep_sqrta
putFloat64le _msgAlmanacGpsDep_omega0
putFloat64le _msgAlmanacGpsDep_omegadot
putFloat64le _msgAlmanacGpsDep_w
putFloat64le _msgAlmanacGpsDep_inc
putFloat64le _msgAlmanacGpsDep_af0
putFloat64le _msgAlmanacGpsDep_af1
$(makeSBP 'msgAlmanacGpsDep ''MsgAlmanacGpsDep)
$(makeJSON "_msgAlmanacGpsDep_" ''MsgAlmanacGpsDep)
$(makeLenses ''MsgAlmanacGpsDep)
msgAlmanacGps :: Word16
msgAlmanacGps = 0x0072
data MsgAlmanacGps = MsgAlmanacGps
{ _msgAlmanacGps_common :: !AlmanacCommonContent
, _msgAlmanacGps_m0 :: !Double
, _msgAlmanacGps_ecc :: !Double
, _msgAlmanacGps_sqrta :: !Double
, _msgAlmanacGps_omega0 :: !Double
, _msgAlmanacGps_omegadot :: !Double
, _msgAlmanacGps_w :: !Double
, _msgAlmanacGps_inc :: !Double
, _msgAlmanacGps_af0 :: !Double
, _msgAlmanacGps_af1 :: !Double
} deriving ( Show, Read, Eq )
instance Binary MsgAlmanacGps where
get = do
_msgAlmanacGps_common <- get
_msgAlmanacGps_m0 <- getFloat64le
_msgAlmanacGps_ecc <- getFloat64le
_msgAlmanacGps_sqrta <- getFloat64le
_msgAlmanacGps_omega0 <- getFloat64le
_msgAlmanacGps_omegadot <- getFloat64le
_msgAlmanacGps_w <- getFloat64le
_msgAlmanacGps_inc <- getFloat64le
_msgAlmanacGps_af0 <- getFloat64le
_msgAlmanacGps_af1 <- getFloat64le
pure MsgAlmanacGps {..}
put MsgAlmanacGps {..} = do
put _msgAlmanacGps_common
putFloat64le _msgAlmanacGps_m0
putFloat64le _msgAlmanacGps_ecc
putFloat64le _msgAlmanacGps_sqrta
putFloat64le _msgAlmanacGps_omega0
putFloat64le _msgAlmanacGps_omegadot
putFloat64le _msgAlmanacGps_w
putFloat64le _msgAlmanacGps_inc
putFloat64le _msgAlmanacGps_af0
putFloat64le _msgAlmanacGps_af1
$(makeSBP 'msgAlmanacGps ''MsgAlmanacGps)
$(makeJSON "_msgAlmanacGps_" ''MsgAlmanacGps)
$(makeLenses ''MsgAlmanacGps)
msgAlmanacGloDep :: Word16
msgAlmanacGloDep = 0x0071
data MsgAlmanacGloDep = MsgAlmanacGloDep
{ _msgAlmanacGloDep_common :: !AlmanacCommonContentDep
, _msgAlmanacGloDep_lambda_na :: !Double
, _msgAlmanacGloDep_t_lambda_na :: !Double
, _msgAlmanacGloDep_i :: !Double
, _msgAlmanacGloDep_t :: !Double
, _msgAlmanacGloDep_t_dot :: !Double
, _msgAlmanacGloDep_epsilon :: !Double
, _msgAlmanacGloDep_omega :: !Double
} deriving ( Show, Read, Eq )
instance Binary MsgAlmanacGloDep where
get = do
_msgAlmanacGloDep_common <- get
_msgAlmanacGloDep_lambda_na <- getFloat64le
_msgAlmanacGloDep_t_lambda_na <- getFloat64le
_msgAlmanacGloDep_i <- getFloat64le
_msgAlmanacGloDep_t <- getFloat64le
_msgAlmanacGloDep_t_dot <- getFloat64le
_msgAlmanacGloDep_epsilon <- getFloat64le
_msgAlmanacGloDep_omega <- getFloat64le
pure MsgAlmanacGloDep {..}
put MsgAlmanacGloDep {..} = do
put _msgAlmanacGloDep_common
putFloat64le _msgAlmanacGloDep_lambda_na
putFloat64le _msgAlmanacGloDep_t_lambda_na
putFloat64le _msgAlmanacGloDep_i
putFloat64le _msgAlmanacGloDep_t
putFloat64le _msgAlmanacGloDep_t_dot
putFloat64le _msgAlmanacGloDep_epsilon
putFloat64le _msgAlmanacGloDep_omega
$(makeSBP 'msgAlmanacGloDep ''MsgAlmanacGloDep)
$(makeJSON "_msgAlmanacGloDep_" ''MsgAlmanacGloDep)
$(makeLenses ''MsgAlmanacGloDep)
msgAlmanacGlo :: Word16
msgAlmanacGlo = 0x0073
data MsgAlmanacGlo = MsgAlmanacGlo
{ _msgAlmanacGlo_common :: !AlmanacCommonContent
, _msgAlmanacGlo_lambda_na :: !Double
, _msgAlmanacGlo_t_lambda_na :: !Double
, _msgAlmanacGlo_i :: !Double
, _msgAlmanacGlo_t :: !Double
, _msgAlmanacGlo_t_dot :: !Double
, _msgAlmanacGlo_epsilon :: !Double
, _msgAlmanacGlo_omega :: !Double
} deriving ( Show, Read, Eq )
instance Binary MsgAlmanacGlo where
get = do
_msgAlmanacGlo_common <- get
_msgAlmanacGlo_lambda_na <- getFloat64le
_msgAlmanacGlo_t_lambda_na <- getFloat64le
_msgAlmanacGlo_i <- getFloat64le
_msgAlmanacGlo_t <- getFloat64le
_msgAlmanacGlo_t_dot <- getFloat64le
_msgAlmanacGlo_epsilon <- getFloat64le
_msgAlmanacGlo_omega <- getFloat64le
pure MsgAlmanacGlo {..}
put MsgAlmanacGlo {..} = do
put _msgAlmanacGlo_common
putFloat64le _msgAlmanacGlo_lambda_na
putFloat64le _msgAlmanacGlo_t_lambda_na
putFloat64le _msgAlmanacGlo_i
putFloat64le _msgAlmanacGlo_t
putFloat64le _msgAlmanacGlo_t_dot
putFloat64le _msgAlmanacGlo_epsilon
putFloat64le _msgAlmanacGlo_omega
$(makeSBP 'msgAlmanacGlo ''MsgAlmanacGlo)
$(makeJSON "_msgAlmanacGlo_" ''MsgAlmanacGlo)
$(makeLenses ''MsgAlmanacGlo)
msgGloBiases :: Word16
msgGloBiases = 0x0075
data MsgGloBiases = MsgGloBiases
{ _msgGloBiases_mask :: !Word8
, _msgGloBiases_l1ca_bias :: !Int16
, _msgGloBiases_l1p_bias :: !Int16
, _msgGloBiases_l2ca_bias :: !Int16
, _msgGloBiases_l2p_bias :: !Int16
} deriving ( Show, Read, Eq )
instance Binary MsgGloBiases where
get = do
_msgGloBiases_mask <- getWord8
_msgGloBiases_l1ca_bias <- fromIntegral <$> getWord16le
_msgGloBiases_l1p_bias <- fromIntegral <$> getWord16le
_msgGloBiases_l2ca_bias <- fromIntegral <$> getWord16le
_msgGloBiases_l2p_bias <- fromIntegral <$> getWord16le
pure MsgGloBiases {..}
put MsgGloBiases {..} = do
putWord8 _msgGloBiases_mask
putWord16le $ fromIntegral _msgGloBiases_l1ca_bias
putWord16le $ fromIntegral _msgGloBiases_l1p_bias
putWord16le $ fromIntegral _msgGloBiases_l2ca_bias
putWord16le $ fromIntegral _msgGloBiases_l2p_bias
$(makeSBP 'msgGloBiases ''MsgGloBiases)
$(makeJSON "_msgGloBiases_" ''MsgGloBiases)
$(makeLenses ''MsgGloBiases)