module SwiftNav.SBP.ExtEvents 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
msgExtEvent :: Word16
msgExtEvent = 0x0101
data MsgExtEvent = MsgExtEvent
{ msgExtEvent_wn :: Word16
, msgExtEvent_tow :: Word32
, msgExtEvent_ns :: Int32
, msgExtEvent_flags :: Word8
, msgExtEvent_pin :: Word8
} deriving ( Show, Read, Eq )
instance Binary MsgExtEvent where
get = do
msgExtEvent_wn <- getWord16le
msgExtEvent_tow <- getWord32le
msgExtEvent_ns <- liftM fromIntegral getWord32le
msgExtEvent_flags <- getWord8
msgExtEvent_pin <- getWord8
return MsgExtEvent {..}
put MsgExtEvent {..} = do
putWord16le msgExtEvent_wn
putWord32le msgExtEvent_tow
putWord32le $ fromIntegral msgExtEvent_ns
putWord8 msgExtEvent_flags
putWord8 msgExtEvent_pin
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "msgExtEvent_" . stripPrefix "msgExtEvent_"}
''MsgExtEvent)