CloudClient 设备上云
更新时间:2018-09-14 20:34:55
CloudClient 模块可以让设备直接与 Link Develop 平台直接相连,将设备端的属性/事件上报到 LD 平台上,也可以接收从云端(LD)下发命令和函数。CloudClient 模块直接使用TinyEngine的MQTT本地扩展对象的API。
接口说明
start(config, cb)
启动CloudClient,根据传递的配置参数,调用MQTT和服务连接
-config:配置参数
设备的三元组,格式如下,在LD创建一个产品和设备时产生:
{
productKey: "XXX"xxxxxx
deviceName: "XXXX"xxxx
deviceSecret: "xxxx"
domain: "xxxxx"
port:"XXXXX"
}
-cb:回调函数,设备连接成功,失败是调用,或云端下发命令,服务时,调用该回调函数;
postProperty(params, cb)
主动上报属性到云端;
-params 上报的属性,格式如下:
{ LightSwitch: 0 } 其中 ‘LightSwitch’ 为创建产品时,命名的设备属性名,‘0’ 为属性值;
postEvent(eventName, params, cb)
主动上报事件到云端;
eventName 事件名,为创建产品时,命名的设备事件名称,如:
‘TURN_ON’params 事件参数
replySyncService(msgid, data, cb)
同步回应服务调用
replyAsyncService(serviceName, data, cb)
异步回应服务调用
模块示例说明
- 在嵌入式 JS 开发工作台上,创建测试工程并导入模块 cloud-client。
- 编写测试 index.js 文件。
var cloudClient = require("cloud-client");
console.log("=================================");
console.log(" demo-linkdevelop ");
console.log("=================================");
function lightOn() {
console.log("lightOn");
#上报灯的属性”LightSwitch“,属性值:”1“,灯已打开,到云端
cloudClient.postProperty({ LightSwitch: 1 });
}
function lightOff() {
console.log("lightOff");
#上报灯的属性”LightSwitch“,属性值:”1“ ,灯已关闭,到云端
cloudClient.postProperty({ LightSwitch: 0 });
}
##连接云端的LD平台
cloudClient.start(
{
#设备三元组
productKey: "xxxx",
deviceName: "xxxx",
deviceSecret: "xxxx"
},
function(err, data) {
console.log("onStart");
if (err) {
return;
}
#回调处理函数,云端设置设备端的属性或状态,设置灯打开或者关闭;
cloudClient.onPropertySet(function(msg) {
if (msg.method === "thing.service.property.set") {
if (msg.params.LightSwitch === 1) {
lightOn();
} else {
lightOff();
}
}
});
}
);