Пороги у всех устройств разные.
А если делать универсально, то будет работать медленнее.
График не читается из-за датчика
Модератор: immortal
-
- Сообщения: 686
- Зарегистрирован: Ср май 03, 2017 7:41 pm
- Благодарил (а): 113 раз
- Поблагодарили: 107 раз
Re: График не читается из-за датчика
Вот тут Skysilver писал про фильтрацию и округление данных с датчика. Также перед сохранением в базу наверное стоит добавить сравнение значения с предыдущим (если значение не изменилось, то зачем его сохранять ещё раз ?). Наверное было бы неплохо, если бы Skysilver добавил в свою статью сравнение с предыдущим значением, я думаю на форуме ещё много раз будем ссылаться на его статью.
- Рейтинг: 1.16%
-
- Сообщения: 51
- Зарегистрирован: Чт июл 26, 2018 4:50 pm
- Благодарил (а): 12 раз
- Поблагодарили: 7 раз
Re: График не читается из-за датчика
Может тогда так поправим код для сравнения с текущим значением и сохранением, если отличается на 1%
if ((getProperty('value') < $value * 1.01) and (getProperty('value') > $value * 0.99)) return;
if ((getProperty('value') < $value * 1.01) and (getProperty('value') > $value * 0.99)) return;
Код: Выделить всё
// Получаем данные от сенсора
$value = $params['temperature']/100;
// Фильтруем данные
if ($value > 60 || $value < -60) return;
// Не сохраняем значения, уже сохраненные ранее с точностью 1%
if ((getProperty('value') < $value * 1.01) and (getProperty('value') > $value * 0.99)) return;
// Выполняем округление с точностью до одного знака
$value = round($value, 1);
// Сохраняем обработанное значение в свойство объекта
$this->setProperty('value', $value);
- Рейтинг: 1.16%
- ProxXx
- Сообщения: 16
- Зарегистрирован: Сб июл 04, 2020 8:59 am
- Благодарил (а): 2 раза
- Поблагодарили: 0
Re: График не читается из-за датчика
Было бы не плохо...Kirch писал(а): ↑Ср янв 27, 2021 9:58 amМожет тогда так поправим код для сравнения с текущим значением и сохранением, если отличается на 1%
if ((getProperty('value') < $value * 1.01) and (getProperty('value') > $value * 0.99)) return;
Код: Выделить всё
// Получаем данные от сенсора $value = $params['temperature']/100; // Фильтруем данные if ($value > 60 || $value < -60) return; // Не сохраняем значения, уже сохраненные ранее с точностью 1% if ((getProperty('value') < $value * 1.01) and (getProperty('value') > $value * 0.99)) return; // Выполняем округление с точностью до одного знака $value = round($value, 1); // Сохраняем обработанное значение в свойство объекта $this->setProperty('value', $value);
В свободное время модифицирую игры. Если интересно, можете скачать кс го 1 6 со скинами моего творения на пробу.