准备工作
一、web
1.mqttws31.js
2.usrCloud.js
二、微信小程序
1.mqttwsWx31.js
2.usrCloudWx.js
接口说明
> USR_Init(初始化)
DEMO:
/*1.web*/var usrCloud = new UsrCloud();/*定义回调函数*/var callback = { USR_onConnAck: USR_onConnAck, USR_onConnLost: USR_onConnLost, USR_onSubscribeAck: USR_onSubscribeAck, USR_onUnSubscribeAck: USR_onUnSubscribeAck, USR_onRcvParsedDataPointPush: USR_onRcvParsedDataPointPush, USR_onRcvParsedOptionResponseReturn: USR_onRcvParsedOptionResponseReturn, USR_onRcvParsedDevStatusPush: USR_onRcvParsedDevStatusPush, USR_onRcvRawFromDev:USR_onRcvRawFromDev, USR_onRcvParsedDevAlarmPush:USR_onRcvParsedDevAlarmPush};var code = usrCloud.Usr_Init(host, port, version, callback));
/*1.web*/var UsrCloud = require('usrCloudWx.js');var usrCloud = new UsrCloud();/*定义回调函数*/var callback = { USR_onConnAck: USR_onConnAck, USR_onConnLost: USR_onConnLost, USR_onSubscribeAck: USR_onSubscribeAck, USR_onUnSubscribeAck: USR_onUnSubscribeAck, USR_onRcvParsedDataPointPush: USR_onRcvParsedDataPointPush, USR_onRcvParsedOptionResponseReturn: USR_onRcvParsedOptionResponseReturn, USR_onRcvParsedDevStatusPush: USR_onRcvParsedDevStatusPush, USR_onRcvRawFromDev:USR_onRcvRawFromDev, USR_onRcvParsedDevAlarmPush:USR_onRcvParsedDevAlarmPush};var code = usrCloud.Usr_Init(host, port, version, callback));
函数原型:USR_Init(host, port, version, callback);
参数 | 描述 |
---|---|
host | 服务器地址[clouddata.usr.cn] |
port | 端口[8080] |
version | 指定你想使用的版本号,必须 <= 函数USR_GetVer查询到的最高版本号,2。 |
callback | 回调函数(USR_onConnAck: 连接回调, USR_onConnLost: 连接断开回调, USR_onSubscribeAck: 订阅响应回调, USR_onUnSubscribeAck:取消订阅响应回调 , USR_onRcvParsedDataPointPush:接收将数据点数据解析成json后的回调, USR_onRcvParsedOptionResponseReturn接收数据发送状态回调, USR_onRcvParsedDevStatusPush:接收解析后上下线推送数据回调, USR_onRcvParsedDevAlarmPush:接收解析后报警数据回调, USR_onRcvRawFromDev:接收设备原始数据回调 ) |
返回值 | 描述 |
---|---|
0 | 执行成功 |
1 | 参数错误 |
2 | 版本错误 |
> USR_GetVer(获取SDK版本)
DEMO:
var version = usrCloud.USR_GetVer();
函数原型:
USR_GetVer();
返回值 | 描述 |
---|---|
number | SDK版本号 |
> USR_Connect(建立连接)
DEMO:
var code=usrCloud.USR_Connect(username, password);
函数原型:
USR_Connect(username, password)
参数 | 描述 |
---|---|
username | 用户名 |
password | 密码(md5加密) |
返回值 | 描述 |
---|---|
0 | 连接成功 |
1 | 用户名为空 |
2 | 密码为空 |
3 | 连接失败 |
> USR_DisConnect(断开连接)
DEMO:
usrCloud.USR_DisConnect();
函数原型:USR_DisConnect()
————-云交换机操作————-
> USR_SubscribeDevRaw(订阅设备原始数据流)
DEMO:
var code = usrCloud.USR_SubscribeDevRaw("00007867000000000001");
函数原型:USR_SubscribeDevRaw(devId)
参数 | 描述 |
---|---|
devId | 设备ID。指定要订阅哪个设备发来的消息。如果要订阅多个,请用逗号隔开;如果要订阅帐号下所有的设备的消息,请传入空。 |
返回值 | 描述 |
---|---|
0 | 订阅成功 |
1 | 尚未建立连接 |
2 | 参数格式错误 |
3 | 已经订阅该设备 |
> USR_UnSubscribeDevRaw(取消订阅设备原始数据流)
DEMO:
var code = usrCloud.USR_UnSubscribeDevRaw("00007867000000000001");
函数原型:USR_UnSubscribeDevRaw(devId)
参数 | 描述 |
---|---|
devId | 设备ID。指定要取消订阅哪个设备发来的消息。如果要取消订阅多个,请用逗号隔开;如果要取消订阅帐号下所有的设备的消息,请传入空。 |
返回值 | 描述 |
---|---|
0 | 取消订阅成功 |
1 | 尚未建立连接 |
2 | 参数格式错误 |
3 | 尚未订阅该设备 |
> USR_SubscribeUserRaw(订阅账号下全部设备的原始数据流)
DEMO:
var code = usrCloud.USR_SubscribeUserRaw("sdktest");
函数原型:USR_SubscribeUserRaw(username)
参数 | 描述 |
---|---|
username | 用户名。指定要订阅哪个账号下设备发来的消息。 |
返回值 | 描述 |
---|---|
0 | 订阅成功 |
1 | 尚未建立连接 |
2 | 参数格式错误 |
3 | 已经订阅该账号 |
> USR_UnSubscribeUserRaw(取消订阅账号下全部设备的原始数据流)
DEMO:
var code = usrCloud.USR_UnSubscribeUserRaw("sdktest");
函数原型:USR_UnSubscribeUserRaw(username)
参数 | 描述 |
---|---|
username | 用户名。指定要取消订阅哪个账号下设备发来的消息。 |
返回值 | 描述 |
---|---|
0 | 取消订阅成功 |
1 | 尚未建立连接 |
2 | 参数格式错误 |
3 | 已经取消订阅该账号 |
————-云组态操作————-
> USR_SubscribeDevParsed(订阅设备解析后的数据)
DEMO:
var code = usrCloud.USR_SubscribeDevParsed("00007867000000000001");
函数原型:USR_SubscribeDevParsed(devId)
参数 | 描述 |
---|---|
devId | 设备ID。指定要订阅哪个设备发来的消息。如果要订阅多个,请用逗号隔开;如果要订阅帐号下所有的设备的消息,请传入空。 |
返回值 | 描述 |
---|---|
0 | 订阅成功 |
1 | 尚未建立连接 |
2 | 参数格式错误 |
3 | 已经订阅该设备 |
> USR_UnSubscribeDevParsed(取消订阅设备解析后的数据)
DEMO:
var code = usrCloud.USR_UnSubscribeDevParsed("00007867000000000001");
函数原型:USR_UnSubscribeDevParsed(devId)
参数 | 描述 |
---|---|
devId | 设备ID。指定要取消订阅哪个设备发来的消息。如果要取消订阅多个,请用逗号隔开;如果要取消订阅帐号下所有的设备的消息,请传入空。 |
返回值 | 描述 |
---|---|
0 | 取消订阅成功 |
1 | 尚未建立连接 |
2 | 参数格式错误 |
3 | 尚未订阅该设备 |
> USR_SubscribeUserParsed(订阅账号下全部设备解析后的数据)
DEMO:
var code = usrCloud.USR_SubscribeUserParsed("sdktest");
函数原型:USR_SubscribeUserParsed(username)
参数 | 描述 |
---|---|
username | 用户名。指定要订阅哪个账号下设备发来的消息。 |
返回值 | 描述 |
---|---|
0 | 订阅成功 |
1 | 尚未建立连接 |
2 | 参数格式错误 |
3 | 已经订阅该账号 |
> USR_UnSubscribeUserParsed(取消订阅账号下全部设备解析后的数据)
DEMO:
var code = usrCloud.USR_UnSubscribeUserParsed("sdktest");
函数原型:USR_UnSubscribeUserParsed(username)
参数 | 描述 |
---|---|
username | 用户名。指定要取消订阅哪个账号下设备发来的消息。 |
返回值 | 描述 |
---|---|
0 | 取消订阅成功 |
1 | 尚未建立连接 |
2 | 参数格式错误 |
3 | 已经取消订阅该账号 |
————-云交换机操作————-
> USR_PublishRawToDev(向单个设备推送原始数据流)
DEMO:
var code = usrCloud.USR_PublishRawToDev("00007867000000000001", [0x31,0x32,0x33]);
函数原型:USR_PublishRawToDev(devId, dataByte)
参数 | 描述 |
---|---|
devId | 设备ID(只能填一个) |
dataByte | 发送数据(字节数组) |
返回值 | 描述 |
---|---|
0 | 发送成功 |
1 | 尚未建立连接 |
2 | 数据过长 |
> USR_PublishRawToUser(向账号下所有设备推送原始数据流)
DEMO:
var code = usrCloud.USR_PublishRawToUser("sdktest", [0x31,0x32,0x33]);
函数原型:USR_PublishRawToUser(username, dataByte)
参数 | 描述 |
---|---|
username | 用户名 |
dataByte | 发送数据(字节数组) |
返回值 | 描述 |
---|---|
0 | 发送成功 |
1 | 尚未建立连接 |
2 | 数据过长 |
————-云组态操作————-
> USR_PublishParsedSetSlaveDataPoint(设置单台设备数据点值)
DEMO:
var code = usrCloud.USR_PublishParsedSetSlaveDataPoint("00007867000000000001", "111","123",1);
函数原型:USR_PublishParsedSetSlaveDataPoint(devId,slaveIndex, pointId, value)
参数 | 描述 |
---|---|
devId | 设备ID |
slaveIndex | 从机序号 |
pointId | 数据点ID |
value | 要设置的数值 |
返回值 | 描述 |
---|---|
0 | 发送成功 |
1 | 尚未建立连接 |
2 | 数据过长 |
> USR_PublishParsedQuerySlaveDataPoint(查询单台设备数据点值)
DEMO:
var code = usrCloud.USR_PublishParsedQuerySlaveDataPoint("00007867000000000001","1","123");
函数原型:USR_PublishParsedQuerySlaveDataPoint(devId, slaveIndex,pointId)
参数 | 描述 |
---|---|
devId | 设备ID |
slaveIndex | 从机序号 |
pointId | 数据点ID |
返回值 | 描述 |
---|---|
0 | 发送成功 |
1 | 尚未建立连接 |
2 | 数据过长 |
定义具体的回调函数,声明位置见初始化
> USR_OnConnAck(连接回调)
DEMO:
var USR_onConnAck=function(event) { /*连接成功*/ if (event.code===0) { alert('连接成功'); } else { /*连接失败*/ alert('连接失败'); } }
触发条件:执行USR_Connect后服务器返回连接成功标识时
返回值 | 描述 |
---|---|
event | code:返回码(0:连接成功,1:连接失败) message:code为0时值为空,code为1时值为错误描述 |
> USR_onConnLost(连接断开回调)
DEMO:
var USR_onConnLost = function(event) { alert('连接断开');}
触发条件:执行USR_DisConnect或异常断开时
返回值 | 描述 |
---|---|
event | message:断开信息 |
> USR_OnSubscribeAck(订阅回调函数)
DEMO:
var USR_OnSubscribeAck = function(event) { /*订阅成功*/ if (event.code===0) { alert('设备/用户'+event.SubParam+'订阅成功'); } else { /*订阅失败*/ alert("订阅失败:" + event.SubFunName); } }
触发条件:订阅主题后服务器返回标识时
返回值 | 描述 |
---|---|
event | code返回码(0:订阅成功,1:订阅失败) SubParam:订阅参数(主题名) SubFunName:订阅函数名称 如:”SubDevRaw” |
> USR_OnUnSubscribeAck(取消订阅响应回调)
DEMO:
var USR_OnUnSubscribeAck = function(event) { /*取消订阅成功*/ if (event.code===0) { alert('设备/用户'+event.SubParam+'取消订阅成功'); } else { /*取消订阅失败*/ alert("取消订阅失败:" + event.SubFunName); } }
触发条件:取消订阅主题后服务器返回标识时
返回值 | 描述 |
---|---|
event | code:返回码(0:取消订阅成功,1:取消订阅失败) SubParam:取消订阅参数(主题名) SubFunName:函数名称 |
————-云交换机操作————-
> USR_OnRcvRawFromDev(接收设备原始数据回调)
DEMO:
var USR_OnRcvRawFromDev = function(event) { alert('设备ID:'+event['devId']+UTF8ToString(event.payload, 0, event.payload.length));}
触发条件:接收设备原始数据后服务器返回标识时
返回值 | 描述 |
---|---|
event | devId:设备ID payload:接收到的原始数据 |
————-云组态操作————-
> USR_OnRcvParsedDataPointPush(接收数据点变化推送回调)
DEMO:
var USR_OnRcvParsedDataPointPush = function(event) { alert('设备ID:'+event['devId']+"数据点json:"+JSON.stringify(event['dataPoints']));}
触发条件:接收到数据点变化推送时
返回值 | 描述 |
---|---|
event | devId:设备ID dataPoints:[{slaveIndex:从机序号,slaveAddr:从机地址,pointId:数据点ID,value:数值},{…},…] |
> USR_OnRcvParsedDevStatusPush(接收设备上下线推送回调)
DEMO:
var USR_OnRcvParsedDevStatusPush = function(event) { var status=''; if(event.status===1){ status='在线'; }else{ status='离线'; } alert('设备ID:'+event['devId'] +'从机序号'+event['slaveIndex']+'在线状态:'+status);}
触发条件:接收设备上下线推送时
返回值 | 描述 |
---|---|
event | devId:设备ID slaveIndex:从机序号 slaveAddr:从机地址 status:在线状态(0/1) |
> USR_OnRcvParsedDevAlarmPush(接收设备报警推送回调)
DEMO:
var USR_OnRcvParsedDevAlarmPush = function(event) { alert('设备名称:'+event['devAlarm']['devName']'设备ID:'+event['devId']+'从机序号'+event['slaveIndex']+'数据点ID:'+event['devAlarm']['pointId']+'数据点名称:'+event['devAlarm']['dataName']+'触发报警值:'+event['devAlarm']['value']+'设定的报警值:'+event['devAlarm']['alarmValue']+'报警规则:'+event['devAlarm']['alarmCondition']);}
触发条件:接收设备报警推送
返回值 | 描述 |
---|---|
event | devId:设备ID devAlarm:{“dataName”:设备名称,’slaveIndex’:从机序号,”slaveAddr”:从机地址,”pointId”:数据点id,”dataName”:数据点名称,”value”:触发报警值,”alarmValue”:设定的报警值,”alarmCondition”:报警规则(>超过设定报警值 <低于设定报警值 =等于设定报警值(常用开关量)),”alarmState”:”状态0代表从报警状态恢复到正常状态,1代表报警“} |
触发条件:接收设备报警推送
返回值 | 描述 |
---|---|
event | devId:设备ID payload:接收数据(字节数组) |
> USR_onRcvParsedOptionResponseReturn(接收数据发送状态回调)
目前只用于 COAP类型的设备,并且设备作为 modbus 主机
DEMO:
var USR_onRcvParsedOptionResponseReturn = function(event) { alert('设备名称'+event['devName']+'设备ID:'+event['devId']+'数据点ID'+event['optionResponse'][0]['dataId']+'结果'+event['optionResponse'][0]['option']+'值:'+event['optionResponse'][0]['value']);}
返回值 | 描述 |
---|---|
event | devName:设备名称 devId:设备ID optionResponse:[{result:”0/1,0代表失败1代表成功“,dataId:数据点id,如果是透传那么该字段为空,option:0/1,1为待发送,2为已发送,value:返回值},{….},….] |
更新历史
版本 | 日期 | 更新内容 | 更新人 |
---|---|---|---|
1.0 | 2017-07-21 | 初版 | 林振男 |
2.1 | 2017-11-18 | 增加json格式数据协议 | 林振男 |
2.2 | 2018-01-10 | 1.增加两个函数: USR_PublishParsedSetSlaveDataPoint USR_PublishParsedQuerySlaveDataPoint 替换掉两个函数: USR_PublishParsedSetDataPoint USR_PublishParsedQueryDataPoin 2.修改JSON数据 |