Работа с активами устройства

Некоторые драйверы устройства поддерживают активы для обеспечения иерархического логичного группирования настроек, операций и событий.

Некоторые примеры использования активов:

  • драйвер 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.