комментирование сенсора, инструкция по интеграции

This commit is contained in:
Dmitry Borisenko
2022-01-15 17:29:38 +01:00
parent dd775eb454
commit cb97fc7477
2 changed files with 29 additions and 7 deletions

View File

@@ -1,9 +1,12 @@
#include "Configuration.h" #include "Configuration.h"
extern void* getAPI_AnalogAdc(String params);
std::vector<IoTSensor*> iotSensors; std::vector<IoTSensor*> iotSensors;
//============================================================================================
//здесь скопируйте строку и вставьте ниже, заменив имя AnalogAdc на название вашего сенсора
extern void* getAPI_AnalogAdc(String params);
//============================================================================================
void configure(String path) { void configure(String path) {
File file = seekFile(path); File file = seekFile(path);
file.find("["); file.find("[");
@@ -12,11 +15,13 @@ void configure(String path) {
if (jsonArrayElement.startsWith(",")) { if (jsonArrayElement.startsWith(",")) {
jsonArrayElement = jsonArrayElement.substring(1, jsonArrayElement.length()); //это нужно оптимизировать в последствии jsonArrayElement = jsonArrayElement.substring(1, jsonArrayElement.length()); //это нужно оптимизировать в последствии
} }
//===============================================================================================================
//здесь нужно скопировать блок еще раз и вставить его ниже, переименовав AnalogAdc на название вашего сенсора
myIoTSensor = (IoTSensor*)getAPI_AnalogAdc(jsonArrayElement); myIoTSensor = (IoTSensor*)getAPI_AnalogAdc(jsonArrayElement);
if (myIoTSensor) { if (myIoTSensor) {
iotSensors.push_back(myIoTSensor); iotSensors.push_back(myIoTSensor);
} }
//================================================================================================================
} }
file.close(); file.close();
} }

View File

@@ -1,29 +1,46 @@
#include "Global.h" #include "Global.h"
#include "Classes/IoTSensor.h" #include "Classes/IoTSensor.h"
//Это файл сенсора, в нем осуществляется чтение сенсора.
//для добавления сенсора вам нужно скопировать этот файл и переименовать в нем AnalogAdc
//сочетание слов на название Вашего сенсора
class AnalogAdc : public IoTSensor { class AnalogAdc : public IoTSensor {
private:
//=======================================================================================================
// Секция переменных.
//Это секция где Вы можете объявлять переменные и объекты arduino библиотек, что бы
//впоследствии использовать их в loop и setup
unsigned int _pin;
public: public:
//=======================================================================================================
// setup() // setup()
//это аналог setup из arduino. Здесь вы можете выполнять методы инициализации сенсора.
//Такие как ...begin и подставлять в них параметры полученные из web интерфейса.
//Все параметры хранятся в переменнной parameters, вы можете прочитать любой параметр используя jsonRead функции:
// jsonReadStr, jsonReadBool, jsonReadInt
AnalogAdc(String parameters) { AnalogAdc(String parameters) {
init(jsonReadStr(parameters, "key"), jsonReadStr(parameters, "id"), jsonReadInt(parameters, "int")); init(jsonReadStr(parameters, "key"), jsonReadStr(parameters, "id"), jsonReadInt(parameters, "int"));
_pin = jsonReadInt(parameters, "pin"); _pin = jsonReadInt(parameters, "pin");
} }
//=======================================================================================================
// loop() // loop()
//это аналог loop из arduino. Здесь вы должны выполнить чтение вашего сенсора в переменную float
//а затем выполнить regEvent - это регистрация произошедшего события чтения
//здесь так же доступны все переменные в секции переменных, и полученные в setup
void doByInterval() { void doByInterval() {
float value = analogRead(_pin); float value = analogRead(_pin);
regEvent((String)value, "AnalogAdc"); regEvent((String)value, "AnalogAdc");
} }
//=======================================================================================================
~AnalogAdc(); ~AnalogAdc();
private:
unsigned int _pin;
}; };
//данную функцию вы должны создать по образу и подобию, изменив в ней AnalogAdc на название Вашего сенсора
void* getAPI_AnalogAdc(String parameters) { void* getAPI_AnalogAdc(String parameters) {
String subtype; String subtype;
if (!jsonRead(parameters, F("subtype"), subtype)) { //если нет такого ключа в представленном json или он не валидный if (!jsonRead(parameters, F("subtype"), subtype)) { //если нет такого ключа в представленном json или он не валидный