littlefoot::LittleFootRemoteHeap< ImplementationClass > Struct Template Reference

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

Public Member Functions

 LittleFootRemoteHeap (uint32 blockSizeToUse) noexcept
 
void clear () 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
 
void invalidateData () 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
 

Detailed 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.

Constructor & Destructor Documentation

◆ LittleFootRemoteHeap()

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

Member Function Documentation

◆ clear()

template<typename ImplementationClass >
void littlefoot::LittleFootRemoteHeap< ImplementationClass >::clear ( )
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()

◆ getByte()

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

◆ invalidateData()

◆ 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
static

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