mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-30 03:49:13 +03:00
4.0.1 ядро для 8266
This commit is contained in:
10
.vscode/extensions.json
vendored
10
.vscode/extensions.json
vendored
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
// See http://go.microsoft.com/fwlink/?LinkId=827846
|
|
||||||
// for the documentation about the extensions.json format
|
|
||||||
"recommendations": [
|
|
||||||
"platformio.platformio-ide"
|
|
||||||
],
|
|
||||||
"unwantedRecommendations": [
|
|
||||||
"ms-vscode.cpptools-extension-pack"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
18
.vscode/settings.json
vendored
18
.vscode/settings.json
vendored
@@ -1,13 +1,15 @@
|
|||||||
{
|
{
|
||||||
"files.associations": {
|
"files.associations": {
|
||||||
"*.tcc": "cpp",
|
|
||||||
"fstream": "cpp",
|
|
||||||
"ratio": "cpp",
|
|
||||||
"system_error": "cpp",
|
"system_error": "cpp",
|
||||||
"array": "cpp",
|
"xlocale": "cpp",
|
||||||
"functional": "cpp",
|
"deque": "cpp",
|
||||||
"tuple": "cpp",
|
"initializer_list": "cpp",
|
||||||
"type_traits": "cpp",
|
"list": "cpp",
|
||||||
"utility": "cpp"
|
"vector": "cpp",
|
||||||
|
"xhash": "cpp",
|
||||||
|
"xiosbase": "cpp",
|
||||||
|
"xstring": "cpp",
|
||||||
|
"xtree": "cpp",
|
||||||
|
"xutility": "cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,7 +7,7 @@ build_flags = -Desp8266_4mb="esp8266_4mb"
|
|||||||
framework = arduino
|
framework = arduino
|
||||||
board = nodemcuv2
|
board = nodemcuv2
|
||||||
board_build.ldscript = eagle.flash.4m1m.ld
|
board_build.ldscript = eagle.flash.4m1m.ld
|
||||||
platform = espressif8266 @2.6.3
|
platform = espressif8266 @4.0.1
|
||||||
monitor_filters = esp8266_exception_decoder
|
monitor_filters = esp8266_exception_decoder
|
||||||
upload_speed = 921600
|
upload_speed = 921600
|
||||||
monitor_speed = 115200
|
monitor_speed = 115200
|
||||||
@@ -27,7 +27,7 @@ lib_deps =
|
|||||||
build_flags = -Desp32_4mb="esp32_4mb"
|
build_flags = -Desp32_4mb="esp32_4mb"
|
||||||
framework = arduino
|
framework = arduino
|
||||||
board = esp32dev
|
board = esp32dev
|
||||||
platform = espressif32 @3.3.0
|
platform = espressif32
|
||||||
monitor_filters = esp32_exception_decoder
|
monitor_filters = esp32_exception_decoder
|
||||||
upload_speed = 921600
|
upload_speed = 921600
|
||||||
monitor_speed = 115200
|
monitor_speed = 115200
|
||||||
|
|||||||
@@ -299,7 +299,8 @@ void hexdump(const void* mem, uint32_t len, uint8_t cols = 16) {
|
|||||||
|
|
||||||
//посылка данных из файла в бинарном виде
|
//посылка данных из файла в бинарном виде
|
||||||
void sendFileToWs(const char* filename, uint8_t num, size_t frameSize) {
|
void sendFileToWs(const char* filename, uint8_t num, size_t frameSize) {
|
||||||
standWebSocket.sendTXT(num, "/st" + String(filename));
|
String st = "/st" + String(filename);
|
||||||
|
standWebSocket.sendTXT(num, st);
|
||||||
String path = filepath(filename);
|
String path = filepath(filename);
|
||||||
auto file = FileFS.open(path, "r");
|
auto file = FileFS.open(path, "r");
|
||||||
if (!file) {
|
if (!file) {
|
||||||
@@ -315,17 +316,20 @@ void sendFileToWs(const char* filename, uint8_t num, size_t frameSize) {
|
|||||||
countRead = file.read(payload, sizeof(payload));
|
countRead = file.read(payload, sizeof(payload));
|
||||||
}
|
}
|
||||||
file.close();
|
file.close();
|
||||||
standWebSocket.sendTXT(num, "/end" + String(filename));
|
String end = "/end" + String(filename);
|
||||||
|
standWebSocket.sendTXT(num, end);
|
||||||
}
|
}
|
||||||
|
|
||||||
//посылка данных из string
|
//посылка данных из string
|
||||||
void sendStringToWs(const String& msg, uint8_t num, String name) {
|
void sendStringToWs(const String& msg, uint8_t num, String name) {
|
||||||
standWebSocket.sendTXT(num, "/st" + String(name));
|
String st = "/st" + String(name);
|
||||||
|
standWebSocket.sendTXT(num, st);
|
||||||
size_t size = msg.length();
|
size_t size = msg.length();
|
||||||
char dataArray[size];
|
char dataArray[size];
|
||||||
msg.toCharArray(dataArray, size);
|
msg.toCharArray(dataArray, size);
|
||||||
standWebSocket.sendBIN(num, (uint8_t*)dataArray, size);
|
standWebSocket.sendBIN(num, (uint8_t*)dataArray, size);
|
||||||
standWebSocket.sendTXT(num, "/end" + String(name));
|
String end = "/end" + String(name);
|
||||||
|
standWebSocket.sendTXT(num, end);
|
||||||
}
|
}
|
||||||
|
|
||||||
// void sendMark(const char* filename, const char* mark, uint8_t num) {
|
// void sendMark(const char* filename, const char* mark, uint8_t num) {
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
#include "utils/FileUtils.h"
|
#include "utils/FileUtils.h"
|
||||||
#include "NTP.h"
|
#include "NTP.h"
|
||||||
|
|
||||||
|
|
||||||
bool isIotScenException = false; // признак исключения и попытки прекратить выполнение сценария заранее
|
bool isIotScenException = false; // признак исключения и попытки прекратить выполнение сценария заранее
|
||||||
|
|
||||||
// Лексический анализатор возвращает токены [0-255], если это неизвестны,
|
// Лексический анализатор возвращает токены [0-255], если это неизвестны,
|
||||||
@@ -46,7 +45,7 @@ class NumberExprAST : public ExprAST {
|
|||||||
IoTValue Val;
|
IoTValue Val;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
NumberExprAST(String val) {
|
NumberExprAST(String val) {
|
||||||
Val.valD = strtod(val.c_str(), 0);
|
Val.valD = strtod(val.c_str(), 0);
|
||||||
Val.valS = val;
|
Val.valS = val;
|
||||||
}
|
}
|
||||||
@@ -147,7 +146,7 @@ class BinaryExprAST : public ExprAST {
|
|||||||
if (RHS == nullptr || LHS == nullptr) return nullptr;
|
if (RHS == nullptr || LHS == nullptr) return nullptr;
|
||||||
|
|
||||||
IoTValue *rhs = RHS->exec(); // получаем значение правого операнда для возможного использования в операции присваивания
|
IoTValue *rhs = RHS->exec(); // получаем значение правого операнда для возможного использования в операции присваивания
|
||||||
|
|
||||||
if (Op == '=' && LHS->setValue(rhs)) { // если установка значения не поддерживается, т.е. слева не переменная, то работаем по другим комбинациям далее
|
if (Op == '=' && LHS->setValue(rhs)) { // если установка значения не поддерживается, т.е. слева не переменная, то работаем по другим комбинациям далее
|
||||||
return rhs; // иначе возвращаем присвоенное значение справа
|
return rhs; // иначе возвращаем присвоенное значение справа
|
||||||
}
|
}
|
||||||
@@ -470,7 +469,7 @@ class SysCallExprAST : public ExprAST {
|
|||||||
}
|
}
|
||||||
|
|
||||||
IoTValue *exec() {
|
IoTValue *exec() {
|
||||||
//Serial.printf("Call from SysCallExprAST exec %d\n", operation);
|
// Serial.printf("Call from SysCallExprAST exec %d\n", operation);
|
||||||
|
|
||||||
if (isIotScenException) return nullptr; // если прерывание, то сразу выходим
|
if (isIotScenException) return nullptr; // если прерывание, то сразу выходим
|
||||||
|
|
||||||
@@ -594,17 +593,20 @@ int IoTScenario::getLastChar() {
|
|||||||
LastChar = file.read();
|
LastChar = file.read();
|
||||||
if (LastChar == 10) curLine++;
|
if (LastChar == 10) curLine++;
|
||||||
return LastChar;
|
return LastChar;
|
||||||
} else return EOF;
|
} else
|
||||||
|
return EOF;
|
||||||
} else if (mode == 1) {
|
} else if (mode == 1) {
|
||||||
if (charCount < strFromFile.length()) {
|
if (charCount < strFromFile.length()) {
|
||||||
LastChar = strFromFile.charAt(charCount);
|
LastChar = strFromFile.charAt(charCount);
|
||||||
//Serial.printf("%d, ", LastChar);
|
// Serial.printf("%d, ", LastChar);
|
||||||
if (LastChar == 10) curLine++;
|
if (LastChar == 10) curLine++;
|
||||||
charCount++;
|
charCount++;
|
||||||
return LastChar;
|
return LastChar;
|
||||||
} else return EOF;
|
} else
|
||||||
|
return EOF;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// gettok - Возвращает следующий токен из стандартного потока ввода.
|
/// gettok - Возвращает следующий токен из стандартного потока ввода.
|
||||||
@@ -627,12 +629,13 @@ int IoTScenario::gettok() {
|
|||||||
return tok_identifier;
|
return tok_identifier;
|
||||||
}
|
}
|
||||||
|
|
||||||
NumStr="";
|
NumStr = "";
|
||||||
if (LastChar == '-') {
|
if (LastChar == '-') {
|
||||||
LastChar = getLastChar();
|
LastChar = getLastChar();
|
||||||
if (isdigit(LastChar)) NumStr = "-";
|
if (isdigit(LastChar))
|
||||||
else return '-';
|
NumStr = "-";
|
||||||
|
else
|
||||||
|
return '-';
|
||||||
}
|
}
|
||||||
if (isdigit(LastChar)) { // Число: [0-9.]+
|
if (isdigit(LastChar)) { // Число: [0-9.]+
|
||||||
do {
|
do {
|
||||||
@@ -703,7 +706,7 @@ int IoTScenario::gettok() {
|
|||||||
} else
|
} else
|
||||||
return '>';
|
return '>';
|
||||||
}
|
}
|
||||||
|
|
||||||
// В противном случае просто возвращаем символ как значение ASCII
|
// В противном случае просто возвращаем символ как значение ASCII
|
||||||
int ThisChar = LastChar;
|
int ThisChar = LastChar;
|
||||||
LastChar = getLastChar();
|
LastChar = getLastChar();
|
||||||
@@ -776,8 +779,7 @@ ExprAST *IoTScenario::ParseIdentifierExpr(String *IDNames, bool callFromConditio
|
|||||||
|
|
||||||
if (CurTok == ')') break;
|
if (CurTok == ')') break;
|
||||||
|
|
||||||
if (CurTok != ','){
|
if (CurTok != ',') {
|
||||||
|
|
||||||
return Error("Expected ')' or ',' in argument list");
|
return Error("Expected ')' or ',' in argument list");
|
||||||
}
|
}
|
||||||
getNextToken();
|
getNextToken();
|
||||||
@@ -810,7 +812,7 @@ ExprAST *IoTScenario::ParseParenExpr(String *IDNames, bool callFromCondition) {
|
|||||||
|
|
||||||
if (CurTok != ')')
|
if (CurTok != ')')
|
||||||
return Error("expected ')'");
|
return Error("expected ')'");
|
||||||
//getNextToken(); // получаем ).
|
// getNextToken(); // получаем ).
|
||||||
return V;
|
return V;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -820,26 +822,24 @@ ExprAST *IoTScenario::ParseBracketsExpr(String *IDNames, bool callFromCondition)
|
|||||||
|
|
||||||
getNextToken(); // получаем {.
|
getNextToken(); // получаем {.
|
||||||
std::vector<ExprAST *> bracketsList;
|
std::vector<ExprAST *> bracketsList;
|
||||||
|
|
||||||
while (CurTok != '}') {
|
|
||||||
ExprAST *Expr = ParseExpression(IDNames, callFromCondition);
|
|
||||||
if (!Expr) return nullptr;
|
|
||||||
bracketsList.push_back(Expr);
|
|
||||||
|
|
||||||
//if (CurTok == '}') break;
|
|
||||||
|
|
||||||
//Serial.printf("ParseBracketsExpr CurTok = %d \n", CurTok);
|
while (CurTok != '}') {
|
||||||
|
ExprAST *Expr = ParseExpression(IDNames, callFromCondition);
|
||||||
|
if (!Expr) return nullptr;
|
||||||
|
bracketsList.push_back(Expr);
|
||||||
|
|
||||||
|
// if (CurTok == '}') break;
|
||||||
|
|
||||||
|
// Serial.printf("ParseBracketsExpr CurTok = %d \n", CurTok);
|
||||||
|
|
||||||
//if (CurTok != ';')
|
// if (CurTok != ';')
|
||||||
// return Error("Expected ';' in operation list");
|
// return Error("Expected ';' in operation list");
|
||||||
|
|
||||||
//int ttok = getNextToken();
|
// int ttok = getNextToken();
|
||||||
if (CurTok == tok_eof) {
|
if (CurTok == tok_eof) {
|
||||||
return Error("Expected '}'");
|
return Error("Expected '}'");
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
getNextToken(); // получаем }.
|
getNextToken(); // получаем }.
|
||||||
return new BracketsExprAST(bracketsList);
|
return new BracketsExprAST(bracketsList);
|
||||||
@@ -957,7 +957,6 @@ ExprAST *IoTScenario::ParseExpression(String *IDNames, bool callFromCondition) {
|
|||||||
return ParseBinOpRHS(0, LHS, IDNames, callFromCondition);
|
return ParseBinOpRHS(0, LHS, IDNames, callFromCondition);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void IoTScenario::loadScenario(String fileName) { // подготавливаем контекст для чтения и интерпретации файла
|
void IoTScenario::loadScenario(String fileName) { // подготавливаем контекст для чтения и интерпретации файла
|
||||||
isIotScenException = false;
|
isIotScenException = false;
|
||||||
|
|
||||||
@@ -977,7 +976,7 @@ void IoTScenario::loadScenario(String fileName) { // подготавливае
|
|||||||
strFromFile = file.readString();
|
strFromFile = file.readString();
|
||||||
Serial.printf("strFromFile: %s, %s\n", strFromFile.c_str(), fileName.c_str());
|
Serial.printf("strFromFile: %s, %s\n", strFromFile.c_str(), fileName.c_str());
|
||||||
file.close();
|
file.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void IoTScenario::exec(String eventIdName) { // посимвольно считываем и сразу интерпретируем сценарий в дерево AST
|
void IoTScenario::exec(String eventIdName) { // посимвольно считываем и сразу интерпретируем сценарий в дерево AST
|
||||||
@@ -988,11 +987,11 @@ void IoTScenario::exec(String eventIdName) { // посимвольно счит
|
|||||||
curLine = 1;
|
curLine = 1;
|
||||||
charCount = 0;
|
charCount = 0;
|
||||||
|
|
||||||
if (mode == 0) file.seek(0);
|
if (mode == 0) file.seek(0);
|
||||||
|
|
||||||
if (mode < 2) {
|
if (mode < 2) {
|
||||||
while (CurTok != EOF) {
|
while (CurTok != EOF) {
|
||||||
switch (CurTok) {
|
switch (CurTok) {
|
||||||
case tok_if: {
|
case tok_if: {
|
||||||
IDNames = ""; // сбрасываем накопитель встречающихся идентификаторов в условии
|
IDNames = ""; // сбрасываем накопитель встречающихся идентификаторов в условии
|
||||||
ExprAST *tmpAST = ParseIfExpr(&IDNames);
|
ExprAST *tmpAST = ParseIfExpr(&IDNames);
|
||||||
@@ -1001,15 +1000,18 @@ void IoTScenario::exec(String eventIdName) { // посимвольно счит
|
|||||||
tmpAST->exec();
|
tmpAST->exec();
|
||||||
}
|
}
|
||||||
delete tmpAST;
|
delete tmpAST;
|
||||||
} else getNextToken();
|
} else
|
||||||
break;}
|
getNextToken();
|
||||||
default: getNextToken(); break;
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
getNextToken();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
IoTScenario::IoTScenario() {
|
IoTScenario::IoTScenario() {
|
||||||
// Задаём стандартные бинарные операторы.
|
// Задаём стандартные бинарные операторы.
|
||||||
// 1 - наименьший приоритет.
|
// 1 - наименьший приоритет.
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ class Bme280t : public IoTItem {
|
|||||||
SerialPrint("E", "Sensor Bme280t", "Error");
|
SerialPrint("E", "Sensor Bme280t", "Error");
|
||||||
}
|
}
|
||||||
|
|
||||||
~Bme280t() {};
|
~Bme280t(){};
|
||||||
};
|
};
|
||||||
|
|
||||||
class Bme280h : public IoTItem {
|
class Bme280h : public IoTItem {
|
||||||
@@ -49,7 +49,7 @@ class Bme280h : public IoTItem {
|
|||||||
SerialPrint("E", "Sensor Bme280h", "Error");
|
SerialPrint("E", "Sensor Bme280h", "Error");
|
||||||
}
|
}
|
||||||
|
|
||||||
~Bme280h() {};
|
~Bme280h(){};
|
||||||
};
|
};
|
||||||
|
|
||||||
class Bme280p : public IoTItem {
|
class Bme280p : public IoTItem {
|
||||||
@@ -70,28 +70,27 @@ class Bme280p : public IoTItem {
|
|||||||
SerialPrint("E", "Sensor Bme280p", "Error");
|
SerialPrint("E", "Sensor Bme280p", "Error");
|
||||||
}
|
}
|
||||||
|
|
||||||
~Bme280p() {};
|
~Bme280p(){};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void* getAPI_Bme280(String subtype, String param) {
|
||||||
void* getAPI_Bme280(String subtype, String param) {
|
// if (subtype == F("Bme280t") || subtype == F("Bme280h") || subtype == F("Bme280p")) {
|
||||||
if (subtype == F("Bme280t") || subtype == F("Bme280h") || subtype == F("Bme280p")) {
|
// String addr;
|
||||||
String addr;
|
// jsonRead(param, "addr", addr);
|
||||||
jsonRead(param, "addr", addr);
|
//
|
||||||
|
// if (bmes.find(addr) == bmes.end()) {
|
||||||
if (bmes.find(addr) == bmes.end()) {
|
// bmes[addr] = new Adafruit_BME280();
|
||||||
bmes[addr] = new Adafruit_BME280();
|
// bmes[addr]->begin(hexStringToUint8(addr));
|
||||||
bmes[addr]->begin(hexStringToUint8(addr));
|
// }
|
||||||
}
|
//
|
||||||
|
// if (subtype == F("Bme280t")) {
|
||||||
if (subtype == F("Bme280t")) {
|
// return new Bme280t(bmes[addr], param);
|
||||||
return new Bme280t(bmes[addr], param);
|
// } else if (subtype == F("Bme280h")) {
|
||||||
} else if (subtype == F("Bme280h")) {
|
// return new Bme280h(bmes[addr], param);
|
||||||
return new Bme280h(bmes[addr], param);
|
// } else if (subtype == F("Bme280p")) {
|
||||||
} else if (subtype == F("Bme280p")) {
|
// return new Bme280p(bmes[addr], param);
|
||||||
return new Bme280p(bmes[addr], param);
|
// }
|
||||||
}
|
//} else {
|
||||||
} else {
|
return nullptr;
|
||||||
return nullptr;
|
//}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,21 +54,21 @@ class Bmp280p : public IoTItem {
|
|||||||
};
|
};
|
||||||
|
|
||||||
void* getAPI_Bmp280(String subtype, String param) {
|
void* getAPI_Bmp280(String subtype, String param) {
|
||||||
if (subtype == F("Bmp280t") || subtype == F("Bmp280p")) {
|
// if (subtype == F("Bmp280t") || subtype == F("Bmp280p")) {
|
||||||
String addr;
|
// String addr;
|
||||||
jsonRead(param, "addr", addr);
|
// jsonRead(param, "addr", addr);
|
||||||
|
//
|
||||||
if (bmps.find(addr) == bmps.end()) {
|
// if (bmps.find(addr) == bmps.end()) {
|
||||||
bmps[addr] = new Adafruit_BMP280();
|
// bmps[addr] = new Adafruit_BMP280();
|
||||||
bmps[addr]->begin(hexStringToUint8(addr));
|
// bmps[addr]->begin(hexStringToUint8(addr));
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
if (subtype == F("Bmp280t")) {
|
// if (subtype == F("Bmp280t")) {
|
||||||
return new Bmp280t(bmps[addr], param);
|
// return new Bmp280t(bmps[addr], param);
|
||||||
} else if (subtype == F("Bmp280p")) {
|
// } else if (subtype == F("Bmp280p")) {
|
||||||
return new Bmp280p(bmps[addr], param);
|
// return new Bmp280p(bmps[addr], param);
|
||||||
}
|
// }
|
||||||
} else {
|
//} else {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,77 +4,77 @@
|
|||||||
https://github.com/beegee-tokyo/arduino-DHTesp
|
https://github.com/beegee-tokyo/arduino-DHTesp
|
||||||
******************************************************************/
|
******************************************************************/
|
||||||
|
|
||||||
|
|
||||||
#include "Global.h"
|
#include "Global.h"
|
||||||
#include "classes/IoTItem.h"
|
#include "classes/IoTItem.h"
|
||||||
|
|
||||||
#include "DHTesp.h"
|
#include "DHTesp.h"
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
|
|
||||||
std::map<int, DHTesp*> dhts;
|
std::map<int, DHTesp*> dhts;
|
||||||
|
|
||||||
class Dht1122t : public IoTItem {
|
class Dht1122t : public IoTItem {
|
||||||
private:
|
private:
|
||||||
DHTesp* _dht;
|
DHTesp* _dht;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Dht1122t(DHTesp* dht, String parameters): IoTItem(parameters) {
|
Dht1122t(DHTesp* dht, String parameters) : IoTItem(parameters) {
|
||||||
_dht = dht;
|
_dht = dht;
|
||||||
}
|
}
|
||||||
|
|
||||||
void doByInterval() {
|
void doByInterval() {
|
||||||
value.valD = _dht->getTemperature();
|
value.valD = _dht->getTemperature();
|
||||||
if (String(value.valD) != "nan") regEvent(value.valD, "Dht1122t");
|
if (String(value.valD) != "nan")
|
||||||
else SerialPrint("E", "Sensor DHTt", "Error");
|
regEvent(value.valD, "Dht1122t");
|
||||||
|
else
|
||||||
|
SerialPrint("E", "Sensor DHTt", "Error");
|
||||||
}
|
}
|
||||||
|
|
||||||
~Dht1122t() {};
|
~Dht1122t(){};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class Dht1122h : public IoTItem {
|
class Dht1122h : public IoTItem {
|
||||||
private:
|
private:
|
||||||
DHTesp* _dht;
|
DHTesp* _dht;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Dht1122h(DHTesp* dht, String parameters): IoTItem(parameters) {
|
Dht1122h(DHTesp* dht, String parameters) : IoTItem(parameters) {
|
||||||
_dht = dht;
|
_dht = dht;
|
||||||
}
|
}
|
||||||
|
|
||||||
void doByInterval() {
|
void doByInterval() {
|
||||||
value.valD = _dht->getHumidity();
|
value.valD = _dht->getHumidity();
|
||||||
if (String(value.valD) != "nan") regEvent(value.valD, "Dht1122h");
|
if (String(value.valD) != "nan")
|
||||||
else SerialPrint("E", "Sensor DHTh", "Error");
|
regEvent(value.valD, "Dht1122h");
|
||||||
|
else
|
||||||
|
SerialPrint("E", "Sensor DHTh", "Error");
|
||||||
}
|
}
|
||||||
|
|
||||||
~Dht1122h() {};
|
~Dht1122h(){};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void* getAPI_Dht1122(String subtype, String param) {
|
||||||
void* getAPI_Dht1122(String subtype, String param) {
|
// if (subtype == F("Dht1122t") || subtype == F("Dht1122h")) {
|
||||||
if (subtype == F("Dht1122t") || subtype == F("Dht1122h")) {
|
// int pin;
|
||||||
int pin;
|
// String senstype;
|
||||||
String senstype;
|
// jsonRead(param, "pin", pin);
|
||||||
jsonRead(param, "pin", pin);
|
// jsonRead(param, "senstype", senstype);
|
||||||
jsonRead(param, "senstype", senstype);
|
//
|
||||||
|
// if (dhts.find(pin) == dhts.end()) {
|
||||||
if (dhts.find(pin) == dhts.end()) {
|
// dhts[pin] = new DHTesp();
|
||||||
dhts[pin] = new DHTesp();
|
//
|
||||||
|
// if (senstype == "dht11") {
|
||||||
if (senstype == "dht11") {
|
// dhts[pin]->setup(pin, DHTesp::DHT11);
|
||||||
dhts[pin]->setup(pin, DHTesp::DHT11);
|
// } else if (senstype == "dht22") {
|
||||||
} else if (senstype == "dht22") {
|
// dhts[pin]->setup(pin, DHTesp::DHT22);
|
||||||
dhts[pin]->setup(pin, DHTesp::DHT22);
|
// }
|
||||||
}
|
// }
|
||||||
}
|
//
|
||||||
|
// if (subtype == F("Dht1122t")) {
|
||||||
if (subtype == F("Dht1122t")) {
|
// return new Dht1122t(dhts[pin], param);
|
||||||
return new Dht1122t(dhts[pin], param);
|
// } else if (subtype == F("Dht1122h")) {
|
||||||
} else if (subtype == F("Dht1122h")) {
|
// return new Dht1122h(dhts[pin], param);
|
||||||
return new Dht1122h(dhts[pin], param);
|
// }
|
||||||
}
|
//} else {
|
||||||
} else {
|
return nullptr;
|
||||||
return nullptr;
|
//}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,45 +15,49 @@ GY21* sensor = nullptr;
|
|||||||
|
|
||||||
class GY21t : public IoTItem {
|
class GY21t : public IoTItem {
|
||||||
public:
|
public:
|
||||||
GY21t(String parameters): IoTItem(parameters) { }
|
GY21t(String parameters) : IoTItem(parameters) {}
|
||||||
|
|
||||||
void doByInterval() {
|
void doByInterval() {
|
||||||
//wire->read();
|
// wire->read();
|
||||||
value.valD = sensor->GY21_Temperature();
|
value.valD = sensor->GY21_Temperature();
|
||||||
if (value.valD < 300) regEvent(value.valD, "GY21"); // TODO: найти способ понимания ошибки получения данных
|
if (value.valD < 300)
|
||||||
else SerialPrint("E", "Sensor GY21t", "Error");
|
regEvent(value.valD, "GY21"); // TODO: найти способ понимания ошибки получения данных
|
||||||
|
else
|
||||||
|
SerialPrint("E", "Sensor GY21t", "Error");
|
||||||
}
|
}
|
||||||
|
|
||||||
~GY21t() {};
|
~GY21t(){};
|
||||||
};
|
};
|
||||||
|
|
||||||
class GY21h : public IoTItem {
|
class GY21h : public IoTItem {
|
||||||
public:
|
public:
|
||||||
GY21h(String parameters): IoTItem(parameters) { }
|
GY21h(String parameters) : IoTItem(parameters) {}
|
||||||
|
|
||||||
void doByInterval() {
|
|
||||||
//sht->read();
|
|
||||||
value.valD = sensor->GY21_Humidity();
|
|
||||||
if (value.valD != 0) regEvent(value.valD, "GY21h"); // TODO: найти способ понимания ошибки получения данных
|
|
||||||
else SerialPrint("E", "Sensor GY21h", "Error");
|
|
||||||
}
|
|
||||||
|
|
||||||
~GY21h() {};
|
void doByInterval() {
|
||||||
|
// sht->read();
|
||||||
|
value.valD = sensor->GY21_Humidity();
|
||||||
|
if (value.valD != 0)
|
||||||
|
regEvent(value.valD, "GY21h"); // TODO: найти способ понимания ошибки получения данных
|
||||||
|
else
|
||||||
|
SerialPrint("E", "Sensor GY21h", "Error");
|
||||||
|
}
|
||||||
|
|
||||||
|
~GY21h(){};
|
||||||
};
|
};
|
||||||
|
|
||||||
void* getAPI_GY21(String subtype, String param) {
|
void* getAPI_GY21(String subtype, String param) {
|
||||||
if (subtype == F("GY21t") || subtype == F("GY21h")) {
|
// if (subtype == F("GY21t") || subtype == F("GY21h")) {
|
||||||
if (!sensor) {
|
// if (!sensor) {
|
||||||
sensor = new GY21;
|
// sensor = new GY21;
|
||||||
if (sensor) Wire.begin(SDA, SCL);
|
// if (sensor) Wire.begin(SDA, SCL);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
if (subtype == F("GY21t")) {
|
// if (subtype == F("GY21t")) {
|
||||||
return new GY21t(param);
|
// return new GY21t(param);
|
||||||
} else if (subtype == F("GY21h")) {
|
// } else if (subtype == F("GY21h")) {
|
||||||
return new GY21h(param);
|
// return new GY21h(param);
|
||||||
}
|
// }
|
||||||
} else {
|
//} else {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
@@ -4,51 +4,53 @@
|
|||||||
#include "Wire.h"
|
#include "Wire.h"
|
||||||
#include "SHT2x.h"
|
#include "SHT2x.h"
|
||||||
|
|
||||||
|
|
||||||
SHT2x* sht = nullptr;
|
SHT2x* sht = nullptr;
|
||||||
|
|
||||||
class Sht20t : public IoTItem {
|
class Sht20t : public IoTItem {
|
||||||
public:
|
public:
|
||||||
Sht20t(String parameters): IoTItem(parameters) { }
|
Sht20t(String parameters) : IoTItem(parameters) {}
|
||||||
|
|
||||||
void doByInterval() {
|
void doByInterval() {
|
||||||
sht->read();
|
sht->read();
|
||||||
value.valD = sht->getTemperature();
|
value.valD = sht->getTemperature();
|
||||||
if (value.valD > -46.85F) regEvent(value.valD, "Sht20t");
|
if (value.valD > -46.85F)
|
||||||
else SerialPrint("E", "Sensor Sht20t", "Error");
|
regEvent(value.valD, "Sht20t");
|
||||||
|
else
|
||||||
|
SerialPrint("E", "Sensor Sht20t", "Error");
|
||||||
}
|
}
|
||||||
|
|
||||||
~Sht20t() {};
|
~Sht20t(){};
|
||||||
};
|
};
|
||||||
|
|
||||||
class Sht20h : public IoTItem {
|
class Sht20h : public IoTItem {
|
||||||
public:
|
public:
|
||||||
Sht20h(String parameters): IoTItem(parameters) { }
|
Sht20h(String parameters) : IoTItem(parameters) {}
|
||||||
|
|
||||||
void doByInterval() {
|
void doByInterval() {
|
||||||
sht->read();
|
sht->read();
|
||||||
value.valD = sht->getHumidity();
|
value.valD = sht->getHumidity();
|
||||||
if (value.valD != -6) regEvent(value.valD, "Sht20h");
|
if (value.valD != -6)
|
||||||
else SerialPrint("E", "Sensor Sht20h", "Error");
|
regEvent(value.valD, "Sht20h");
|
||||||
}
|
else
|
||||||
|
SerialPrint("E", "Sensor Sht20h", "Error");
|
||||||
|
}
|
||||||
|
|
||||||
~Sht20h() {};
|
~Sht20h(){};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
void* getAPI_Sht20(String subtype, String param) {
|
void* getAPI_Sht20(String subtype, String param) {
|
||||||
if (subtype == F("Sht20t") || subtype == F("Sht20h")) {
|
// if (subtype == F("Sht20t") || subtype == F("Sht20h")) {
|
||||||
if (!sht) {
|
// if (!sht) {
|
||||||
sht = new SHT2x;
|
// sht = new SHT2x;
|
||||||
if (sht) sht->begin();
|
// if (sht) sht->begin();
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
if (subtype == F("Sht20t")) {
|
// if (subtype == F("Sht20t")) {
|
||||||
return new Sht20t(param);
|
// return new Sht20t(param);
|
||||||
} else if (subtype == F("Sht20h")) {
|
// } else if (subtype == F("Sht20h")) {
|
||||||
return new Sht20h(param);
|
// return new Sht20h(param);
|
||||||
}
|
// }
|
||||||
} else {
|
//} else {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,8 @@ void SerialPrint(String errorLevel, String module, String msg) {
|
|||||||
|
|
||||||
if (isNetworkActive()) {
|
if (isNetworkActive()) {
|
||||||
if (jsonReadInt(settingsFlashJson, F("log")) != 0) {
|
if (jsonReadInt(settingsFlashJson, F("log")) != 0) {
|
||||||
standWebSocket.broadcastTXT("/log|" + tosend);
|
String pl = "/log|" + tosend;
|
||||||
|
standWebSocket.broadcastTXT(pl);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//}
|
//}
|
||||||
|
|||||||
Reference in New Issue
Block a user