{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE RecordWildCards #-}
module SwiftNav.SBP.Imu
( module SwiftNav.SBP.Imu
) 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
{-# ANN module ("HLint: ignore Use camelCase"::String) #-}
{-# ANN module ("HLint: ignore Redundant do"::String) #-}
{-# ANN module ("HLint: ignore Use newtype instead of data"::String) #-}
msgImuRaw :: Word16
msgImuRaw = 0x0900
data MsgImuRaw = MsgImuRaw
{ _msgImuRaw_tow :: !Word32
, _msgImuRaw_tow_f :: !Word8
, _msgImuRaw_acc_x :: !Int16
, _msgImuRaw_acc_y :: !Int16
, _msgImuRaw_acc_z :: !Int16
, _msgImuRaw_gyr_x :: !Int16
, _msgImuRaw_gyr_y :: !Int16
, _msgImuRaw_gyr_z :: !Int16
} deriving ( Show, Read, Eq )
instance Binary MsgImuRaw where
get = do
_msgImuRaw_tow <- getWord32le
_msgImuRaw_tow_f <- getWord8
_msgImuRaw_acc_x <- fromIntegral <$> getWord16le
_msgImuRaw_acc_y <- fromIntegral <$> getWord16le
_msgImuRaw_acc_z <- fromIntegral <$> getWord16le
_msgImuRaw_gyr_x <- fromIntegral <$> getWord16le
_msgImuRaw_gyr_y <- fromIntegral <$> getWord16le
_msgImuRaw_gyr_z <- fromIntegral <$> getWord16le
pure MsgImuRaw {..}
put MsgImuRaw {..} = do
putWord32le _msgImuRaw_tow
putWord8 _msgImuRaw_tow_f
(putWord16le . fromIntegral) _msgImuRaw_acc_x
(putWord16le . fromIntegral) _msgImuRaw_acc_y
(putWord16le . fromIntegral) _msgImuRaw_acc_z
(putWord16le . fromIntegral) _msgImuRaw_gyr_x
(putWord16le . fromIntegral) _msgImuRaw_gyr_y
(putWord16le . fromIntegral) _msgImuRaw_gyr_z
$(makeSBP 'msgImuRaw ''MsgImuRaw)
$(makeJSON "_msgImuRaw_" ''MsgImuRaw)
$(makeLenses ''MsgImuRaw)
msgImuAux :: Word16
msgImuAux = 0x0901
data MsgImuAux = MsgImuAux
{ _msgImuAux_imu_type :: !Word8
, _msgImuAux_temp :: !Int16
, _msgImuAux_imu_conf :: !Word8
} deriving ( Show, Read, Eq )
instance Binary MsgImuAux where
get = do
_msgImuAux_imu_type <- getWord8
_msgImuAux_temp <- fromIntegral <$> getWord16le
_msgImuAux_imu_conf <- getWord8
pure MsgImuAux {..}
put MsgImuAux {..} = do
putWord8 _msgImuAux_imu_type
(putWord16le . fromIntegral) _msgImuAux_temp
putWord8 _msgImuAux_imu_conf
$(makeSBP 'msgImuAux ''MsgImuAux)
$(makeJSON "_msgImuAux_" ''MsgImuAux)
$(makeLenses ''MsgImuAux)