D-Bus интерфейс mesh.Node1
Интерфейс позволяет управлять mesh-узлом.
Шина: | системная |
Служба: | org.bluez.mesh |
Объект: | /org/bluez/mesh/node<uuid> |
Интерфейс: | org.bluez.mesh.Node1 |
Свойства
- Addresses : array{uint16} [только для чтения]
- Beacon : boolean [только для чтения]
- Features : dict [только для чтения]
- IvIndex : uint32 [только для чтения]
- IvUpdate : boolean [только для чтения]
- SecondsSinceLastHeard : uint32 [только для чтения]
- SequenceNumber : uint32 [только для чтения]
Методы
- AddAppKey(object element_path, uint16 destination, uint16 app_index, uint16 net_index, boolean update)
- AddNetKey(object element_path, uint16 destination, uint16 subnet_index, uint16 net_index, boolean update)
- DevKeySend(object element_path, uint16 destination, boolean remote, uint16 net_index, dict options, array{byte} data)
- Publish(object element_path, uint16 model, dict options, array{byte} data)
- Send(object element_path, uint16 destination, uint16 key_index, dict options, array{byte} data)
Подробное описание
Интерфейс содержит методы и свойства для управления mesh-узлом.
<uuid>
в пути к объекту — это UUID устройства, переданный
в Join()
, CreateNetwork()
или Import()
.
Описание свойств
Addresses : array{uint16} [только для чтения]
Свойство содержит индивидуальные адреса элементов узла.
Beacon : boolean [только для чтения]
Свойство указывает, включена ли периодическая отправка сигнала (true
) или отключена (false
).
Features : dict [только для чтения]
Словарь, содержащий информацию о поддержке функциональности. Определены следующие ключи:
- boolean
Friend
- возможность установить соединение с узлом Low Power;
- boolean
LowPower
- поддержка работы в режиме узла с низким энергопотреблением;
- boolean
Proxy
- поддержка прокси-сервера GATT;
- boolean
Relay
- поддержка ретрансляции сообщений.
Если ключ отсутствует в словаре, функциональность не поддерживается.
Значение true
означает, что функциональность включена, а значение false означает,
что функциональность отключена.
IvIndex : uint32 [только для чтения]
Свойство может быть прочитано в любое время для определения индекса IV, в котором находится текущая сеть. Эта информация полезна только для подготовки.
IvUpdate : boolean [только для чтения]
Значение true
указывает, что сеть находится в середине процедуры обновления индекса IV.
Эта информация полезна только для подготовки.
SecondsSinceLastHeard : uint32 [только для чтения]
Свойство можно прочитать в любое время, чтобы определить количество секунд, прошедших с момента последнего обнаружения уровня трафика в сети этого узла.
SequenceNumber : uint32 [только для чтения]
Свойство может быть прочитано в любое время для определения порядкового номера.
Описание методов
AddAppKey(object element_path, uint16 destination, uint16 app_index, uint16 net_index, boolean update)
Метод используется для отправки сетевого ключа добавления или обновления, созданного локальным клиентом конфигурации, на удалённый сервер конфигурации.
Аргумент element_path
— это путь к элементу из набора элементов приложения.
Аргумент destination
содержит адрес назначения.
Он должен иметь тип uint16
для индивидуального адреса или общеизвестного группового адреса.
Аргумент app_index
относится к ключу приложения, который добавляется или обновляется.
Этот ключ должен существовать в локальной базе данных ключей.
Аргумент net_index
— это индекс подсети, в которой должно быть отправлено сообщение.
Аргумент update
указывает, является ли это дополнением или обновлением.
Если он равен true
, ключ подсети должен находиться на этапе 1 процедуры обновления ключа.
Возможные ошибки:
org.bluez.mesh.Error.InvalidArguments
,org.bluez.mesh.Error.NotFound
.
AddNetKey(object element_path, uint16 destination, uint16 subnet_index, uint16 net_index, boolean update)
Метод используется для отправки сетевого ключа добавления или обновления, созданного локальным клиентом конфигурации, на удалённый сервер конфигурации.
Аргумент element_path
— это путь к элементу из набора элементов приложения.
Аргумент destination
содержит адрес назначения.
Он должен иметь тип uint16
для индивидуального адреса или общеизвестного группового адреса.
Аргумент subnet_index
относится к индексу подсети добавляемой или обновляемой сети.
Этот ключ должен существовать в локальной базе данных ключей.
Аргумент net_index
— это индекс подсети, в которой должно быть отправлено сообщение.
Аргумент update
указывает, является ли это дополнением или обновлением.
Если он равен true
, ключ подсети должен находиться на этапе 1 процедуры обновления ключа.
Возможные ошибки:
org.bluez.mesh.Error.InvalidArguments
,org.bluez.mesh.Error.NotFound
.
DevKeySend(object element_path, uint16 destination, boolean remote, uint16 net_index, dict options, array{byte} data)
Метод используется для отправки сообщения, созданного локальной моделью, закодированного ключом устройства удалённого узла.
Аргумент element_path
— это путь к элементу из набора элементов приложения.
Аргумент destination
содержит адрес назначения.
Он должен иметь тип uint16
для индивидуального адреса или общеизвестного группового адреса.
Аргумент remote
, если он равен true
, ищет ключ устройства по адресу назначения
в базе данных ключей для шифрования сообщения.
Если значение remote
равно true
, но запрошенный ключ не существует,
будет возвращена ошибка NotFound
.
Если установлено значение false
, используется ключ устройства локального узла.
Аргумент net_index
— это индекс подсети, в которой должно быть отправлено сообщение.
Аргумент options
представляет собой словарь со следующими ключами:
- bool
ForceSegmented
- указывает, следует ли принудительно отправлять короткое сообщение как односегментную полезную нагрузку. Если он отсутствует, по умолчанию используется значение false.
Аргумент data
— это исходящее сообщение, которое должно быть зашифровано
демоном bluetooth-meshd и отправлено.
Возможные ошибки:
org.bluez.mesh.Error.InvalidArguments
,org.bluez.mesh.Error.NotFound
.
Publish(object element_path, uint16 model, dict options, array{byte} data)
Метод используется для отправки публикации, созданной локальной моделью.
Если модель не существует или у неё нет записи о публикации, метод возвращает ошибку
org.bluez.mesh.Error.DoesNotExist
.
Аргумент element_path
— это путь к элементу из набора элементов приложения.
Аргумент model
содержит идентификатор модели, определённый Bluetooth SIG.
Если словарь options
содержит ключ Vendor
,
то этот идентификатор определяется указанным поставщиком.
Аргумент options
представляет собой словарь со следующими ключами:
- bool
ForceSegmented
- указывает, следует ли принудительно отправлять короткое сообщение как односегментную полезную нагрузку. Если он отсутствует, по умолчанию используется значение false.
- uint16
Vendor
- 16-битный идентификатор компании, определённый Bluetooth SIG. Этот ключ должен существовать только при публикации модели, заданной поставщиком.
Аргумент data
— это исходящее сообщение, которое должно быть зашифровано
демоном bluetooth-meshd и отправлено.
Поскольку для каждой модели элемента может существовать только одна запись публикации,
место назначения и key_index
извлекаются из записи публикации, кэшированной демоном.
Возможные ошибки:
org.bluez.mesh.Error.DoesNotExist
,org.bluez.mesh.Error.InvalidArguments
.
Send(object element_path, uint16 destination, uint16 key_index, dict options, array{byte} data)
Метод используется для отправки сообщения, созданного локальной моделью.
Аргумент element_path
— это путь к элементу из набора элементов приложения.
Аргумент destination
содержит адрес назначения.
Он должен иметь тип uint16
для индивидуального адреса или общеизвестного группового адреса.
Аргумент key_index
определяет, какой ключ приложения использовать для шифрования сообщения.
key_index
должен быть допустимым для этого элемента, т. е. ключ приложения должен быть привязан
к модели этого элемента.
В противном случае будет возвращена ошибка org.bluez.mesh.Error.NotAuthorized
.
Аргумент options
представляет собой словарь со следующими ключами:
- bool
ForceSegmented
- указывает, следует ли принудительно отправлять короткое сообщение как односегментную полезную нагрузку. Если он отсутствует, по умолчанию используется значение false.
Аргумент data
— это исходящее сообщение, которое должно быть зашифровано
демоном bluetooth-meshd и отправлено.
Возможные ошибки:
org.bluez.mesh.Error.NotAuthorized
,org.bluez.mesh.Error.InvalidArguments
,org.bluez.mesh.Error.NotFound
.