mirror of
https://github.com/Laxilef/OTGateway.git
synced 2025-12-11 18:54:28 +05:00
feat: added signal quality for DALLAS sensors
This commit is contained in:
@@ -70,7 +70,7 @@ public:
|
|||||||
typedef struct {
|
typedef struct {
|
||||||
bool connected = false;
|
bool connected = false;
|
||||||
unsigned long activityTime = 0;
|
unsigned long activityTime = 0;
|
||||||
uint8_t signalQuality = 0;
|
uint8_t signalQuality = 100;
|
||||||
//float raw[4] = {0.0f, 0.0f, 0.0f, 0.0f};
|
//float raw[4] = {0.0f, 0.0f, 0.0f, 0.0f};
|
||||||
float values[4] = {0.0f, 0.0f, 0.0f, 0.0f};
|
float values[4] = {0.0f, 0.0f, 0.0f, 0.0f};
|
||||||
} Result;
|
} Result;
|
||||||
|
|||||||
@@ -302,6 +302,7 @@ protected:
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto& rSensor = Sensors::results[sensorId];
|
||||||
float value = instance.getTempC(sSensor.address);
|
float value = instance.getTempC(sSensor.address);
|
||||||
if (value == DEVICE_DISCONNECTED_C) {
|
if (value == DEVICE_DISCONNECTED_C) {
|
||||||
Log.swarningln(
|
Log.swarningln(
|
||||||
@@ -309,6 +310,10 @@ protected:
|
|||||||
sSensor.gpio, sensorId, sSensor.name
|
sSensor.gpio, sensorId, sSensor.name
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (rSensor.signalQuality > 0) {
|
||||||
|
rSensor.signalQuality--;
|
||||||
|
}
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -317,6 +322,10 @@ protected:
|
|||||||
sSensor.gpio, sensorId, sSensor.name, value
|
sSensor.gpio, sensorId, sSensor.name, value
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (rSensor.signalQuality < 100) {
|
||||||
|
rSensor.signalQuality++;
|
||||||
|
}
|
||||||
|
|
||||||
// set sensor value
|
// set sensor value
|
||||||
Sensors::setValueById(sensorId, value, Sensors::ValueType::TEMPERATURE, true, true);
|
Sensors::setValueById(sensorId, value, Sensors::ValueType::TEMPERATURE, true, true);
|
||||||
}
|
}
|
||||||
@@ -334,6 +343,23 @@ protected:
|
|||||||
|
|
||||||
// check sensors on bus
|
// check sensors on bus
|
||||||
if (!instance.getDeviceCount()) {
|
if (!instance.getDeviceCount()) {
|
||||||
|
for (uint8_t sensorId = 0; sensorId <= Sensors::getMaxSensorId(); sensorId++) {
|
||||||
|
auto& sSensor = Sensors::settings[sensorId];
|
||||||
|
|
||||||
|
// only target & valid sensors
|
||||||
|
if (!sSensor.enabled || sSensor.type != Sensors::Type::DALLAS_TEMP || sSensor.purpose == Sensors::Purpose::NOT_CONFIGURED) {
|
||||||
|
continue;
|
||||||
|
|
||||||
|
} else if (sSensor.gpio != gpio || isEmptyAddress(sSensor.address)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto& rSensor = Sensors::results[sensorId];
|
||||||
|
if (rSensor.signalQuality > 0) {
|
||||||
|
rSensor.signalQuality--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user