65 lines
1.1 KiB
C++
65 lines
1.1 KiB
C++
/*
|
|
* Stairs
|
|
* Copyright 2017 (c) Mark van Renswoude
|
|
*
|
|
* https://git.x2software.net/pub/Stairs
|
|
*/
|
|
#include "steps.h"
|
|
#include <FS.h>
|
|
#include "../debug.h"
|
|
|
|
|
|
struct Header
|
|
{
|
|
uint8_t version;
|
|
uint8_t stepCount;
|
|
bool useCurve;
|
|
};
|
|
|
|
|
|
|
|
StepsSettings::StepsSettings()
|
|
{
|
|
for (uint8_t i = 0; i < MaxStepCount; i++)
|
|
mCurveShift[i] = 0;
|
|
}
|
|
|
|
|
|
void StepsSettings::read()
|
|
{
|
|
_dln("StepsSettings :: Loading step settings");
|
|
File f = SPIFFS.open(StepSettingsFile, "r");
|
|
if (!f)
|
|
return;
|
|
|
|
if (!f.available())
|
|
return;
|
|
|
|
Header header;
|
|
f.readBytes((char*)&header, sizeof(Header));
|
|
|
|
if (header.version != 1)
|
|
return;
|
|
|
|
mUseCurve = (header.useCurve == 1);
|
|
f.readBytes((char*)&mCurveShift, header.stepCount * sizeof(uint16_t));
|
|
f.close();
|
|
}
|
|
|
|
|
|
void StepsSettings::write()
|
|
{
|
|
_dln("StepsSettings :: Saving step settings");
|
|
File f = SPIFFS.open(StepSettingsFile, "w");
|
|
if (!f)
|
|
return;
|
|
|
|
Header header;
|
|
header.version = 1;
|
|
header.useCurve = mUseCurve;
|
|
header.stepCount = mCount;
|
|
|
|
f.write((uint8_t*)&header, sizeof(Header));
|
|
f.write((uint8_t*)&mCurveShift, header.stepCount * sizeof(uint16_t));
|
|
f.close();
|
|
} |