NAV
javascript

准备工作

一、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数据
asdf