Запуск метода при изменении свойства

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

Модератор: immortal

Ответить
GreatBAO
Сообщения: 119
Зарегистрирован: Пн авг 24, 2015 11:24 am
Откуда: Сочи

Запуск метода при изменении свойства

Сообщение GreatBAO »

Имеется несколько модулей ESP передающих по протоколу MQTT данные
под эти модули создал класс и объекты, свойства объектов привязаны к входящим данным по MQTT

думал что если создать метод и там реализовать выполнение определенного кода по изменению объекта, то должно работать, но видимо чего то не понял
нагромождать под каждый ESP модуль отдельное правило в Шаблонах поведения как то думаю не верно

как можно реализовать выполнения определенного кода при изменении свойства объекта ?
craber
Сообщения: 38
Зарегистрирован: Ср апр 27, 2016 11:19 pm

Re: Запуск метода при изменении свойства

Сообщение craber »

Должно работать. Не знаю правда будет ли выполняться метод, если от MQTT пришло такое же значение.
GreatBAO
Сообщения: 119
Зарегистрирован: Пн авг 24, 2015 11:24 am
Откуда: Сочи

Re: Запуск метода при изменении свойства

Сообщение GreatBAO »

craber писал(а):Должно работать. Не знаю правда будет ли выполняться метод, если от MQTT пришло такое же значение.
тоже так думал, поэтому попробовал изменить значение, в свойствах хранится значение 0, при входящем значении 1 нужно запустить обработку, в конце которой она выставит это значение опять в 0
метод содержит код

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

$status=$this->getProperty("status_update");

if ($status) {
    $this->setProperty("time_update", date("d-m-Y / H:i:s"));
     $this->setProperty("status_update", 0);
} 
в итоге при статусе значения status_update = 0, приходит значение 1 и ничего не происходит
GreatBAO
Сообщения: 119
Зарегистрирован: Пн авг 24, 2015 11:24 am
Откуда: Сочи

Re: Запуск метода при изменении свойства

Сообщение GreatBAO »

все, разобрался
оказывается в свойствах нужно привязать вызываемый метод
при создании свойства этот выбор пустой даже при наличии созданных методов, сразу не вдуплил )
Ответить