{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE RecordWildCards #-}
module SwiftNav.SBP.Vehicle
( module SwiftNav.SBP.Vehicle
) 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
{-# ANN module ("HLint: ignore Use camelCase"::String) #-}
{-# ANN module ("HLint: ignore Redundant do"::String) #-}
{-# ANN module ("HLint: ignore Use newtype instead of data"::String) #-}
msgOdometry :: Word16
msgOdometry = 0x0903
data MsgOdometry = MsgOdometry
{ _msgOdometry_tow :: !Word32
, _msgOdometry_velocity :: !Int32
, _msgOdometry_flags :: !Word8
} deriving ( Show, Read, Eq )
instance Binary MsgOdometry where
get = do
_msgOdometry_tow <- getWord32le
_msgOdometry_velocity <- fromIntegral <$> getWord32le
_msgOdometry_flags <- getWord8
pure MsgOdometry {..}
put MsgOdometry {..} = do
putWord32le _msgOdometry_tow
putWord32le $ fromIntegral _msgOdometry_velocity
putWord8 _msgOdometry_flags
$(makeSBP 'msgOdometry ''MsgOdometry)
$(makeJSON "_msgOdometry_" ''MsgOdometry)
$(makeLenses ''MsgOdometry)