Преобразование значений
Модератор: immortal
- blackangel
- Сообщения: 148
- Зарегистрирован: Пт окт 21, 2016 2:00 pm
- Благодарил (а): 31 раз
- Поблагодарили: 13 раз
Преобразование значений
Друзья помогите разобраться в преобразовании значений.
Суть: есть показание давления (объект: pressure_mmhg, значение 768,74), мне это значение нужно передать по модбас в свою панель. Поскольку в модбас есть ряд ограничений, а именно с запятой не передать, только целые числа, отрицательное значение тоже не передать, ну и размер значения 65036. Я пробовал так: создал сценарий и добавил код: setGlobal('ow_fact.pressure_mmhg2',round(getGlobal('ow_fact.pressure_mmhg')*100)); получил значение 76874.... но оно больше 65036... вот сижу думаю как быть.... (на стороне панели я могу делать любые математические действия, вопрос в том как для начала передать значение по модбас... а уж потом преобразовывать в нормальный вид)
P.S. аналогично делал температуру, но там попроще оказалось....
может как то разделить 768,74 на 2 значения? т.е. чтобы было 2 обьекта, в одном 764 а в другом 74) подскажите как это сделать, какой код использовать????
Суть: есть показание давления (объект: pressure_mmhg, значение 768,74), мне это значение нужно передать по модбас в свою панель. Поскольку в модбас есть ряд ограничений, а именно с запятой не передать, только целые числа, отрицательное значение тоже не передать, ну и размер значения 65036. Я пробовал так: создал сценарий и добавил код: setGlobal('ow_fact.pressure_mmhg2',round(getGlobal('ow_fact.pressure_mmhg')*100)); получил значение 76874.... но оно больше 65036... вот сижу думаю как быть.... (на стороне панели я могу делать любые математические действия, вопрос в том как для начала передать значение по модбас... а уж потом преобразовывать в нормальный вид)
P.S. аналогично делал температуру, но там попроще оказалось....
может как то разделить 768,74 на 2 значения? т.е. чтобы было 2 обьекта, в одном 764 а в другом 74) подскажите как это сделать, какой код использовать????
-
- Сообщения: 318
- Зарегистрирован: Вс янв 01, 2017 8:32 pm
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 44 раза
Re: Преобразование значений
Давление врят ли будет, ну уж точно меньше 500. Так что вычитайте в скрипте 500 и передавайте в панель, как и хотели. Ну а в панели прибавляйте 500.
Ну и как вариант: сотые доли в давлении тоже врят ли понадобятся. Не высоту же меряем. Можно их отбросить и передавать в панель только целую часть. А можно целую часть и дробную передавать в два разных регистра.
Ну и как вариант: сотые доли в давлении тоже врят ли понадобятся. Не высоту же меряем. Можно их отбросить и передавать в панель только целую часть. А можно целую часть и дробную передавать в два разных регистра.
-
- Сообщения: 318
- Зарегистрирован: Вс янв 01, 2017 8:32 pm
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 44 раза
Re: Преобразование значений
про целую и дробную части:DimSun75 писал(а):
Ну и как вариант: сотые доли в давлении тоже врят ли понадобятся. Не высоту же меряем. Можно их отбросить и передавать в панель только целую часть. А можно целую часть и дробную передавать в два разных регистра.
Код: Выделить всё
$a= floor(getGlobal('ow_fact.pressure_mmhg')); // Целая часть
$b = (getGlobal('ow_fact.pressure_mmhg') - $a) * 100; // Дробная часть
- blackangel
- Сообщения: 148
- Зарегистрирован: Пт окт 21, 2016 2:00 pm
- Благодарил (а): 31 раз
- Поблагодарили: 13 раз
Re: Преобразование значений
всем привет! и снова вопрос)))
есть объект и класс "ow_city.data_update" в нем значение: 06.03.2018 16:30:00 MSK 2018
как скриптом разделить и отдельно в класс получить значение ДД (06), мм (03), гггг (2018), чч (16), мм (30). т.е. по факту должно получится 5 новых класов. только вот не соображу как скриптом разделить все это дело....
пробовал так, но что то не то:
sg('ow_city.data_update2', date('dd.mm.gggg H:i:s', gg('ow_city.data_update')));
есть объект и класс "ow_city.data_update" в нем значение: 06.03.2018 16:30:00 MSK 2018
как скриптом разделить и отдельно в класс получить значение ДД (06), мм (03), гггг (2018), чч (16), мм (30). т.е. по факту должно получится 5 новых класов. только вот не соображу как скриптом разделить все это дело....
пробовал так, но что то не то:
sg('ow_city.data_update2', date('dd.mm.gggg H:i:s', gg('ow_city.data_update')));
- blackangel
- Сообщения: 148
- Зарегистрирован: Пт окт 21, 2016 2:00 pm
- Благодарил (а): 31 раз
- Поблагодарили: 13 раз
-
- Сообщения: 1115
- Зарегистрирован: Вс июн 14, 2015 11:08 am
- Благодарил (а): 85 раз
- Поблагодарили: 342 раза
Re: Преобразование значений
Код: Выделить всё
$dt = date_parse(gg('ow_city.data_update'));
echo $dt['year'];
- За это сообщение автора olehs поблагодарил:
- blackangel (Чт мар 08, 2018 1:47 am)
- Рейтинг: 1.16%
- blackangel
- Сообщения: 148
- Зарегистрирован: Пт окт 21, 2016 2:00 pm
- Благодарил (а): 31 раз
- Поблагодарили: 13 раз
Re: Преобразование значений
Попробовал, что то я видимо не так понял... не выходит.olehs писал(а):Код: Выделить всё
$dt = date_parse(gg('ow_city.data_update')); echo $dt['year'];
Если скопировать именно как вы написали, то выводит год на экран, но классы новые не появляются.
Код: Выделить всё
sg('ow_city.data_update2', date_parse(gg('ow_city.data_update')));
Отправлено с моего iPhone используя Tapatalk
-
- Сообщения: 1115
- Зарегистрирован: Вс июн 14, 2015 11:08 am
- Благодарил (а): 85 раз
- Поблагодарили: 342 раза
Re: Преобразование значений
я так понимаю Вам нужно не классы, а свойства
Код: Выделить всё
$dt = date_parse(gg('ow_city.data_update'));
sg('ow_city.data_update_year', $dt['year']);
sg('ow_city.data_update_month', $dt['month']);
sg('ow_city.data_update_day', $dt['day']);
sg('ow_city.data_update_hour', $dt['hour']);
sg('ow_city.data_update_minute', $dt['minute']);
- За это сообщение автора olehs поблагодарил:
- blackangel (Чт мар 08, 2018 2:01 am)
- Рейтинг: 1.16%
- blackangel
- Сообщения: 148
- Зарегистрирован: Пт окт 21, 2016 2:00 pm
- Благодарил (а): 31 раз
- Поблагодарили: 13 раз
Re: Преобразование значений
Спасибо за помощь))) все получилось!olehs писал(а):я так понимаю Вам нужно не классы, а свойстваКод: Выделить всё
$dt = date_parse(gg('ow_city.data_update')); sg('ow_city.data_update_year', $dt['year']); sg('ow_city.data_update_month', $dt['month']); sg('ow_city.data_update_day', $dt['day']); sg('ow_city.data_update_hour', $dt['hour']); sg('ow_city.data_update_minute', $dt['minute']);
Отправлено с моего iPhone используя Tapatalk