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

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

View File

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