разложить веб переменую

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

avgaz
Сообщения: 39
Зарегистрирован: Пт дек 11, 2015 10:20 pm
Благодарил (а): 1 раз
Поблагодарили: 4 раза

Re: разложить веб переменую

Сообщение avgaz » Пн дек 14, 2015 1:38 am

дак кроме как %Object.Property% больше не чего не указывал на сцене
Аватара пользователя
savenko_egor
Сообщения: 705
Зарегистрирован: Вс авг 03, 2014 8:17 pm
Откуда: Украина, Запорожье
Благодарил (а): 108 раз
Поблагодарили: 147 раз
Контактная информация:

Re: разложить веб переменую

Сообщение savenko_egor » Пн дек 14, 2015 1:39 am

Так же попробуйте создать новое свойство, и если нужно новый класс, и в это свойство вносить данные. То есть отказаться от "Object.Property".
avgaz
Сообщения: 39
Зарегистрирован: Пт дек 11, 2015 10:20 pm
Благодарил (а): 1 раз
Поблагодарили: 4 раза

Re: разложить веб переменую

Сообщение avgaz » Пн дек 14, 2015 1:55 am

А можно пошагово, что и как, а что то запутался совсем ((
Аватара пользователя
savenko_egor
Сообщения: 705
Зарегистрирован: Вс авг 03, 2014 8:17 pm
Откуда: Украина, Запорожье
Благодарил (а): 108 раз
Поблагодарили: 147 раз
Контактная информация:

Re: разложить веб переменую

Сообщение savenko_egor » Пн дек 14, 2015 1:56 am

avgaz
Сообщения: 39
Зарегистрирован: Пт дек 11, 2015 10:20 pm
Благодарил (а): 1 раз
Поблагодарили: 4 раза

Re: разложить веб переменую

Сообщение avgaz » Пн дек 14, 2015 12:58 pm

warik писал(а):Штудируйте
Блин несколько раз все перечитал но так и не понял как связать все воедино, подскажите пошагово на примере как это сделать, что бы понять

Ещё если в сценарии ставить на пример setGlobal("Object.TempGazi",$data6); и на сцене выводить %Object.TempGazi% то выводится 0 если так setGlobal("TempGazi",$data6); и выводить %TempGazi% то выводятся нормальные данные но не обновляются, для обновления нужно обновлять страницу ((
avgaz
Сообщения: 39
Зарегистрирован: Пт дек 11, 2015 10:20 pm
Благодарил (а): 1 раз
Поблагодарили: 4 раза

Re: разложить веб переменую

Сообщение avgaz » Пн дек 14, 2015 1:26 pm

Вроде немного разобрался! Плиз может кто проверит правильно или нет сделано?
И так добавил новый класс Kotel в свойства добавил следующий значения "Gazi" "Kotel" "TA" в обьекты добавиль новый Объект с названием "TempKotel" у него в свойствах уже прописаны "TempKotel.Gazi" и тд.
Далее создал сценарий kotalnay с php содержимым

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

$bufft = file_get_contents('http://192.168.0.55/stats.html');
$exp = explode(",", $bufft);
$data0 = substr($exp[0], 0, 5);// котел
$data1 = substr($exp[1], 0, 5);// подача в котел
$data2 = substr($exp[2], 0, 5);// 
$data3 = substr($exp[3], 0, 5); //подача в дом
$data4 = substr($exp[4], 0, 5); // ТА
$data5 = substr($exp[5], 0, 5); // Улица
$data6 = substr($exp[6], 0, 5); // термопара1
$data7 = substr($exp[7], 0, 5); // термопара2
$data8 = substr($exp[8], 0, 5); // значение реле вкл 0 выкл 1
$data9 = substr($exp[9], 0, 5); // значение реле дома вкл 0 выкл 1
$data10 = substr($exp[10], 0, 5); // давление
setGlobal("TempKotel.Kotel",$data0);
setGlobal("TempKotel.TA",$data4);
setGlobal("TempKotel.Gazi",$data6);
Далее прописываю в "Объектах" класс "Timer", объект "ClockChime", в нем метод "onNewMinute" в конец приписываю RunScript('kotalnay'); что бы запускать раз в минуту. ну и на схему добавляю "%TempKotel.TA%" и тд
Посмотрите все ли верно, а то смущает в сценарии такой вид setGlobal("TempKotel.TA",$data4); может нужно использовать что другое для записи в объект?
zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

Re: разложить веб переменую

Сообщение zelevova » Пн дек 14, 2015 1:38 pm

Уже не плохо.
Рекомендую посмотреть методы классов что бы не скриптом, а методом опрос котла сделать.
Тогда в onNewMinute можно будет вызывать "callMethod("TempKotel.readFromDevice");"
Это более правильно с точки зрения ООП.
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
avgaz
Сообщения: 39
Зарегистрирован: Пт дек 11, 2015 10:20 pm
Благодарил (а): 1 раз
Поблагодарили: 4 раза

Re: разложить веб переменую

Сообщение avgaz » Пн дек 14, 2015 4:41 pm

zelevova писал(а):Уже не плохо.
Рекомендую посмотреть методы классов что бы не скриптом, а методом опрос котла сделать.
Тогда в onNewMinute можно будет вызывать "callMethod("TempKotel.readFromDevice");"
Это более правильно с точки зрения ООП.
Спасибо, буду разбираться, не хватает просто наглядных примеров с разъяснениями ((
А в чем разница вызова скрипта и вызова метода?
zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

Re: разложить веб переменую

Сообщение zelevova » Пн дек 14, 2015 5:04 pm

Примеров то хватает. Нужно их просто видеть. А вот с разъяснениями да... напряженка.
avgaz писал(а):А в чем разница вызова скрипта и вызова метода?
С точки зрения компьютера: без разницы.

С точки зрения программиста:
Скрипт - самостоятельный кусок кода ни к чему не привязанный.
Метод - кусок кода привязанный к классу и вызываемый для объекта класса.

То есть вызывая скрипт, мы как бы говорим, системе сделать это и то.
А вызывая метод объекта, мы как бы говорим объект сделай это и то.
Система состоит из объектов и как бы дробиться на них. Когда объектов много очень удобно оперировать объектами в целом, а не конкретными свойствами этих объектов.
Какой то дикий поток мыслей получился... :)
Короче рекомендую почитать про ООП (объектно-ориентированное программирование) в целом и тут применимо к данной системе в частности.
За это сообщение автора zelevova поблагодарил:
savenko_egor (Пн дек 14, 2015 11:01 pm)
Рейтинг: 1.16%
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
avgaz
Сообщения: 39
Зарегистрирован: Пт дек 11, 2015 10:20 pm
Благодарил (а): 1 раз
Поблагодарили: 4 раза

Re: разложить веб переменую

Сообщение avgaz » Пн дек 14, 2015 7:56 pm

zelevova писал(а):Примеров то хватает. Нужно их просто видеть. А вот с разъяснениями да... напряженка.
avgaz писал(а):А в чем разница вызова скрипта и вызова метода?
С точки зрения компьютера: без разницы.

С точки зрения программиста:
Скрипт - самостоятельный кусок кода ни к чему не привязанный.
Метод - кусок кода привязанный к классу и вызываемый для объекта класса.

То есть вызывая скрипт, мы как бы говорим, системе сделать это и то.
А вызывая метод объекта, мы как бы говорим объект сделай это и то.
Система состоит из объектов и как бы дробиться на них. Когда объектов много очень удобно оперировать объектами в целом, а не конкретными свойствами этих объектов.
Какой то дикий поток мыслей получился... :)
Короче рекомендую почитать про ООП (объектно-ориентированное программирование) в целом и тут применимо к данной системе в частности.
Правильно ли я сделал то есть код который у меня выше я добавляю в метод который создал в классе TempKotel например readFromDevice но в место setGlobal("TempKotel.Gazi",$data6); в коде я делаю так $this->setProperty('Gazi',$data6); то есть код получается такой

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

$bufft = file_get_contents('http://192.168.0.55/stats.html');
$exp = explode(",", $bufft);
$data0 = substr($exp[0], 0, 5);// котел
$data1 = substr($exp[1], 0, 5);// подача в котел
$data2 = substr($exp[2], 0, 5);// 
$data3 = substr($exp[3], 0, 5); //подача в дом
$data4 = substr($exp[4], 0, 5); // ТА
$data5 = substr($exp[5], 0, 5); // Улица
$data6 = substr($exp[6], 0, 5); // термопара1
$data7 = substr($exp[7], 0, 5); // термопара2
$data8 = substr($exp[8], 0, 5); // значение реле вкл 0 выкл 1
$data9 = substr($exp[9], 0, 5); // значение реле дома вкл 0 выкл 1
$data10 = substr($exp[10], 0, 5); // давление

$this->setProperty('Gazi',$data6); 
И в таймер уже пишу callMethod("TempKotel.readFromDevice");
Вроде работает так, хоть сути и разницы со сценарием не уловил.
И сценарий теперь в принципе уже не нужен?
Ответить