vajera wrote: Mon Jun 03, 2024 8:33 pm
Mam pytanie o oficjalną politykę zapisu własnych danych w ekosystemie SuplaDevice.
Pisząc po ludzku - mam np. 32 bitową wartość, którą chcę wczytywać przy starcie z flasha, modyfikować w trakcie pracy programu i zapisywać po każdej zmianie.
Czy mogę do tego wykorzystać klasę LittleFsConfig i funkcje setInt32/getInt32? A może Eeprom - ale jak - tworząc własną sekcję?
Czy klasycznie - odpalać klasę Eeprom np. z offsetem 128 bajtów i zapisywać swoje dane w tych pierwszych 128 bajtach EEPROM?
Tu nie ma żadnej polityki

. To Twoje urządzenie i rób sobie na nim co Ci się podoba
Możesz wykorzystywać dowolne mechanizmy zapisywania danych we flashu, o ile nie będą one kolidowały z tym co robi biblioteka.
Także jeśli używasz LittleFsConfig, to możesz z niej korzystać i zapisywać tam dane w posatci klucz(15 znaków ASCII)->wartość (int8, int32, char[], "blob"). Trzeba pamiętać, aby nazwa nie kolidowała z kluczami, używanymi w s-d. Dodatkowo użycie w takiej sytuacji spifs wszystko rozwali ;P. Także albo little fs, albo spifs. Na little fs możesz też zapisywać własne pliki z danymi. Tam jest dość sporo miejsca, zapis robi jakiś wear leveling. Przy LittleFsConfig trzeba też pilnować, aby config nie zrobił się zbyt duży. Domyślnie trzyma on 1000 B, ale już jeden kanał HVAC (termostat) zjadał kilkaset bajtów configa.
Możęsz też używać tej emulacji EEPROM. Jego zaleta to prostota. Wtedy wystarczy Supla::Storage ustawić z odpowiednim offsetem pisanie do EEPROMu w adresach ponizżej tego offsetu będzie bezpieczne. Tylko EEPROM chyba (?) nie robił wear levelingu, więc ostrożnie z ilością zapisów.
Supla: bo GPIO to dopiero początek.