{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE RecordWildCards #-}
module SwiftNav.SBP.FileIo
( module SwiftNav.SBP.FileIo
) 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) #-}
msgFileioReadReq :: Word16
msgFileioReadReq = 0x00A8
data MsgFileioReadReq = MsgFileioReadReq
{ _msgFileioReadReq_sequence :: !Word32
, _msgFileioReadReq_offset :: !Word32
, _msgFileioReadReq_chunk_size :: !Word8
, _msgFileioReadReq_filename :: !Text
} deriving ( Show, Read, Eq )
instance Binary MsgFileioReadReq where
get = do
_msgFileioReadReq_sequence <- getWord32le
_msgFileioReadReq_offset <- getWord32le
_msgFileioReadReq_chunk_size <- getWord8
_msgFileioReadReq_filename <- decodeUtf8 . toStrict <$> getRemainingLazyByteString
pure MsgFileioReadReq {..}
put MsgFileioReadReq {..} = do
putWord32le _msgFileioReadReq_sequence
putWord32le _msgFileioReadReq_offset
putWord8 _msgFileioReadReq_chunk_size
putByteString $ encodeUtf8 _msgFileioReadReq_filename
$(makeSBP 'msgFileioReadReq ''MsgFileioReadReq)
$(makeJSON "_msgFileioReadReq_" ''MsgFileioReadReq)
$(makeLenses ''MsgFileioReadReq)
msgFileioReadResp :: Word16
msgFileioReadResp = 0x00A3
data MsgFileioReadResp = MsgFileioReadResp
{ _msgFileioReadResp_sequence :: !Word32
, _msgFileioReadResp_contents :: ![Word8]
} deriving ( Show, Read, Eq )
instance Binary MsgFileioReadResp where
get = do
_msgFileioReadResp_sequence <- getWord32le
_msgFileioReadResp_contents <- whileM (not <$> isEmpty) getWord8
pure MsgFileioReadResp {..}
put MsgFileioReadResp {..} = do
putWord32le _msgFileioReadResp_sequence
mapM_ putWord8 _msgFileioReadResp_contents
$(makeSBP 'msgFileioReadResp ''MsgFileioReadResp)
$(makeJSON "_msgFileioReadResp_" ''MsgFileioReadResp)
$(makeLenses ''MsgFileioReadResp)
msgFileioReadDirReq :: Word16
msgFileioReadDirReq = 0x00A9
data MsgFileioReadDirReq = MsgFileioReadDirReq
{ _msgFileioReadDirReq_sequence :: !Word32
, _msgFileioReadDirReq_offset :: !Word32
, _msgFileioReadDirReq_dirname :: !Text
} deriving ( Show, Read, Eq )
instance Binary MsgFileioReadDirReq where
get = do
_msgFileioReadDirReq_sequence <- getWord32le
_msgFileioReadDirReq_offset <- getWord32le
_msgFileioReadDirReq_dirname <- decodeUtf8 . toStrict <$> getRemainingLazyByteString
pure MsgFileioReadDirReq {..}
put MsgFileioReadDirReq {..} = do
putWord32le _msgFileioReadDirReq_sequence
putWord32le _msgFileioReadDirReq_offset
putByteString $ encodeUtf8 _msgFileioReadDirReq_dirname
$(makeSBP 'msgFileioReadDirReq ''MsgFileioReadDirReq)
$(makeJSON "_msgFileioReadDirReq_" ''MsgFileioReadDirReq)
$(makeLenses ''MsgFileioReadDirReq)
msgFileioReadDirResp :: Word16
msgFileioReadDirResp = 0x00AA
data MsgFileioReadDirResp = MsgFileioReadDirResp
{ _msgFileioReadDirResp_sequence :: !Word32
, _msgFileioReadDirResp_contents :: ![Word8]
} deriving ( Show, Read, Eq )
instance Binary MsgFileioReadDirResp where
get = do
_msgFileioReadDirResp_sequence <- getWord32le
_msgFileioReadDirResp_contents <- whileM (not <$> isEmpty) getWord8
pure MsgFileioReadDirResp {..}
put MsgFileioReadDirResp {..} = do
putWord32le _msgFileioReadDirResp_sequence
mapM_ putWord8 _msgFileioReadDirResp_contents
$(makeSBP 'msgFileioReadDirResp ''MsgFileioReadDirResp)
$(makeJSON "_msgFileioReadDirResp_" ''MsgFileioReadDirResp)
$(makeLenses ''MsgFileioReadDirResp)
msgFileioRemove :: Word16
msgFileioRemove = 0x00AC
data MsgFileioRemove = MsgFileioRemove
{ _msgFileioRemove_filename :: !Text
} deriving ( Show, Read, Eq )
instance Binary MsgFileioRemove where
get = do
_msgFileioRemove_filename <- decodeUtf8 . toStrict <$> getRemainingLazyByteString
pure MsgFileioRemove {..}
put MsgFileioRemove {..} = do
putByteString $ encodeUtf8 _msgFileioRemove_filename
$(makeSBP 'msgFileioRemove ''MsgFileioRemove)
$(makeJSON "_msgFileioRemove_" ''MsgFileioRemove)
$(makeLenses ''MsgFileioRemove)
msgFileioWriteReq :: Word16
msgFileioWriteReq = 0x00AD
data MsgFileioWriteReq = MsgFileioWriteReq
{ _msgFileioWriteReq_sequence :: !Word32
, _msgFileioWriteReq_offset :: !Word32
, _msgFileioWriteReq_filename :: !Text
, _msgFileioWriteReq_data :: ![Word8]
} deriving ( Show, Read, Eq )
instance Binary MsgFileioWriteReq where
get = do
_msgFileioWriteReq_sequence <- getWord32le
_msgFileioWriteReq_offset <- getWord32le
_msgFileioWriteReq_filename <- decodeUtf8 . toStrict <$> getRemainingLazyByteString
_msgFileioWriteReq_data <- whileM (not <$> isEmpty) getWord8
pure MsgFileioWriteReq {..}
put MsgFileioWriteReq {..} = do
putWord32le _msgFileioWriteReq_sequence
putWord32le _msgFileioWriteReq_offset
putByteString $ encodeUtf8 _msgFileioWriteReq_filename
mapM_ putWord8 _msgFileioWriteReq_data
$(makeSBP 'msgFileioWriteReq ''MsgFileioWriteReq)
$(makeJSON "_msgFileioWriteReq_" ''MsgFileioWriteReq)
$(makeLenses ''MsgFileioWriteReq)
msgFileioWriteResp :: Word16
msgFileioWriteResp = 0x00AB
data MsgFileioWriteResp = MsgFileioWriteResp
{ _msgFileioWriteResp_sequence :: !Word32
} deriving ( Show, Read, Eq )
instance Binary MsgFileioWriteResp where
get = do
_msgFileioWriteResp_sequence <- getWord32le
pure MsgFileioWriteResp {..}
put MsgFileioWriteResp {..} = do
putWord32le _msgFileioWriteResp_sequence
$(makeSBP 'msgFileioWriteResp ''MsgFileioWriteResp)
$(makeJSON "_msgFileioWriteResp_" ''MsgFileioWriteResp)
$(makeLenses ''MsgFileioWriteResp)