module SwiftNav.SBP.Settings where
import BasicPrelude
import Control.Lens
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
msgSettingsSave :: Word16
msgSettingsSave = 0x00A1
data MsgSettingsSave = MsgSettingsSave
deriving ( Show, Read, Eq )
instance Binary MsgSettingsSave where
get =
return MsgSettingsSave
put MsgSettingsSave =
return ()
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgSettingsSave_" . stripPrefix "_msgSettingsSave_"}
''MsgSettingsSave)
$(makeLenses ''MsgSettingsSave)
msgSettingsWrite :: Word16
msgSettingsWrite = 0x00A0
data MsgSettingsWrite = MsgSettingsWrite
{ _msgSettingsWrite_setting :: ByteString
} deriving ( Show, Read, Eq )
instance Binary MsgSettingsWrite where
get = do
_msgSettingsWrite_setting <- liftM toStrict getRemainingLazyByteString
return MsgSettingsWrite {..}
put MsgSettingsWrite {..} = do
putByteString _msgSettingsWrite_setting
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgSettingsWrite_" . stripPrefix "_msgSettingsWrite_"}
''MsgSettingsWrite)
$(makeLenses ''MsgSettingsWrite)
msgSettingsReadReq :: Word16
msgSettingsReadReq = 0x00A4
data MsgSettingsReadReq = MsgSettingsReadReq
{ _msgSettingsReadReq_setting :: ByteString
} deriving ( Show, Read, Eq )
instance Binary MsgSettingsReadReq where
get = do
_msgSettingsReadReq_setting <- liftM toStrict getRemainingLazyByteString
return MsgSettingsReadReq {..}
put MsgSettingsReadReq {..} = do
putByteString _msgSettingsReadReq_setting
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgSettingsReadReq_" . stripPrefix "_msgSettingsReadReq_"}
''MsgSettingsReadReq)
$(makeLenses ''MsgSettingsReadReq)
msgSettingsReadResp :: Word16
msgSettingsReadResp = 0x00A5
data MsgSettingsReadResp = MsgSettingsReadResp
{ _msgSettingsReadResp_setting :: ByteString
} deriving ( Show, Read, Eq )
instance Binary MsgSettingsReadResp where
get = do
_msgSettingsReadResp_setting <- liftM toStrict getRemainingLazyByteString
return MsgSettingsReadResp {..}
put MsgSettingsReadResp {..} = do
putByteString _msgSettingsReadResp_setting
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgSettingsReadResp_" . stripPrefix "_msgSettingsReadResp_"}
''MsgSettingsReadResp)
$(makeLenses ''MsgSettingsReadResp)
msgSettingsReadByIndexReq :: Word16
msgSettingsReadByIndexReq = 0x00A2
data MsgSettingsReadByIndexReq = MsgSettingsReadByIndexReq
{ _msgSettingsReadByIndexReq_index :: Word16
} deriving ( Show, Read, Eq )
instance Binary MsgSettingsReadByIndexReq where
get = do
_msgSettingsReadByIndexReq_index <- getWord16le
return MsgSettingsReadByIndexReq {..}
put MsgSettingsReadByIndexReq {..} = do
putWord16le _msgSettingsReadByIndexReq_index
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgSettingsReadByIndexReq_" . stripPrefix "_msgSettingsReadByIndexReq_"}
''MsgSettingsReadByIndexReq)
$(makeLenses ''MsgSettingsReadByIndexReq)
msgSettingsReadByIndexResp :: Word16
msgSettingsReadByIndexResp = 0x00A7
data MsgSettingsReadByIndexResp = MsgSettingsReadByIndexResp
{ _msgSettingsReadByIndexResp_index :: Word16
, _msgSettingsReadByIndexResp_setting :: ByteString
} deriving ( Show, Read, Eq )
instance Binary MsgSettingsReadByIndexResp where
get = do
_msgSettingsReadByIndexResp_index <- getWord16le
_msgSettingsReadByIndexResp_setting <- liftM toStrict getRemainingLazyByteString
return MsgSettingsReadByIndexResp {..}
put MsgSettingsReadByIndexResp {..} = do
putWord16le _msgSettingsReadByIndexResp_index
putByteString _msgSettingsReadByIndexResp_setting
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgSettingsReadByIndexResp_" . stripPrefix "_msgSettingsReadByIndexResp_"}
''MsgSettingsReadByIndexResp)
$(makeLenses ''MsgSettingsReadByIndexResp)
msgSettingsReadByIndexDone :: Word16
msgSettingsReadByIndexDone = 0x00A6
data MsgSettingsReadByIndexDone = MsgSettingsReadByIndexDone
deriving ( Show, Read, Eq )
instance Binary MsgSettingsReadByIndexDone where
get =
return MsgSettingsReadByIndexDone
put MsgSettingsReadByIndexDone =
return ()
$(deriveJSON defaultOptions {fieldLabelModifier = fromMaybe "_msgSettingsReadByIndexDone_" . stripPrefix "_msgSettingsReadByIndexDone_"}
''MsgSettingsReadByIndexDone)
$(makeLenses ''MsgSettingsReadByIndexDone)