Исправляем ошибку рассинхронизации базы и регистрируемых значений

This commit is contained in:
2022-03-01 20:16:12 +03:00
parent 69ea305324
commit 0975a4eb7d

View File

@@ -75,26 +75,28 @@ void IoTItem::regEvent(String value, String consoleInfo = "") {
SerialPrint("i", "Sensor " + consoleInfo, "'" + _id + "' data: " + value + "'"); SerialPrint("i", "Sensor " + consoleInfo, "'" + _id + "' data: " + value + "'");
} }
void IoTItem::regEvent(float value, String consoleInfo = "") { void IoTItem::regEvent(float regvalue, String consoleInfo = "") {
if (_multiply) value = value * _multiply; if (_multiply) regvalue = regvalue * _multiply;
if (_plus) value = value + _multiply; if (_plus) regvalue = regvalue + _multiply;
if (_round != 0) { if (_round != 0) {
if (value > 0) { if (regvalue > 0) {
value = (int)(value * _round + 0.5F); regvalue = (int)(regvalue * _round + 0.5F);
value = value / _round; regvalue = regvalue / _round;
} }
if (value < 0) { if (regvalue < 0) {
value = (int)(value * _round - 0.5F); regvalue = (int)(regvalue * _round - 0.5F);
value = value / _round; regvalue = regvalue / _round;
} }
// value = (float)value / (_round ? pow(10, (int)_round) : 1); // TODO: решить как указывать округление, количество знаков после запятой или десятые сотые ... // regvalue = (float)regvalue / (_round ? pow(10, (int)_round) : 1); // TODO: решить как указывать округление, количество знаков после запятой или десятые сотые ...
} }
if (_map1 != _map2) value = map(value, _map1, _map2, _map3, _map4); if (_map1 != _map2) regvalue = map(regvalue, _map1, _map2, _map3, _map4);
value.valD = regvalue;
// убираем лишние нули // убираем лишние нули
char buf[20]; char buf[20];
sprintf(buf, "%g", value); sprintf(buf, "%g", regvalue);
regEvent((String)buf, consoleInfo); regEvent((String)buf, consoleInfo);
} }