传输数据

public String id; 用户 id

public String email; 用户邮箱地址

public String countryCode; 国家地区区号 中国大陆 0086 public String phone; 手机号

public String name; 昵称

发送/接收数据的最大长度与 init 中的 buffer 的大小有关。

如:buffer设置为 2048,以类型为整型数据点为例,最多可以一次性发送600

个整型数据。

上传数据

开发者需明确每个数据点的 dpid、类型(通过云平台获取)。根据数据点的类型,调用不同的函数将数据点 id、对应数值添加到发送队列中。

目前支持的类型包括整数型、布尔型、枚举型、浮点型、字符型、故障型、二进制。

上传数据时,需保证在云端创建的数据点是可上报的。

构造消息并发送

new CloudMessage.Builder()

.putInt(1, 1) // 发送整型

.putBool(1, 1) // 发送 bool

.putEnum(1, 1) // 发送枚举

.putFloat(1, 1) // 发送浮点型

.putString(1, "1") // 发送字符串

.putBinary(1, new byte[3]) // 发送二进制类型

.putError(1, "1") // 发送错误类型

.setSubId("子设备 id") // 设置子设备 id(如果当前消息是子设

备发出的需要设置子设备 id)

.send(new CloudMessage.OnSendListener() {

@Override

public void onSuccess() {

// 发送成功

}

@Override

public void onError(String message) {

// 发送失败

// message 错误原因

}

});

接收数据

开发者需明确每个数据点的dpid、类型(通过云平台获取)。根据数据点的类型,调用不同的转换函数转换成需要的数值。

目前支持的类型包括整数型、布尔型、枚举型、浮点型、字符型、故障型、二进制。

接收数据时,需保证在云端创建的数据点是可下发的。

IotDeviceSDK.getInstance().setOnCommandListener(new IotDeviceSDK.OnCommandListener() {

@Override

public void onCommand(String subId, int dataId, Object value) {

subId子设备 id 可能为空,当消息对子设备发送的时候不为空

dataid 数据点的 id

value 数据的值,当前数据是什么类型可以强制转换

例如,DataPointType.getValue 工具方法中会强制转换

if (dataId == INT_ID) { // 强制转换的数据类型需要和数据点的 id 匹配 int data = DataPointType.getValue(value);

} else if (dataId == BYTE_ARRAY_ID) {

byte[] data = DataPointType.getValue(value);

} else if (data == FLOAT_ID) {

float data = DataPointType.getValue(value);

} }

});

Copyright & copy qinglianyun all right reserved,powered by Gitbook该文件修订时间: 2021-04-22 18:53:48

results matching ""

    No results matching ""