module SwiftNav.SBP.System 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
msgStartup :: Word16
msgStartup = 0xFF00
data MsgStartup = MsgStartup
{ _msgStartup_reserved :: Word32
} deriving ( Show, Read, Eq )
instance Binary MsgStartup where
get = do
_msgStartup_reserved <- getWord32le
return MsgStartup {..}
put MsgStartup {..} = do
putWord32le _msgStartup_reserved
$(deriveSBP 'msgStartup ''MsgStartup)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgStartup_" . stripPrefix "_msgStartup_"}
''MsgStartup)
$(makeLenses ''MsgStartup)
msgHeartbeat :: Word16
msgHeartbeat = 0xFFFF
data MsgHeartbeat = MsgHeartbeat
{ _msgHeartbeat_flags :: Word32
} deriving ( Show, Read, Eq )
instance Binary MsgHeartbeat where
get = do
_msgHeartbeat_flags <- getWord32le
return MsgHeartbeat {..}
put MsgHeartbeat {..} = do
putWord32le _msgHeartbeat_flags
$(deriveSBP 'msgHeartbeat ''MsgHeartbeat)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgHeartbeat_" . stripPrefix "_msgHeartbeat_"}
''MsgHeartbeat)
$(makeLenses ''MsgHeartbeat)