{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TemplateHaskell #-}
module Data.RTCM3.MSM
( module Data.RTCM3.MSM
) where
import BasicPrelude
import Control.Lens
import Data.Aeson.TH
import Data.Binary
import Data.Binary.Bits
import qualified Data.Binary.Bits.Get as B
import qualified Data.Binary.Bits.Put as B
import Data.Bits
import Data.Int
import Data.RTCM3.Extras
import Data.RTCM3.TH
{-# ANN module ("HLint: ignore Use camelCase"::String) #-}
data MsmHeader = MsmHeader
{ _msmHeader_num :: Word16
, _msmHeader_station :: Word16
, _msmHeader_epoch :: Word32
, _msmHeader_multiple :: Bool
, _msmHeader_iods :: Word8
, _msmHeader_reserved :: Word8
, _msmHeader_clockSteering :: Word8
, _msmHeader_externalClock :: Word8
, _msmHeader_smoothing :: Bool
, _msmHeader_smoothingInterval :: Word8
, _msmHeader_satelliteMask :: Word64
, _msmHeader_signalMask :: Word32
, _msmHeader_cellMask :: Word64
} deriving ( Show, Read, Eq )
$(makeLenses ''MsmHeader)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msmHeader_" . stripPrefix "_msmHeader_"} ''MsmHeader)
instance BinaryBit MsmHeader where
getBits _n = do
_msmHeader_num <- B.getWord16be 12
_msmHeader_station <- B.getWord16be 12
_msmHeader_epoch <- B.getWord32be 30
_msmHeader_multiple <- B.getBool
_msmHeader_iods <- B.getWord8 3
_msmHeader_reserved <- B.getWord8 7
_msmHeader_clockSteering <- B.getWord8 2
_msmHeader_externalClock <- B.getWord8 2
_msmHeader_smoothing <- B.getBool
_msmHeader_smoothingInterval <- B.getWord8 3
_msmHeader_satelliteMask <- B.getWord64be 64
_msmHeader_signalMask <- B.getWord32be 32
let x = min 64 $ popCount _msmHeader_satelliteMask * popCount _msmHeader_signalMask
_msmHeader_cellMask <- B.getWord64be x
pure MsmHeader {..}
putBits _n MsmHeader {..} = do
B.putWord16be 12 _msmHeader_num
B.putWord16be 12 _msmHeader_station
B.putWord32be 30 _msmHeader_epoch
B.putBool _msmHeader_multiple
B.putWord8 3 _msmHeader_iods
B.putWord8 7 _msmHeader_reserved
B.putWord8 2 _msmHeader_clockSteering
B.putWord8 2 _msmHeader_externalClock
B.putBool _msmHeader_smoothing
B.putWord8 3 _msmHeader_smoothingInterval
B.putWord64be 64 _msmHeader_satelliteMask
B.putWord32be 32 _msmHeader_signalMask
let x = min 64 $ popCount _msmHeader_satelliteMask * popCount _msmHeader_signalMask
B.putWord64be x _msmHeader_cellMask
data Msm46SatelliteData = Msm46SatelliteData
{ _msm46SatelliteData_ranges :: [Word8]
, _msm46SatelliteData_rangesModulo :: [Word16]
} deriving ( Show, Read, Eq )
$(makeLenses ''Msm46SatelliteData)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msm46SatelliteData_" . stripPrefix "_msm46SatelliteData_"} ''Msm46SatelliteData)
getBitsMsm46SatelliteData :: Int -> B.BitGet Msm46SatelliteData
getBitsMsm46SatelliteData n = do
_msm46SatelliteData_ranges <- replicateM n $ B.getWord8 8
_msm46SatelliteData_rangesModulo <- replicateM n $ B.getWord16be 10
pure Msm46SatelliteData {..}
putBitsMsm46SatelliteData :: Msm46SatelliteData -> B.BitPut ()
putBitsMsm46SatelliteData Msm46SatelliteData {..} = do
forM_ _msm46SatelliteData_ranges $ B.putWord8 8
forM_ _msm46SatelliteData_rangesModulo $ B.putWord16be 10
data Msm57SatelliteData = Msm57SatelliteData
{ _msm57SatelliteData_ranges :: [Word8]
, _msm57SatelliteData_extendeds :: [Word8]
, _msm57SatelliteData_rangesModulo :: [Word16]
, _msm57SatelliteData_phaseRangeRates :: [Word16]
} deriving ( Show, Read, Eq )
$(makeLenses ''Msm57SatelliteData)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msm57SatelliteData_" . stripPrefix "_msm57SatelliteData_"} ''Msm57SatelliteData)
getBitsMsm57SatelliteData :: Int -> B.BitGet Msm57SatelliteData
getBitsMsm57SatelliteData n = do
_msm57SatelliteData_ranges <- replicateM n $ B.getWord8 8
_msm57SatelliteData_extendeds <- replicateM n $ B.getWord8 4
_msm57SatelliteData_rangesModulo <- replicateM n $ B.getWord16be 10
_msm57SatelliteData_phaseRangeRates <- replicateM n $ B.getWord16be 14
pure Msm57SatelliteData {..}
putBitsMsm57SatelliteData :: Msm57SatelliteData -> B.BitPut ()
putBitsMsm57SatelliteData Msm57SatelliteData {..} = do
forM_ _msm57SatelliteData_ranges $ B.putWord8 8
forM_ _msm57SatelliteData_extendeds $ B.putWord8 4
forM_ _msm57SatelliteData_rangesModulo $ B.putWord16be 10
forM_ _msm57SatelliteData_phaseRangeRates $ B.putWord16be 14
data Msm4SignalData = Msm4SignalData
{ _msm4SignalData_pseudoranges :: [Int16]
, _msm4SignalData_phaseranges :: [Int32]
, _msm4SignalData_lockTimes :: [Word8]
, _msm4SignalData_halfCycles :: [Bool]
, _msm4SignalData_cnrs :: [Word8]
} deriving ( Show, Read, Eq )
$(makeLenses ''Msm4SignalData)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msm4SignalData_" . stripPrefix "_msm4SignalData_"} ''Msm4SignalData)
getBitsMsm4SignalData :: Int -> B.BitGet Msm4SignalData
getBitsMsm4SignalData n = do
_msm4SignalData_pseudoranges <- replicateM n $ getInt16be 15
_msm4SignalData_phaseranges <- replicateM n $ getInt32be 22
_msm4SignalData_lockTimes <- replicateM n $ B.getWord8 4
_msm4SignalData_halfCycles <- replicateM n B.getBool
_msm4SignalData_cnrs <- replicateM n $ B.getWord8 6
pure Msm4SignalData {..}
putBitsMsm4SignalData :: Msm4SignalData -> B.BitPut ()
putBitsMsm4SignalData Msm4SignalData {..} = do
forM_ _msm4SignalData_pseudoranges $ putInt16be 15
forM_ _msm4SignalData_phaseranges $ putInt32be 22
forM_ _msm4SignalData_lockTimes $ B.putWord8 4
forM_ _msm4SignalData_halfCycles B.putBool
forM_ _msm4SignalData_cnrs $ B.putWord8 6
data Msm5SignalData = Msm5SignalData
{ _msm5SignalData_pseudoranges :: [Int16]
, _msm5SignalData_phaseranges :: [Int32]
, _msm5SignalData_lockTimes :: [Word8]
, _msm5SignalData_halfCycles :: [Bool]
, _msm5SignalData_cnrs :: [Word8]
, _msm5SignalData_phaseRangeRates :: [Int16]
} deriving ( Show, Read, Eq )
$(makeLenses ''Msm5SignalData)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msm5SignalData_" . stripPrefix "_msm5SignalData_"} ''Msm5SignalData)
getBitsMsm5SignalData :: Int -> B.BitGet Msm5SignalData
getBitsMsm5SignalData n = do
_msm5SignalData_pseudoranges <- replicateM n $ getInt16be 15
_msm5SignalData_phaseranges <- replicateM n $ getInt32be 22
_msm5SignalData_lockTimes <- replicateM n $ B.getWord8 4
_msm5SignalData_halfCycles <- replicateM n B.getBool
_msm5SignalData_cnrs <- replicateM n $ B.getWord8 6
_msm5SignalData_phaseRangeRates <- replicateM n $ getInt16be 15
pure Msm5SignalData {..}
putBitsMsm5SignalData :: Msm5SignalData -> B.BitPut ()
putBitsMsm5SignalData Msm5SignalData {..} = do
forM_ _msm5SignalData_pseudoranges $ putInt16be 15
forM_ _msm5SignalData_phaseranges $ putInt32be 22
forM_ _msm5SignalData_lockTimes $ B.putWord8 4
forM_ _msm5SignalData_halfCycles B.putBool
forM_ _msm5SignalData_cnrs $ B.putWord8 6
forM_ _msm5SignalData_phaseRangeRates $ putInt16be 15
data Msm6SignalData = Msm6SignalData
{ _msm6SignalData_pseudoranges :: [Int32]
, _msm6SignalData_phaseranges :: [Int32]
, _msm6SignalData_lockTimes :: [Word16]
, _msm6SignalData_halfCycles :: [Bool]
, _msm6SignalData_cnrs :: [Word16]
} deriving ( Show, Read, Eq )
$(makeLenses ''Msm6SignalData)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msm6SignalData_" . stripPrefix "_msm6SignalData_"} ''Msm6SignalData)
getBitsMsm6SignalData :: Int -> B.BitGet Msm6SignalData
getBitsMsm6SignalData n = do
_msm6SignalData_pseudoranges <- replicateM n $ getInt32be 20
_msm6SignalData_phaseranges <- replicateM n $ getInt32be 24
_msm6SignalData_lockTimes <- replicateM n $ B.getWord16be 10
_msm6SignalData_halfCycles <- replicateM n B.getBool
_msm6SignalData_cnrs <- replicateM n $ B.getWord16be 10
pure Msm6SignalData {..}
putBitsMsm6SignalData :: Msm6SignalData -> B.BitPut ()
putBitsMsm6SignalData Msm6SignalData {..} = do
forM_ _msm6SignalData_pseudoranges $ putInt32be 20
forM_ _msm6SignalData_phaseranges $ putInt32be 24
forM_ _msm6SignalData_lockTimes $ B.putWord16be 10
forM_ _msm6SignalData_halfCycles B.putBool
forM_ _msm6SignalData_cnrs $ B.putWord16be 10
data Msm7SignalData = Msm7SignalData
{ _msm7SignalData_pseudoranges :: [Int32]
, _msm7SignalData_phaseranges :: [Int32]
, _msm7SignalData_lockTimes :: [Word16]
, _msm7SignalData_halfCycles :: [Bool]
, _msm7SignalData_cnrs :: [Word16]
, _msm7SignalData_phaseRangeRates :: [Int16]
} deriving ( Show, Read, Eq )
$(makeLenses ''Msm7SignalData)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msm7SignalData_" . stripPrefix "_msm7SignalData_"} ''Msm7SignalData)
getBitsMsm7SignalData :: Int -> B.BitGet Msm7SignalData
getBitsMsm7SignalData n = do
_msm7SignalData_pseudoranges <- replicateM n $ getInt32be 20
_msm7SignalData_phaseranges <- replicateM n $ getInt32be 24
_msm7SignalData_lockTimes <- replicateM n $ B.getWord16be 10
_msm7SignalData_halfCycles <- replicateM n B.getBool
_msm7SignalData_cnrs <- replicateM n $ B.getWord16be 10
_msm7SignalData_phaseRangeRates <- replicateM n $ getInt16be 15
pure Msm7SignalData {..}
putBitsMsm7SignalData :: Msm7SignalData -> B.BitPut ()
putBitsMsm7SignalData Msm7SignalData {..} = do
forM_ _msm7SignalData_pseudoranges $ putInt32be 20
forM_ _msm7SignalData_phaseranges $ putInt32be 24
forM_ _msm7SignalData_lockTimes $ B.putWord16be 10
forM_ _msm7SignalData_halfCycles B.putBool
forM_ _msm7SignalData_cnrs $ B.putWord16be 10
forM_ _msm7SignalData_phaseRangeRates $ putInt16be 15
msg1074 :: Word16
msg1074 = 1074
data Msg1074 = Msg1074
{ _msg1074_header :: MsmHeader
, _msg1074_satelliteData :: Msm46SatelliteData
, _msg1074_signalData :: Msm4SignalData
} deriving ( Show, Read, Eq )
$(makeLenses ''Msg1074)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msg1074_" . stripPrefix "_msg1074_"} ''Msg1074)
instance Binary Msg1074 where
get = B.runBitGet $ do
_msg1074_header <- getBits 0
_msg1074_satelliteData <- getBitsMsm46SatelliteData $ popCount $ _msg1074_header ^. msmHeader_satelliteMask
_msg1074_signalData <- getBitsMsm4SignalData $ popCount $ _msg1074_header ^. msmHeader_cellMask
pure Msg1074 {..}
put Msg1074 {..} = B.runBitPut $ do
putBits 0 _msg1074_header
putBitsMsm46SatelliteData _msg1074_satelliteData
putBitsMsm4SignalData _msg1074_signalData
$(deriveRTCM3 ''Msg1074)
msg1075 :: Word16
msg1075 = 1075
data Msg1075 = Msg1075
{ _msg1075_header :: MsmHeader
, _msg1075_satelliteData :: Msm57SatelliteData
, _msg1075_signalData :: Msm5SignalData
} deriving ( Show, Read, Eq )
$(makeLenses ''Msg1075)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msg1075_" . stripPrefix "_msg1075_"} ''Msg1075)
instance Binary Msg1075 where
get = B.runBitGet $ do
_msg1075_header <- getBits 0
_msg1075_satelliteData <- getBitsMsm57SatelliteData $ popCount $ _msg1075_header ^. msmHeader_satelliteMask
_msg1075_signalData <- getBitsMsm5SignalData $ popCount $ _msg1075_header ^. msmHeader_cellMask
pure Msg1075 {..}
put Msg1075 {..} = B.runBitPut $ do
putBits 0 _msg1075_header
putBitsMsm57SatelliteData _msg1075_satelliteData
putBitsMsm5SignalData _msg1075_signalData
$(deriveRTCM3 ''Msg1075)
msg1076 :: Word16
msg1076 = 1076
data Msg1076 = Msg1076
{ _msg1076_header :: MsmHeader
, _msg1076_satelliteData :: Msm46SatelliteData
, _msg1076_signalData :: Msm6SignalData
} deriving ( Show, Read, Eq )
$(makeLenses ''Msg1076)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msg1076_" . stripPrefix "_msg1076_"} ''Msg1076)
instance Binary Msg1076 where
get = B.runBitGet $ do
_msg1076_header <- getBits 0
_msg1076_satelliteData <- getBitsMsm46SatelliteData $ popCount $ _msg1076_header ^. msmHeader_satelliteMask
_msg1076_signalData <- getBitsMsm6SignalData $ popCount $ _msg1076_header ^. msmHeader_cellMask
pure Msg1076 {..}
put Msg1076 {..} = B.runBitPut $ do
putBits 0 _msg1076_header
putBitsMsm46SatelliteData _msg1076_satelliteData
putBitsMsm6SignalData _msg1076_signalData
$(deriveRTCM3 ''Msg1076)
msg1077 :: Word16
msg1077 = 1077
data Msg1077 = Msg1077
{ _msg1077_header :: MsmHeader
, _msg1077_satelliteData :: Msm57SatelliteData
, _msg1077_signalData :: Msm7SignalData
} deriving ( Show, Read, Eq )
$(makeLenses ''Msg1077)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msg1077_" . stripPrefix "_msg1077_"} ''Msg1077)
instance Binary Msg1077 where
get = B.runBitGet $ do
_msg1077_header <- getBits 0
_msg1077_satelliteData <- getBitsMsm57SatelliteData $ popCount $ _msg1077_header ^. msmHeader_satelliteMask
_msg1077_signalData <- getBitsMsm7SignalData $ popCount $ _msg1077_header ^. msmHeader_cellMask
pure Msg1077 {..}
put Msg1077 {..} = B.runBitPut $ do
putBits 0 _msg1077_header
putBitsMsm57SatelliteData _msg1077_satelliteData
putBitsMsm7SignalData _msg1077_signalData
$(deriveRTCM3 ''Msg1077)
msg1084 :: Word16
msg1084 = 1084
data Msg1084 = Msg1084
{ _msg1084_header :: MsmHeader
, _msg1084_satelliteData :: Msm46SatelliteData
, _msg1084_signalData :: Msm4SignalData
} deriving ( Show, Read, Eq )
$(makeLenses ''Msg1084)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msg1084_" . stripPrefix "_msg1084_"} ''Msg1084)
instance Binary Msg1084 where
get = B.runBitGet $ do
_msg1084_header <- getBits 0
_msg1084_satelliteData <- getBitsMsm46SatelliteData $ popCount $ _msg1084_header ^. msmHeader_satelliteMask
_msg1084_signalData <- getBitsMsm4SignalData $ popCount $ _msg1084_header ^. msmHeader_cellMask
pure Msg1084 {..}
put Msg1084 {..} = B.runBitPut $ do
putBits 0 _msg1084_header
putBitsMsm46SatelliteData _msg1084_satelliteData
putBitsMsm4SignalData _msg1084_signalData
$(deriveRTCM3 ''Msg1084)
msg1085 :: Word16
msg1085 = 1085
data Msg1085 = Msg1085
{ _msg1085_header :: MsmHeader
, _msg1085_satelliteData :: Msm57SatelliteData
, _msg1085_signalData :: Msm5SignalData
} deriving ( Show, Read, Eq )
$(makeLenses ''Msg1085)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msg1085_" . stripPrefix "_msg1085_"} ''Msg1085)
instance Binary Msg1085 where
get = B.runBitGet $ do
_msg1085_header <- getBits 0
_msg1085_satelliteData <- getBitsMsm57SatelliteData $ popCount $ _msg1085_header ^. msmHeader_satelliteMask
_msg1085_signalData <- getBitsMsm5SignalData $ popCount $ _msg1085_header ^. msmHeader_cellMask
pure Msg1085 {..}
put Msg1085 {..} = B.runBitPut $ do
putBits 0 _msg1085_header
putBitsMsm57SatelliteData _msg1085_satelliteData
putBitsMsm5SignalData _msg1085_signalData
$(deriveRTCM3 ''Msg1085)
msg1086 :: Word16
msg1086 = 1086
data Msg1086 = Msg1086
{ _msg1086_header :: MsmHeader
, _msg1086_satelliteData :: Msm46SatelliteData
, _msg1086_signalData :: Msm6SignalData
} deriving ( Show, Read, Eq )
$(makeLenses ''Msg1086)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msg1086_" . stripPrefix "_msg1086_"} ''Msg1086)
instance Binary Msg1086 where
get = B.runBitGet $ do
_msg1086_header <- getBits 0
_msg1086_satelliteData <- getBitsMsm46SatelliteData $ popCount $ _msg1086_header ^. msmHeader_satelliteMask
_msg1086_signalData <- getBitsMsm6SignalData $ popCount $ _msg1086_header ^. msmHeader_cellMask
pure Msg1086 {..}
put Msg1086 {..} = B.runBitPut $ do
putBits 0 _msg1086_header
putBitsMsm46SatelliteData _msg1086_satelliteData
putBitsMsm6SignalData _msg1086_signalData
$(deriveRTCM3 ''Msg1086)
msg1087 :: Word16
msg1087 = 1087
data Msg1087 = Msg1087
{ _msg1087_header :: MsmHeader
, _msg1087_satelliteData :: Msm57SatelliteData
, _msg1087_signalData :: Msm7SignalData
} deriving ( Show, Read, Eq )
$(makeLenses ''Msg1087)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msg1087_" . stripPrefix "_msg1087_"} ''Msg1087)
instance Binary Msg1087 where
get = B.runBitGet $ do
_msg1087_header <- getBits 0
_msg1087_satelliteData <- getBitsMsm57SatelliteData $ popCount $ _msg1087_header ^. msmHeader_satelliteMask
_msg1087_signalData <- getBitsMsm7SignalData $ popCount $ _msg1087_header ^. msmHeader_cellMask
pure Msg1087 {..}
put Msg1087 {..} = B.runBitPut $ do
putBits 0 _msg1087_header
putBitsMsm57SatelliteData _msg1087_satelliteData
putBitsMsm7SignalData _msg1087_signalData
$(deriveRTCM3 ''Msg1087)
msg1094 :: Word16
msg1094 = 1094
data Msg1094 = Msg1094
{ _msg1094_header :: MsmHeader
, _msg1094_satelliteData :: Msm46SatelliteData
, _msg1094_signalData :: Msm4SignalData
} deriving ( Show, Read, Eq )
$(makeLenses ''Msg1094)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msg1094_" . stripPrefix "_msg1094_"} ''Msg1094)
instance Binary Msg1094 where
get = B.runBitGet $ do
_msg1094_header <- getBits 0
_msg1094_satelliteData <- getBitsMsm46SatelliteData $ popCount $ _msg1094_header ^. msmHeader_satelliteMask
_msg1094_signalData <- getBitsMsm4SignalData $ popCount $ _msg1094_header ^. msmHeader_cellMask
pure Msg1094 {..}
put Msg1094 {..} = B.runBitPut $ do
putBits 0 _msg1094_header
putBitsMsm46SatelliteData _msg1094_satelliteData
putBitsMsm4SignalData _msg1094_signalData
$(deriveRTCM3 ''Msg1094)
msg1095 :: Word16
msg1095 = 1095
data Msg1095 = Msg1095
{ _msg1095_header :: MsmHeader
, _msg1095_satelliteData :: Msm57SatelliteData
, _msg1095_signalData :: Msm5SignalData
} deriving ( Show, Read, Eq )
$(makeLenses ''Msg1095)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msg1095_" . stripPrefix "_msg1095_"} ''Msg1095)
instance Binary Msg1095 where
get = B.runBitGet $ do
_msg1095_header <- getBits 0
_msg1095_satelliteData <- getBitsMsm57SatelliteData $ popCount $ _msg1095_header ^. msmHeader_satelliteMask
_msg1095_signalData <- getBitsMsm5SignalData $ popCount $ _msg1095_header ^. msmHeader_cellMask
pure Msg1095 {..}
put Msg1095 {..} = B.runBitPut $ do
putBits 0 _msg1095_header
putBitsMsm57SatelliteData _msg1095_satelliteData
putBitsMsm5SignalData _msg1095_signalData
$(deriveRTCM3 ''Msg1095)
msg1096 :: Word16
msg1096 = 1096
data Msg1096 = Msg1096
{ _msg1096_header :: MsmHeader
, _msg1096_satelliteData :: Msm46SatelliteData
, _msg1096_signalData :: Msm6SignalData
} deriving ( Show, Read, Eq )
$(makeLenses ''Msg1096)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msg1096_" . stripPrefix "_msg1096_"} ''Msg1096)
instance Binary Msg1096 where
get = B.runBitGet $ do
_msg1096_header <- getBits 0
_msg1096_satelliteData <- getBitsMsm46SatelliteData $ popCount $ _msg1096_header ^. msmHeader_satelliteMask
_msg1096_signalData <- getBitsMsm6SignalData $ popCount $ _msg1096_header ^. msmHeader_cellMask
pure Msg1096 {..}
put Msg1096 {..} = B.runBitPut $ do
putBits 0 _msg1096_header
putBitsMsm46SatelliteData _msg1096_satelliteData
putBitsMsm6SignalData _msg1096_signalData
$(deriveRTCM3 ''Msg1096)
msg1097 :: Word16
msg1097 = 1097
data Msg1097 = Msg1097
{ _msg1097_header :: MsmHeader
, _msg1097_satelliteData :: Msm57SatelliteData
, _msg1097_signalData :: Msm7SignalData
} deriving ( Show, Read, Eq )
$(makeLenses ''Msg1097)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msg1097_" . stripPrefix "_msg1097_"} ''Msg1097)
instance Binary Msg1097 where
get = B.runBitGet $ do
_msg1097_header <- getBits 0
_msg1097_satelliteData <- getBitsMsm57SatelliteData $ popCount $ _msg1097_header ^. msmHeader_satelliteMask
_msg1097_signalData <- getBitsMsm7SignalData $ popCount $ _msg1097_header ^. msmHeader_cellMask
pure Msg1097 {..}
put Msg1097 {..} = B.runBitPut $ do
putBits 0 _msg1097_header
putBitsMsm57SatelliteData _msg1097_satelliteData
putBitsMsm7SignalData _msg1097_signalData
$(deriveRTCM3 ''Msg1097)
msg1104 :: Word16
msg1104 = 1104
data Msg1104 = Msg1104
{ _msg1104_header :: MsmHeader
, _msg1104_satelliteData :: Msm46SatelliteData
, _msg1104_signalData :: Msm4SignalData
} deriving ( Show, Read, Eq )
$(makeLenses ''Msg1104)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msg1104_" . stripPrefix "_msg1104_"} ''Msg1104)
instance Binary Msg1104 where
get = B.runBitGet $ do
_msg1104_header <- getBits 0
_msg1104_satelliteData <- getBitsMsm46SatelliteData $ popCount $ _msg1104_header ^. msmHeader_satelliteMask
_msg1104_signalData <- getBitsMsm4SignalData $ popCount $ _msg1104_header ^. msmHeader_cellMask
pure Msg1104 {..}
put Msg1104 {..} = B.runBitPut $ do
putBits 0 _msg1104_header
putBitsMsm46SatelliteData _msg1104_satelliteData
putBitsMsm4SignalData _msg1104_signalData
$(deriveRTCM3 ''Msg1104)
msg1105 :: Word16
msg1105 = 1105
data Msg1105 = Msg1105
{ _msg1105_header :: MsmHeader
, _msg1105_satelliteData :: Msm57SatelliteData
, _msg1105_signalData :: Msm5SignalData
} deriving ( Show, Read, Eq )
$(makeLenses ''Msg1105)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msg1105_" . stripPrefix "_msg1105_"} ''Msg1105)
instance Binary Msg1105 where
get = B.runBitGet $ do
_msg1105_header <- getBits 0
_msg1105_satelliteData <- getBitsMsm57SatelliteData $ popCount $ _msg1105_header ^. msmHeader_satelliteMask
_msg1105_signalData <- getBitsMsm5SignalData $ popCount $ _msg1105_header ^. msmHeader_cellMask
pure Msg1105 {..}
put Msg1105 {..} = B.runBitPut $ do
putBits 0 _msg1105_header
putBitsMsm57SatelliteData _msg1105_satelliteData
putBitsMsm5SignalData _msg1105_signalData
$(deriveRTCM3 ''Msg1105)
msg1106 :: Word16
msg1106 = 1106
data Msg1106 = Msg1106
{ _msg1106_header :: MsmHeader
, _msg1106_satelliteData :: Msm46SatelliteData
, _msg1106_signalData :: Msm6SignalData
} deriving ( Show, Read, Eq )
$(makeLenses ''Msg1106)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msg1106_" . stripPrefix "_msg1106_"} ''Msg1106)
instance Binary Msg1106 where
get = B.runBitGet $ do
_msg1106_header <- getBits 0
_msg1106_satelliteData <- getBitsMsm46SatelliteData $ popCount $ _msg1106_header ^. msmHeader_satelliteMask
_msg1106_signalData <- getBitsMsm6SignalData $ popCount $ _msg1106_header ^. msmHeader_cellMask
pure Msg1106 {..}
put Msg1106 {..} = B.runBitPut $ do
putBits 0 _msg1106_header
putBitsMsm46SatelliteData _msg1106_satelliteData
putBitsMsm6SignalData _msg1106_signalData
$(deriveRTCM3 ''Msg1106)
msg1107 :: Word16
msg1107 = 1107
data Msg1107 = Msg1107
{ _msg1107_header :: MsmHeader
, _msg1107_satelliteData :: Msm57SatelliteData
, _msg1107_signalData :: Msm7SignalData
} deriving ( Show, Read, Eq )
$(makeLenses ''Msg1107)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msg1107_" . stripPrefix "_msg1107_"} ''Msg1107)
instance Binary Msg1107 where
get = B.runBitGet $ do
_msg1107_header <- getBits 0
_msg1107_satelliteData <- getBitsMsm57SatelliteData $ popCount $ _msg1107_header ^. msmHeader_satelliteMask
_msg1107_signalData <- getBitsMsm7SignalData $ popCount $ _msg1107_header ^. msmHeader_cellMask
pure Msg1107 {..}
put Msg1107 {..} = B.runBitPut $ do
putBits 0 _msg1107_header
putBitsMsm57SatelliteData _msg1107_satelliteData
putBitsMsm7SignalData _msg1107_signalData
$(deriveRTCM3 ''Msg1107)
msg1114 :: Word16
msg1114 = 1114
data Msg1114 = Msg1114
{ _msg1114_header :: MsmHeader
, _msg1114_satelliteData :: Msm46SatelliteData
, _msg1114_signalData :: Msm4SignalData
} deriving ( Show, Read, Eq )
$(makeLenses ''Msg1114)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msg1114_" . stripPrefix "_msg1114_"} ''Msg1114)
instance Binary Msg1114 where
get = B.runBitGet $ do
_msg1114_header <- getBits 0
_msg1114_satelliteData <- getBitsMsm46SatelliteData $ popCount $ _msg1114_header ^. msmHeader_satelliteMask
_msg1114_signalData <- getBitsMsm4SignalData $ popCount $ _msg1114_header ^. msmHeader_cellMask
pure Msg1114 {..}
put Msg1114 {..} = B.runBitPut $ do
putBits 0 _msg1114_header
putBitsMsm46SatelliteData _msg1114_satelliteData
putBitsMsm4SignalData _msg1114_signalData
$(deriveRTCM3 ''Msg1114)
msg1115 :: Word16
msg1115 = 1115
data Msg1115 = Msg1115
{ _msg1115_header :: MsmHeader
, _msg1115_satelliteData :: Msm57SatelliteData
, _msg1115_signalData :: Msm5SignalData
} deriving ( Show, Read, Eq )
$(makeLenses ''Msg1115)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msg1115_" . stripPrefix "_msg1115_"} ''Msg1115)
instance Binary Msg1115 where
get = B.runBitGet $ do
_msg1115_header <- getBits 0
_msg1115_satelliteData <- getBitsMsm57SatelliteData $ popCount $ _msg1115_header ^. msmHeader_satelliteMask
_msg1115_signalData <- getBitsMsm5SignalData $ popCount $ _msg1115_header ^. msmHeader_cellMask
pure Msg1115 {..}
put Msg1115 {..} = B.runBitPut $ do
putBits 0 _msg1115_header
putBitsMsm57SatelliteData _msg1115_satelliteData
putBitsMsm5SignalData _msg1115_signalData
$(deriveRTCM3 ''Msg1115)
msg1116 :: Word16
msg1116 = 1116
data Msg1116 = Msg1116
{ _msg1116_header :: MsmHeader
, _msg1116_satelliteData :: Msm46SatelliteData
, _msg1116_signalData :: Msm6SignalData
} deriving ( Show, Read, Eq )
$(makeLenses ''Msg1116)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msg1116_" . stripPrefix "_msg1116_"} ''Msg1116)
instance Binary Msg1116 where
get = B.runBitGet $ do
_msg1116_header <- getBits 0
_msg1116_satelliteData <- getBitsMsm46SatelliteData $ popCount $ _msg1116_header ^. msmHeader_satelliteMask
_msg1116_signalData <- getBitsMsm6SignalData $ popCount $ _msg1116_header ^. msmHeader_cellMask
pure Msg1116 {..}
put Msg1116 {..} = B.runBitPut $ do
putBits 0 _msg1116_header
putBitsMsm46SatelliteData _msg1116_satelliteData
putBitsMsm6SignalData _msg1116_signalData
$(deriveRTCM3 ''Msg1116)
msg1117 :: Word16
msg1117 = 1117
data Msg1117 = Msg1117
{ _msg1117_header :: MsmHeader
, _msg1117_satelliteData :: Msm57SatelliteData
, _msg1117_signalData :: Msm7SignalData
} deriving ( Show, Read, Eq )
$(makeLenses ''Msg1117)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msg1117_" . stripPrefix "_msg1117_"} ''Msg1117)
instance Binary Msg1117 where
get = B.runBitGet $ do
_msg1117_header <- getBits 0
_msg1117_satelliteData <- getBitsMsm57SatelliteData $ popCount $ _msg1117_header ^. msmHeader_satelliteMask
_msg1117_signalData <- getBitsMsm7SignalData $ popCount $ _msg1117_header ^. msmHeader_cellMask
pure Msg1117 {..}
put Msg1117 {..} = B.runBitPut $ do
putBits 0 _msg1117_header
putBitsMsm57SatelliteData _msg1117_satelliteData
putBitsMsm7SignalData _msg1117_signalData
$(deriveRTCM3 ''Msg1117)
msg1124 :: Word16
msg1124 = 1124
data Msg1124 = Msg1124
{ _msg1124_header :: MsmHeader
, _msg1124_satelliteData :: Msm46SatelliteData
, _msg1124_signalData :: Msm4SignalData
} deriving ( Show, Read, Eq )
$(makeLenses ''Msg1124)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msg1124_" . stripPrefix "_msg1124_"} ''Msg1124)
instance Binary Msg1124 where
get = B.runBitGet $ do
_msg1124_header <- getBits 0
_msg1124_satelliteData <- getBitsMsm46SatelliteData $ popCount $ _msg1124_header ^. msmHeader_satelliteMask
_msg1124_signalData <- getBitsMsm4SignalData $ popCount $ _msg1124_header ^. msmHeader_cellMask
pure Msg1124 {..}
put Msg1124 {..} = B.runBitPut $ do
putBits 0 _msg1124_header
putBitsMsm46SatelliteData _msg1124_satelliteData
putBitsMsm4SignalData _msg1124_signalData
$(deriveRTCM3 ''Msg1124)
msg1125 :: Word16
msg1125 = 1125
data Msg1125 = Msg1125
{ _msg1125_header :: MsmHeader
, _msg1125_satelliteData :: Msm57SatelliteData
, _msg1125_signalData :: Msm5SignalData
} deriving ( Show, Read, Eq )
$(makeLenses ''Msg1125)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msg1125_" . stripPrefix "_msg1125_"} ''Msg1125)
instance Binary Msg1125 where
get = B.runBitGet $ do
_msg1125_header <- getBits 0
_msg1125_satelliteData <- getBitsMsm57SatelliteData $ popCount $ _msg1125_header ^. msmHeader_satelliteMask
_msg1125_signalData <- getBitsMsm5SignalData $ popCount $ _msg1125_header ^. msmHeader_cellMask
pure Msg1125 {..}
put Msg1125 {..} = B.runBitPut $ do
putBits 0 _msg1125_header
putBitsMsm57SatelliteData _msg1125_satelliteData
putBitsMsm5SignalData _msg1125_signalData
$(deriveRTCM3 ''Msg1125)
msg1126 :: Word16
msg1126 = 1126
data Msg1126 = Msg1126
{ _msg1126_header :: MsmHeader
, _msg1126_satelliteData :: Msm46SatelliteData
, _msg1126_signalData :: Msm6SignalData
} deriving ( Show, Read, Eq )
$(makeLenses ''Msg1126)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msg1126_" . stripPrefix "_msg1126_"} ''Msg1126)
instance Binary Msg1126 where
get = B.runBitGet $ do
_msg1126_header <- getBits 0
_msg1126_satelliteData <- getBitsMsm46SatelliteData $ popCount $ _msg1126_header ^. msmHeader_satelliteMask
_msg1126_signalData <- getBitsMsm6SignalData $ popCount $ _msg1126_header ^. msmHeader_cellMask
pure Msg1126 {..}
put Msg1126 {..} = B.runBitPut $ do
putBits 0 _msg1126_header
putBitsMsm46SatelliteData _msg1126_satelliteData
putBitsMsm6SignalData _msg1126_signalData
$(deriveRTCM3 ''Msg1126)
msg1127 :: Word16
msg1127 = 1127
data Msg1127 = Msg1127
{ _msg1127_header :: MsmHeader
, _msg1127_satelliteData :: Msm57SatelliteData
, _msg1127_signalData :: Msm7SignalData
} deriving ( Show, Read, Eq )
$(makeLenses ''Msg1127)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msg1127_" . stripPrefix "_msg1127_"} ''Msg1127)
instance Binary Msg1127 where
get = B.runBitGet $ do
_msg1127_header <- getBits 0
_msg1127_satelliteData <- getBitsMsm57SatelliteData $ popCount $ _msg1127_header ^. msmHeader_satelliteMask
_msg1127_signalData <- getBitsMsm7SignalData $ popCount $ _msg1127_header ^. msmHeader_cellMask
pure Msg1127 {..}
put Msg1127 {..} = B.runBitPut $ do
putBits 0 _msg1127_header
putBitsMsm57SatelliteData _msg1127_satelliteData
putBitsMsm7SignalData _msg1127_signalData
$(deriveRTCM3 ''Msg1127)