{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE RecordWildCards #-}
module SwiftNav.SBP.Logging
( module SwiftNav.SBP.Logging
) where
import BasicPrelude
import Control.Lens
import Control.Monad.Loops
import Data.Binary
import Data.Binary.Get
import Data.Binary.IEEE754
import Data.Binary.Put
import Data.ByteString.Lazy hiding (ByteString)
import Data.Int
import Data.Word
import SwiftNav.SBP.TH
import SwiftNav.SBP.Types
{-# ANN module ("HLint: ignore Use camelCase"::String) #-}
{-# ANN module ("HLint: ignore Redundant do"::String) #-}
{-# ANN module ("HLint: ignore Use newtype instead of data"::String) #-}
msgLog :: Word16
msgLog = 0x0401
data MsgLog = MsgLog
{ _msgLog_level :: !Word8
, _msgLog_text :: !Text
} deriving ( Show, Read, Eq )
instance Binary MsgLog where
get = do
_msgLog_level <- getWord8
_msgLog_text <- decodeUtf8 . toStrict <$> getRemainingLazyByteString
pure MsgLog {..}
put MsgLog {..} = do
putWord8 _msgLog_level
putByteString $ encodeUtf8 _msgLog_text
$(makeSBP 'msgLog ''MsgLog)
$(makeJSON "_msgLog_" ''MsgLog)
$(makeLenses ''MsgLog)
msgFwd :: Word16
msgFwd = 0x0402
data MsgFwd = MsgFwd
{ _msgFwd_source :: !Word8
, _msgFwd_protocol :: !Word8
, _msgFwd_fwd_payload :: !Text
} deriving ( Show, Read, Eq )
instance Binary MsgFwd where
get = do
_msgFwd_source <- getWord8
_msgFwd_protocol <- getWord8
_msgFwd_fwd_payload <- decodeUtf8 . toStrict <$> getRemainingLazyByteString
pure MsgFwd {..}
put MsgFwd {..} = do
putWord8 _msgFwd_source
putWord8 _msgFwd_protocol
putByteString $ encodeUtf8 _msgFwd_fwd_payload
$(makeSBP 'msgFwd ''MsgFwd)
$(makeJSON "_msgFwd_" ''MsgFwd)
$(makeLenses ''MsgFwd)
msgTweet :: Word16
msgTweet = 0x0012
data MsgTweet = MsgTweet
{ _msgTweet_tweet :: !Text
} deriving ( Show, Read, Eq )
instance Binary MsgTweet where
get = do
_msgTweet_tweet <- decodeUtf8 <$> getByteString 140
pure MsgTweet {..}
put MsgTweet {..} = do
putByteString $ encodeUtf8 _msgTweet_tweet
$(makeSBP 'msgTweet ''MsgTweet)
$(makeJSON "_msgTweet_" ''MsgTweet)
$(makeLenses ''MsgTweet)
msgPrintDep :: Word16
msgPrintDep = 0x0010
data MsgPrintDep = MsgPrintDep
{ _msgPrintDep_text :: !Text
} deriving ( Show, Read, Eq )
instance Binary MsgPrintDep where
get = do
_msgPrintDep_text <- decodeUtf8 . toStrict <$> getRemainingLazyByteString
pure MsgPrintDep {..}
put MsgPrintDep {..} = do
putByteString $ encodeUtf8 _msgPrintDep_text
$(makeSBP 'msgPrintDep ''MsgPrintDep)
$(makeJSON "_msgPrintDep_" ''MsgPrintDep)
$(makeLenses ''MsgPrintDep)