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 список заказчиков будет восстановлен по конфигурационному файлу.