Страница 1 из 1
StatusChanged Баг или Фича?
Добавлено: Пт июн 19, 2015 3:27 pm
Antilox
Добрый день!
Опрашиваю кнопку раз в 1 сек. Свойство Status меняется. У реле есть метод Switch, меняющий состояние на противоположное соответственно. В метод Кнопка.StatusChenged пишу вызов метода реле.switch
Получаю раз в секунду переключение реле на противоположное состояние вне зависимости от изменения состояния кнопка.Status
Баг или Фича?
Ожидалось при ИЗМЕНЕНИИ статуса выполнять метод. Ведь StatusChenged - статус изменен.
Re: StatusChanged Баг или Фича?
Добавлено: Сб июн 20, 2015 10:23 am
Alien
Фича. Ведь статус действительно меняется. Проверку тогда еще вставить нужно на 0 или 1.
Re: StatusChanged Баг или Фича?
Добавлено: Сб июн 20, 2015 1:21 pm
Antilox
То есть у объекта есть куча свойств, но лишь один метод на изменение одного свойства, и то метод выполняется не по изменению значения свойства, а по опросу значения свойства.
Есть такая скада WinCC, кто знает. Там у объектов есть куча свойств и у каждого свойства есть метод, который запускается при изменении значения этого свойства. Время опроса тэгов (значений свойств) устанавливается отдельно. Очень удобно. Может стоит так сделать?
Re: StatusChanged Баг или Фича?
Добавлено: Пн июн 22, 2015 11:42 am
sergejey
Метод действительно вызывается при каждом обновлении значения свойства, даже если само значение при этом остаётся тем же. Когда-то было только при изменении, но общественность настояла, что вызывать надо при каждой установке, а кому нужно, тот в коде метода уже будет делать проверку на само значение.
Да, и настроить можно вызов своего метода на каждое из свойств.
Re: StatusChanged Баг или Фича?
Добавлено: Пн июн 22, 2015 11:48 am
Antilox
Окей, привыкнем)
Re: StatusChanged Баг или Фича?
Добавлено: Пн июн 22, 2015 12:43 pm
zelevova
В начале метода напиши:
Код: Выделить всё
if ($params['OLD_VALUE'] != $params['VALUE']) {
// выполняем действия при изменении
}
PS: На память пишу. Но вроде так это условие выглядит.