Страница 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: На память пишу. Но вроде так это условие выглядит.