D-Bus интерфейс mesh.Element1
Интерфейс для работы с элементом: сообщениями для приложения и моделями.
Шина: | системная |
Служба: | уникальное имя |
Объект: | путь, определённый в приложении |
Интерфейс: | org.bluez.mesh.Element1 |
Свойства
- Index : uint8 [только для чтения]
- Location : uint16 [только для чтения, опционально]
- Models : array{(uint16 id, dict caps)} [только для чтения]
- VendorModels : array{(uint16 vendor, uint16 id, dict options)} [только для чтения]
Методы
- DevKeyMessageReceived(uint16 source, boolean remote, uint16 net_index, array{byte} data)
- MessageReceived(uint16 source, uint16 key_index, variant destination, array{byte} data)
- UpdateModelConfiguration(uint16 model_id, dict config)
Подробное описание
Интерфейс содержит методы для работы с сообщениями для приложения и свойства с информацией о моделях.
Описание свойств
Index : uint8 [только для чтения]
Индекс элемента. Требуется, чтобы приложение следовало схеме последовательной нумерации элементов, начиная с 0.
Location : uint16 [только для чтения, опционально]
Дескриптор местоположения, определённый в пространстве имён GATT Bluetooth.
Models : array{(uint16 id, dict caps)} [только для чтения]
Массив моделей SIG:
id
— идентификатор модели SIG;options
— словарь, который может содержать дополнительную информацию о модели. Определены следующие ключи:boolean Publish
— указывает, поддерживает ли модель механизм публикации. Если ключа нет, публикация включена.boolean Subscribe
— указывает, поддерживает ли модель механизм подписки. Если ключа нет, подписки включены.
Массив может быть пуст.
VendorModels : array{(uint16 vendor, uint16 id, dict options)} [только для чтения]
Массив моделей поставщиков:
vendor
— 16-битный идентификатор компании, назначенный Bluetooth;id
— идентификатор модели, назначаемый поставщиком;options
— словарь, который может содержать дополнительную информацию о модели. Определены следующие ключи:boolean Publish
— указывает, поддерживает ли модель механизм публикации;boolean Subscribe
— указывает, поддерживает ли модель механизм подписки.
Массив может быть пуст.
Описание методов
DevKeyMessageReceived(uint16 source, boolean remote, uint16 net_index, array{byte} data)
Метод вызывается демоном meshd, когда приходит сообщение, адресованное приложению, которое было отправлено с ключом устройства удалённого узла.
Аргумент source
представляет собой индивидуальный адрес удалённого узла,
отправившего сообщение.
Аргумент remote
, если он равен true
, указывает, что ключ устройства, использованный
для расшифровки сообщения, был получен от отправителя.
False
указывает, что был использован ключ устройства локальных узлов,
и сообщение имеет разрешения на изменение локальных состояний.
Аргумент net_index
указывает, в какой подсети было получено сообщение, и, если требуется ответ,
для отправки ответа необходимо использовать ту же подсеть.
Аргумент data
— это входящее сообщение.
MessageReceived(uint16 source, uint16 key_index, variant destination, array{byte} data)
Метод вызывается демоном bluetooth-meshd, когда приходит сообщение, адресованное приложению.
Аргумент source
представляет собой индивидуальный адрес удалённого узла,
отправившего сообщение.
Аргумент key_index
указывает, какой ключ приложения использовался
для декодирования входящего сообщения.
Тот же key_index
должен использоваться приложением при отправке ответа на это сообщение
(в случае, если ожидается ответ).
Аргумент destination
содержит адрес, куда назначалось полученное сообщение.
Он может иметь один из следующих базовых типов:
uint16
- Адрес назначения — индивидуальный адрес или общеизвестный групповой адрес.
array{byte}
- Адрес назначения — это метка виртуального адреса.
Аргумент data
— это входящее сообщение.
UpdateModelConfiguration(uint16 model_id, dict config)
Метод вызывается демоном bluetooth-meshd при обновлении конфигурации модели.
Аргумент model_id
содержит идентификатор модели BT SIG или, если ключ поставщика
присутствует в словаре конфигурации, 16-битный идентификатор модели, назначенный поставщиком.
Аргумент config
представляет собой словарь со следующими заданными ключами:
array{uint16} Bindings
- Индексы ключей приложений, привязанных к модели.
uint32 PublicationPeriod
- Период публикации модели в миллисекундах.
uint16 Vendor
- 16-битный идентификатор компании поставщика, назначенный Bluetooth.
array{variant} Subscriptions
- Адреса, на которые подписана модель.
Каждый адрес предоставляется либо как uint16
для групповых адресов,
либо как array{byte}
для виртуальных меток.