mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
Merge pull request #145 from biveraxe/ver4dev
Добавляем функцию получения JSON всех значений Items
This commit is contained in:
@@ -20,6 +20,7 @@ class IoTItem {
|
|||||||
|
|
||||||
String getSubtype();
|
String getSubtype();
|
||||||
String getID();
|
String getID();
|
||||||
|
String getValue();
|
||||||
|
|
||||||
unsigned long currentMillis;
|
unsigned long currentMillis;
|
||||||
unsigned long prevMillis;
|
unsigned long prevMillis;
|
||||||
@@ -48,6 +49,7 @@ class IoTItem {
|
|||||||
};
|
};
|
||||||
|
|
||||||
IoTItem* findIoTItem(String name); // поиск экземпляра элемента модуля по имени
|
IoTItem* findIoTItem(String name); // поиск экземпляра элемента модуля по имени
|
||||||
|
StaticJsonDocument<JSON_BUFFER_SIZE>* getLocalItemsAsJSON(); // сбор всех локальных занчений Items
|
||||||
|
|
||||||
|
|
||||||
class externalVariable: IoTItem { // объект, создаваемый при получении информации о событии на другом контроллере для хранения информации о событии указанное время
|
class externalVariable: IoTItem { // объект, создаваемый при получении информации о событии на другом контроллере для хранения информации о событии указанное время
|
||||||
|
|||||||
@@ -67,6 +67,10 @@ void setup() {
|
|||||||
IoTItems.push_back((IoTItem*) new externalVariable("{\"id\":\"rel4\",\"val\":34,\"int\":30}"));
|
IoTItems.push_back((IoTItem*) new externalVariable("{\"id\":\"rel4\",\"val\":34,\"int\":30}"));
|
||||||
|
|
||||||
|
|
||||||
|
// пример получения JSON всех Items
|
||||||
|
serializeJson(*getLocalItemsAsJSON(), Serial);
|
||||||
|
Serial.println("");
|
||||||
|
|
||||||
//тест перебора пинов из расширения
|
//тест перебора пинов из расширения
|
||||||
// for (int i = 109; i < 112; i++) {
|
// for (int i = 109; i < 112; i++) {
|
||||||
// IoTgpio.pinMode(i, OUTPUT);
|
// IoTgpio.pinMode(i, OUTPUT);
|
||||||
|
|||||||
@@ -42,6 +42,11 @@ String IoTItem::getID() {
|
|||||||
return _id;
|
return _id;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
String IoTItem::getValue() {
|
||||||
|
if (value.isDecimal) return (String)value.valD;
|
||||||
|
else return value.valS;
|
||||||
|
}
|
||||||
|
|
||||||
void IoTItem::loop() {
|
void IoTItem::loop() {
|
||||||
currentMillis = millis();
|
currentMillis = millis();
|
||||||
difference = currentMillis - prevMillis;
|
difference = currentMillis - prevMillis;
|
||||||
@@ -86,16 +91,6 @@ void IoTItem::doByInterval() {}
|
|||||||
|
|
||||||
IoTValue IoTItem::execute(String command, std::vector<IoTValue>& param) { return {}; }
|
IoTValue IoTItem::execute(String command, std::vector<IoTValue>& param) { return {}; }
|
||||||
|
|
||||||
IoTItem* findIoTItem(String name) { // поиск элемента модуля в существующей конфигурации
|
|
||||||
for (std::list<IoTItem*>::iterator it=IoTItems.begin(); it != IoTItems.end(); ++it) {
|
|
||||||
if ((*it)->getID() == name) return *it;
|
|
||||||
}
|
|
||||||
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
IoTItem* myIoTItem;
|
|
||||||
|
|
||||||
IoTGpio* IoTItem::getGpioDriver() {
|
IoTGpio* IoTItem::getGpioDriver() {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
@@ -119,4 +114,26 @@ externalVariable::~externalVariable() {
|
|||||||
|
|
||||||
void externalVariable::doByInterval() { // для данного класса doByInterval+int выполняет роль счетчика обратного отсчета до уничтожения
|
void externalVariable::doByInterval() { // для данного класса doByInterval+int выполняет роль счетчика обратного отсчета до уничтожения
|
||||||
iAmDead = true;
|
iAmDead = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
IoTItem* myIoTItem;
|
||||||
|
|
||||||
|
IoTItem* findIoTItem(String name) { // поиск элемента модуля в существующей конфигурации
|
||||||
|
for (std::list<IoTItem*>::iterator it=IoTItems.begin(); it != IoTItems.end(); ++it) {
|
||||||
|
if ((*it)->getID() == name) return *it;
|
||||||
|
}
|
||||||
|
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
StaticJsonDocument<JSON_BUFFER_SIZE> docForExport;
|
||||||
|
|
||||||
|
StaticJsonDocument<JSON_BUFFER_SIZE>* getLocalItemsAsJSON () {
|
||||||
|
docForExport.clear();
|
||||||
|
for (std::list<IoTItem*>::iterator it=IoTItems.begin(); it != IoTItems.end(); ++it) {
|
||||||
|
if ((*it)->iAmLocal) docForExport[(*it)->getID()] = (*it)->getValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
return &docForExport;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user