org.bluez.mesh.Network1 Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bluez-dbus Show documentation
Show all versions of bluez-dbus Show documentation
Java native bluetooth library which uses bluez via dbus (linux only)
package org.bluez.mesh;
import java.util.List;
import java.util.Map;
import org.bluez.datatypes.TwoTuple;
import org.bluez.exceptions.mesh.BluezMeshAlreadyExistsException;
import org.bluez.exceptions.mesh.BluezMeshBusyException;
import org.bluez.exceptions.mesh.BluezMeshFailedException;
import org.bluez.exceptions.mesh.BluezMeshInvalidArgumentsException;
import org.bluez.exceptions.mesh.BluezMeshNotFoundException;
import org.bluez.exceptions.mesh.BluezMeshNotSupportedException;
import org.freedesktop.dbus.DBusPath;
import org.freedesktop.dbus.interfaces.DBusInterface;
import org.freedesktop.dbus.types.UInt16;
import org.freedesktop.dbus.types.UInt32;
import org.freedesktop.dbus.types.UInt64;
import org.freedesktop.dbus.types.Variant;
/**
* File generated - 2020-12-28.
* Based on bluez Documentation: mesh-api.txt.
*
* Service: org.bluez.mesh
* Interface: org.bluez.mesh.Network1
*
* Object path:
* /org/bluez/mesh
*
*/
public interface Network1 extends DBusInterface {
/**
* From bluez documentation:
*
* This is the first method that an application has to call to
* become a provisioned node on a mesh network. The call will
* initiate broadcasting of Unprovisioned Device Beacon.
*
* The app_root parameter is a D-Bus object root path of
* the application that implements org.bluez.mesh.Application1
* interface. The application represents a node where child mesh
* elements have their own objects that implement
* org.bluez.mesh.Element1 interface. The application hierarchy
* also contains a provision agent object that implements
* org.bluez.mesh.ProvisionAgent1 interface. The standard
* DBus.ObjectManager interface must be available on the
* app_root path.
*
* The uuid parameter is a 16-byte array that contains Device UUID.
* This UUID must be unique (at least from the daemon perspective),
* therefore attempting to call this function using already
* registered UUID results in an error.
*
* When provisioning finishes, the daemon will call either
* JoinComplete or JoinFailed method on object implementing
* org.bluez.mesh.Application1 interface.
*
* @param _appRoot app_root
* @param _uuid uuid
*
* @throws BluezMeshInvalidArgumentsException when invalid argument given
* @throws BluezMeshAlreadyExistsException when mesh already exists
*/
void Join(DBusPath _appRoot, byte[] _uuid) throws BluezMeshInvalidArgumentsException, BluezMeshAlreadyExistsException;
/**
* From bluez documentation:
*
* Cancels an outstanding provisioning request initiated by Join()
* method.
*/
void Cancel();
/**
* From bluez documentation:
*
*
* This is the first method that an application must call to get
* access to mesh node functionalities.
*
* The app_root parameter is a D-Bus object root path of
* the application that implements org.bluez.mesh.Application1
* interface. The application represents a node where child mesh
* elements have their own objects that implement
* org.bluez.mesh.Element1 interface. The standard
* DBus.ObjectManager interface must be available on the
* app_root path.
*
* The token parameter is a 64-bit number that has been assigned to
* the application when it first got provisioned/joined mesh
* network, i.e. upon receiving JoinComplete() method. The daemon
* uses the token to verify whether the application is authorized
* to assume the mesh node identity.
*
* In case of success, the method call returns mesh node object
* (see Mesh Node Hierarchy section) and current configuration
* settings. The return value of configuration parameter is an
* array, where each entry is a structure that contains element
* configuration. The element configuration structure is organized
* as follows:
*
* byte
*
* Element index, identifies the element to which this
* configuration entry pertains.
*
* array{struct}
*
* Models array where each entry is a structure with the
* following members:
*
* uint16
*
* Either a SIG Model Identifier or, if Vendor key
* is present in model configuration dictionary, a
* 16-bit vendor-assigned Model Identifier
*
* dict
*
* A dictionary that contains model configuration
* with the following keys defined:
*
* array{uint16} Bindings
*
* Indices of application keys bound to the
* model
*
* uint32 PublicationPeriod
*
* Model publication period in milliseconds
*
* uint16 Vendor
*
* A 16-bit Company ID as defined by the
* Bluetooth SIG
*
* array{variant} Subscriptions
*
* Addresses the model is subscribed to.
*
* Each address is provided either as
* uint16 for group addresses, or
* as array{byte} for virtual labels.
*
*
* @param _appRoot app_root
* @param _token token
*
* @return TwoTuple or null
*
* @throws BluezMeshInvalidArgumentsException when invalid argument provided
* @throws BluezMeshAlreadyExistsException when mesh already exists
* @throws BluezMeshNotFoundException when mesh not found
* @throws BluezMeshBusyException when still busy
* @throws BluezMeshFailedException when operation failed
*/
TwoTuple>>>>>>Attach(DBusPath _appRoot, UInt64 _token) throws BluezMeshInvalidArgumentsException, BluezMeshNotFoundException, BluezMeshAlreadyExistsException, BluezMeshBusyException, BluezMeshFailedException;
/**
* From bluez documentation:
*
* This removes the configuration information about the mesh node
* identified by the 64-bit token parameter. The token parameter
* has been obtained as a result of successful Join() method call.
*
* @param _token token
*
* @throws BluezMeshInvalidArgumentsException when invalid argument provided
* @throws BluezMeshNotFoundException when mesh not found
* @throws BluezMeshBusyException when still busy
*/
void Leave(UInt64 _token) throws BluezMeshBusyException, BluezMeshNotFoundException, BluezMeshInvalidArgumentsException;
/**
* From bluez documentation:
*
* This is the first method that an application calls to become
* a Provisioner node, and a Configuration Client on a newly
* created Mesh Network.
*
* The app_root parameter is a D-Bus object root path of the
* application that implements org.bluez.mesh.Application1
* interface, and a org.bluez.mesh.Provisioner1 interface. The
* application represents a node where child mesh elements have
* their own objects that implement org.bluez.mesh.Element1
* interface. The application hierarchy also contains a provision
* agent object that implements org.bluez.mesh.ProvisionAgent1
* interface. The standard DBus.ObjectManager interface must be
* available on the app_root path.
*
* The uuid parameter is a 16-byte array that contains Device UUID.
* This UUID must be unique (at least from the daemon perspective),
* therefore attempting to call this function using already
* registered UUID results in an error.
*
* The other information the bluetooth-meshd daemon will preserve
* about the initial node, is to give it the initial primary
* unicast address (0x0001), and create and assign a net_key as the
* primary network net_index (0x000).
*
* Upon successful processing of Create() method, the daemon
* will call JoinComplete method on object implementing
* org.bluez.mesh.Application1.
*
* @param _app_root app_root
* @param _uuid uuid
*
* @throws BluezMeshInvalidArgumentsException on invalid arguments
* @throws BluezMeshAlreadyExistsException when mesh already exists
*/
void CreateNetwork(DBusPath _app_root, byte[] _uuid) throws BluezMeshInvalidArgumentsException, BluezMeshAlreadyExistsException;
/**
* From bluez documentation:
*
* This method creates a local mesh node based on node
* configuration that has been generated outside bluetooth-meshd.
*
* The app_root parameter is a D-Bus object root path of the
* application that implements org.bluez.mesh.Application1
* interface.
*
* The uuid parameter is a 16-byte array that contains Device UUID.
* This UUID must be unique (at least from the daemon perspective),
* therefore attempting to call this function using already
* registered UUID results in an error.
*
* The dev_key parameter is the 16-byte value of the dev key of
* the imported mesh node.
*
* Remaining parameters correspond to provisioning data:
*
* The net_key and net_index parameters describe the network (or a
* subnet, if net_index is not 0) the imported mesh node belongs
* to.
*
* The flags parameter is a dictionary containing provisioning
* flags. Supported values are:
*
* boolean IvUpdate
*
* When true, indicates that the network is in the
* middle of IV Index Update procedure.
*
* boolean KeyRefresh
*
* When true, indicates that the specified net key
* is in the middle of a key refresh procedure.
*
* The iv_index parameter is the current IV Index value used by
* the network. This value is known by the provisioner.
*
* The unicast parameter is the primary unicast address of the
* imported node.
*
* Upon successful processing of Import() method, the daemon will
* call JoinComplete method on object implementing
* org.bluez.mesh.Application1 interface.
*
* @param _appRoot root
* @param _uuid uuid
* @param _devKey devkey
* @param _netKey netkey
* @param _netIndex netidx
* @param _flags flags
* @param _ivIndex ividx
* @param _unicast unicast
*
* @throws BluezMeshAlreadyExistsException when mesh already exists
* @throws BluezMeshInvalidArgumentsException when invalid argument provided
* @throws BluezMeshNotFoundException when mesh could not be found
* @throws BluezMeshNotSupportedException when operation is not supported
*/
void Import(DBusPath _appRoot, byte[] _uuid, byte[] _devKey, byte[] _netKey, UInt16 _netIndex, Map> _flags, UInt32 _ivIndex, UInt16 _unicast) throws BluezMeshInvalidArgumentsException, BluezMeshAlreadyExistsException, BluezMeshNotSupportedException, BluezMeshNotFoundException;
}