#ifndef EEPROMPARAMS_H
|
#define EEPROMPARAMS_H
|
|
#include <Arduino.h>
|
#include <EEPROM.h>
|
#include <map>
|
#include <utility>
|
#include <modules/my_mutex/Mutex.h>
|
#include <vector>
|
#include <queue>
|
class EepromParams
|
{
|
public:
|
static void TaskEeprom(void *pvParameters);
|
void Init(std::vector<float> p);
|
std::vector<float> GetParams(){return mParams;}
|
void WriteParam(uint16_t idx);
|
void WriteParam(uint16_t idx,float val);
|
private:
|
static void TaskReboot(void *pvParameters);
|
bool GetIdxFromQueue(uint16_t &idx);
|
void WriteToEeeprom(uint16_t idx,float val);
|
void CalcAndWriteCrc();
|
unsigned char crc8(unsigned char crc, unsigned char * dat, unsigned int len);
|
Mutex mMutex;
|
std::vector<float> mParams;
|
uint8_t mCrc=0xFF;
|
std::queue<uint16_t> mWriteQueue;
|
uint16_t EEPROM_SIZE;
|
uint64_t r2d2 = 0xFFFFFFFFFFFFFFFF;
|
uint64_t c3po = 0xFFFFFFFFFFFFFFFF;
|
};
|
|
#endif
|