Files
IoTManager/src/Widgets.cpp

86 lines
2.3 KiB
C++
Raw Normal View History

2020-06-18 23:43:06 +02:00
#include "Global.h"
2020-06-17 23:30:48 +03:00
2020-06-25 00:15:10 +03:00
const String getWidgetFile(const String& name);
2020-06-19 22:14:50 +02:00
2020-06-25 00:15:10 +03:00
bool loadWidget(const String filename, String& buf) {
buf = readFile(filename, 1024);
return !(buf == "Failed" || buf == "Large");
}
2020-06-19 22:14:50 +02:00
2020-06-25 00:15:10 +03:00
void createWidget(String widget, String page, String pageNumber, String filename, String topic) {
String buf;
if (!loadWidget(filename, buf)) {
return;
}
2020-06-19 22:14:50 +02:00
2020-06-25 00:15:10 +03:00
widget.replace("#", " ");
page.replace("#", " ");
2020-06-19 22:14:50 +02:00
2020-06-25 00:15:10 +03:00
jsonWriteStr(buf, "page", page);
jsonWriteStr(buf, "order", pageNumber);
jsonWriteStr(buf, "descr", widget);
jsonWriteStr(buf, "topic", prex + "/" + topic);
2020-06-19 22:14:50 +02:00
2020-06-21 03:43:15 +03:00
#ifdef LAYOUT_IN_RAM
2020-06-25 00:15:10 +03:00
all_widgets += widget + "\r\n";
2020-06-17 23:30:48 +03:00
#else
2020-06-25 00:15:10 +03:00
addFile("layout.txt", buf);
2020-06-17 23:30:48 +03:00
#endif
}
2020-06-25 00:15:10 +03:00
void createWidgetParam(String widget, String page, String pageNumber, String filename, String topic, String name1, String param1, String name2, String param2, String name3, String param3) {
String buf;
if (!loadWidget(filename, buf)) {
return;
}
2020-06-17 23:30:48 +03:00
2020-06-25 00:15:10 +03:00
widget.replace("#", " ");
page.replace("#", " ");
2020-06-17 23:30:48 +03:00
2020-06-25 00:15:10 +03:00
jsonWriteStr(buf, "page", page);
jsonWriteStr(buf, "order", pageNumber);
jsonWriteStr(buf, "descr", widget);
jsonWriteStr(buf, "topic", prex + "/" + topic);
2020-06-17 23:30:48 +03:00
2020-06-25 00:15:10 +03:00
if (name1) jsonWriteStr(buf, name1, param1);
if (name2) jsonWriteStr(buf, name2, param2);
if (name3) jsonWriteStr(buf, name3, param3);
2020-06-17 23:30:48 +03:00
2020-06-21 03:43:15 +03:00
#ifdef LAYOUT_IN_RAM
2020-06-25 00:15:10 +03:00
all_widgets += widget + "\r\n";
2020-06-17 23:30:48 +03:00
#else
2020-06-25 00:15:10 +03:00
addFile("layout.txt", buf);
2020-06-17 23:30:48 +03:00
#endif
}
2020-06-25 00:15:10 +03:00
void createChart(String widget, String page, String pageNumber, String filename, String topic, String maxCount) {
String buf;
if (!loadWidget(filename, buf)) {
return;
}
2020-06-17 23:30:48 +03:00
2020-06-25 00:15:10 +03:00
widget.replace("#", " ");
page.replace("#", " ");
2020-06-17 23:30:48 +03:00
2020-06-25 00:15:10 +03:00
jsonWriteStr(buf, "page", page);
jsonWriteStr(buf, "order", pageNumber);
//jsonWriteStr(widget, "descr", widget_name);
jsonWriteStr(buf, "series", widget);
jsonWriteStr(buf, "maxCount", maxCount);
jsonWriteStr(buf, "topic", prex + "/" + topic);
2020-06-17 23:30:48 +03:00
2020-06-21 03:43:15 +03:00
#ifdef LAYOUT_IN_RAM
2020-06-25 00:15:10 +03:00
all_widgets += widget + "\r\n";
2020-06-17 23:30:48 +03:00
#else
2020-06-25 00:15:10 +03:00
addFile("layout.txt", buf);
2020-06-17 23:30:48 +03:00
#endif
}
2020-06-25 00:15:10 +03:00
void createWidgetByType(String widget, String page, String pageNumber, String type, String topic) {
createWidget(widget, page, pageNumber, getWidgetFile(type), topic);
}
2020-06-19 22:14:50 +02:00
2020-06-25 00:15:10 +03:00
const String getWidgetFile(const String& name) {
return "widgets/" + name + ".json";
}