module SwiftNav.SBP.System 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
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)