Определение и реализация функций
При определении функций контекста ваших устройств/агентов/серверов необходимо задать свойства их определений, т.е. имя, описание, формат ввода и вывода, уровень прав доступа, текст справки и группу. Для объявления новой функции создайте экземпляр объекта FunctionDefinition
и задайте его свойства. Вот пример:
|
После этого добавьте определение функции к контексту:
Определения функций контекста драйвера устройства, соответствующие операциям устройства, должны возвращаться переопределенным методом
DeviceDriver.readFunctionDefinitions()
. Сервер добавит определения функции к контексту устройства и создаст для них определения действия.Плагины сервера должны добавлять функции из методов
install()
иstart()
.Агенты на базе Java должны добавлять функции после создания объекта
Agent
черезAgent.getContext().addFunctionDefinition()
.Наконец, скрипты (как скрипты сервера, так и виджета) обычно не должны добавлять никаких функций.
Для функций сервера также необходимо определить уровень прав доступа:
|
Функции работы устройства, предоставляемые драйвером устройства, вместе с функциями Agent должны принадлежать группе Группа функций определяется вызовом |
Функции, добавляемые вручную, должны иметь ненулевую реализацию, полученную из интерфейса FunctionImplementation
. Реализация должна анализировать ввод функции, обрабатывать его и генерировать вывод.
Формат таблицы данных, возвращенный методом реализации функции, должен соответствовать формату вывода, содержащемуся в ее определении. Несоблюдение данного правила приведет к потере данных, поскольку система попытается сконвертировать таблицу данных в формат, предоставленный определением, сохраняя как можно большее количество данных. |