/*
Wokwi: https://wokwi.com/projects/455604124514317313
Test program for FlexibleEEClass Version 1.1 dated 2026/02/10
2026/02/10
ec2021
*/
#include "FlexibleEEClass.h"
struct veryLong {
double val[10];
char arr[20];
} test;
constexpr uint32_t maxWriteCount {10};
FlexibleEEClass<veryLong> myEE;
void setup() {
Serial.begin(115200);
if (!myEE.noMagic()) {
uint32_t idx = myEE.getIndex();
Serial.print("EEPROM not empty!\t");
Serial.print(idx);
Serial.println(" entries found");
for (int i = 0; i <= idx; i++) {
printActData(i);
};
} else {
myEE.init(maxWriteCount);
Update(99);
}
}
void loop() {
// put your main code here, to run repeatedly:
}
void Update(int c) {
strcpy(test.arr, " . Hello");
for (int i = 1; i <= c; i++) {
test.val[0] = i;
test.val[1] = c - i + 1;
test.arr[0] = 'a' + (i % 26);
myEE.updateData(test);
printActData();
}
}
void printActData() {
veryLong actTest = myEE.readData();
Serial.print("Index\t");
Serial.print(myEE.getIndex());
Serial.print("\tCount\t");
Serial.print(actTest.val[0]);
Serial.print(" ");
Serial.print(actTest.val[1]);
Serial.print("\tText\t");
Serial.print(actTest.arr);
Serial.print("\tWriteCount\t");
Serial.println(myEE.getWriteCount());
}
void printActData(int idx) {
uint32_t wCount = 0;
veryLong actTest = myEE.readFromIndex(idx, wCount);
Serial.print("Index\t");
Serial.print(idx);
Serial.print("\tCount\t");
Serial.print(actTest.val[0]);
Serial.print(" ");
Serial.print(actTest.val[1]);
Serial.print("\tText\t");
Serial.print(actTest.arr);
Serial.print("\tWriteCount\t");
Serial.println(wCount);
}