1.2.3.6.5.1 CloudClient 设备上云

优质
小牛编辑
125浏览
2023-12-01

更新时间: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)

    异步回应服务调用

模块示例说明

  1. 在嵌入式 JS 开发工作台上,创建测试工程并导入模块 cloud-client。
  2. 编写测试 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();
        }
      }
    });
  }
);