11 #include "AccessoriesCircularBuffer.hpp" 24 byte AccessoriesCircularBuffer::FindEnd()
34 int prevpos = this->StartListPos + this->ReplicaNumber - 1;
35 byte prev = EEPROM.read(prevpos);
37 for (
int i = 0; i < this->ReplicaNumber; i++)
39 int pos = this->StartListPos + i;
43 if (prev + 1 != EEPROM.read(pos))
44 return prevpos - this->StartListPos;
46 prev = EEPROM.read(pos);
57 for (
int i = this->StartListPos; i < this->StartListPos + (this->ItemSize + 1) * this->ReplicaNumber; i++)
63 byte place = FindEnd();
64 return this->StartListPos + this->ReplicaNumber + (this->ItemSize * place);
69 byte place = FindEnd();
70 byte itemNb = EEPROM.read(this->StartListPos + place);
73 if (place >= this->ReplicaNumber)
76 EEPROM.update(this->StartListPos + place, ++itemNb);
78 return this->StartListPos + this->ReplicaNumber + (this->ItemSize * place);
81 #ifdef ACCESSORIES_DEBUG_MODE 82 void AccessoriesCircularBuffer::printStatus()
84 Serial.print(F(
"CB Status : "));
85 for (
int i = 0; i < this->ReplicaNumber; i++)
88 Serial.print(EEPROM.read(this->StartListPos + i));
90 Serial.println(F(
"|"));