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