123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- var mid=1;
- function getMid(){
- mid++;
- if(mid>10000){
- mid=1;
- }
- return mid;
- };
- function getPkDn(deviceKey){
- var arr=deviceKey.split("_");
- return {
- pk:arr[1],
- dn:deviceKey
- };
- }
- function register(data){
- var device=getPkDn(data.data.deviceName)
- var subDevicesList=data.data.subDevices
- var subDevices=[]
- if(subDevicesList!=undefined&&subDevicesList.length>0){
- apiTool.log("device:"+subDevicesList);
- for (var i = 0; i < subDevicesList.length; i++) {
- var deviceKey=subDevicesList[i]
- var subDevice=getPkDn(deviceKey)
- subDevices.push({
- productKey:subDevice.pk,
- deviceName:subDevice.dn,
- model:''
- })
- }
- }
- var reply=
- {
- productKey:device.pk,
- deviceName:device.dn,
- mid:"0",
- content:{
- id:data.id,
- type:data.type,
- result:'success'
- }
- };
- var data={
- productKey:device.pk,
- deviceName:device.dn
- }
- if(subDevices.length>0){
- data['subDevices']=subDevices
- }
- apiTool.log("subDevices:"+JSON.stringify(data));
- return {
- type:"register",
- data:data,
- action:{
- type:"ack",
- content:JSON.stringify(reply)
- }
- };
- }
- function online(data){
- apiTool.log("data:"+JSON.stringify(data));
- var device=getPkDn(data.data.deviceName)
- return {
- type:"state",
- data:{
- productKey:device.pk,
- deviceName:device.dn,
- state:data.type
- }
- };
- }
- function offline(data){
- var device=getPkDn(data.deviceKey)
- return {
- type:"state",
- data:{
- productKey:device.pk,
- deviceName:device.dn,
- state:data.type
- }
- };
- }
- //必须提供onReceive方法
- this.onReceive=function(head,type,payload){
- var data=JSON.parse(payload)
- if(data.type=="register"){
- apiTool.log("data:"+payload);
- return register(data)
- }else if(data.type=="online"){
- return online(data);
- }else if(data.type=="offline"){
- return offline(data);
- }
- return {
- productKey:"",
- deviceName:"",
- mid:0,
- content:{
- }
- }
- };
- this.onRegistered=function (data,status) {
- apiTool.log("onRegistered调用");
- }
|