快速上手
展示最基本的流程
文档说明
文中被删除线标识的接口为旧版SDK不建议使用 , 本次版本可正常使用。
我们将在以后的版本中删除本次弃用的接口。
关于对账号下的设备的的操作,有多个重载方法,可对子用户进行操作
例子:
SubscribeForUsername 订阅消息( 账户的所有设备 )
函数原型:
void SubscribeForUsername() throws MqttException;
可选填子用户名称:
void SubscribeForUsername(String userName) throws MqttException;
接口说明
——— 接口初始化 ———
初始化客户端
initClient 初始化客户端 用法示例:
/**1.继承 UsrCloudMqttClientAdapter */
public class ClientAdapter extends UsrCloudMqttClientAdapter {
/**2.重写 父类的方法*/
public void Connect(String userName, String passWord) throws MqttException {
super.Connect(userName, passWord);
}
}
创建一个类继承自 UsrCloudMqttClientAdapter 重写父类方法
class ClientAdapter extends UsrCloudMqttClientAdapter {}
客户端高级参数简单说明
属性名 | 属性值 | 说明 |
---|---|---|
CleanSession | true | 做了特殊处理 |
ConnectionTimeout | 20s | 连接超时时间(秒) |
KeepAliveInterval | 600s | 心态间隔(秒) |
MaxInflight | 100 | 最大飞行时间 |
AutomaticReconnect | true | 自动重连; |
MaxInflight
含义:The max inflight limits to how many messages we can send without receiving acknowledgments.
MaxInflight
使用注意: please increase this value in a high traffic environment;有人SDK 默认为100条,如流量不能满足请联系技术支持。
AutomaticReconnect
规则:
in the event that the connection is lost, the client will attempt to reconnect to the server. It will initially wait 1 second before it attempts to reconnect, for every failed reconnect attempt, the delay will double until it is at 2 minutes at which point the delay will stay at 2 minutes.
初始化客户端回调
initClientCallback 初始化客户端回调 用法示例:
/**1.继承 UsrCloudMqttCallbackAdapter */
public class ClinetCallbackAdapter extends UsrCloudMqttCallbackAdapter {
/**2.重写 父类的方法*/
public void onConnectAck(int returnCode, String description) {
super.onConnectAck(returnCode, Description);
}
}
创建一个类继承自 UsrCloudMqttCallbackAdapter 重写父类方法
class ClinetCallbackAdapter extends UsrCloudMqttCallbackAdapter{}
——— 连接和断开 ———
onConnectAck 连接响应回调函数
onConnectAck 响应回调函数 用法示例:
/**1.继承 UsrCloudMqttCallbackAdapter */
public class ClinetCallbackAdapter extends UsrCloudMqttCallbackAdapter {
/**2.重写 onConnectAck 方法*/
public void onConnectAck(int returnCode, String description) {
super.onConnectAck(returnCode, Description);
}
}
函数原型:
onConnectAck(int returnCode, String description);
onConnectAck 定义
参数 | 描述 | |
---|---|---|
returnCode | 返回码 | |
description | 返回码代表的含义 |
可能的返回码如下:
注意:返回码0x02
才是真正完成与服务器的连接
返回码 | 返回码代表的含义 | |
---|---|---|
0x00 | 连接成功 | |
0x01 | 连接断开 | |
0x02 | 与服务器完成连接 | |
0x03 | 与服务器连接断开 |
Connect 连接
Connect 连接 用法示例:
public void connect() throws MqttException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();
/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();
/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);
/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");
}
函数原型:
void Connect(String userName, String passWord) throws MqttException;
注意:务必收到回调函数中的返回码为0x02
“与服务完成连接”后再进行订阅和发布操作。必要情况下可手动增加延时
参数 | 描述 | |
---|---|---|
userName | 用户名 | |
passWord | 密码 |
返回值 | 描述 | |
---|---|---|
无返回值 | 最终有没有连接成功,要通过 onConnectAck 设置的回调函数来判断。 |
ConnectByToken 连接
Connect 连接 用法示例:
public void ConnectByToken() throws MqttException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();
/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();
/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);
/* 4.进行连接 */
clientAdapter.ConnectByToken("testuser", "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJyb2NrIiwidWlkIjo4MzE4LCJ.....");
}
函数原型:
void ConnectByToken(String userName, String token) throws MqttException;
注意:务必收到回调函数中的返回码为0x02
“与服务完成连接”后再进行订阅和发布操作。必要情况下可手动增加延时
参数 | 描述 | |
---|---|---|
userName | 用户名 | |
token | 登陆凭证 |
返回值 | 描述 | |
---|---|---|
无返回值 | 最终有没有连接成功,要通过 onConnectAck 设置的回调函数来判断。 |
DisConnect 断开连接
DisConnect 连接 用法示例:
public boolean disConnect() throws MqttException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();
/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();
/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);
/* 4.取消连接 */
return clientAdapter.DisConnect();
}
函数原型:
boolean DisConnect() throws MqttException;
返回值 | 描述 |
---|---|
boolean | 成功返回 true ,失败返回 false |
——— 订阅消息 ———
onSubscribeAck 订阅响应 回调函数
onSubscribeAck 响应 回调 用法示例:
/**继承 UsrCloudMqttCallbackAdapter*/
public class ClinetCallbackAdapter extends UsrCloudMqttCallbackAdapter {
/**重写 onSubscribeAck 函数*/
public void onSubscribeAck(int messageId, String clientId, String topics, int returnCode) {
super.onSubscribeAck(messageId, clientId, topics,returnCode);
}
}
函数原型:
onSubscribeAck(int messageId, String clientId, String topics, int returnCode);
参数 | 描述 |
---|---|
messageId | 消息ID。 |
clientId | 客户端ID。 |
topics | 订阅主题 |
returnCode | 返回码 |
可能的返回码如下:
返回码 | 返回码代表的含义 |
---|---|
0x00 | 订阅成功 |
0x01 | 订阅失败 |
onDisSubscribeAck 取消订阅响应 回调函数
onDisSubscribeAck 响应 回调 用法示例:
/**继承 UsrCloudMqttCallbackAdapter*/
public class ClinetCallbackAdapter extends UsrCloudMqttCallbackAdapter {
/**重写 onDisSubscribeAck 函数*/
public void onDisSubscribeAck(int messageId, String clientId, String topics, int returnCode) {
super.onDisSubscribeAck(messageId, clientId, topics,returnCode);
}
}
函数原型:
onDisSubscribeAck(int messageId, String clientId, String topics, int returnCode);
参数 | 描述 |
---|---|
messageId | 消息ID。 |
clientId | 客户端ID。 |
topics | 订阅主题 |
returnCode | 返回码 |
可能的返回码如下:
返回码 | 返回码代表的含义 |
---|---|
0x00 | 取消订阅成功 |
0x01 | 取消订阅失败 |
———— 云交换机操作 ————
SubscribeforDevId 订阅消息( 单个设备 )
SubscribeforDevId 订阅消息 用法示例:
public void SubscribeForDevId() throws MqttException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();
/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();
/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);
/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");
/* 5.订阅消息(单个设备)*/
clientAdapter.SubscribeForDevId("123456");
}
函数原型:
void SubscribeForDevId(String devId) throws MqttException;
参数 | 描述 |
---|---|
devId | 设备ID。指定要订阅哪个设备发来的消息。 |
返回值 | 描述 |
---|---|
无返回值 | 最终订阅结果要通过 onSubscribeAck 设置的回调函数来判断。 |
SubscribeForUsername 订阅消息( 账户的所有设备 )
SubscribeForUsername 订阅账号下的所有设备 用法示例:
public void SubscribeForUsername() throws MqttException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();
/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();
/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);
/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");
/* 5.订阅消息(账户的所有设备) */
clientAdapter.SubscribeForUsername();
}
函数原型:
void SubscribeForUsername() throws MqttException;
可选填子用户名称:
void SubscribeForUsername(String userName) throws MqttException;
返回值 | 描述 |
---|---|
无返回值 | 最终订阅结果要通过 onSubscribeAck 设置的回调函数来判断。 |
DisSubscribeforDevId 取消订阅( 单个设备 )
DisSubscribeforDevId 取消订阅 用法示例:
public void DisSubscribeforDevId() throws MqttException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();
/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();
/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);
/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");
/* 5.取消订阅消息(单个设备) */
clientAdapter.DisSubscribeforDevId("1234");
}
函数原型:
void DisSubscribeforDevId(String devId) throws MqttException;
参数 | 描述 | |
---|---|---|
devId | 设备ID。指定要取消订阅哪个设备。 | |
返回值 | 描述 | |
---|---|---|
void | 最取消订阅结果要通过 onDisSubscribeAck 设置的回调函数来判断 |
DisSubscribeforuName 取消订阅( 账户下的所有设备 )
DisSubscribeforuName 取消订阅 用法示例:
public void DisSubscribeforuName() throws MqttException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();
/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();
/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);
/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");
/* 5.取消订阅消息(账户下所有设备) */
clientAdapter.DisSubscribeforuName();
}
函数原型:
void DisSubscribeforuName() throws MqttException;
可选填子用户名称:
void DisSubscribeforuName(String userName) throws MqttException;
返回值 | 描述 |
---|---|
void | 最取消订阅结果要通过 onDisSubscribeAck 设置的回调函数来判断 |
———— 云组态操作 ————
SubscribeParsedByDevId 订阅已解析的消息(单个设备)
SubscribeParsedByDevId 订阅已解析的消息 用法示例:
public void SubscribeForDevId() throws MqttException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();
/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();
/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);
/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");
/* 5.订阅消息(单个设备)*/
clientAdapter.SubscribeParsedByDevId("123456");
}
函数原型:
void SubscribeParsedByDevId(String devId) throws MqttException;
参数 | 描述 | |
---|---|---|
devId | 设备ID。指定要订阅哪个设备发来的消息。 | |
返回值 | 描述 | |
---|---|---|
无返回值 | 最终订阅结果要通过 onSubscribeAck 设置的回调函数来判断。 |
SubscribeParsedForUsername 订阅消息( 账户的所有设备的监控状态变化 )
SubscribeParsedForUsername 订阅账号下的所有设备的监控状态变化 用法示例:
public void SubscribeParsedForUsername() throws MqttException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();
/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();
/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);
/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");
/* 5.订阅消息(账户的所有设备) */
clientAdapter.SubscribeParsedForUsername();
}
函数原型:
void SubscribeParsedForUsername() throws MqttException;
可选填子用户名称:
void SubscribeParsedForUsername(String userName) throws MqttException;
返回值 | 描述 | |
---|---|---|
无返回值 | 最终订阅结果要通过 onSubscribeAck 设置的回调函数来判断。 |
SubscribeAllDevParsedForUsername 订阅消息( 账户的所有设备的数据变化 )
SubscribeAllDevParsedForUsername 订阅账号下的所有设备的数据变化 用法示例:
public void SubscribeAllDevParsedForUsername() throws MqttException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();
/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();
/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);
/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");
/* 5.订阅消息(账户的所有设备) */
clientAdapter.SubscribeAllDevParsedForUsername();
}
函数原型:
void SubscribeAllDevParsedForUsername() throws MqttException;
可选填子用户名称:
void SubscribeAllDevParsedForUsername(String userName) throws MqttException;
返回值 | 描述 | |
---|---|---|
无返回值 | 最终订阅结果要通过 onSubscribeAck 设置的回调函数来判断。 |
DisSubscribeParsedforDevId 取消订阅已解析的消息( 单个设备 )
DisSubscribeParsedforDevId 取消订阅已解析的消息 用法示例:
public void DisSubscribeParsedforDevId() throws MqttException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();
/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();
/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);
/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");
/* 5.取消订阅消息(单个设备) */
clientAdapter.DisSubscribeParsedforDevId("1234");
}
函数原型:
void DisSubscribeParsedforDevId(String devId) throws MqttException;
参数 | 描述 |
---|---|
devId | 设备ID。指定要取消订阅哪个设备。 |
返回值 | 描述 |
---|---|
void | 最取消订阅结果要通过 onDisSubscribeAck 设置的回调函数来判断 |
DisSubscribeParsedForUsername 取消订阅账号下的所有设备的监控状态变化( 账户下的所有设备 )
DisSubscribeParsedForUsername 取消订阅账号下的所有设备的监控状态变化 用法示例:
public void DisSubscribeParsedForUsername() throws MqttException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();
/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();
/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);
/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");
/* 5.取消订阅消息(账户下所有设备) */
clientAdapter.DisSubscribeParsedForUsername();
}
函数原型:
void DisSubscribeParsedForUsername() throws MqttException;
可选填子用户名称:
void DisSubscribeParsedForUsername(String userName) throws MqttException;
返回值 | 描述 |
---|---|
void | 最取消订阅结果要通过 onDisSubscribeAck 设置的回调函数来判断 |
DisSubscribeAllDevParsedForUsername 取消订阅账号下的所有设备的数据变化( 账户下的所有设备 )
DisSubscribeAllDevParsedForUsername 取消订阅账号下的所有设备的监控状态变化 用法示例:
public void DisSubscribeAllDevParsedForUsername() throws MqttException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();
/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();
/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);
/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");
/* 5.取消订阅消息(账户下所有设备) */
clientAdapter.DisSubscribeAllDevParsedForUsername();
}
函数原型:
void DisSubscribeAllDevParsedForUsername() throws MqttException;
可选填子用户名称:
void DisSubscribeAllDevParsedForUsername(String userName) throws MqttException;
返回值 | 描述 |
---|---|
void | 最取消订阅结果要通过 onDisSubscribeAck 设置的回调函数来判断 |
——— 推送消息 ———
onPublishDataAck 推送响应 回调函数
onPublishDataAck 用法示例:
/**继承 UsrCloudMqttCallbackAdapter*/
public class ClinetCallbackAdapter extends UsrCloudMqttCallbackAdapter {
/**重写 onPublishDataAck 函数*/
public void onPublishDataAck(int messageId, String topic, boolean isSuccess) {
super.onPublishDataAck(messageId, topic, isSuccess);
}
}
函数原型:
void onPublishDataAck(int messageId, String topic, boolean isSuccess);
参数 | 描述 |
---|---|
messageId | 消息ID。 |
topic | 推送主题 |
isSuccess | 推送标识符。 |
可能的标识符如下:
标识符 | 标识符代表的含义 |
---|---|
true | 推送成功 |
false | 推送失败 |
onPublishDataResult 本次推送结果回调函数
onPublishDataResult 用法示例:
/**继承 UsrCloudMqttCallbackAdapter*/
public class ClinetCallbackAdapter extends UsrCloudMqttCallbackAdapter {
/**重写 onPublishDataAck 函数*/
public void onPublishDataResult(int messageId, String topic) {
super.onPublishDataResult(messageId, topic);
}
}
函数原型:
void onPublishDataResult(int messageId, String topic);
参数 | 描述 |
---|---|
messageId | 消息ID |
topic | 本次推送主题 |
可通过onPublishDataResult
的messageId和onPublishDataAck
的messageId比对确定发送消息是否对应。
———— 云交换操作 ————
publishForDevId 推送数据(向单个设备)
publishForDevId 用法示例:
public void publishForDevId() throws MqttException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();
/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();
/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);
/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");
/* 5.初始化测试数据 */
byte[] data = { 0x00, 0x01, 0x02 };
/* 6.发送数据 */
clientAdapter.publishForDevId("1234", data);
}
函数原型:
void publishForDevId(String devId, byte[] data) throws MqttException;
参数 | 描述 |
---|---|
devId | 设备ID,指定要把数据发给哪个设备。只能填一个。 |
data | 要发送的数据。 |
返回值 | 描述 |
---|---|
无返回值 | 最终推送结果要通过 onPublishDataAck 设置的回调函数来判断。 |
publishForuName 推送数据(向账户下的所有设备)
publishForuName 用法示例:
public void publishForuName() throws MqttException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();
/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();
/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);
/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");
/* 5.初始化测试数据 */
byte[] data = { 0x00, 0x01, 0x02 };
/* 6.发送数据 */
clientAdapter.publishForuName(data);
}
函数原型:
void publishForuName(byte[] data) throws MqttException;
可选填子用户名称:
void publishForuName(String userName , byte[] data) throws MqttException;
参数 | 描述 |
---|---|
data | 要发送的数据。 |
返回值 | 描述 |
---|---|
无返回值 | 最终推送结果要通过 onPublishDataAck 设置的回调函数来判断。 |
———— 云组态操作 ————
publishParsedSetDataPoint 设置单个数据点值
publishParsedSetDataPoint 用法示例:
public void publishParsedSetDataPoint() throws MqttException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();
/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();
/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);
/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");
/* 5.发送数据 */
clientAdapter.publishParsedSetDataPoint("00001234","1","12","12.00");
}
函数原型:
void publishParsedSetDataPoint(String devId, String slaveIndex, String pointId, String value) throws MqttException;
参数 | 描述 |
---|---|
devId | 设备ID |
slaveIndex | 从机序号 |
pointId | 数据点ID |
value | 数据点的值 |
返回值 | 描述 |
---|---|
无返回值 | 暂无回调 |
publishParsedQueryDataPoint 查询单个数据点值
publishParsedQueryDataPoint 用法示例:
public void publishParsedQueryDataPoint() throws MqttException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();
/* 2.初始化客户端回调适配 */
ClinetCallbackAdapter clinetCallbackAdapter = new ClinetCallbackAdapter();
/* 3.客户端设置回调 */
clientAdapter.setUsrCloudMqttCallback(clinetCallbackAdapter);
/* 4.进行连接 */
clientAdapter.Connect("testuser", "testuser");
/* 5.发送数据 */
clientAdapter.publishParsedQueryDataPoint("00001234", "1", "12");
}
函数原型:
void publishParsedQueryDataPoint(String devId, String slaveIndex, String pointId) throws MqttException;
参数 | 描述 |
---|---|
devId | 设备ID |
slaveIndex | 从机序号 |
pointId | 数据点ID |
返回值 | 描述 |
---|---|
无返回值 | 暂无回调 |
——— 接收消息 ———
———— 交换机操作 ————
onReceiveEvent 收到数据 回调函数
onReceiveEvent 用法示例:
public class ClinetCallbackAdapter extends UsrCloudMqttCallbackAdapter {
public void onReceiveEvent(int messageId, String topic, byte[] data) {
super.onReceiveEvent(messageId, topic, data);
}
}
函数原型:
void onReceiveEvent(int messageId, String topic, byte[] data);
参数 | 描述 |
---|---|
messageId | 消息ID |
topic | 主题消息来源 |
data | 收到的数据 |
———— 云组态操作 ————
onReceiveParsedEvent 收到已解析数据的回调函数
onReceiveParsedEvent 用法示例:
public class ClinetCallbackAdapter extends UsrCloudMqttCallbackAdapter {
public void onReceiveParsedEvent(int messageId, String topic, String jsonData) {
super.onReceiveParsedEvent(messageId, topic, jsonData);
}
}
函数原型:
void onReceiveParsedEvent(int messageId, String topic, String jsonData);
参数 | 描述 |
---|---|
messageId | 消息ID |
topic | 主题消息来源。 |
jsonData | 已解析的收到的数据 |
常见返回JsonData举例
数据点操作应答
(目前只用于 COAP类型的设备,并且设备作为 modbus 主机)
{
"optionResponse": [
{
"result":"1", //1 操作成功 0 代表不成功
"dataId":"100",//数据点,如果是透传那么该字段为空
"option":"1" //1.数据处于待发送状态 2.数据已发送
}
],
"devName":"123"
}
设备上下线推送
{
"devStatus":
{
"devName":"123",
"status":1 //1 上线 0 下线
}
}
设备报警推送
{
"devAlarm": {
"devName":"123",
"pointId":"123", //数据点 id
"dataName":"温度", //数据点名称
"value":"12.11", //触发报警值
"alarmValue":"12.00", //设定的报警值
"alarmCondition":"0", //开关 ON(0)、开关 OFF(1)、数值低于(2)、数值高于(3)、数值介于(4)、数值高于 max 低于 min(5),
"alarmState":"1" //报警状态 开始报警(1) 、恢复正常(0)
}
}
——— 工具类 ———
USRToolBytesToUtf8str 字节数组转UTF8的字符串
USRToolBytesToUtf8str 用法示例:
public void USRToolBytesToUtf8str() throws UnsupportedEncodingException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();
/* 2.调用函数 */
String result = clientAdapter.USRToolBytesToUtf8str(byte[]...);
}
函数原型:
String USRToolBytesToUtf8str(byte[] data) throws UnsupportedEncodingException;
参数 | 描述 |
---|---|
data | 字节数组 |
USRToolUtf8strToBytes 字符串转utf-8数组
USRToolUtf8strToBytes 用法示例:
public void USRToolUtf8strToBytes() throws UnsupportedEncodingException {
/* 1.初始化客户端适配 */
ClientAdapter clientAdapter = new ClientAdapter();
/* 2.调用函数 */
byte[] result = clientAdapter.USRToolUtf8strToBytes(String data);
}
函数原型:
byte[] USRToolUtf8strToBytes(String data) throws UnsupportedEncodingException;
参数 | 描述 |
---|---|
data | 字符串 |
常见问题
Jar版本差异
配置 用法示例:
android {
compileSdkVersion 25
buildToolsVersion 25.0.3
defaultConfig {
...
jackOptions {
enabled true
}
}
dexOptions {
incremental true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
Error:Error converting bytecode to dex:
Cause: Dex cannot parse version 52 byte code.
This is caused by library dependencies that have been compiled using Java 8 or above.
If you are using the ‘java’ gradle plugin in a library submodule add
targetCompatibility = ‘1.7’
sourceCompatibility = ‘1.7’
to that submodule’s build.gradle file.
原因简要说明:
jar包是基于jdk 1.8的 如果编译工具低于1.8会报以上编译异常
解决方法:
在Module的build.gradle配置文件中 加上一下配置 使你的项目适配JDK1.8。
jackOptions{
enabled true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
更新历史
版本 | 日期 | 更新内容 | 更新人 |
---|---|---|---|
1.0 | 2017-7-18 | 初版 | 石志远 |
1.1 | 2017-11-30 | 增加云组态操作,增加推送Result响应 | 石志远 |
1.2 | 2017-1-8 | 设备下增加从机概念,删除上个版本弃用接口 | 石志远 |
1.3 | 2017-5-2 | 1.云组态增加订阅账号下的所有设备的数据变化 2.增加订阅推送到子用户函数 3.增加token连接方法 4.增加两个工具类接口 | 石志远 |