mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
fix ld2410 instance function
This commit is contained in:
@@ -7,8 +7,8 @@
|
|||||||
#include "Global.h"
|
#include "Global.h"
|
||||||
#include "classes/IoTItem.h"
|
#include "classes/IoTItem.h"
|
||||||
|
|
||||||
//!Здесь подключаем стороннюю библиотеку при необходимости (ExternalLibrary заменить)
|
//! Здесь подключаем стороннюю библиотеку при необходимости (ExternalLibrary заменить)
|
||||||
//#include <ExternalLibrary.h>
|
// #include <ExternalLibrary.h>
|
||||||
#include "ExternalLibrary.h" //удалить, только для примера. Внешние библиотеки правильно в <>
|
#include "ExternalLibrary.h" //удалить, только для примера. Внешние библиотеки правильно в <>
|
||||||
|
|
||||||
//! Объяевляем класс IoTGpio для работы с GPIO
|
//! Объяевляем класс IoTGpio для работы с GPIO
|
||||||
@@ -25,9 +25,15 @@ ExternalLibrary *libXX = nullptr;
|
|||||||
// Функция инициализации библиотечного класса, возвращает Единстрвенный указать на библиотеку
|
// Функция инициализации библиотечного класса, возвращает Единстрвенный указать на библиотеку
|
||||||
// instanceLibXX НАЗВАТЬ по наименованию модуля (instanceДатчикХ)
|
// instanceLibXX НАЗВАТЬ по наименованию модуля (instanceДатчикХ)
|
||||||
// ПРИ НЕОБХДИМОСТИ передаем любые нужные параметры для инициализации библиотеки (в данном случае PIN)
|
// ПРИ НЕОБХДИМОСТИ передаем любые нужные параметры для инициализации библиотеки (в данном случае PIN)
|
||||||
|
//
|
||||||
// !!! ВЫзвать данную функцию нужно хотябы один раз,
|
// !!! ВЫзвать данную функцию нужно хотябы один раз,
|
||||||
// но в каждом конструкторе класса модуля ExampleModule_A, ExampleModule_B и т.д.
|
// но в каждом конструкторе класса модуля ExampleModule_A, ExampleModule_B и т.д.
|
||||||
// или можно вывывать постоянно при обращении к библиотеке, типа: instanceLibXX().READ_LIB_DATA_OTHER();
|
// или можно вывывать постоянно при обращении к библиотеке, типа: instanceLibXX().READ_LIB_DATA_OTHER();
|
||||||
|
//
|
||||||
|
// !!!!!! В деструкторах ~ExampleModule_B() и ~ExampleModule_A() надо УДАЛЯТЬ объект libXX, ЕСЛИ в функцию instanceLibXX чтото передается.
|
||||||
|
// Удаляем класс библиотеки, а то при переконфигурации в нем не поменяются PIN и дугие параметры передаваемые в библиотеку.
|
||||||
|
// P.S. Не для всех, если используется map или vector то лучше не надо.
|
||||||
|
|
||||||
ExternalLibrary *instanceLibXX(int pin)
|
ExternalLibrary *instanceLibXX(int pin)
|
||||||
{
|
{
|
||||||
if (!libXX)
|
if (!libXX)
|
||||||
@@ -39,7 +45,6 @@ ExternalLibrary *instanceLibXX(int pin)
|
|||||||
return libXX;
|
return libXX;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//=========================================================================================================
|
//=========================================================================================================
|
||||||
//=========================================================================================================
|
//=========================================================================================================
|
||||||
// Первый класс модуля для определения 1-го элемента (параметра)
|
// Первый класс модуля для определения 1-го элемента (параметра)
|
||||||
@@ -69,7 +74,7 @@ public:
|
|||||||
// jsonReadStr, jsonReadBool, jsonReadInt
|
// jsonReadStr, jsonReadBool, jsonReadInt
|
||||||
ExampleModule_A(String parameters) : IoTItem(parameters)
|
ExampleModule_A(String parameters) : IoTItem(parameters)
|
||||||
{
|
{
|
||||||
//Читаем пользовательскую переменную PIN, должна быть объявлена в в modeinfo.json
|
// Читаем пользовательскую переменную PIN, должна быть объявлена в в modeinfo.json
|
||||||
_pin = jsonReadInt(parameters, "pin");
|
_pin = jsonReadInt(parameters, "pin");
|
||||||
// другой вариант чтения парметров модуля
|
// другой вариант чтения парметров модуля
|
||||||
jsonRead(parameters, F("int"), _interval, false);
|
jsonRead(parameters, F("int"), _interval, false);
|
||||||
@@ -111,7 +116,12 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
~ExampleModule_A(){};
|
~ExampleModule_A()
|
||||||
|
{
|
||||||
|
// Удаляем класс библиотеки, а то при переконфигурации в нем не поменяются PIN и дугие параметры передаваемые в библиотеку.
|
||||||
|
delete libXX;
|
||||||
|
libXX = nullptr;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
//=========================================================================================================
|
//=========================================================================================================
|
||||||
@@ -126,14 +136,15 @@ public:
|
|||||||
class ExampleModule_B : public IoTItem
|
class ExampleModule_B : public IoTItem
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
//Пользовательские переменные
|
// Пользовательские переменные
|
||||||
unsigned int _pin;
|
unsigned int _pin;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ExampleModule_B(String parameters) : IoTItem(parameters)
|
ExampleModule_B(String parameters) : IoTItem(parameters)
|
||||||
{
|
{
|
||||||
//Читаем пользовательскую переменную PIN, должна быть объявлена в в modeinfo.json
|
// Читаем пользовательскую переменную PIN, должна быть объявлена в в modeinfo.json
|
||||||
_pin = jsonReadInt(parameters, "pin");
|
_pin = jsonReadInt(parameters, "pin");
|
||||||
//Можно инициализировать библиотеку один раз, а потом используем указатель
|
// Можно инициализировать библиотеку один раз, а потом используем указатель
|
||||||
instanceLibXX(_pin);
|
instanceLibXX(_pin);
|
||||||
libXX->READ_LIB_DATA_OTHER();
|
libXX->READ_LIB_DATA_OTHER();
|
||||||
}
|
}
|
||||||
@@ -146,7 +157,7 @@ public:
|
|||||||
regEvent(value.valD, "ExampleModule"); // обязательный вызов хотяб один для регистрации события в ядре IoTM
|
regEvent(value.valD, "ExampleModule"); // обязательный вызов хотяб один для регистрации события в ядре IoTM
|
||||||
}
|
}
|
||||||
|
|
||||||
//================ обработка кнопок из конфигурации ===================
|
//================ обработка кнопок из конфигурации ===================
|
||||||
// Хук (переопределение виртуальной функции) для обработки кнопки (в value будут данные с собственной панели ввода)
|
// Хук (переопределение виртуальной функции) для обработки кнопки (в value будут данные с собственной панели ввода)
|
||||||
// Что бы кнопка была без поля ввода, нужно в modeinfo.json указать "btn-Example": nil
|
// Что бы кнопка была без поля ввода, нужно в modeinfo.json указать "btn-Example": nil
|
||||||
void onModuleOrder(String &key, String &value)
|
void onModuleOrder(String &key, String &value)
|
||||||
@@ -158,7 +169,7 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//================ обработка команд из сценария===================
|
//================ обработка команд из сценария===================
|
||||||
// Хук (переопределение виртуальной функции) для обработки команды из сценария (в param будут даныые переданные в функции в сценарии)
|
// Хук (переопределение виртуальной функции) для обработки команды из сценария (в param будут даныые переданные в функции в сценарии)
|
||||||
IoTValue execute(String command, std::vector<IoTValue> ¶m)
|
IoTValue execute(String command, std::vector<IoTValue> ¶m)
|
||||||
{
|
{
|
||||||
@@ -204,10 +215,14 @@ public:
|
|||||||
// Прсото пример кокой-то функции
|
// Прсото пример кокой-то функции
|
||||||
}
|
}
|
||||||
|
|
||||||
~ExampleModule_B(){};
|
~ExampleModule_B()
|
||||||
|
{
|
||||||
|
// Удаляем класс библиотеки, а то при переконфигурации в нем не поменяются PIN и дугие параметры передаваемые в библиотеку.
|
||||||
|
delete libXX;
|
||||||
|
libXX = nullptr;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
//=========================================================================================================
|
//=========================================================================================================
|
||||||
//=========================================================================================================
|
//=========================================================================================================
|
||||||
// Функция для связи модуля с ядром IoTM
|
// Функция для связи модуля с ядром IoTM
|
||||||
|
|||||||
@@ -235,7 +235,11 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
~ld2410m(){};
|
~ld2410m()
|
||||||
|
{
|
||||||
|
delete ld2410;
|
||||||
|
radar = nullptr;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -291,7 +295,11 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
~ld2410t(){};
|
~ld2410t()
|
||||||
|
{
|
||||||
|
delete ld2410;
|
||||||
|
radar = nullptr;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -346,7 +354,11 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
~ld2410d(){};
|
~ld2410d()
|
||||||
|
{
|
||||||
|
delete ld2410;
|
||||||
|
radar = nullptr;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -404,7 +416,11 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
~ld2410e(){};
|
~ld2410e()
|
||||||
|
{
|
||||||
|
delete ld2410;
|
||||||
|
radar = nullptr;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
void *getAPI_ld2410(String subtype, String param)
|
void *getAPI_ld2410(String subtype, String param)
|
||||||
|
|||||||
Reference in New Issue
Block a user