сценарии в вебе

This commit is contained in:
Dmitry Borisenko
2022-02-23 01:39:05 +01:00
parent 56a1c3fb0e
commit 23ae779b48
4 changed files with 20 additions and 15 deletions

File diff suppressed because one or more lines are too long

View File

@@ -3,8 +3,8 @@
"name": "IoTmanagerVer4", "name": "IoTmanagerVer4",
"apssid": "IoTmanager", "apssid": "IoTmanager",
"appass": "", "appass": "",
"routerssid": "WLAN1-Y1GYEF", "routerssid": "rise",
"routerpass": "2egY69YTA8DDR7En", "routerpass": "hostel3333",
"timezone": 1, "timezone": 1,
"ntp": "pool.ntp.org", "ntp": "pool.ntp.org",
"weblogin": "admin", "weblogin": "admin",

View File

@@ -3,15 +3,13 @@
extern IoTScenario iotScen; // объект управления сценарием extern IoTScenario iotScen; // объект управления сценарием
// orderBuf - буфер прямых команд, которые нужно выпонить сразу, нажали на кнопку в приложении, сработало условие сценария // orderBuf - буфер прямых команд, которые нужно выпонить сразу, нажали на кнопку в приложении
//необходимо тут же изменить параметр, записать новое значение //необходимо тут же изменить параметр, записать новое значение
// eventBuf - буфер событий, в нем как на конвеере едут события, и каждое событие проверяется через все условия сценариев // eventBuf - буфер событий, в нем как на конвеере едут события, и каждое событие проверяется через все условия сценариев
//его главное отличие от orderBuf в том что события в нем не для выполнения, а для проверки в условиях сценариев //его главное отличие от orderBuf в том что события в нем не для выполнения, а для проверки в условиях сценариев
//события в нем лишь вызывают другие команды, помещенные в блоке сценария, если условие совпало. //события в нем лишь вызывают другие команды, помещенные в блоке сценария, если условие совпало.
//эта функция будет вызываться: //эта функция будет вызываться:
// 1.на приеме сообщений в mqtt (см mqttCallback строку 142 в mqttClient.cpp) // 1.на приеме сообщений в mqtt (см mqttCallback строку 142 в mqttClient.cpp)
// 2.на приеме сообщений в ws // 2.на приеме сообщений в ws
@@ -26,14 +24,16 @@ void handleOrder() {
if (orderBuf.length()) { if (orderBuf.length()) {
String order = selectToMarker(orderBuf, ","); String order = selectToMarker(orderBuf, ",");
Serial.println("order: " + order); Serial.println("order: " + order);
//здесь нужно перебрать все методы execute всех векторов и выполнить те id которых совпали с id события //здесь нужно перебрать все методы execute всех векторов и выполнить те id которых совпали с id события
IoTItem* item = findIoTItem(selectToMarker(order, " ")); IoTItem* item = findIoTItem(selectToMarker(order, " "));
if (item) { if (item) {
String valStr = selectToMarkerLast(order, " "); String valStr = selectToMarkerLast(order, " ");
IoTValue value; IoTValue value;
if (value.isDecimal = isDigitStr(valStr)) value.valD = valStr.toFloat(); if (value.isDecimal = isDigitStr(valStr))
else value.valS = valStr; value.valD = valStr.toFloat();
else
value.valS = valStr;
item->setValue(value); item->setValue(value);
} }
@@ -53,7 +53,7 @@ void handleEvent() {
if (eventBuf.length()) { if (eventBuf.length()) {
String event = selectToMarker(eventBuf, ","); String event = selectToMarker(eventBuf, ",");
Serial.println("event: " + event); Serial.println("event: " + event);
//здесь нужно пропускать данное событие через условия сценариев //здесь нужно пропускать данное событие через условия сценариев
//и если оно есть в условии сценария и совподает //и если оно есть в условии сценария и совподает
//то нужно поместить все команды этого блока сценария в generateOrder(order1, order2, ....) //то нужно поместить все команды этого блока сценария в generateOrder(order1, order2, ....)

View File

@@ -56,24 +56,29 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
jsonMergeObjects(json, paramsFlashJson); jsonMergeObjects(json, paramsFlashJson);
standWebSocket.sendTXT(num, json); standWebSocket.sendTXT(num, json);
} }
//**сохранение**//
if (headerStr == "/tuoyal|") {
writeFileUint8tByFrames("layout.json", payload, length, headerLenth, 256);
}
// page configutation================================================================ // page configutation================================================================
//**отправка**// //**отправка**//
if (headerStr == "/config|") { if (headerStr == "/config|") {
sendFileToWs("/items.json", num, 1024); sendFileToWs("/items.json", num, 1024);
sendFileToWs("/widgets.json", num, 1024); sendFileToWs("/widgets.json", num, 1024);
sendFileToWs("/config.json", num, 1024); sendFileToWs("/config.json", num, 1024);
sendFileToWs("/scenario.txt", num, 1024);
standWebSocket.sendTXT(num, settingsFlashJson); standWebSocket.sendTXT(num, settingsFlashJson);
} }
//**сохранение**// //**сохранение**//
if (headerStr == "/gifnoc|") { if (headerStr == "/gifnoc|") {
writeFileUint8tByFrames("config.json", payload, length, headerLenth, 256); writeFileUint8tByFrames("config.json", payload, length, headerLenth, 256);
clearConfigure(); //clearConfigure();
configure("/config.json"); configure("/config.json");
} }
//**сохранение**//
if (headerStr == "/tuoyal|") {
writeFileUint8tByFrames("layout.json", payload, length, headerLenth, 256);
}
//**сохранение**//
if (headerStr == "/oiranecs|") {
writeFileUint8tByFrames("scenario.txt", payload, length, headerLenth, 256);
}
// page connection=================================================================== // page connection===================================================================
//**отправка**// //**отправка**//
if (headerStr == "/connection|") { if (headerStr == "/connection|") {