module SwiftNav.SBP.Acquisition where
import BasicPrelude
import Control.Lens
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)
$(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
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgAcqResultDepA_" . stripPrefix "_msgAcqResultDepA_"}
''MsgAcqResultDepA)
$(makeLenses ''MsgAcqResultDepA)