Files
IoTManager/src/modules/sensors/Sht20/Sht20.cpp
biver dfd24dc1f6 Корректируем сообщение об ошибке в модулях датчиков
для возможности генерации события об ошибке
2022-10-28 16:26:13 +03:00

57 lines
1.2 KiB
C++

#include "Global.h"
#include "classes/IoTItem.h"
#include "Wire.h"
#include "SHT2x.h"
SHT2x* sht = nullptr;
class Sht20t : public IoTItem {
public:
Sht20t(String parameters) : IoTItem(parameters) {}
void doByInterval() {
sht->read();
value.valD = sht->getTemperature();
if (value.valD > -46.85F)
regEvent(value.valD, "Sht20t");
else
SerialPrint("E", "Sensor Sht20t", "Error", _id);
}
~Sht20t(){};
};
class Sht20h : public IoTItem {
public:
Sht20h(String parameters) : IoTItem(parameters) {}
void doByInterval() {
sht->read();
value.valD = sht->getHumidity();
if (value.valD != -6)
regEvent(value.valD, "Sht20h");
else
SerialPrint("E", "Sensor Sht20h", "Error", _id);
}
~Sht20h(){};
};
void* getAPI_Sht20(String subtype, String param) {
if (subtype == F("Sht20t") || subtype == F("Sht20h")) {
if (!sht) {
sht = new SHT2x;
if (sht) sht->begin();
}
if (subtype == F("Sht20t")) {
return new Sht20t(param);
} else if (subtype == F("Sht20h")) {
return new Sht20h(param);
}
}
return nullptr;
}