eepromclass.cpp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include "eepromclass.h"
  2. #include <Arduino.h>
  3. EEPROMclass::EEPROMclass()
  4. {
  5. }
  6. void EEPROMclass::RunSetup(){
  7. EEPROM.begin(eeprom_size);
  8. }
  9. void EEPROMclass::writeEEPROMint(int index, int value){
  10. EEPROM.write(index, value);
  11. EEPROM.commit();
  12. }
  13. int EEPROMclass::readEEPROMint(int index){
  14. int value = EEPROM.read(index);
  15. return value;
  16. }
  17. int EEPROMclass::writeStringToEEPROM(int addrOffset, const String &strToWrite){
  18. byte len = strToWrite.length();
  19. EEPROM.write(addrOffset, len);
  20. for (int i = 0; i < len; i++)
  21. {
  22. EEPROM.write(addrOffset + 1 + i, strToWrite[i]);
  23. }
  24. return addrOffset + 1 + len;
  25. }
  26. int EEPROMclass::readStringFromEEPROM(int addrOffset, String *strToRead){
  27. int newStrLen = EEPROM.read(addrOffset);
  28. char data[newStrLen + 1];
  29. for (int i = 0; i < newStrLen; i++)
  30. {
  31. data[i] = EEPROM.read(addrOffset + 1 + i);
  32. }
  33. data[newStrLen] = '\0'; // the character may appear in a weird way, you should read: 'only one backslash and 0'
  34. *strToRead = String(data);
  35. return addrOffset + 1 + newStrLen;
  36. }
  37. void EEPROMclass::clearEEPROM(){
  38. for (int i = 0; i < EEPROM.length(); i++) {
  39. EEPROM.write(i, 0);
  40. Serial.println(i);
  41. if(i == EEPROM.length()-1){
  42. EEPROM.commit();
  43. ESP.reset();
  44. }
  45. }
  46. }