UniSet  1.4.0
Хранение информации о состоянии с уведомлениями об изменении

Класс IONotifyController расширяет набор задач класса IOController. Для ознакомления с базовыми функциями см. page_IOController

Задачи решаемые IONotifyController-ом (IONC):

Механизм заказа датчиков

Главной задачей класса IONotifyController является уведомление объектов (заказчиков) об изменении состояния датчика (входа или выхода).

Механизм функционирует по следующей логике: "заказчики" уведомляют IONC о том, об изменении какого именно датчика они хотят получать уведомление. После чего, если данный датчик меняет своё состояние, заказчику посылается сообщение UniSetTypes::SensorMessage содержащее информацию о текущем(новом) состоянии датчика, времени изменения и т.п. В случае необходимости можно отказатся от уведомления. Для заказа датчиков предусмотрен ряд функций. На данный момент рекомендуется пользоватся функцией IONotifyController::askSensor. Функции askState и askValue считаются устаревшими и оставлены для совместимости со старыми интерфейсами. ... продолжение следует...

Заказчики

В качестве "заказчиков" могут выступать любые UniSet-объекты (UniSetObject), обладающие "обратным адресом" (идентификатором), по которому присылается уведомление об изменении состояния. Свой обратный адрес, объекты указывают непосредственно при заказе (см. IONotifyController::askSensor).

Помимо "динамического" заказа во время работы процессов, существует возможность задавать список заказчиков на этапе конфигурирования системы ("статический" способ). Для этого в конфигурационном файле, в секции <sensors> у каждого датчика предусмотрена специальная секция <consumers>.

<sensors>
...
<item name="Sensors1" textname="sensor N1" iotype="AI" ...>
   <consumers>
       <consumer name="TestProc1" type="objects"/>
       <consumer name="TestProc2" type="managers" node="RemoteNode"/>
       ...
   </consumers>
</item>
...
</sensors>

"Статический" способ заказа гарантирует, что при перезапуске IONC список заказчиков будет восстановлен по конфигурационному файлу.

Пороговые датчики

Механизм зависимостей между датчиками