module SwiftNav.SBP.ExtEvents where import Control.Monad import Control.Monad.Loops 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 msgExtEvent :: Word16 msgExtEvent = 0x0101 data MsgExtEvent = MsgExtEvent { msgExtEventWn :: Word16 , msgExtEventTow :: Word32 , msgExtEventNs :: Int32 , msgExtEventFlags :: Word8 , msgExtEventPin :: Word8 } deriving ( Show, Read, Eq ) instance Binary MsgExtEvent where get = do msgExtEventWn <- getWord16le msgExtEventTow <- getWord32le msgExtEventNs <- liftM fromIntegral getWord32le msgExtEventFlags <- getWord8 msgExtEventPin <- getWord8 return MsgExtEvent {..} put MsgExtEvent {..} = do putWord16le msgExtEventWn putWord32le msgExtEventTow putWord32le $ fromIntegral msgExtEventNs putWord8 msgExtEventFlags putWord8 msgExtEventPin