82class StateWearLevelingByte :
public StateStorageInterface {
84 explicit StateWearLevelingByte(Storage *storage,
86 ~StateWearLevelingByte();
88 void initSectionPreamble(SectionPreamble *preamble)
override;
89 bool writeSectionPreamble()
override;
90 bool initFromStorage()
override;
91 void deleteAll()
override;
92 bool prepareSaveState()
override;
93 bool prepareSizeCheck()
override;
94 bool prepareLoadState()
override;
95 bool readState(
unsigned char *,
int)
override;
96 bool writeState(
const unsigned char *,
int)
override;
97 bool finalizeSaveState()
override;
98 bool finalizeSizeCheck()
override;
99 bool finalizeLoadState()
override;
100 void notifyUpdate()
override;
103 uint16_t getSizeValue(uint16_t availableSize)
override;
104 void checkIfIsEnoughSpaceForState();
105 uint32_t getFirstSlotAddress()
const;
106 uint32_t getNextSlotAddress(uint32_t slotAddress)
const;
107 uint32_t slotSize()
const;
108 uint32_t updateStateEntryAddress();
109 bool isDataDifferent(uint32_t firstAddress, uint32_t secondAddress,
int size);
110 uint32_t sectionOffset = 0;
111 uint32_t reservedSize;
112 uint32_t elementStateSize = 0;
113 uint32_t stateSlotNewSize = 0;
114 uint32_t currentStateOffset = 0;
116 bool elementStateCrcCValid =
false;
118 bool storageStateOk =
false;
119 bool initDone =
false;
120 bool dataChanged =
false;
121 int repeatBeforeSwitchToAnotherSlot = 0;
123 uint16_t writeCount = 0;
124 uint32_t currentSlotAddress = 0;
Definition state_wear_leveling_byte.h:65