Вызов метода при нажатии на элемент выключатель

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

Модератор: immortal

Ответить
gorobey
Сообщения: 50
Зарегистрирован: Чт окт 27, 2016 11:48 am
Благодарил (а): 13 раз
Поблагодарили: 3 раза

Вызов метода при нажатии на элемент выключатель

Сообщение gorobey » Вс дек 18, 2016 12:01 am

Всем привет.

Сделал вроде не запрещенную вещь. Создал дочерний объект класса Relays. Переопределил 2 метода turnOn и turnOff. При вызове метода вручную через строку браузера все работает.
http://192.168.99.хх:80/objects/?object=Switch_komn1&op=m&m=turnOn&
Потом создал элемент выключатель в меню и привязал новый объект к этому выключателю. По идее когда я переключаю выключатель в разные положения должны бы вызываться методы turnOn or turnOff. Но желаемого результата не достиг.

Подскажите как диагностировать проблему. Вызывался таки метод и он не сработал или он просто не вызывался.

Заранее спасибо.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Вызов метода при нажатии на элемент выключатель

Сообщение nick7zmail » Вс дек 18, 2016 9:46 am

Во-первых. При создании элемента в меню - можно к нему привязать прямо там метод.
Во-вторых можно связать свойство с методом, а к выключателю привязывать только свойство.

Нужно сделать что-то из этого...
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
gorobey
Сообщения: 50
Зарегистрирован: Чт окт 27, 2016 11:48 am
Благодарил (а): 13 раз
Поблагодарили: 3 раза

Re: Вызов метода при нажатии на элемент выключатель

Сообщение gorobey » Вс дек 18, 2016 4:09 pm

Поддерживаю во первых. Но метод можно привязать 1-ин для 1 пункта меню. А мне нужно как бы два. Так как положения выключателя 2-а
Поддерживаю во вторых. Свойство к выключателю привязал сразу. Не ясно только как связать свойство с методом.
Почему-то считал, что свойство status в классе Relays должно быть связано с методами turnOn и turnOff. Вот только не уверен что в обе стороны. При вызове метода свойство меняется по идее. А вот или при смене свойства связанного с элементом меню вызывается ли метод. Или я что-то уже поломал в логике вещей ? Но главный вопрос как это проверить.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Вызов метода при нажатии на элемент выключатель

Сообщение nick7zmail » Вс дек 18, 2016 4:16 pm

gorobey писал(а):Поддерживаю во первых. Но метод можно привязать 1-ин для 1 пункта меню. А мне нужно как бы два. Так как положения выключателя 2-а
Поддерживаю во вторых. Свойство к выключателю привязал сразу. Не ясно только как связать свойство с методом.
Почему-то считал, что свойство status в классе Relays должно быть связано с методами turnOn и turnOff. Вот только не уверен что в обе стороны. При вызове метода свойство меняется по идее. А вот или при смене свойства связанного с элементом меню вызывается ли метод. Или я что-то уже поломал в логике вещей ? Но главный вопрос как это проверить.
Да, вы правы - метод к выключателю привязывается 1. Как и к свойству...
Соответственно чтобы запускать один из них - нужно создать промежуточный...что-то типа

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

if(gg('нужное.свойство')==1){
cm('нужный.метод_1');
} else {
cm('нужный.метод_2');
} 
И то и другое (из предыдущего сообщения) не стоит делать...получится двойной вызов метода...1 при смене свойства, второй при переключении выключателя...
Класс Relays у меня снесен давненько...не помню как там что было))
За это сообщение автора nick7zmail поблагодарил:
gorobey (Вс дек 18, 2016 7:53 pm)
Рейтинг: 1.16%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
gorobey
Сообщения: 50
Зарегистрирован: Чт окт 27, 2016 11:48 am
Благодарил (а): 13 раз
Поблагодарили: 3 раза

Re: Вызов метода при нажатии на элемент выключатель

Сообщение gorobey » Вс дек 18, 2016 8:17 pm

Спасибо сделал промежуточный метод и поехало. Только заработало почему-то с
$status=$this->getProperty("status");
if ($status) {...
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Вызов метода при нажатии на элемент выключатель

Сообщение nick7zmail » Вс дек 18, 2016 8:32 pm

Без разницы... gg('нужное.свойство') - обращение к конкретному св-ву конкретного объекта, а $this->getProperty("status"); - обращение к св-ству любого объекта из класса, от имени которого запущен метод....
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Ответить