The BLOCKS SDK
littlefoot::LittleFootRemoteHeap< ImplementationClass > Struct Template Reference

Description

template<typename ImplementationClass>
struct littlefoot::LittleFootRemoteHeap< ImplementationClass >

This class manages the synchronisation of a remote block of heap memory used by a littlefoot program running on a block.

Data in the block can be changed by calling setByte, setBytes, setBits etc, and these changes will be flushed to the device when sendChanges is called.

Public Member Functions

 LittleFootRemoteHeap (uint32 blockSizeToUse) noexcept
 
void reset ()
 
void clearTargetData () noexcept
 
void resetDeviceStateToUnknown ()
 
void resetDataRangeToUnknown (size_t offset, size_t size) noexcept
 
void setByte (size_t offset, uint8 value) noexcept
 
void setBytes (size_t offset, const uint8 *data, size_t num) noexcept
 
void setBits (uint32 startBit, uint32 numBits, uint32 value) noexcept
 
uint8 getByte (size_t offset) noexcept
 
bool isFullySynced () const noexcept
 
void sendChanges (ImplementationClass &bi, bool forceSend)
 
void handleACKFromDevice (ImplementationClass &bi, uint32 packetIndex) noexcept
 
bool isProgramLoaded () noexcept
 

Static Public Member Functions

static bool isAllZero (const uint8 *data, size_t size) noexcept
 

Public Attributes

const size_t blockSize
 

Static Public Attributes

static constexpr uint16 unknownByte = 0x100
 

Constructor & Destructor Documentation

◆ LittleFootRemoteHeap()

template<typename ImplementationClass >
littlefoot::LittleFootRemoteHeap< ImplementationClass >::LittleFootRemoteHeap ( uint32  blockSizeToUse)
noexcept

Member Function Documentation

◆ reset()

◆ clearTargetData()

template<typename ImplementationClass >
void littlefoot::LittleFootRemoteHeap< ImplementationClass >::clearTargetData ( )
noexcept

◆ resetDeviceStateToUnknown()

◆ resetDataRangeToUnknown()

template<typename ImplementationClass >
void littlefoot::LittleFootRemoteHeap< ImplementationClass >::resetDataRangeToUnknown ( size_t  offset,
size_t  size 
)
noexcept

◆ setByte()

template<typename ImplementationClass >
void littlefoot::LittleFootRemoteHeap< ImplementationClass >::setByte ( size_t  offset,
uint8  value 
)
noexcept

◆ setBytes()

template<typename ImplementationClass >
void littlefoot::LittleFootRemoteHeap< ImplementationClass >::setBytes ( size_t  offset,
const uint8 data,
size_t  num 
)
noexcept

◆ setBits()

template<typename ImplementationClass >
void littlefoot::LittleFootRemoteHeap< ImplementationClass >::setBits ( uint32  startBit,
uint32  numBits,
uint32  value 
)
noexcept

◆ getByte()

template<typename ImplementationClass >
uint8 littlefoot::LittleFootRemoteHeap< ImplementationClass >::getByte ( size_t  offset)
noexcept

◆ isFullySynced()

template<typename ImplementationClass >
bool littlefoot::LittleFootRemoteHeap< ImplementationClass >::isFullySynced ( ) const
noexcept

◆ isAllZero()

template<typename ImplementationClass >
static bool littlefoot::LittleFootRemoteHeap< ImplementationClass >::isAllZero ( const uint8 data,
size_t  size 
)
staticnoexcept

◆ sendChanges()

◆ handleACKFromDevice()

◆ isProgramLoaded()

template<typename ImplementationClass >
bool littlefoot::LittleFootRemoteHeap< ImplementationClass >::isProgramLoaded ( )
noexcept

Member Data Documentation

◆ blockSize

◆ unknownByte

template<typename ImplementationClass >
constexpr uint16 littlefoot::LittleFootRemoteHeap< ImplementationClass >::unknownByte = 0x100
staticconstexpr

The documentation for this struct was generated from the following file: