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