module SwiftNav.SBP.Acquisition where
import BasicPrelude
import Control.Lens
import Control.Monad.Loops
import Data.Aeson.TH (defaultOptions, deriveJSON, fieldLabelModifier)
import Data.Binary
import Data.Binary.Get
import Data.Binary.IEEE754
import Data.Binary.Put
import Data.ByteString
import Data.ByteString.Lazy hiding (ByteString)
import Data.Int
import Data.Word
import SwiftNav.SBP.Encoding
import SwiftNav.SBP.TH
import SwiftNav.SBP.Types
import SwiftNav.SBP.GnssSignal
msgAcqResult :: Word16
msgAcqResult = 0x0014
data MsgAcqResult = MsgAcqResult
{ _msgAcqResult_snr :: Float
, _msgAcqResult_cp :: Float
, _msgAcqResult_cf :: Float
, _msgAcqResult_sid :: GnssSignal
} deriving ( Show, Read, Eq )
instance Binary MsgAcqResult where
get = do
_msgAcqResult_snr <- getFloat32le
_msgAcqResult_cp <- getFloat32le
_msgAcqResult_cf <- getFloat32le
_msgAcqResult_sid <- get
return MsgAcqResult {..}
put MsgAcqResult {..} = do
putFloat32le _msgAcqResult_snr
putFloat32le _msgAcqResult_cp
putFloat32le _msgAcqResult_cf
put _msgAcqResult_sid
$(deriveSBP 'msgAcqResult ''MsgAcqResult)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgAcqResult_" . stripPrefix "_msgAcqResult_"}
''MsgAcqResult)
$(makeLenses ''MsgAcqResult)
msgAcqResultDepA :: Word16
msgAcqResultDepA = 0x0015
data MsgAcqResultDepA = MsgAcqResultDepA
{ _msgAcqResultDepA_snr :: Float
, _msgAcqResultDepA_cp :: Float
, _msgAcqResultDepA_cf :: Float
, _msgAcqResultDepA_prn :: Word8
} deriving ( Show, Read, Eq )
instance Binary MsgAcqResultDepA where
get = do
_msgAcqResultDepA_snr <- getFloat32le
_msgAcqResultDepA_cp <- getFloat32le
_msgAcqResultDepA_cf <- getFloat32le
_msgAcqResultDepA_prn <- getWord8
return MsgAcqResultDepA {..}
put MsgAcqResultDepA {..} = do
putFloat32le _msgAcqResultDepA_snr
putFloat32le _msgAcqResultDepA_cp
putFloat32le _msgAcqResultDepA_cf
putWord8 _msgAcqResultDepA_prn
$(deriveSBP 'msgAcqResultDepA ''MsgAcqResultDepA)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgAcqResultDepA_" . stripPrefix "_msgAcqResultDepA_"}
''MsgAcqResultDepA)
$(makeLenses ''MsgAcqResultDepA)