module SwiftNav.SBP.User where
import BasicPrelude as P
import Control.Lens
import Control.Monad.Loops
import Data.Aeson.TH (defaultOptions, deriveJSON, 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
msgUserData :: Word16
msgUserData = 0x0800
data MsgUserData = MsgUserData
{ _msgUserData_contents :: [Word8]
} deriving ( Show, Read, Eq )
instance Binary MsgUserData where
get = do
_msgUserData_contents <- whileM (not <$> isEmpty) getWord8
return MsgUserData {..}
put MsgUserData {..} = do
mapM_ putWord8 _msgUserData_contents
$(deriveSBP 'msgUserData ''MsgUserData)
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgUserData_" . P.stripPrefix "_msgUserData_"}
''MsgUserData)
$(makeLenses ''MsgUserData)