2022-01-15 17:10:14 +01:00
# include "Global.h"
2022-02-15 11:37:31 +01:00
# include "classes/IoTItem.h"
2022-01-15 17:10:14 +01:00
2022-02-14 18:33:52 +03:00
extern IoTGpio IoTgpio ;
2022-01-15 17:29:38 +01:00
//Это файл сенсора, в нем осуществляется чтение сенсора.
2022-01-16 12:17:53 +05:00
//для добавления сенсора вам нужно скопировать этот файл и заменить в нем текст AnalogAdc на название вашего сенсора
//Название должно быть уникальным, коротким и отражать суть сенсора.
2022-01-15 16:30:34 +01:00
2022-02-06 09:11:07 +03:00
class AnalogAdc : public IoTItem {
2022-01-15 17:29:38 +01:00
private :
//=======================================================================================================
// Секция переменных.
//Это секция где Вы можете объявлять переменные и объекты arduino библиотек, что бы
//впоследствии использовать их в loop и setup
unsigned int _pin ;
2022-01-15 16:41:25 +01:00
public :
2022-01-15 17:29:38 +01:00
//=======================================================================================================
2022-01-15 16:41:25 +01:00
// setup()
2022-01-15 17:29:38 +01:00
//это аналог setup из arduino. Здесь вы можете выполнять методы инициализации сенсора.
//Такие как ...begin и подставлять в них параметры полученные из web интерфейса.
2022-01-16 12:17:53 +05:00
//В с е параметры хранятся в перемененной parameters, вы можете прочитать любой параметр используя jsonRead функции:
2022-01-15 17:29:38 +01:00
// jsonReadStr, jsonReadBool, jsonReadInt
2022-02-06 09:11:07 +03:00
AnalogAdc ( String parameters ) : IoTItem ( parameters ) {
2022-01-15 16:41:25 +01:00
_pin = jsonReadInt ( parameters , " pin " ) ;
}
2022-01-15 17:29:38 +01:00
//=======================================================================================================
2022-01-16 12:17:53 +05:00
// doByInterval()
//это аналог loop из arduino, но вызываемый каждые int секунд, заданные в настройках. Здесь вы должны выполнить чтение вашего сенсора
2022-01-15 17:29:38 +01:00
//а затем выполнить regEvent - это регистрация произошедшего события чтения
2022-01-15 17:34:56 +01:00
//здесь так же доступны все переменные из секции переменных, и полученные в setup
2022-01-16 12:17:53 +05:00
//если у сенсора несколько величин то делайте несколько regEvent
//не используйте delay - помните, что данный loop общий для всех модулей. Если у вас планируется длительная операция, постарайтесь разбить е е на порции
//и выполнить за несколько тактов
2022-01-15 16:41:25 +01:00
void doByInterval ( ) {
2022-02-14 18:33:52 +03:00
value . valD = IoTgpio . analogRead ( _pin ) ;
2022-01-15 16:30:34 +01:00
2022-02-14 12:48:59 +03:00
regEvent ( value . valD , " AnalogAdc " ) ; //обязательный вызов хотяб один
2022-01-15 16:41:25 +01:00
}
2022-01-15 17:29:38 +01:00
//=======================================================================================================
2022-01-15 16:30:34 +01:00
2022-01-15 16:41:25 +01:00
~ AnalogAdc ( ) ;
} ;
2022-01-15 16:30:34 +01:00
2022-01-16 12:17:53 +05:00
//после замены названия сенсора, на функцию можно не обращать внимания
//если сенсор предполагает использование общего объекта библиотеки для нескольких экземпляров сенсора, то в данной функции необходимо предусмотреть
2022-01-17 13:42:48 +03:00
//создание и контроль соответствующих глобальных переменных
2022-01-16 13:31:05 +01:00
void * getAPI_AnalogAdc ( String subtype , String param ) {
2022-01-15 16:30:34 +01:00
if ( subtype = = F ( " AnalogAdc " ) ) {
2022-01-16 13:31:05 +01:00
return new AnalogAdc ( param ) ;
} else {
return nullptr ;
2022-01-15 16:30:34 +01:00
}
}