mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-30 03:49:13 +03:00
Merge pull request #124 from biveraxe/ver4dev
Пушим конфиг глубже в базовый класс IoTSensors и адаптируем текущие модули
This commit is contained in:
@@ -4,15 +4,14 @@
|
|||||||
|
|
||||||
class IoTSensor {
|
class IoTSensor {
|
||||||
public:
|
public:
|
||||||
IoTSensor();
|
IoTSensor(String parameters);
|
||||||
~IoTSensor();
|
~IoTSensor();
|
||||||
|
|
||||||
void loop();
|
void loop();
|
||||||
virtual void doByInterval();
|
virtual void doByInterval();
|
||||||
void init(String key, String id, unsigned long interval);
|
|
||||||
void regEvent(String value, String consoleInfo);
|
void regEvent(String value, String consoleInfo);
|
||||||
|
|
||||||
String getKey();
|
String getSubtype();
|
||||||
String getID();
|
String getID();
|
||||||
|
|
||||||
unsigned long currentMillis;
|
unsigned long currentMillis;
|
||||||
@@ -20,11 +19,7 @@ class IoTSensor {
|
|||||||
unsigned long difference;
|
unsigned long difference;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
String _key;
|
String _subtype;
|
||||||
String _id;
|
String _id;
|
||||||
unsigned long _interval;
|
unsigned long _interval;
|
||||||
};
|
};
|
||||||
|
|
||||||
// extern IoTSensor* myIoTSensor;
|
|
||||||
//модулям не нужно знать эту переменную
|
|
||||||
//- ок понял
|
|
||||||
@@ -3,17 +3,16 @@
|
|||||||
#include "Classes/ScenarioClass3.h"
|
#include "Classes/ScenarioClass3.h"
|
||||||
#include "Classes/IoTSensor.h"
|
#include "Classes/IoTSensor.h"
|
||||||
|
|
||||||
void IoTSensor::init(String key, String id, unsigned long interval) {
|
|
||||||
_interval = interval * 1000;
|
|
||||||
_key = key;
|
|
||||||
_id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
IoTSensor::IoTSensor() {}
|
IoTSensor::IoTSensor(String parameters) {
|
||||||
|
_interval = jsonReadInt(parameters, "int") * 1000;
|
||||||
|
_subtype = jsonReadStr(parameters, "subtype");
|
||||||
|
_id = jsonReadStr(parameters, "id");
|
||||||
|
}
|
||||||
IoTSensor::~IoTSensor() {}
|
IoTSensor::~IoTSensor() {}
|
||||||
|
|
||||||
String IoTSensor::getKey() {
|
String IoTSensor::getSubtype() {
|
||||||
return _key;
|
return _subtype;
|
||||||
}
|
}
|
||||||
|
|
||||||
String IoTSensor::getID() {
|
String IoTSensor::getID() {
|
||||||
|
|||||||
@@ -20,9 +20,7 @@ class AnalogAdc : public IoTSensor {
|
|||||||
//Такие как ...begin и подставлять в них параметры полученные из web интерфейса.
|
//Такие как ...begin и подставлять в них параметры полученные из web интерфейса.
|
||||||
//Все параметры хранятся в перемененной parameters, вы можете прочитать любой параметр используя jsonRead функции:
|
//Все параметры хранятся в перемененной parameters, вы можете прочитать любой параметр используя jsonRead функции:
|
||||||
// jsonReadStr, jsonReadBool, jsonReadInt
|
// jsonReadStr, jsonReadBool, jsonReadInt
|
||||||
AnalogAdc(String parameters) {
|
AnalogAdc(String parameters): IoTSensor(parameters) {
|
||||||
init(jsonReadStr(parameters, "key"), jsonReadStr(parameters, "id"), jsonReadInt(parameters, "int")); //обязательный вызов
|
|
||||||
|
|
||||||
_pin = jsonReadInt(parameters, "pin");
|
_pin = jsonReadInt(parameters, "pin");
|
||||||
}
|
}
|
||||||
//=======================================================================================================
|
//=======================================================================================================
|
||||||
|
|||||||
@@ -27,9 +27,8 @@ class ds18b20 : public IoTSensor {
|
|||||||
//Такие как ...begin и подставлять в них параметры полученные из web интерфейса.
|
//Такие как ...begin и подставлять в них параметры полученные из web интерфейса.
|
||||||
//Все параметры хранятся в перемененной parameters, вы можете прочитать любой параметр используя jsonRead функции:
|
//Все параметры хранятся в перемененной parameters, вы можете прочитать любой параметр используя jsonRead функции:
|
||||||
// jsonReadStr, jsonReadBool, jsonReadInt
|
// jsonReadStr, jsonReadBool, jsonReadInt
|
||||||
ds18b20(String parameters) {
|
ds18b20(String parameters): IoTSensor(parameters) {
|
||||||
init(jsonReadStr(parameters, "key"), jsonReadStr(parameters, "id"), jsonReadInt(parameters, "int")); //обязательный вызов
|
|
||||||
|
|
||||||
_pin = jsonReadInt(parameters, "pin");
|
_pin = jsonReadInt(parameters, "pin");
|
||||||
_index = jsonReadInt(parameters, "index");
|
_index = jsonReadInt(parameters, "index");
|
||||||
_addr = jsonReadStr(parameters, "addr");
|
_addr = jsonReadStr(parameters, "addr");
|
||||||
@@ -62,6 +61,8 @@ class ds18b20 : public IoTSensor {
|
|||||||
sensors->requestTemperatures();
|
sensors->requestTemperatures();
|
||||||
|
|
||||||
//Определяем адрес. Если парамтер addr не установлен, то узнаем адрес по индексу
|
//Определяем адрес. Если парамтер addr не установлен, то узнаем адрес по индексу
|
||||||
|
// TODO: понять как лучше. в текущей реализации адрес вычисляется каждый раз при опросе шины, это хорошо при отладке,
|
||||||
|
// но при постоянном контакте и использовании правильнее генерировать адрес при инициализации модуля. Но тогда нужно перезагружать устройство при новом датчике
|
||||||
DeviceAddress deviceAddress;
|
DeviceAddress deviceAddress;
|
||||||
if (_addr == "") {
|
if (_addr == "") {
|
||||||
sensors->getAddress(deviceAddress, _index);
|
sensors->getAddress(deviceAddress, _index);
|
||||||
|
|||||||
Reference in New Issue
Block a user