Code: Select all
#include <supla/storage/eeprom.h>
Code: Select all
#include <supla/storage/fram_spi.h>
Ta druga wymaga zewnętrznego urządzenia Adafruit FRAM SPI (w google łatwo znaleźć instrukcję podłączenia).
W tej chwili zapis do EEPROM/Flash jest robiony co 10 s, ale zapisuje tylko, gdy jest taka potrzeba. Ten domyślny czas będzie wydłużony (pewnie na 3-5 min). EEPROM/Flash trzeba oszczędzać, bo z reguły działa do około 100 000 zapisów. Dlatego wszystkim polecam doinstalować sobie pamięć FRAM (aktualnie wspieramy Adafruit FRAM SPI - jeśli ktoś ma inną kostkę, to dajcie znać). FRAM jest praktycznie niezniszczalny i bardzo szybki. Dlatego tutaj zapis jest realizowany co 1 s (o ile jest taka potrzeba).
Podstawowa obsługa Storage jest bardzo prosta. Wystarczy dodać odpowiedni include (jeden z dwóch opisanych wyżej) i potem stworzyć instancję odpowiedniej klasy (jedna z poniższych):
Code: Select all
// Hardware SPI
Supla::FramSpi fram(FRAM_CS, SUPLA_STORAGE_OFFSET);
// Software SPI
Supla::FramSpi fram(24, 22, 23, FRAM_CS, SUPLA_STORAGE_OFFSET); // <- sofrware spi, piny (SCK, MISO, MOSI, CS)
// EEPROM / Flash
Supla::Eeprom eeprom(SUPLA_STORAGE_OFFSET);
Tak wyposażony program będzie sobie zapisywał różne dane do pamięci trwałej (np. liczniki impulsów - zapiszą ilość impulsów, rolety zapiszą czas otwierania/zamykania oraz pozycję rolety, kolejne rzeczy będą dodane wkrótce).
Obsługa Storage będzie w najbliższym czasie rozbudowywana (np. sprawdzanie CRC, duplikowanie niektórych zapisów, aby się zabezpieczyć przed utratą danych, dodawanie nowych urządzeń przechowujących stan).