Определение и реализация событий
При определении событий контекста ваших устройств/агентов/серверов необходимо задать свойства их определений, т.е. имя, описание, формат, текст справки, уровень прав доступа и группу. Для объявления нового события создайте экземпляр объекта EventDefinition и задайте его свойства. Вот пример:
// Creating event data format (scalar, string)
FieldFormat ff = FieldFormat.create("demoEventField", FieldFormat.STRING_FIELD);
TableFormat format = new TableFormat(1, 1, ff);
// Creating event definition
EventDefinition ed = new EventDefinition("demoEvent", format, "Demo Event", ContextUtils.GROUP_DEFAULT);После этого добавьте определение событий к контексту:
Определение событий контекста драйвера устройства, соответствующее событию устройства, должно возвращаться переопределенным методом
DeviceDriver.readEventDefinitions().Плагины сервера должны добавлять события из методов
install()иstart().Агенты на базе Java должны добавлять события после создания объекта
AgentчерезAgent.getContext().addEventDefinition().Наконец, скрипты (как сервера, так и виджетов) обычно не должны добавлять какие-либо события.
Для событий сервера также необходимо определить период их действия и уровень прав доступа:
// Setting permission level
ed.setPermissions(ServerPermissionChecker.getManagerPermissions());![]() | События устройства, предоставленные драйвером устройства, вместе с событиями Agent должны принадлежать группе Группа событий определяется вызовом |
Можно использовать следующий синтаксис:
ed.setGroup(ContextUtils.GROUP_REMOTE);Генерация событий
Плагины, драйвера и Агенты могут генерировать события контекста с помощью метода fireEvent() интерфейса Context. Вот пример:
context.fireEvent("eventName", EventLevel.INFO, new Float(Math.random() * 1000000));![]() | Формат таблицы данных, передаваемой методу |
Was this page helpful?

