{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE RecordWildCards #-}
module SwiftNav.SBP.Flash
( module SwiftNav.SBP.Flash
) 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) #-}
msgFlashProgram :: Word16
msgFlashProgram = 0x00E6
data MsgFlashProgram = MsgFlashProgram
{ _msgFlashProgram_target :: !Word8
, _msgFlashProgram_addr_start :: ![Word8]
, _msgFlashProgram_addr_len :: !Word8
, _msgFlashProgram_data :: ![Word8]
} deriving ( Show, Read, Eq )
instance Binary MsgFlashProgram where
get = do
_msgFlashProgram_target <- getWord8
_msgFlashProgram_addr_start <- replicateM 3 getWord8
_msgFlashProgram_addr_len <- getWord8
_msgFlashProgram_data <- whileM (not <$> isEmpty) getWord8
pure MsgFlashProgram {..}
put MsgFlashProgram {..} = do
putWord8 _msgFlashProgram_target
mapM_ putWord8 _msgFlashProgram_addr_start
putWord8 _msgFlashProgram_addr_len
mapM_ putWord8 _msgFlashProgram_data
$(makeSBP 'msgFlashProgram ''MsgFlashProgram)
$(makeJSON "_msgFlashProgram_" ''MsgFlashProgram)
$(makeLenses ''MsgFlashProgram)
msgFlashDone :: Word16
msgFlashDone = 0x00E0
data MsgFlashDone = MsgFlashDone
{ _msgFlashDone_response :: !Word8
} deriving ( Show, Read, Eq )
instance Binary MsgFlashDone where
get = do
_msgFlashDone_response <- getWord8
pure MsgFlashDone {..}
put MsgFlashDone {..} = do
putWord8 _msgFlashDone_response
$(makeSBP 'msgFlashDone ''MsgFlashDone)
$(makeJSON "_msgFlashDone_" ''MsgFlashDone)
$(makeLenses ''MsgFlashDone)
msgFlashReadReq :: Word16
msgFlashReadReq = 0x00E7
data MsgFlashReadReq = MsgFlashReadReq
{ _msgFlashReadReq_target :: !Word8
, _msgFlashReadReq_addr_start :: ![Word8]
, _msgFlashReadReq_addr_len :: !Word8
} deriving ( Show, Read, Eq )
instance Binary MsgFlashReadReq where
get = do
_msgFlashReadReq_target <- getWord8
_msgFlashReadReq_addr_start <- replicateM 3 getWord8
_msgFlashReadReq_addr_len <- getWord8
pure MsgFlashReadReq {..}
put MsgFlashReadReq {..} = do
putWord8 _msgFlashReadReq_target
mapM_ putWord8 _msgFlashReadReq_addr_start
putWord8 _msgFlashReadReq_addr_len
$(makeSBP 'msgFlashReadReq ''MsgFlashReadReq)
$(makeJSON "_msgFlashReadReq_" ''MsgFlashReadReq)
$(makeLenses ''MsgFlashReadReq)
msgFlashReadResp :: Word16
msgFlashReadResp = 0x00E1
data MsgFlashReadResp = MsgFlashReadResp
{ _msgFlashReadResp_target :: !Word8
, _msgFlashReadResp_addr_start :: ![Word8]
, _msgFlashReadResp_addr_len :: !Word8
} deriving ( Show, Read, Eq )
instance Binary MsgFlashReadResp where
get = do
_msgFlashReadResp_target <- getWord8
_msgFlashReadResp_addr_start <- replicateM 3 getWord8
_msgFlashReadResp_addr_len <- getWord8
pure MsgFlashReadResp {..}
put MsgFlashReadResp {..} = do
putWord8 _msgFlashReadResp_target
mapM_ putWord8 _msgFlashReadResp_addr_start
putWord8 _msgFlashReadResp_addr_len
$(makeSBP 'msgFlashReadResp ''MsgFlashReadResp)
$(makeJSON "_msgFlashReadResp_" ''MsgFlashReadResp)
$(makeLenses ''MsgFlashReadResp)
msgFlashErase :: Word16
msgFlashErase = 0x00E2
data MsgFlashErase = MsgFlashErase
{ _msgFlashErase_target :: !Word8
, _msgFlashErase_sector_num :: !Word32
} deriving ( Show, Read, Eq )
instance Binary MsgFlashErase where
get = do
_msgFlashErase_target <- getWord8
_msgFlashErase_sector_num <- getWord32le
pure MsgFlashErase {..}
put MsgFlashErase {..} = do
putWord8 _msgFlashErase_target
putWord32le _msgFlashErase_sector_num
$(makeSBP 'msgFlashErase ''MsgFlashErase)
$(makeJSON "_msgFlashErase_" ''MsgFlashErase)
$(makeLenses ''MsgFlashErase)
msgStmFlashLockSector :: Word16
msgStmFlashLockSector = 0x00E3
data MsgStmFlashLockSector = MsgStmFlashLockSector
{ _msgStmFlashLockSector_sector :: !Word32
} deriving ( Show, Read, Eq )
instance Binary MsgStmFlashLockSector where
get = do
_msgStmFlashLockSector_sector <- getWord32le
pure MsgStmFlashLockSector {..}
put MsgStmFlashLockSector {..} = do
putWord32le _msgStmFlashLockSector_sector
$(makeSBP 'msgStmFlashLockSector ''MsgStmFlashLockSector)
$(makeJSON "_msgStmFlashLockSector_" ''MsgStmFlashLockSector)
$(makeLenses ''MsgStmFlashLockSector)
msgStmFlashUnlockSector :: Word16
msgStmFlashUnlockSector = 0x00E4
data MsgStmFlashUnlockSector = MsgStmFlashUnlockSector
{ _msgStmFlashUnlockSector_sector :: !Word32
} deriving ( Show, Read, Eq )
instance Binary MsgStmFlashUnlockSector where
get = do
_msgStmFlashUnlockSector_sector <- getWord32le
pure MsgStmFlashUnlockSector {..}
put MsgStmFlashUnlockSector {..} = do
putWord32le _msgStmFlashUnlockSector_sector
$(makeSBP 'msgStmFlashUnlockSector ''MsgStmFlashUnlockSector)
$(makeJSON "_msgStmFlashUnlockSector_" ''MsgStmFlashUnlockSector)
$(makeLenses ''MsgStmFlashUnlockSector)
msgStmUniqueIdReq :: Word16
msgStmUniqueIdReq = 0x00E8
data MsgStmUniqueIdReq = MsgStmUniqueIdReq
deriving ( Show, Read, Eq )
instance Binary MsgStmUniqueIdReq where
get =
pure MsgStmUniqueIdReq
put MsgStmUniqueIdReq =
pure ()
$(makeSBP 'msgStmUniqueIdReq ''MsgStmUniqueIdReq)
$(makeJSON "_msgStmUniqueIdReq_" ''MsgStmUniqueIdReq)
$(makeLenses ''MsgStmUniqueIdReq)
msgStmUniqueIdResp :: Word16
msgStmUniqueIdResp = 0x00E5
data MsgStmUniqueIdResp = MsgStmUniqueIdResp
{ _msgStmUniqueIdResp_stm_id :: ![Word8]
} deriving ( Show, Read, Eq )
instance Binary MsgStmUniqueIdResp where
get = do
_msgStmUniqueIdResp_stm_id <- replicateM 12 getWord8
pure MsgStmUniqueIdResp {..}
put MsgStmUniqueIdResp {..} = do
mapM_ putWord8 _msgStmUniqueIdResp_stm_id
$(makeSBP 'msgStmUniqueIdResp ''MsgStmUniqueIdResp)
$(makeJSON "_msgStmUniqueIdResp_" ''MsgStmUniqueIdResp)
$(makeLenses ''MsgStmUniqueIdResp)
msgM25FlashWriteStatus :: Word16
msgM25FlashWriteStatus = 0x00F3
data MsgM25FlashWriteStatus = MsgM25FlashWriteStatus
{ _msgM25FlashWriteStatus_status :: ![Word8]
} deriving ( Show, Read, Eq )
instance Binary MsgM25FlashWriteStatus where
get = do
_msgM25FlashWriteStatus_status <- replicateM 1 getWord8
pure MsgM25FlashWriteStatus {..}
put MsgM25FlashWriteStatus {..} = do
mapM_ putWord8 _msgM25FlashWriteStatus_status
$(makeSBP 'msgM25FlashWriteStatus ''MsgM25FlashWriteStatus)
$(makeJSON "_msgM25FlashWriteStatus_" ''MsgM25FlashWriteStatus)
$(makeLenses ''MsgM25FlashWriteStatus)