| 2017-02-04 10:16:25
jquery.min.js / welinker.js
配置sdk的 loginKey 为前面注册申请的key 此开发板有4个led灯 比如需要控制 LED1 灯的开与硬件端对商定的协议命令为: LED1=N LED2=O LED3=O LED4=O ok控制灯的命令我们已经知道,下面就通过sdk下发命令
var cmdStr = "LED1=N LED2=O LED3=O LED4=O"; //命令字符串 其于不同的设备只需改动此命令即可现实控制,前提命令是跟硬件层沟通好的 var out = new ArrayBuffer(cmdStr.length); //创建一个buffer var u8a = new Uint8Array(out); //通过buffer 建立一个数组 注意数据必须是Uint8Array的 sdk通过全部采用字节通信 var o = 0; var strs = cmdStr.split(""); for (var k = 0; k < strs.length; k++) { u8a[o++] = strs[k].charCodeAt(); //把命令封装到数组当中 }; //调用sdk下发控制命令 var deviceid = 0x10010000; //不同设备类型id不一样。 var thid = "00000064000E0001"; //设备id var returnNum = 0; //此次命令是否需要硬件回数据的条数控制默认可以不用回 var returnWait=1000*3 //命令下达超时时间 默认3秒 welinker.DeviceControl(thid, deviceid, 0, 3000, out); 至此控制命令已经完成 如果我们界面上需要显示设备的时时状态数据,那我们就需要注册回调涵数来处理 welinker.CallBackonMessage(message); //注册信息回调函数 一句话。简单吧 //自己申请的函数。处理设备云回发的数据 function message(type, result, data) { ///参数说明 ///type 回发的数据类型 login ///result 状态 ///data数据 为字节 if (type == "Login") { deviceAutoReadState = false; if (result == 0) { //当登录成功后 调用下读取设备的数据 SmartHomeDeviceMonitoringInformation(); } else { alert("当前网络不可用,请检查你的网络设置!"); } return; } if (type == "DeviceAutoRead") { //判断是否要重启DeviceAutoRead机制 if (result == 0) { deviceAutoReadState = true; } else { deviceAutoReadState = false } } if (result == -13) { //结果是-13说明设备离线了 alert("你的设备已离线,请检查设备网络!"); } var length = 0; //获取设备上来的数据长度 length |= data[8] << 8; length |= data[9] << 0; //从那个开始 到那个结束 把纯设备数据取出来 var resultData = data.slice(10, data.length); if (result == 0) { var val = ""; //转换出来后的字符串 for (var i = 0; i < resultData.length; i++) { val += String.fromCharCode(resultData[i]); } alert("String :" + val); //处理灯的状态显示 判断是否有LED1灯的状态 if (val.indexOf("LED1=") >= 0) { var index = val.indexOf("LED1=") + 5; var value = val.substr(index, 1); //取到值 alert(“LED1灯的状态:”+value); }; //判断是否有LED2灯的状态 if (val.indexOf("LED2=") >= 0) { var index = val.indexOf("LED2=") + 5; var value = val.substr(index, 1); alert(“LED2灯的状态:”+value); }; //判断是否有LED3灯的状态 if (val.indexOf("LED3=") >= 0) { var index = val.indexOf("LED3=") + 5; var value = val.substr(index, 1); alert(“LED3灯的状态:”+value); }; //判断是否有LED4灯的状态 if (val.indexOf("LED4=") >= 0) { var index = val.indexOf("LED4=") + 5; var value = val.substr(index, 1); alert(“LED4灯的状态:”+value); }; }; }; var deviceAutoReadState = false; function SmartHomeDeviceMonitoringInformation() { //此为读设备状态命令 if (deviceAutoReadState == false) { welinker.DeviceAutoRead(thid, deviceid, "LedState", 3000); } }; //errno 状态表示说明 //#define SBC_ERR_OK 0 //#define SBC_ERR_NOTHING -1 //#define SBC_ERR_NODEVICE -2 //#define SBC_ERR_LOCKED -3 //#define SBC_ERR_TIMEOUT -4 //#define SBC_ERR_INTASK -5 //#define SBC_ERR_CRC -6 //#define SBC_ERR_APPKEY -7 //#define SBC_ERR_INVARG -8 //#define SBC_ERR_NOMEM -9 //#define SBC_ERR_ISSLAVE -10 //#define SBC_ERR_OUTSERVICE -11 //#define SBC_ERR_UNKNOW -12 //#define SBC_ERR_OFFLINE -13Demo 点击下载 | 在线体验