Страница 1 из 1

Преобразование значений

Добавлено: Вт янв 31, 2017 1:53 pm
blackangel
Друзья помогите разобраться в преобразовании значений.

Суть: есть показание давления (объект: 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) подскажите как это сделать, какой код использовать????

Re: Преобразование значений

Добавлено: Вт янв 31, 2017 2:18 pm
slgeo
А если отнять 65036, получить и прибавить 65036 :)

Re: Преобразование значений

Добавлено: Вт янв 31, 2017 4:25 pm
DimSun75
Давление врят ли будет, ну уж точно меньше 500. Так что вычитайте в скрипте 500 и передавайте в панель, как и хотели. Ну а в панели прибавляйте 500.

Ну и как вариант: сотые доли в давлении тоже врят ли понадобятся. Не высоту же меряем. Можно их отбросить и передавать в панель только целую часть. А можно целую часть и дробную передавать в два разных регистра.

Re: Преобразование значений

Добавлено: Вт янв 31, 2017 7:31 pm
DimSun75
DimSun75 писал(а):
Ну и как вариант: сотые доли в давлении тоже врят ли понадобятся. Не высоту же меряем. Можно их отбросить и передавать в панель только целую часть. А можно целую часть и дробную передавать в два разных регистра.
про целую и дробную части:

Код: Выделить всё

$a= floor(getGlobal('ow_fact.pressure_mmhg'));            // Целая часть
$b = (getGlobal('ow_fact.pressure_mmhg') - $a) * 100;  // Дробная часть
 

Re: Преобразование значений

Добавлено: Вт мар 06, 2018 6:06 pm
blackangel
всем привет! и снова вопрос)))

есть объект и класс "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')));

Re: Преобразование значений

Добавлено: Чт мар 08, 2018 12:58 am
blackangel
Апну, может заметит кто... ибо мозг поломал уже.

Re: Преобразование значений

Добавлено: Чт мар 08, 2018 1:21 am
olehs

Код: Выделить всё

$dt = date_parse(gg('ow_city.data_update'));
echo $dt['year'];

Re: Преобразование значений

Добавлено: Чт мар 08, 2018 1:47 am
blackangel
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

Re: Преобразование значений

Добавлено: Чт мар 08, 2018 1:56 am
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']);

Re: Преобразование значений

Добавлено: Чт мар 08, 2018 2:01 am
blackangel
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