Skip to content

Commit 966e185

Browse files
committed
Update README.md
1 parent 3e29946 commit 966e185

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

README.md

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,16 +84,25 @@ board_build.filesystem = littlefs
8484
В библиотеке настроен вебсервер, который отправляет файлы вебморды при заходе на ip платы. Файлы вебморды вшиты в PROGMEM (в код программы) в бинарном виде - загружать файлы в fs не нужно, всё работает из коробки. Лёгкий html файл каждый раз подгружается, а скрипты и стили - кешируются браузером для ускорения загрузки. По сути они загружаются один раз после обновления библиотеки. Вебморда является веб-приложением, которое общается с платой по http. При загрузке она запрашивает у платы пакет с виджетами и прочей информацией, пакет имеет формат бинарного json.
8585

8686
### База данных
87-
Библиотека интегрирована с [GyverDB](https://github.com/GyverLibs/GyverDB) - относительно быстрой базой данных для хранения данных любого типа. Settings автоматически читает и обновляет данные в БД, поэтому рекомендуется изучить как работать с БД на странице описания GyverDB. При использовании GyverDBFile база данных будет автоматически писаться в файл при изменениях, а файловая система позаботится об оптимальном износе flash памяти. Минимальный пример:
88-
87+
Библиотека интегрирована с [GyverDB](https://github.com/GyverLibs/GyverDB) - относительно быстрой базой данных для хранения данных любого типа. Settings автоматически читает и обновляет данные в БД, поэтому рекомендуется изучить как работать с БД на странице описания GyverDB. При использовании GyverDBFile база данных будет автоматически писаться в файл при изменениях, а файловая система позаботится об оптимальном износе flash памяти. При запуске рекомендуется инициализировать БД, указав ключи и соответствующие им начальные значения и типы. Эти значения будут записаны только в том случае, если запись в БД ещё не существует. В то же время автоматическое обновление БД работает только для существующих записей, т.е. Settings будет работать только с сущестующими ячейками и не создаст новых. Минимальный пример:
8988
```cpp
89+
// Подключить библиотеки и создать БД и Settings
9090
#include <GyverDBFile.h>
9191
#include <LittleFS.h>
9292
GyverDBFile db(&LittleFS, "/data.db");
9393

9494
#include <SettingsESP.h>
9595
SettingsESP sett("My Settings", &db);
9696

97+
// Объявить хэш-ключи БД через макрос. Это удобнее, чем "строки" и enum,
98+
// а также не боится изменения порядка или удаления ключей из середины списка
99+
DB_KEYS(keys,
100+
DB_KEY(key1),
101+
DB_KEY(key2),
102+
DB_KEY(mykey),
103+
)
104+
105+
// билдер
97106
void build(sets::Builder& b) {
98107
}
99108

@@ -115,16 +124,19 @@ void setup() {
115124
sett.begin();
116125
sett.onBuild(build);
117126

118-
// db
127+
// запуск файловой системы
119128
#ifdef ESP32
120129
LittleFS.begin(true); // format on fail
121130
#else
122131
LittleFS.begin();
123132
#endif
124133

134+
// запуск БД и чтение из файла
125135
db.begin();
126-
// init db
127-
// db.init("txt"_h, "text");
136+
137+
// инициализация БД начальными значениями
138+
// db.init(key1, "text");
139+
// db.init(key2, 12345);
128140
}
129141

130142
void loop() {

0 commit comments

Comments
 (0)