diff --git a/src/Configuration.cpp b/src/Configuration.cpp index 0cd2a3da..51625225 100644 --- a/src/Configuration.cpp +++ b/src/Configuration.cpp @@ -1,9 +1,12 @@ #include "Configuration.h" -extern void* getAPI_AnalogAdc(String params); - std::vector 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(); } \ No newline at end of file diff --git a/src/modules/AnalogAdc.cpp b/src/modules/AnalogAdc.cpp index 2f75c479..50516b6b 100644 --- a/src/modules/AnalogAdc.cpp +++ b/src/modules/AnalogAdc.cpp @@ -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 или он не валидный