蓝牙 Mesh 组控 SDK

SDK提供蓝牙Mesh组控业务的App端解决方案,提供了蓝牙Mesh添加分组、删除分组以及组控的能力。

概述

单控使用物模型 SDK即可。

依赖 SDK

概述

物模型SDK

物模型SDK提供了App端的物模型。

使用说明

连接到Mesh网络

在单控或组控设备前,需要保证当前APP连接到Mesh网络。

// 使用默认的 ConnectionParams 连接到Mesh网络
ConnectionParams connectionParams = new ConnectionParams();

TgMeshManager.getInstance().connect(connectionParams);

获取Mesh网络是否连接

可以使用下面的方式判断当前是否已经连接到了Mesh网络。

boolean isConnected2Mesh = TgMeshManager.getInstance().isConnectedToMesh();

给设备配置组播地址

组控设备前,需要先给这些设备单独配置组播地址以加到一个组中。其中对单个设备配置使用下面的方法调用,方法入参需要依赖控制分组相关API,详见API创建设备组预先获取mesh设备组播地址配置获取设备组的设备列表批量删除设备组删除设备组

String deviceKey = ""; // 待添加组播地址设备的deviceKey
int primaryAddress = 0; // 主节点的单播地址
int elementAddress = 0; // 待配置节点的单播地址
int subscriptionAddress = 59097; //需要订阅的组播地址
int modelIdentifier = 0; // SIG Model ID or Vendor Model ID

TgMeshManager.getInstance().configModelSubscriptionAdd(deviceKey, primaryAddress, elementAddress, subscriptionAddress, modelIdentifier, new IActionListener<Boolean>() {
  @Override
  public void onSuccess(Boolean result) {

  }

  @Override
  public void onFailure(int errorCode, String desc) {

  }
}
                                                      );

参数说明

名称

类型

必填

默认值

描述

deviceKey

String

待配置节点的deviceKey。不同设备的deviceKey不一样。

primaryAddress

Integer

和elementAddress一致。

elementAddress

Integer

待配置节点的单播地址。

subscriptionAddress

Integer

需要订阅的组播地址。

modelIdentifier

Integer

SIG Model ID or Vendor Model ID,用于标识节点内的模型。

deviceControlListener

IActionListener<Boolean>

配置结果回调。

删除设备配置的组播地址

删除一个组或者从组里删除某些设备时候,需要对这些设备执行删除组播地址的操作。其中对单个设备删除组播配置使用下面的方法调用,方法入参需要依赖控制分组相关API,详见API创建设备组预先获取mesh设备组播地址配置获取设备组的设备列表批量删除设备组删除设备组

String deviceKey = ""; // 待添加组播地址设备的deviceKey
int primaryAddress = ; // 主节点的单播地址
int elementAddress = ; // 待删除配置节点的单播地址
int subscriptionAddress = ; //需要删除的组播地址
int modelIdentifier = ; // SIG Model ID or Vendor Model ID

TgMeshManager.getInstance().configModelSubscriptionDelete(deviceKey, primaryAddress, elementAddress, subscriptionAddress, modelIdentifier, new IActionListener<Boolean>() {
                    @Override
                    public void onSuccess(Boolean result) {

                    }

                    @Override
                    public void onFailure(int errorCode, String desc) {

                    }
                }
        );

参数说明

名称

类型

必填

默认值

描述

deviceKey

String

待配置节点的deviceKey。不同设备的deviceKey不一样

primaryAddress

Integer

和elementAddress一致

elementAddress

Integer

待配置节点的单播地址

subscriptionAddress

Integer

需要删除的已订阅的组播地址

modelIdentifier

Integer

SIG Model ID or Vendor Model ID,用于标识节点内的模型

deviceControlListener

IActionListener<Boolean>

配置结果回调

组控调用

设备组控是基于物的模型对设备定义的属性进行操作。关于属性的描述,请参见基本概念

String groupId = "";
String method = "thing.attribute.set";
String params = "{\"powerstate\":1}";
Map<String, Object> extensionMap = new HashMap<>();
extensionMap.put("iotId", "9GsLSxg4FYgoGi4F8ET4000000");
extensionMap.put("groupAddress", 59097);
TgMeshManager.getInstance().sendGroupMessage(groupId, method, params, extensionMap, new IActionListener<Boolean>() {
    @Override
    public void onSuccess(Boolean result) {

    }

    @Override
    public void onFailure(int errorCode, String desc) {

    }
});

参数说明

名称

类型

必填

默认值

描述

groupId

String

待控制组的ID。

method

String

目前取值"thing.attribute.set"。

params

String

JSON String.

基于物模型的描述。

extensionMap

Map<Stringm, Object>

扩展参数

包括分组内其中一个设备的iotId, key = "iotId"

和该分组的组播地址,key = "groupAddress"。

deviceControlListener

IActionListener<Boolean>

组控消息回调。onSuccess表示发送成功,

onFailure 表示发送失败。