У меня есть модуль ESP8266, модуль связан с датчиком температуры, а значения хранятся в SPIFFS.
Я планировал стереть старые данные по одному (например, FIFO) с новыми данными, когда память SPIIFS заполнен.
Не могли бы вы помочь мне написать код таким образом?
это часть кода, с которой я связан
void write_task(char *cFileName)
{
int c=0;
int s=0;
int record_no=0;
bool ok = SPIFFS.begin(true);
if (!ok)
{
#ifdef DEBUG
Serial.println("File not begin");
#endif
}
else
{
iHdl = SPIFFS.open(cFileName, "r+");
if (!iHdl)
{
#ifdef DEBUG
Serial.println("File not opened");
#endif
}
else
{
if(c!=0)
{
if(c>=3)
{
record_no=c-4;
}
else
record_no=c;
task_edit(record_no);
}
else
{
iHdl.write((uint8_t *)&obj_task, sizeof(obj_task));
iHdl.close();
}
c++;
Serial.println("File SUCESS");
delay(100);
iHdl = SPIFFS.open(cFileName, "r");
int c = iHdl.size() / sizeof(obj_task);
for(int i=0;i<c;i++)
{
iHdl.read((uint8_t *)&obj_task, sizeof(obj_task));
Serial.println(obj_task.Date);
}
iHdl.close();
}
}
void task_edit(int record)
{
struct TASK b;
iHdl.seek(record * sizeof(struct TASK));
iHdl.read( ( uint8_t*)&b, sizeof(struct TASK));
b=obj_task;
iHdl.seek(record * sizeof(struct TASK));
iHdl.write( (uint8_t*)&b, sizeof(struct TASK));
iHdl.close();
}