module SwiftNav.SBP.Acquisition where
import BasicPrelude
import Control.Monad
import Control.Monad.Loops
import Data.Aeson.TH (deriveJSON, defaultOptions, 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
msgAcqResult :: Word16
msgAcqResult = 0x0014
data MsgAcqResult = MsgAcqResult
{ msgAcqResult_snr :: Float
, msgAcqResult_cp :: Float
, msgAcqResult_cf :: Float
, msgAcqResult_sid :: Word32
} deriving ( Show, Read, Eq )
instance Binary MsgAcqResult where
get = do
msgAcqResult_snr <- getFloat32le
msgAcqResult_cp <- getFloat32le
msgAcqResult_cf <- getFloat32le
msgAcqResult_sid <- getWord32le
return MsgAcqResult {..}
put MsgAcqResult {..} = do
putFloat32le msgAcqResult_snr
putFloat32le msgAcqResult_cp
putFloat32le msgAcqResult_cf
putWord32le msgAcqResult_sid
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "msgAcqResult_" . stripPrefix "msgAcqResult_"}
''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
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "msgAcqResultDepA_" . stripPrefix "msgAcqResultDepA_"}
''MsgAcqResultDepA)