График не читается из-за датчика

Всё, что не подходит под вышеперечисленные разделы

Модератор: immortal

AK1
Сообщения: 135
Зарегистрирован: Чт фев 13, 2020 6:39 pm
Благодарил (а): 23 раза
Поблагодарили: 30 раз

Re: График не читается из-за датчика

Сообщение AK1 » Вс дек 13, 2020 8:20 am

Пороги у всех устройств разные.
А если делать универсально, то будет работать медленнее.
Kirch
Сообщения: 51
Зарегистрирован: Чт июл 26, 2018 4:50 pm
Благодарил (а): 12 раз
Поблагодарили: 7 раз

Re: График не читается из-за датчика

Сообщение Kirch » Вс дек 13, 2020 8:22 am

порог у всех 100
ложное обычно 130
Jilber
Сообщения: 682
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 111 раз
Поблагодарили: 107 раз

Re: График не читается из-за датчика

Сообщение Jilber » Вс дек 13, 2020 11:23 am

Вот тут Skysilver писал про фильтрацию и округление данных с датчика. Также перед сохранением в базу наверное стоит добавить сравнение значения с предыдущим (если значение не изменилось, то зачем его сохранять ещё раз ?). Наверное было бы неплохо, если бы Skysilver добавил в свою статью сравнение с предыдущим значением, я думаю на форуме ещё много раз будем ссылаться на его статью.
За это сообщение автора Jilber поблагодарил:
Kirch (Вс дек 13, 2020 12:42 pm)
Рейтинг: 1.16%
Kirch
Сообщения: 51
Зарегистрирован: Чт июл 26, 2018 4:50 pm
Благодарил (а): 12 раз
Поблагодарили: 7 раз

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);
За это сообщение автора Kirch поблагодарил:
ProxXx (Вт фев 09, 2021 4:01 pm)
Рейтинг: 1.16%
Аватара пользователя
ProxXx
Сообщения: 16
Зарегистрирован: Сб июл 04, 2020 8:59 am
Благодарил (а): 2 раза
Поблагодарили: 0

Re: График не читается из-за датчика

Сообщение ProxXx » Вт фев 09, 2021 4:01 pm

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 со скинами моего творения на пробу.
Ответить