Skip to content

Commit 3f72ae8

Browse files
committed
upd
1 parent 07c9d01 commit 3f72ae8

File tree

9 files changed

+1017
-950
lines changed

9 files changed

+1017
-950
lines changed

docs/1.main.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,9 @@ Config config;
136136

137137
// основная цветовая схема
138138
Colors theme = Colors::Green;
139+
140+
// использовать файловый менеджер
141+
bool useFS = true;
139142
}
140143
```
141144
@@ -470,6 +473,9 @@ void update(size_t id, BSON& params);
470473
void updateColor(size_t id, uint32_t color);
471474
void updateColor(size_t id, sets::Colors color);
472475

476+
// апдейт для Table
477+
Updater& updateTable(size_t id, Table& table);
478+
473479
// апдейт для графиков из файла
474480
Updater& updatePlot(size_t id, Text path);
475481

docs/4.widgets.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,6 @@ logger.println(sets::Logger::error() + "error text");
9898
## Графики
9999
- У всех вариантов неограниченное количество осей
100100
- Все могут обновляться в реальном времени
101-
- Названия осей передаются в виде списка с разделителем `;` - `"axis 1;test;test 2"`
102-
- Единицы измерения для графиков-линий опционально добавляются в конце названия оси в квадратных скобках - `"Value;Temp[°C];USD[ $]"`
103101
- Виджеты графиков поддерживают загрузку данных напрямую из файла с таблицей в формате:
104102
- Текстовая CSV таблица (разделитель столбцов `;`, строк - `\n`) с расширением `.csv`
105103
- Бинарная таблица из библиотеки [Table](https://github.com/GyverLibs/Table) с расширением `.tbl`
@@ -110,6 +108,18 @@ logger.println(sets::Logger::error() + "error text");
110108
> [!TIP]
111109
> График из файла может обновляться по пути к файлу - надо отправить путь в апдейт
112110
111+
### Названия осей
112+
Названия осей передаются в виде списка с разделителем `;` - `"axis 1;test;test 2"`. Дополнительно для графиков линий:
113+
114+
- Единицы измерения опционально добавляются в конце названия оси в квадратных скобках: `"Value;Temp[°C];USD[ $]"`
115+
- Линию можно сделать пунктирной - для этого нужно добавить тире перед названием оси. Чем больше тире, тем длиннее штрихи: `"-Value;Temp;--USD"`
116+
117+
### Формат времени
118+
Графики Plot и Timeline выводят данные по указанному времени. Это время может быть:
119+
120+
- Unix в секундах (32 бит) или миллисекундах (64 бит) - на графике будет отображаться дата и время точек. Первая точка должна быть отправлена с ненулевым unix
121+
- Если первая точка графика отправлена с нулевым временем `0` - график будет ожидать время в целых миллисекундах и отображаеть на оси в дробных секундах без даты, начиная с 0 секунд. Это удобно, если нужно построить какой-то короткий процесс, не привязанный к реальному времени
122+
113123
### PlotRunning
114124
График с линиями. Данные передаются через апдейт, между апдейтами график двигается с заданной скоростью и показывает предыдущие значения осей.
115125

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.9
2+
version=1.3.10
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: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@
1010
// FSWrapper
1111
class FSWrapper {
1212
public:
13+
FSWrapper() {}
14+
15+
template <typename fs_t>
16+
FSWrapper(fs_t& fs) { setFS(fs); }
17+
1318
// указатель на fs
1419
FS* fs() {
1520
return _fs;
@@ -211,6 +216,16 @@ class HybridFS {
211216
public:
212217
FSWrapper flash, sd;
213218

219+
HybridFS() {}
220+
221+
// подлючить fs (flash)
222+
template <typename flash_t>
223+
HybridFS(flash_t& flash_fs) { setFS(flash_fs); }
224+
225+
// подлючить fs (flash + sd)
226+
template <typename flash_t, typename sd_t>
227+
HybridFS(flash_t& flash_fs, sd_t& sd_fs) { setFS(flash_fs, sd_fs); }
228+
214229
// подлючить fs (flash)
215230
template <typename flash_t>
216231
void setFS(flash_t& flash_fs) {

src/core/SettingsBase.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@ class SettingsBase {
5252

5353
// основная цветовая схема
5454
Colors theme = Colors::Green;
55+
56+
// использовать файловый менеджер
57+
bool useFS = true;
5558
};
5659

5760
struct CustomJS {
@@ -508,6 +511,7 @@ class SettingsBase {
508511
p[Code::ping_tout] = config.pingTout;
509512
p[Code::request_tout] = config.requestTout;
510513
p[Code::send_tout] = config.sliderTout;
514+
p[Code::use_fs] = config.useFS;
511515
p[Code::color] = (uint32_t)config.theme;
512516
p[Code::rssi] = getRSSI();
513517
p[Code::uptime] = millis() / 1000;

src/core/builder.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,7 @@ class Builder {
275275
Table(_NO_ID, table, labels);
276276
}
277277

278+
#ifndef SETT_NO_TABLE
278279
// таблица из бинарной таблицы в RAM. Подписи - список с разделением ';'
279280
void Table(size_t id, ::Table& table, Text labels = Text()) {
280281
if (_beginWidget(Code::table, id, labels)) {
@@ -287,6 +288,7 @@ class Builder {
287288
void Table(::Table& table, Text labels = Text()) {
288289
Table(_NO_ID, table, labels);
289290
}
291+
#endif
290292

291293
// ================= GAUGE =================
292294
// линейная шкала с заполнением, обновляется через апдейт

src/core/codes.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ enum class Code : uint8_t {
9393
spinner,
9494
s_ver,
9595
f_ver,
96+
use_fs,
9697
};
9798

9899
}

src/core/updater.h

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,13 @@ class Updater {
9292
}
9393

9494
// апдейт с текстом
95+
Updater& updateText(size_t id, const Text& value) {
96+
p('{');
97+
p[Code::id] = id;
98+
p[Code::data] = value;
99+
p('}');
100+
return *this;
101+
}
95102
Updater& update(size_t id, const Text& value) {
96103
return updateText(id, value);
97104
}
@@ -101,6 +108,9 @@ class Updater {
101108
Updater& update(size_t id, const char* value) {
102109
return updateText(id, value);
103110
}
111+
Updater& update(size_t id, char* value) {
112+
return updateText(id, value);
113+
}
104114
Updater& update(size_t id, const __FlashStringHelper* value) {
105115
return updateText(id, value);
106116
}
@@ -143,6 +153,21 @@ class Updater {
143153
return *this;
144154
}
145155

156+
#ifndef SETT_NO_TABLE
157+
// апдейт для Table
158+
Updater& updateTable(size_t id, Table& table) {
159+
if (table.rows()) {
160+
p('{');
161+
p[Code::id] = id;
162+
p[Code::data];
163+
p.beginBin(table.writeSize());
164+
table.writeTo(p);
165+
p('}');
166+
}
167+
return *this;
168+
}
169+
#endif
170+
146171
// апдейт для running и stack графиков
147172
template <typename T>
148173
Updater& updatePlot(size_t id, const T& data) {
@@ -204,14 +229,6 @@ class Updater {
204229

205230
private:
206231
Packet& p;
207-
208-
Updater& updateText(size_t id, const Text& value) {
209-
p('{');
210-
p[Code::id] = id;
211-
p[Code::data] = value;
212-
p('}');
213-
return *this;
214-
}
215232
};
216233

217234
} // namespace sets

0 commit comments

Comments
 (0)