module SwiftNav.SBP.System 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
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
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "msgStartup_" . stripPrefix "msgStartup_"}
''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
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "msgHeartbeat_" . stripPrefix "msgHeartbeat_"}
''MsgHeartbeat)