Skip to content

Commit e474d7f

Browse files
committed
upd
1 parent 5e5185f commit e474d7f

File tree

6 files changed

+982
-945
lines changed

6 files changed

+982
-945
lines changed

docs/4.widgets.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@ logger.println(sets::Logger::error() + "error text");
9090

9191
Подписи - список с разделением `;`.
9292

93+
Может обновляться, даже из файла - отправить в апдейт путь к файлу.
94+
9395
### LinearGauge
9496
Линейная шкала с заполнением, обновляется через апдейт.
9597

@@ -105,6 +107,9 @@ logger.println(sets::Logger::error() + "error text");
105107
> [!TIP]
106108
> Если график хранится в файле бинарной таблицы с расширением `.tbl`, то при скачивании его из файлового менеджера он будет конвертирован в читаемый `.csv`
107109
110+
> [!TIP]
111+
> График из файла может обновляться по пути к файлу - надо отправить путь в апдейт
112+
108113
### PlotRunning
109114
График с линиями. Данные передаются через апдейт, между апдейтами график двигается с заданной скоростью и показывает предыдущие значения осей.
110115

examples/plot_file/plot_file.ino

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ void loop() {
5252
if (millis() - tmr >= 2000) {
5353
tmr = millis();
5454

55-
// ===== бинарная таблица =====
55+
// ==================== бинарная таблица ====================
5656
TableFileStatic t(&LittleFS, "/file_plot1.tbl", 100); // макс. 100 строк, будет смещаться при append()
5757

5858
// инициализация, должна быть вызвана хотя бы один раз после непосредственного создания файла
@@ -61,7 +61,10 @@ void loop() {
6161
// добавление в файл
6262
t.append(sett.rtc.getUnix(), (random(100) - 50) / 2.0, random(-100, 100));
6363

64-
// ===== CSV таблица =====
64+
// отправить апдейт
65+
// sett.updater().update(H(plot1), "/file_plot1.tbl");
66+
67+
// ======================= CSV таблица ======================
6568
File f = LittleFS.open("/file_plot2.csv", "a");
6669
if (f) {
6770
f.print(sett.rtc.getUnix());

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=Settings
2-
version=1.3.7
2+
version=1.3.8
33
author=AlexGyver <[email protected]>
44
maintainer=AlexGyver <[email protected]>
55
sentence=Simple UI webface builder for esp8266/esp32

src/core/HybridFS.h

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,11 @@ class FSWrapper {
6464
// открыть файл
6565
File open(const char* path, const char* mode) {
6666
if (!_fs) return File();
67-
mkdir(path);
67+
#ifdef ESP8266
6868
return _fs->open(path, mode);
69+
#else
70+
return _fs->open(path, mode, mode[0] != 'r');
71+
#endif
6972
}
7073

7174
// открыть для чтения
@@ -78,6 +81,12 @@ class FSWrapper {
7881
return open(path, "w");
7982
}
8083

84+
String listDir(const char* path = "/") {
85+
String str;
86+
listDir(str, path);
87+
return str;
88+
}
89+
8190
// вывести список файлов. Разделитель файлов - ';', через ':' указан размер в байтах
8291
void listDir(String& str, const char* path = "/", bool withSize = false, const char* prefix = "") {
8392
if (!_fs) return;
@@ -112,6 +121,7 @@ class FSWrapper {
112121
listDir(str, file.path(), withSize);
113122
} else {
114123
str += prefix;
124+
if (strlen(path) > 1) str += path;
115125
str += '/';
116126
str += file.name();
117127
if (withSize) {
@@ -127,7 +137,9 @@ class FSWrapper {
127137
// создать директорию
128138
void mkdir(const char* path) {
129139
if (!_fs) return;
130-
#ifdef ESP32
140+
#ifdef ESP8266
141+
_fs->mkdir(path);
142+
#else
131143
if (!_fs->exists(path)) {
132144
if (strchr(path, '/')) {
133145
char* pathD = strdup(path);
@@ -143,14 +155,15 @@ class FSWrapper {
143155
free(pathD);
144156
}
145157
}
146-
#else
147158
#endif
148159
}
149160

150161
// удалить директорию
151162
void rmdir(const char* path) {
152163
if (!_fs) return;
153-
#ifdef ESP32
164+
#ifdef ESP8266
165+
_fs->rmdir(path);
166+
#else
154167
char* pathD = strdup(path);
155168
if (pathD) {
156169
char* ptr = strrchr(pathD, '/');
@@ -161,7 +174,6 @@ class FSWrapper {
161174
}
162175
free(pathD);
163176
}
164-
#else
165177
#endif
166178
}
167179

@@ -228,7 +240,7 @@ class HybridFS {
228240
// вывести список файлов. Разделитель файлов - ';'
229241
String listDir(const char* path = "/") {
230242
String str;
231-
listDir(str, path, false);
243+
listDir(str, path);
232244
return str;
233245
}
234246

src/core/updater.h

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,9 +153,21 @@ class Updater {
153153
p('}');
154154
return *this;
155155
}
156-
156+
157157
// апдейт для графиков из файла
158-
Updater& updatePlot(size_t id, Text path) {
158+
Updater& updatePlot(size_t id, char* path) {
159+
return update(id, path);
160+
}
161+
Updater& updatePlot(size_t id, const char* path) {
162+
return update(id, path);
163+
}
164+
Updater& updatePlot(size_t id, const __FlashStringHelper* path) {
165+
return update(id, path);
166+
}
167+
Updater& updatePlot(size_t id, const String& path) {
168+
return update(id, path);
169+
}
170+
Updater& updatePlot(size_t id, const Text& path) {
159171
return update(id, path);
160172
}
161173

0 commit comments

Comments
 (0)