Работа с активами устройства
Некоторые драйверы устройства поддерживают активы для обеспечения иерархического логичного группирования настроек, операций и событий.
Некоторые примеры использования активов:
- драйвер JMX-устройства возвращает под одному средству для каждого класса MBean. У каждого актива есть один подактив для каждого экземпляра MBean.
- драйвер OPC-устройства предоставляет дерево активов, которое соответствует иерархии сервера OPC.
- драйвер BACnet-устройства предоставляет актив для каждого объекта типа BACnet. У каждого актива есть один подактив для каждого экземпляра BACnet-объекта.
- Аналогичным образом, драйвер WMI-устройства создает актив для каждого типа объекта типа WMI.
Внедрение поддержки активов в драйвере
Драйверы, которые поддерживают активы, должны возвращать TRUE из метода isUsesAssets()
.
Если определенный драйвер заявляет о поддержке активов, ядро SberMobile Server вызывает его метод readAssetDefinitions()
сразу после установления или подтверждения соединения с устройством. Этот метод должен вернуть список объектов DeviceAssetDefinition
. У каждого определения актива есть уникальный ID, человекочитаемое описание и список вложенных определений (подактивов).
SberMobile Server читает определения активов из драйвера лишь раз, во время этапа создания устройства, и кэширует их в БД. Чтобы заставить сервер перечитать определения активов из драйвера, следует использовать операцию Вернуть в исходное состояние драйвер устройства.
Каждый актив можно активизировать/отключить системным операторам, используя действие Редактировать свойства устройства.
Если драйвер поддерживает активы, SberMobile Server вызывает следующие методы, чтобы получить метаданные с устройства:
readVariableDefinitions(List<DeviceAssetDefinition>)
readFunctionDefinitions(List<DeviceAssetDefinition>)
readEventDefinitions(List<DeviceAssetDefinition>)
Драйвер должен возвращать только те определения, которые принадлежат активированным активам (т.е. DeviceAssetDefinition.isEnabled()
возвращает true). Определения настроек, операций или событий, который принадлежат отключенным активам, не будут доступны в SberMobile.