Socket
Socket
Sign inDemoInstall

qcloud-iotexplorer-bluetooth-adapter-llsync

Package Overview
Dependencies
Maintainers
2
Versions
127
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

qcloud-iotexplorer-bluetooth-adapter-llsync - npm Package Compare versions

Comparing version 1.3.4 to 1.3.6

2

lib/base/LLSync/LLSyncDeviceAdapter.js

@@ -1,2 +0,2 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.StandardDeviceAdapter=exports.LLSyncDeviceAdapter=void 0;var tslib_1=require("tslib"),constants=tslib_1.__importStar(require("../../constants")),qcloud_iotexplorer_appdev_sdk_1=require("qcloud-iotexplorer-appdev-sdk"),constants_1=require("../../constants"),libs_1=require("../../libs"),utils=tslib_1.__importStar(require("../../libs")),Models_1=require("./Models"),LLSyncDeviceAdapterBase_1=require("../LLSyncDeviceAdapterBase"),LLSyncOtaProcessor_1=require("./LLSyncOtaProcessor"),LLSyncProtocol_1=require("./LLSyncProtocol"),arrayBufferToHexStringArray=qcloud_iotexplorer_appdev_sdk_1.AppDevSdk.utils.arrayBufferToHexStringArray,LLSyncDeviceAdapter=function(e){function t(r){var o=e.call(this,r)||this,s=function(e){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return tslib_1.__awaiter(o,void 0,void 0,(function(){return tslib_1.__generator(this,(function(r){switch(r.label){case 0:return[4,this.init()];case 1:return r.sent(),[2,e.apply(void 0,tslib_1.__spread(t))]}}))}))}};o.models=new Models_1.Models(t.options.appDevSdk),o.userIdentify=t.getUserIdentify(),o.on("disconnect",(function(){o.authorized=!1})),o.appDevSdk=t.options.appDevSdk,o.protocol=new LLSyncProtocol_1.LLSyncProtocol(o),o.otaProcessor=new LLSyncOtaProcessor_1.LLSyncOtaProcessor(o),Object.assign(o,{bindDevice:s(o.bindDevice.bind(o)),unbindDevice:s(o.unbindDevice.bind(o)),controlDevice:s(o.controlDevice.bind(o)),controlAction:s(o.controlAction.bind(o)),authenticateConnection:s(o.authenticateConnection.bind(o)),reconnectDevice:s(o.authenticateConnection.bind(o)),startOta:s(o.startOta.bind(o)),cancelOta:s(o.cancelOta.bind(o)),userCancelBindDevice:s(o.protocol.cancelUserCheck.bind(o.protocol,"cancel"))}),o.init(),o.reporter={info:function(e,r){void 0===e&&(e=""),void 0===r&&(r={});var s=r.message,n=void 0===s?"":s,i=r.serviceId,c=tslib_1.__rest(r,["message","serviceId"]),a=o,d=a.explorerDeviceId,l=a.deviceId,u=a.isConnected;t.options.appDevSdk.reporter.info(constants_1.REPORT_EVENT_TYPE,{serviceId:i||t.serviceId,message:n||(e&&constants.ACTION_DESC[e]?e+"("+constants.ACTION_DESC[e]+")":e),timeCost:c.timeCost||0,action:e,data:tslib_1.__assign({deviceId:d,bleDeviceId:l,isConnected:u},c)})},error:function(e,r){void 0===e&&(e=""),void 0===r&&(r={});var s=r.error,n=tslib_1.__rest(r,["error"]),i=o,c=i.explorerDeviceId,a=i.deviceId,d=i.isConnected;s.code&&constants.ERROR_MESSAGES[s.code]&&(s.msg=constants.ERROR_MESSAGES[s.code]),t.options.appDevSdk.reporter.error(constants_1.REPORT_EVENT_TYPE,{message:constants.ERROR_MESSAGES[e]?e+"("+constants.ERROR_MESSAGES[e]+":"+(s&&(s.message||s.errMsg||s.msg||s.code))+")":"",timeCost:n.timeCost||0,action:e,error:s,data:tslib_1.__assign(tslib_1.__assign({deviceId:c,bleDeviceId:a,isConnected:d},n),s)})}};var n=function(e){var t=e.deviceId,r=e.deviceData;if(console.log("llsync receive onControl",t,r),o.ready&&t===o.explorerDeviceId){var s={};Object.keys(r).forEach((function(e){s[e]=r[e].Value})),o.controlDevice({deviceData:s})}},i=function(e){var t=e.deviceId,r=e.Payload;o.ready&&t!==o.explorerDeviceId||o.controlAction({actionData:r})};return o.on("authorized",(function(){o.init(!0),o.appDevSdk.on(qcloud_iotexplorer_appdev_sdk_1.AppDevSdk.constants.EventTypes.WsControl,n),o.appDevSdk.on(qcloud_iotexplorer_appdev_sdk_1.AppDevSdk.constants.EventTypes.WsActionPush,i)})).on("disconnect",(function(){o.appDevSdk.off(qcloud_iotexplorer_appdev_sdk_1.AppDevSdk.constants.EventTypes.WsControl,n),o.appDevSdk.off(qcloud_iotexplorer_appdev_sdk_1.AppDevSdk.constants.EventTypes.WsActionPush,i)})),o}return tslib_1.__extends(t,e),t.getUserIdentify=function(){var e,r,o,s;return libs_1.getUserIdentify(null===(s=null===(o=null===(r=null===(e=t.options)||void 0===e?void 0:e.appDevSdk)||void 0===r?void 0:r.loginManager)||void 0===o?void 0:o.userInfo)||void 0===s?void 0:s.UserID)},t.injectOptions=function(e){t.options=e},Object.defineProperty(t.prototype,"ready",{get:function(){return this.isConnected&&this.authorized},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"needUserCheck",{get:function(){var e,t,r;try{return!!parseInt((null===(r=null===(t=null===(e=null==this?void 0:this.productConfig)||void 0===e?void 0:e.BleConfig)||void 0===t?void 0:t.bindingBootConfig)||void 0===r?void 0:r.confirmRequired)||"0")}catch(e){return console.warn("LLSync check confirmRequired fail",e),!1}},enumerable:!1,configurable:!0}),t.prototype.normalizeError=function(t){return!(t=e.prototype._normalizeError.call(this,t)).msg&&t.code&&constants.ERROR_MESSAGES[t.code]&&(t.msg=constants.ERROR_MESSAGES[t.code]),t},t.prototype.init=function(r){return tslib_1.__awaiter(this,void 0,void 0,(function(){var o=this;return tslib_1.__generator(this,(function(s){switch(s.label){case 0:if(!t.options)throw"标准蓝牙适配器未初始化Options";return[4,e.prototype.init.call(this)];case 1:return s.sent(),r&&(this.productInfo=this.productConfig=this._initPromise=null),[2,this._initPromise||(this._initPromise=new Promise((function(e,t){return tslib_1.__awaiter(o,void 0,void 0,(function(){var r,o,s,n,i,c,a;return tslib_1.__generator(this,(function(d){switch(d.label){case 0:return d.trys.push([0,2,,3]),o=(r=this).productConfig,s=r.productInfo,[4,Promise.all([o?Promise.resolve(o):this.models.getProduct({ProductId:this.productId}),s?Promise.resolve(s):this.models.getProductConfig({ProductId:this.productId})])];case 1:return n=tslib_1.__read.apply(void 0,[d.sent(),2]),i=n[0],c=n[1],this.dataTemplate=libs_1.getProductDateTemplate(i),this.productInfo=i,this.productConfig=c,console.log("init llsync done",{productInfo:this.productInfo,productConfig:this.productConfig,dataTemplate:this.dataTemplate}),e(),[3,3];case 2:return a=d.sent(),console.error("init standard device adapter fail",a),t(a),this._initPromise=null,[3,3];case 3:return[2]}}))}))})))]}}))}))},t.prototype.getDevicePsk=function(e){return tslib_1.__awaiter(this,void 0,void 0,(function(){var t,r,o,s,n,i;return tslib_1.__generator(this,(function(c){switch(c.label){case 0:return t={DeviceId:this.productId+"/"+(e||this.deviceName),DeviceKey:LLSyncProtocol_1.LLSyncConfig.BLE_PSK_DEVICE_KEY},[4,Promise.all([this.models.getDeviceConfig(tslib_1.__assign(tslib_1.__assign({},t),{isUserConfig:!0})),this.models.getDeviceConfig(t)])];case 1:if(r=tslib_1.__read.apply(void 0,[c.sent(),2]),o=r[0],s=r[1],!o||s)return[3,5];c.label=2;case 2:return c.trys.push([2,4,,5]),[4,this.models.setDeviceConfig({DeviceId:t.DeviceId,DeviceKey:t.DeviceKey,DeviceValue:o})];case 3:return c.sent(),[3,5];case 4:return n=c.sent(),console.error("update psk to DeviceConfig fail",n),[3,5];case 5:if(!(i=s||o))throw{code:constants.PSK_GET_ERROR};return[2,i]}}))}))},t.prototype.startOta=function(e){var t=e.onProgress;return this.otaProcessor.startOta({onProgress:t})},t.prototype.cancelOta=function(){return this.otaProcessor.cancelOta()},t.prototype.startListenLLEvents=function(){this.on(constants.PROPERTY_REPORT,utils.wrapEventHandler(this.onPropertyReport.bind(this),constants.PROPERTY_REPORT)),this.on(constants.GET_STATUS,this.onGetStatus.bind(this)),this.on(constants.EVENT_REPORT,utils.wrapEventHandler(this.onEventReport.bind(this),constants.EVENT_REPORT))},t.prototype.stopListenLLEvents=function(){this.off(constants.PROPERTY_REPORT),this.off(constants.GET_STATUS),this.off(constants.EVENT_REPORT)},t.prototype.onPropertyReport=function(e){return tslib_1.__awaiter(this,void 0,void 0,(function(){var t,r,o,s;return tslib_1.__generator(this,(function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),console.log("onPropertyReport check this",this),t=utils.convertPropertiesTlvToJsObject(e.slice(2),this.dataTemplate),this.reporter.info(constants.REPORT_RESULT,{data:utils.formatArrayToReportString(e),jsObj:t}),[4,this.models.reportBlueToothDeviceData({ProductId:this.productId,DeviceName:this.deviceName,Data:t,DataTimeStamp:Date.now()})];case 1:return(r=n.sent().Data)&&(o=JSON.parse(r),this.protocol.reportPropertyReportResult(o.code)),[3,3];case 2:return s=n.sent(),this.reporter.error(constants.REPORT_RESULT_ERROR,{error:s}),this.protocol.reportPropertyReportResult(-1),[3,3];case 3:return[2]}}))}))},t.prototype.onGetStatus=function(){return tslib_1.__awaiter(this,void 0,void 0,(function(){var e,t,r,o,s,n;return tslib_1.__generator(this,(function(i){switch(i.label){case 0:return i.trys.push([0,2,,3]),[4,this.models.getDeviceData({ProductId:this.productId,DeviceName:this.deviceName})];case 1:return e=i.sent(),t={},Object.keys(e).forEach((function(r){t[r]=e[r].Value})),r=utils.convertPropertiesChangeToTlv(t,this.dataTemplate),o=r.tlvData,s=r.tmpData,this.reporter.info(constants.GET_STATUS,{properties:t,tlvData:utils.formatArrayToReportString(o),tmpData:s}),this.protocol.reportGetStatusResult(0,o,s),[3,3];case 2:return n=i.sent(),this.reporter.error(constants.GET_STATUS_ERROR,{error:n}),this.protocol.reportGetStatusResult(-1),[2,Promise.reject(this.normalizeError(n))];case 3:return[2]}}))}))},t.prototype.onEventReport=function(e){return tslib_1.__awaiter(this,void 0,void 0,(function(){var t,r,o,s,n,i,c,a;return tslib_1.__generator(this,(function(d){switch(d.label){case 0:d.trys.push([0,8,,9]),console.log("onEventReport check this",this),t=utils.getStrLength(e),r=utils.convertEventTlvToJsObject(e.slice(2,2+t),this.dataTemplate),o=r.eventId,s=r.params,n=r.eventIndex,i={DeviceId:this.explorerDeviceId,EventId:o,Params:JSON.stringify(s)},this.reporter.info(constants.EVENT_REPLY,tslib_1.__assign(tslib_1.__assign({},i),{eventIndex:n})),d.label=1;case 1:return d.trys.push([1,6,,7]),[4,this.models.reportDeviceEvent(i)];case 2:return d.sent(),console.log("reportDeviceEvent success"),e.length-2>t?(console.log("have more event data to report",e.length,t),[4,this.onEventReport({data:e.slice(t+2+1)})]):[3,4];case 3:return d.sent(),[3,5];case 4:this.protocol.reportEventReportResult(0,n),d.label=5;case 5:return[3,7];case 6:throw c=d.sent(),console.error({error:c,eventIndex:n}),this.protocol.reportEventReportResult(-1,n),c;case 7:return[3,9];case 8:return a=d.sent(),this.reporter.error(constants.EVENT_REPLY_ERROR,{error:a}),[2,Promise.reject(this.normalizeError(a))];case 9:return[2]}}))}))},t.prototype.bindDevice=function(e){var t=e.familyId,r=e.roomId;return tslib_1.__awaiter(this,void 0,void 0,(function(){var e,o,s,n,i,c,a,d,l,u;return tslib_1.__generator(this,(function(p){switch(p.label){case 0:return p.trys.push([0,7,,8]),this.reporter.info(constants.BIND_AUTH),e=Date.now(),[4,this.protocol.requestBindDevice({needUserCheck:this.needUserCheck,isDynamicRegister:this.extendInfo.isDynamicRegister})];case 1:o=p.sent(),s=o.sign,n=o.timestamp,i=o.nonce,c=o.deviceName,this.deviceName=c,p.label=2;case 2:return p.trys.push([2,4,,5]),a={Signature:s,DeviceTimestamp:n,DeviceId:this.explorerDeviceId,ConnId:""+i,FamilyId:t,RoomId:r,BindType:"bluetooth_sign"},this.reporter.info(constants.BIND_AUTH_DETAIL,a),[4,this.models.addDeviceBySigInFamily(a)];case 3:return p.sent(),[3,5];case 4:return d=p.sent(),this.protocol.reportBindError(d.code),[2,Promise.reject(this.normalizeError(d))];case 5:return l=this,[4,this.protocol.reportBindSuccess(e)];case 6:return l.localPsk=p.sent(),[2,this.explorerDeviceId];case 7:return u=p.sent(),console.log(u),console.log("error in bindDevice",u),this.reporter.error(constants.BIND_AUTH_FAIL,{error:u}),[2,Promise.reject(this.normalizeError(u))];case 8:return[2]}}))}))},t.prototype.unbindDevice=function(e){var t=e.familyId,r=e.deviceName;return tslib_1.__awaiter(this,void 0,void 0,(function(){var e,o,s,n,i;return tslib_1.__generator(this,(function(c){switch(c.label){case 0:if(c.trys.push([0,5,,6]),!r)throw{code:constants.DEVICE_NAME_IS_EMPTY};return e=Date.now(),[4,this.getDevicePsk(r)];case 1:return o=c.sent(),this.reporter.info(constants.UNBIND_AUTH,{localPsk:o}),[4,this.protocol.getUnbindAuthSign()];case 2:if(s=c.sent().sign,n=utils.encrypt(constants.UNBIND_RESPONSE,o),s!==n)throw{code:constants.UNBIND_REPLY_ERROR};return this.localPsk=o,this.deviceName=r,[4,this.models.deleteDeviceFromFamily({FamilyId:t,DeviceId:this.explorerDeviceId})];case 3:return c.sent(),this.reporter.info(constants.UNBIND_RESULT_AUTH_SUCCESS,{timeCost:Date.now()-e}),[4,this.protocol.reportUnbindResult("success")];case 4:return c.sent(),this.stopListenLLEvents(),this.authorized=!1,this.disconnectDevice(),[3,6];case 5:return i=c.sent(),this.protocol.reportUnbindResult("fail"),this.reporter.error(constants.UNBIND_RESULT_AUTH_FAIL,{error:i}),[2,Promise.reject(this.normalizeError(i))];case 6:return[2]}}))}))},t.prototype.controlDevice=function(e){var t=e.deviceData;return tslib_1.__awaiter(this,void 0,void 0,(function(){var e;return tslib_1.__generator(this,(function(r){switch(r.label){case 0:return r.trys.push([0,3,,4]),console.log("controlDevice check this",this),this.reporter.info(constants.CONTROL_DEVICE,{deviceData:t}),[4,this.protocol.controlDeviceProperty(t)];case 1:return r.sent(),[4,this.models.reportBlueToothDeviceData({ProductId:this.productId,DeviceName:this.deviceName,Data:t,DataTimeStamp:Date.now()})];case 2:return r.sent(),[3,4];case 3:return e=r.sent(),this.reporter.error(constants.CONTROL_DEVICE_REPLY_ERROR,{error:e}),[2,Promise.reject(this.normalizeError(e))];case 4:return[2]}}))}))},t.prototype.controlAction=function(e){var t=e.actionData;return tslib_1.__awaiter(this,void 0,void 0,(function(){var e,r,o,s,n,i;return tslib_1.__generator(this,(function(c){switch(c.label){case 0:return c.trys.push([0,4,,5]),console.log("controlAction check this",this),[4,this.protocol.controlDeviceAction(t)];case 1:return e=c.sent().output,[4,utils.convertActionOutputTlvToJsObject(e,this.dataTemplate)];case 2:return r=c.sent(),o=r.outputParams,s=r.actionIndex,n=r.actionId,[4,this.models.publishDeviceActionMessage({deviceName:this.deviceName,productId:this.productId,actionId:n,clientToken:t.clientToken,output:o})];case 3:return c.sent(),this.reporter.info(constants.CONTROL_ACTION_SUCCESS,{outputParams:o,actionIndex:s,actionId:n}),[3,5];case 4:return i=c.sent(),this.reporter.error(constants.CONTROL_ACTION_ERROR,{error:i}),[2,Promise.reject(this.normalizeError(i))];case 5:return[2]}}))}))},t.prototype.authenticateConnection=function(e){var t=(void 0===e?{}:e).deviceName;return tslib_1.__awaiter(this,void 0,void 0,(function(){var e,r,o,s,n,i,c,a,d,l,u,p;return tslib_1.__generator(this,(function(v){switch(v.label){case 0:if(v.trys.push([0,8,,9]),console.log("start authenticate connection",t),!t)throw{code:constants.DEVICE_NAME_IS_EMPTY};return e=Date.now(),[4,this.getDevicePsk(t)];case 1:return r=v.sent(),this.localPsk=r,this.reporter.info(constants.CONNECT_AUTH,{localPsk:r}),[4,this.protocol.getDeviceAuthInfo()];case 2:if(o=v.sent(),s=o.sign,n=o.timestamp,i=utils.encrypt(""+(n+60)+this.productId+t,r),s!==i)throw{code:constants.CONNECT_SIGN_AUTH_ERROR};return[4,this.protocol.getDeviceInfo()];case 3:if(c=v.sent(),a=c.version,d=c.mtu,l=c.needSetMtu,u=c.otaVersion,this.deviceName=t,this.bleVersion=a,this.mtu=d,!l)return[3,7];v.label=4;case 4:return v.trys.push([4,6,,7]),[4,this.setMtu(this.mtu)];case 5:return v.sent(),this.writeMtuResult("success"),[3,7];case 6:return v.sent(),this.writeMtuResult("fail"),[3,7];case 7:return this.otaVersion=u,u&&this.models.reportOTAVersion({Version:u,DeviceId:this.explorerDeviceId}),this.reporter.info(constants.CONNECT_RESULT_WRITE_SUCCESS,{timeCost:Date.now()-e,version:a,mtu:d,otaVersion:u}),this.authorized=!0,this.emit("authorized",{version:a,mtu:d,otaVersion:u}),this.stopListenLLEvents(),this.startListenLLEvents(),[3,9];case 8:return p=v.sent(),this.protocol.reportConnectError(),this.reporter.error(constants.CONNECT_RESULT_WRITE_FAIL,{error:p}),[2,Promise.reject(this.normalizeError(p))];case 9:return[2]}}))}))},t.prototype.toString=function(){return"[LLSyncDeviceAdapter]"},t.serviceId16="0000FFE0-0000-1000-8000-00805F9B34FB",t.serviceId="0000FFE0-65D0-4E20-B56A-E493541BA4E2",t.deviceFilter=function(e,r){if(!e.advertisServiceUUIDs||!e.advertisServiceUUIDs.find((function(e){return e===t.serviceId16}))||!e.advertisData)return null;var o=t.options.appDevSdk.reporter;try{var s=Math.floor(10*Math.random())%10==1||!0,n=arrayBufferToHexStringArray(e.advertisData);s&&o.info(constants_1.REPORT_EVENT_TYPE,{message:"收到广播",serviceId:t.serviceId,hexArr:n.join(",")});var i=parseInt(n[2],16)-(parseInt(n[2],16)>>2<<2),c=parseInt(n[2],16)>>4,a=parseInt(n[2],16)>>2&1,d=r.productId&&r.deviceName?r.productId+"/"+r.deviceName:"",l=d?utils.get8ByteFromStr(""+d.replace("/","")):"",u=!!d,p="",v="",_="",h=constants.DEVICE_STATE_MAP[i],E=[constants.DEVICE_HAS_BINDED,constants.DEVICE_HAS_CONNECTED].indexOf(h)>-1;if(E)_=n.slice(3,11).join("").toLocaleLowerCase(),v=n.slice(11).join("").toLocaleLowerCase(),p=r.productId;else{var f=n.slice(3,9);e.name&&-1===e.name.indexOf("_")&&(e.name=e.name+"_"+f.slice(0,2).join("")),p=libs_1.hex2str(n.slice(9))}s&&o.info(constants_1.REPORT_EVENT_TYPE,{message:"解析广播",serviceId:t.serviceId,data:{bindState:h||"x",targetDeviceId:d,targetDeviceIdentify:l,deviceUserIdentify:v||"x",deviceProductId:p||"x",deviceIdentify:_||"x",isDynamicRegister:!!a}});var D=function(){var o=tslib_1.__assign(tslib_1.__assign({},e),{serviceId:t.serviceId,deviceName:r.deviceName||"",productId:p,extendInfo:{bindState:constants.DEVICE_STATE_MAP[h],moduleVersion:c,isDynamicRegister:!!a,standard:!0}});return console.log("---设备匹配成功---",o),o};return u&&E&&_===l?D():u||E?null:D()}catch(e){console.error("llsync device filter error",e),o.error(constants_1.REPORT_EVENT_TYPE,{message:"协议广播出错",error:e})}},t}(LLSyncDeviceAdapterBase_1.LLSyncDeviceAdapterBase);exports.LLSyncDeviceAdapter=LLSyncDeviceAdapter,exports.StandardDeviceAdapter=LLSyncDeviceAdapter;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.StandardDeviceAdapter=exports.LLSyncDeviceAdapter=void 0;var tslib_1=require("tslib"),constants=tslib_1.__importStar(require("../../constants")),qcloud_iotexplorer_appdev_sdk_1=require("qcloud-iotexplorer-appdev-sdk"),constants_1=require("../../constants"),libs_1=require("../../libs"),utils=tslib_1.__importStar(require("../../libs")),Models_1=require("./Models"),LLSyncDeviceAdapterBase_1=require("../LLSyncDeviceAdapterBase"),LLSyncOtaProcessor_1=require("./LLSyncOtaProcessor"),LLSyncProtocol_1=require("./LLSyncProtocol"),arrayBufferToHexStringArray=qcloud_iotexplorer_appdev_sdk_1.AppDevSdk.utils.arrayBufferToHexStringArray,LLSyncDeviceAdapter=function(e){function t(r){var o=e.call(this,r)||this,s=function(e){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return tslib_1.__awaiter(o,void 0,void 0,(function(){return tslib_1.__generator(this,(function(r){switch(r.label){case 0:return[4,this.init()];case 1:return r.sent(),[2,e.apply(void 0,tslib_1.__spread(t))]}}))}))}};o.models=new Models_1.Models(t.options.appDevSdk),o.userIdentify=t.getUserIdentify(),o.on("disconnect",(function(){o.authorized=!1})),o.appDevSdk=t.options.appDevSdk,o.protocol=new LLSyncProtocol_1.LLSyncProtocol(o),o.otaProcessor=new LLSyncOtaProcessor_1.LLSyncOtaProcessor(o),Object.assign(o,{bindDevice:s(o.bindDevice.bind(o)),unbindDevice:s(o.unbindDevice.bind(o)),controlDevice:s(o.controlDevice.bind(o)),controlAction:s(o.controlAction.bind(o)),authenticateConnection:s(o.authenticateConnection.bind(o)),reconnectDevice:s(o.authenticateConnection.bind(o)),startOta:s(o.startOta.bind(o)),cancelOta:s(o.cancelOta.bind(o)),userCancelBindDevice:s(o.protocol.cancelUserCheck.bind(o.protocol,"cancel"))}),o.init(),o.reporter={info:function(e,r){void 0===e&&(e=""),void 0===r&&(r={});var s=r.message,i=void 0===s?"":s,n=r.serviceId,c=tslib_1.__rest(r,["message","serviceId"]),a=o,d=a.explorerDeviceId,l=a.deviceId,u=a.isConnected;t.options.appDevSdk.reporter.info(constants_1.REPORT_EVENT_TYPE,{serviceId:n||t.serviceId,message:i||(e&&constants.ACTION_DESC[e]?e+"("+constants.ACTION_DESC[e]+")":e),timeCost:c.timeCost||0,action:e,data:tslib_1.__assign({deviceId:d,bleDeviceId:l,isConnected:u},c)})},error:function(e,r){void 0===e&&(e=""),void 0===r&&(r={});var s=r.error,i=tslib_1.__rest(r,["error"]),n=o,c=n.explorerDeviceId,a=n.deviceId,d=n.isConnected;s.code&&constants.ERROR_MESSAGES[s.code]&&(s.msg=constants.ERROR_MESSAGES[s.code]),t.options.appDevSdk.reporter.error(constants_1.REPORT_EVENT_TYPE,{message:constants.ERROR_MESSAGES[e]?e+"("+constants.ERROR_MESSAGES[e]+":"+(s&&(s.message||s.errMsg||s.msg||s.code))+")":"",timeCost:i.timeCost||0,action:e,error:s,data:tslib_1.__assign(tslib_1.__assign({deviceId:c,bleDeviceId:a,isConnected:d},i),s)})}};var i=function(e){var t=e.deviceId,r=e.deviceData;if(console.log("llsync receive onControl",t,r,o.ready,o.explorerDeviceId),o.ready&&t===o.explorerDeviceId){var s={};Object.keys(r).forEach((function(e){s[e]=r[e].Value})),o.controlDevice({deviceData:s})}},n=function(e){var t=e.deviceId,r=e.Payload;o.ready&&t===o.explorerDeviceId&&o.controlAction({actionData:r})};return o.on("authorized",(function(){o.init(!0),o.appDevSdk.on(qcloud_iotexplorer_appdev_sdk_1.AppDevSdk.constants.EventTypes.WsControl,i),o.appDevSdk.on(qcloud_iotexplorer_appdev_sdk_1.AppDevSdk.constants.EventTypes.WsActionPush,n)})).on("disconnect",(function(){o.appDevSdk.off(qcloud_iotexplorer_appdev_sdk_1.AppDevSdk.constants.EventTypes.WsControl,i),o.appDevSdk.off(qcloud_iotexplorer_appdev_sdk_1.AppDevSdk.constants.EventTypes.WsActionPush,n)})),o}return tslib_1.__extends(t,e),t.getUserIdentify=function(){var e,r,o,s;return libs_1.getUserIdentify(null===(s=null===(o=null===(r=null===(e=t.options)||void 0===e?void 0:e.appDevSdk)||void 0===r?void 0:r.loginManager)||void 0===o?void 0:o.userInfo)||void 0===s?void 0:s.UserID)},t.injectOptions=function(e){t.options=e},Object.defineProperty(t.prototype,"ready",{get:function(){return console.log("isConnected",this.isConnected,"isAuthorized",this.authorized),this.isConnected&&this.authorized},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"needUserCheck",{get:function(){var e,t,r;try{return!!parseInt((null===(r=null===(t=null===(e=null==this?void 0:this.productConfig)||void 0===e?void 0:e.BleConfig)||void 0===t?void 0:t.bindingBootConfig)||void 0===r?void 0:r.confirmRequired)||"0")}catch(e){return console.warn("LLSync check confirmRequired fail",e),!1}},enumerable:!1,configurable:!0}),t.prototype.normalizeError=function(t){return!(t=e.prototype._normalizeError.call(this,t)).msg&&t.code&&constants.ERROR_MESSAGES[t.code]&&(t.msg=constants.ERROR_MESSAGES[t.code]),t},t.prototype.init=function(r){return tslib_1.__awaiter(this,void 0,void 0,(function(){var o=this;return tslib_1.__generator(this,(function(s){switch(s.label){case 0:if(!t.options)throw"标准蓝牙适配器未初始化Options";return[4,e.prototype.init.call(this)];case 1:return s.sent(),r&&(this.productInfo=this.productConfig=this._initPromise=null),[2,this._initPromise||(this._initPromise=new Promise((function(e,t){return tslib_1.__awaiter(o,void 0,void 0,(function(){var r,o,s,i,n,c,a;return tslib_1.__generator(this,(function(d){switch(d.label){case 0:return d.trys.push([0,2,,3]),o=(r=this).productConfig,s=r.productInfo,[4,Promise.all([o?Promise.resolve(o):this.models.getProduct({ProductId:this.productId}),s?Promise.resolve(s):this.models.getProductConfig({ProductId:this.productId})])];case 1:return i=tslib_1.__read.apply(void 0,[d.sent(),2]),n=i[0],c=i[1],this.dataTemplate=libs_1.getProductDateTemplate(n),this.productInfo=n,this.productConfig=c,console.log("init llsync done",{productInfo:this.productInfo,productConfig:this.productConfig,dataTemplate:this.dataTemplate}),e(),[3,3];case 2:return a=d.sent(),console.error("init standard device adapter fail",a),t(a),this._initPromise=null,[3,3];case 3:return[2]}}))}))})))]}}))}))},t.prototype.getDevicePsk=function(e){return tslib_1.__awaiter(this,void 0,void 0,(function(){var t,r,o,s,i,n;return tslib_1.__generator(this,(function(c){switch(c.label){case 0:return t={DeviceId:this.productId+"/"+(e||this.deviceName),DeviceKey:LLSyncProtocol_1.LLSyncConfig.BLE_PSK_DEVICE_KEY},[4,Promise.all([this.models.getDeviceConfig(tslib_1.__assign(tslib_1.__assign({},t),{isUserConfig:!0})),this.models.getDeviceConfig(t)])];case 1:if(r=tslib_1.__read.apply(void 0,[c.sent(),2]),o=r[0],s=r[1],!o||s)return[3,5];c.label=2;case 2:return c.trys.push([2,4,,5]),[4,this.models.setDeviceConfig({DeviceId:t.DeviceId,DeviceKey:t.DeviceKey,DeviceValue:o})];case 3:return c.sent(),[3,5];case 4:return i=c.sent(),console.error("update psk to DeviceConfig fail",i),[3,5];case 5:if(!(n=s||o))throw{code:constants.PSK_GET_ERROR};return[2,n]}}))}))},t.prototype.startOta=function(e){var t=e.onProgress;return this.otaProcessor.startOta({onProgress:t})},t.prototype.cancelOta=function(){return this.otaProcessor.cancelOta()},t.prototype.startListenLLEvents=function(){this.on(constants.PROPERTY_REPORT,utils.wrapEventHandler(this.onPropertyReport.bind(this),constants.PROPERTY_REPORT)),this.on(constants.GET_STATUS,this.onGetStatus.bind(this)),this.on(constants.EVENT_REPORT,utils.wrapEventHandler(this.onEventReport.bind(this),constants.EVENT_REPORT))},t.prototype.stopListenLLEvents=function(){this.off(constants.PROPERTY_REPORT),this.off(constants.GET_STATUS),this.off(constants.EVENT_REPORT)},t.prototype.onPropertyReport=function(e){return tslib_1.__awaiter(this,void 0,void 0,(function(){var t,r,o,s;return tslib_1.__generator(this,(function(i){switch(i.label){case 0:return i.trys.push([0,2,,3]),console.log("onPropertyReport check this",this),t=utils.convertPropertiesTlvToJsObject(e.slice(2),this.dataTemplate),this.reporter.info(constants.REPORT_RESULT,{data:utils.formatArrayToReportString(e),jsObj:t}),[4,this.models.reportBlueToothDeviceData({ProductId:this.productId,DeviceName:this.deviceName,Data:t,DataTimeStamp:Date.now()})];case 1:return(r=i.sent().Data)&&(o=JSON.parse(r),this.protocol.reportPropertyReportResult(o.code)),[3,3];case 2:return s=i.sent(),this.reporter.error(constants.REPORT_RESULT_ERROR,{error:s}),this.protocol.reportPropertyReportResult(-1),[3,3];case 3:return[2]}}))}))},t.prototype.onGetStatus=function(){return tslib_1.__awaiter(this,void 0,void 0,(function(){var e,t,r,o,s,i;return tslib_1.__generator(this,(function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,this.models.getDeviceData({ProductId:this.productId,DeviceName:this.deviceName})];case 1:return e=n.sent(),t={},Object.keys(e).forEach((function(r){t[r]=e[r].Value})),r=utils.convertPropertiesChangeToTlv(t,this.dataTemplate),o=r.tlvData,s=r.tmpData,this.reporter.info(constants.GET_STATUS,{properties:t,tlvData:utils.formatArrayToReportString(o),tmpData:s}),this.protocol.reportGetStatusResult(0,o,s),[3,3];case 2:return i=n.sent(),this.reporter.error(constants.GET_STATUS_ERROR,{error:i}),this.protocol.reportGetStatusResult(-1),[2,Promise.reject(this.normalizeError(i))];case 3:return[2]}}))}))},t.prototype.onEventReport=function(e){return tslib_1.__awaiter(this,void 0,void 0,(function(){var t,r,o,s,i,n,c,a;return tslib_1.__generator(this,(function(d){switch(d.label){case 0:d.trys.push([0,8,,9]),console.log("onEventReport check this",this),t=utils.getStrLength(e),r=utils.convertEventTlvToJsObject(e.slice(2,2+t),this.dataTemplate),o=r.eventId,s=r.params,i=r.eventIndex,n={DeviceId:this.explorerDeviceId,EventId:o,Params:JSON.stringify(s)},this.reporter.info(constants.EVENT_REPLY,tslib_1.__assign(tslib_1.__assign({},n),{eventIndex:i})),d.label=1;case 1:return d.trys.push([1,6,,7]),[4,this.models.reportDeviceEvent(n)];case 2:return d.sent(),console.log("reportDeviceEvent success"),e.length-2>t?(console.log("have more event data to report",e.length,t),[4,this.onEventReport({data:e.slice(t+2+1)})]):[3,4];case 3:return d.sent(),[3,5];case 4:this.protocol.reportEventReportResult(0,i),d.label=5;case 5:return[3,7];case 6:throw c=d.sent(),console.error({error:c,eventIndex:i}),this.protocol.reportEventReportResult(-1,i),c;case 7:return[3,9];case 8:return a=d.sent(),this.reporter.error(constants.EVENT_REPLY_ERROR,{error:a}),[2,Promise.reject(this.normalizeError(a))];case 9:return[2]}}))}))},t.prototype.bindDevice=function(e){var t=e.familyId,r=e.roomId;return tslib_1.__awaiter(this,void 0,void 0,(function(){var e,o,s,i,n,c,a,d,l,u;return tslib_1.__generator(this,(function(p){switch(p.label){case 0:return p.trys.push([0,7,,8]),this.reporter.info(constants.BIND_AUTH),e=Date.now(),[4,this.protocol.requestBindDevice({needUserCheck:this.needUserCheck,isDynamicRegister:this.extendInfo.isDynamicRegister})];case 1:o=p.sent(),s=o.sign,i=o.timestamp,n=o.nonce,c=o.deviceName,this.deviceName=c,p.label=2;case 2:return p.trys.push([2,4,,5]),a={Signature:s,DeviceTimestamp:i,DeviceId:this.explorerDeviceId,ConnId:""+n,FamilyId:t,RoomId:r,BindType:"bluetooth_sign"},this.reporter.info(constants.BIND_AUTH_DETAIL,a),[4,this.models.addDeviceBySigInFamily(a)];case 3:return p.sent(),[3,5];case 4:return d=p.sent(),this.protocol.reportBindError(d.code),[2,Promise.reject(this.normalizeError(d))];case 5:return l=this,[4,this.protocol.reportBindSuccess(e)];case 6:return l.localPsk=p.sent(),[2,this.explorerDeviceId];case 7:return u=p.sent(),console.log(u),console.log("error in bindDevice",u),this.reporter.error(constants.BIND_AUTH_FAIL,{error:u}),[2,Promise.reject(this.normalizeError(u))];case 8:return[2]}}))}))},t.prototype.unbindDevice=function(e){var t=e.familyId,r=e.deviceName;return tslib_1.__awaiter(this,void 0,void 0,(function(){var e,o,s,i,n;return tslib_1.__generator(this,(function(c){switch(c.label){case 0:if(c.trys.push([0,5,,6]),!r)throw{code:constants.DEVICE_NAME_IS_EMPTY};return e=Date.now(),[4,this.getDevicePsk(r)];case 1:return o=c.sent(),this.reporter.info(constants.UNBIND_AUTH,{localPsk:o}),[4,this.protocol.getUnbindAuthSign()];case 2:if(s=c.sent().sign,i=utils.encrypt(constants.UNBIND_RESPONSE,o),s!==i)throw{code:constants.UNBIND_REPLY_ERROR};return this.localPsk=o,this.deviceName=r,[4,this.models.deleteDeviceFromFamily({FamilyId:t,DeviceId:this.explorerDeviceId})];case 3:return c.sent(),this.reporter.info(constants.UNBIND_RESULT_AUTH_SUCCESS,{timeCost:Date.now()-e}),[4,this.protocol.reportUnbindResult("success")];case 4:return c.sent(),this.stopListenLLEvents(),this.authorized=!1,this.disconnectDevice(),[3,6];case 5:return n=c.sent(),this.protocol.reportUnbindResult("fail"),this.reporter.error(constants.UNBIND_RESULT_AUTH_FAIL,{error:n}),[2,Promise.reject(this.normalizeError(n))];case 6:return[2]}}))}))},t.prototype.controlDevice=function(e){var t=e.deviceData;return tslib_1.__awaiter(this,void 0,void 0,(function(){var e;return tslib_1.__generator(this,(function(r){switch(r.label){case 0:return r.trys.push([0,3,,4]),console.log("controlDevice check this",this),this.reporter.info(constants.CONTROL_DEVICE,{deviceData:t}),[4,this.protocol.controlDeviceProperty(t)];case 1:return r.sent(),[4,this.models.reportBlueToothDeviceData({ProductId:this.productId,DeviceName:this.deviceName,Data:t,DataTimeStamp:Date.now()})];case 2:return r.sent(),[3,4];case 3:return e=r.sent(),this.reporter.error(constants.CONTROL_DEVICE_REPLY_ERROR,{error:e}),[2,Promise.reject(this.normalizeError(e))];case 4:return[2]}}))}))},t.prototype.controlAction=function(e){var t=e.actionData;return tslib_1.__awaiter(this,void 0,void 0,(function(){var e,r,o,s,i,n;return tslib_1.__generator(this,(function(c){switch(c.label){case 0:return c.trys.push([0,4,,5]),console.log("controlAction check this",this),[4,this.protocol.controlDeviceAction(t)];case 1:return e=c.sent().output,[4,utils.convertActionOutputTlvToJsObject(e,this.dataTemplate)];case 2:return r=c.sent(),o=r.outputParams,s=r.actionIndex,i=r.actionId,[4,this.models.publishDeviceActionMessage({deviceName:this.deviceName,productId:this.productId,actionId:i,clientToken:t.clientToken,output:o})];case 3:return c.sent(),this.reporter.info(constants.CONTROL_ACTION_SUCCESS,{outputParams:o,actionIndex:s,actionId:i}),[3,5];case 4:return n=c.sent(),this.reporter.error(constants.CONTROL_ACTION_ERROR,{error:n}),[2,Promise.reject(this.normalizeError(n))];case 5:return[2]}}))}))},t.prototype.authenticateConnection=function(e){var t=(void 0===e?{}:e).deviceName;return tslib_1.__awaiter(this,void 0,void 0,(function(){var e,r,o,s,i,n,c,a,d,l,u,p;return tslib_1.__generator(this,(function(v){switch(v.label){case 0:if(v.trys.push([0,8,,9]),console.log("start authenticate connection",t),!t)throw{code:constants.DEVICE_NAME_IS_EMPTY};return e=Date.now(),[4,this.getDevicePsk(t)];case 1:return r=v.sent(),this.localPsk=r,this.reporter.info(constants.CONNECT_AUTH,{localPsk:r}),[4,this.protocol.getDeviceAuthInfo()];case 2:if(o=v.sent(),s=o.sign,i=o.timestamp,n=utils.encrypt(""+(i+60)+this.productId+t,r),s!==n)throw{code:constants.CONNECT_SIGN_AUTH_ERROR};return[4,this.protocol.getDeviceInfo()];case 3:if(c=v.sent(),a=c.version,d=c.mtu,l=c.needSetMtu,u=c.otaVersion,this.deviceName=t,this.bleVersion=a,this.mtu=d,!l)return[3,7];v.label=4;case 4:return v.trys.push([4,6,,7]),[4,this.setMtu(this.mtu)];case 5:return v.sent(),this.writeMtuResult("success"),[3,7];case 6:return v.sent(),this.writeMtuResult("fail"),[3,7];case 7:return this.otaVersion=u,u&&this.models.reportOTAVersion({Version:u,DeviceId:this.explorerDeviceId}),this.reporter.info(constants.CONNECT_RESULT_WRITE_SUCCESS,{timeCost:Date.now()-e,version:a,mtu:d,otaVersion:u}),this.authorized=!0,this.emit("authorized",{version:a,mtu:d,otaVersion:u}),this.stopListenLLEvents(),this.startListenLLEvents(),[3,9];case 8:return p=v.sent(),this.protocol.reportConnectError(),this.reporter.error(constants.CONNECT_RESULT_WRITE_FAIL,{error:p}),[2,Promise.reject(this.normalizeError(p))];case 9:return[2]}}))}))},t.prototype.toString=function(){return"[LLSyncDeviceAdapter]"},t.serviceId16="0000FFE0-0000-1000-8000-00805F9B34FB",t.serviceId="0000FFE0-65D0-4E20-B56A-E493541BA4E2",t.deviceFilter=function(e,r){if(!e.advertisServiceUUIDs||!e.advertisServiceUUIDs.find((function(e){return e===t.serviceId16}))||!e.advertisData)return null;var o=t.options.appDevSdk.reporter;try{var s=Math.floor(10*Math.random())%10==1||!0,i=arrayBufferToHexStringArray(e.advertisData);s&&o.info(constants_1.REPORT_EVENT_TYPE,{message:"收到广播",serviceId:t.serviceId,hexArr:i.join(",")});var n=parseInt(i[2],16)-(parseInt(i[2],16)>>2<<2),c=parseInt(i[2],16)>>4,a=parseInt(i[2],16)>>2&1,d=r.productId&&r.deviceName?r.productId+"/"+r.deviceName:"",l=d?utils.get8ByteFromStr(""+d.replace("/","")):"",u=!!d,p="",v="",_="",h=constants.DEVICE_STATE_MAP[n],E=[constants.DEVICE_HAS_BINDED,constants.DEVICE_HAS_CONNECTED].indexOf(h)>-1;if(E)_=i.slice(3,11).join("").toLocaleLowerCase(),v=i.slice(11).join("").toLocaleLowerCase(),p=r.productId;else{var f=i.slice(3,9);e.name&&-1===e.name.indexOf("_")&&(e.name=e.name+"_"+f.slice(0,2).join("")),p=libs_1.hex2str(i.slice(9))}s&&o.info(constants_1.REPORT_EVENT_TYPE,{message:"解析广播",serviceId:t.serviceId,data:{bindState:h||"x",targetDeviceId:d,targetDeviceIdentify:l,deviceUserIdentify:v||"x",deviceProductId:p||"x",deviceIdentify:_||"x",isDynamicRegister:!!a}});var D=function(){var o=tslib_1.__assign(tslib_1.__assign({},e),{serviceId:t.serviceId,deviceName:r.deviceName||"",productId:p,extendInfo:{bindState:constants.DEVICE_STATE_MAP[h],moduleVersion:c,isDynamicRegister:!!a,standard:!0}});return console.log("---设备匹配成功---",o),o};return u&&E&&_===l?D():u||E?null:D()}catch(e){console.error("llsync device filter error",e),o.error(constants_1.REPORT_EVENT_TYPE,{message:"协议广播出错",error:e})}},t}(LLSyncDeviceAdapterBase_1.LLSyncDeviceAdapterBase);exports.LLSyncDeviceAdapter=LLSyncDeviceAdapter,exports.StandardDeviceAdapter=LLSyncDeviceAdapter;
//# sourceMappingURL=LLSyncDeviceAdapter.js.map

@@ -1,2 +0,2 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Models=void 0;var tslib_1=require("tslib"),iotexplorer_ui_dev_config_1=require("iotexplorer-ui-dev-config"),Models=function(){function e(e){this.appDevSdk=e}return e.prototype.getDeviceConfig=function(e){var t=e.DeviceId,i=e.DeviceKey,r=void 0===i?"*":i,n=e.isUserConfig,o=void 0!==n&&n;return tslib_1.__awaiter(this,void 0,void 0,(function(){var e,i,n,a;return tslib_1.__generator(this,(function(s){switch(s.label){case 0:e={},s.label=1;case 1:return s.trys.push([1,3,,4]),[4,this.appDevSdk.requestApi(o?"AppGetUserDeviceConfig":"AppGetDeviceConfig",{DeviceId:t,DeviceKey:r})];case 2:return i=s.sent().Configs,e=i,[3,4];case 3:return n=s.sent(),console.warn("AppGetDeviceConfig fail",n),[3,4];case 4:if("*"===r)return[2,e];if("string"==typeof(a=e[r])&&~a.indexOf("{"))try{a=JSON.parse(a)}catch(e){console.warn("parse device value fail",e)}return[2,a]}}))}))},e.prototype.setDeviceConfig=function(e){var t=e.DeviceId,i=e.DeviceKey,r=e.DeviceValue,n=e.isUserConfig,o=void 0!==n&&n;return"string"!=typeof r&&(r=JSON.stringify(r)),this.appDevSdk.requestApi(o?"AppSetUserDeviceConfig":"AppSetDeviceConfig",{DeviceId:t,DeviceKey:i,DeviceValue:r})},e.prototype.reportBlueToothDeviceData=function(e){var t=e.ProductId,i=e.DeviceName,r=e.Data,n=e.DataTimeStamp;return tslib_1.__awaiter(this,void 0,void 0,(function(){return tslib_1.__generator(this,(function(e){return r||(r={}),"string"!=typeof r&&(r=JSON.stringify(r)),[2,this.appDevSdk.requestApi("AppReportDataAsDevice",{ProductId:t,DeviceName:i,Data:r,DataTimeStamp:n})]}))}))},e.prototype.getDeviceData=function(e){var t=e.ProductId,i=e.DeviceName;return tslib_1.__awaiter(this,void 0,void 0,(function(){var e;return tslib_1.__generator(this,(function(r){switch(r.label){case 0:return[4,this.appDevSdk.requestApi("AppGetDeviceData",{ProductId:t,DeviceName:i})];case 1:e=r.sent().Data;try{return"string"==typeof e&&(e=JSON.parse(e)),[2,e]}catch(e){return console.error("parse json fail",{ProductId:t,DeviceName:i},e),[2,{}]}return[2]}}))}))},e.prototype.reportDeviceEvent=function(e){var t=e.DeviceId,i=e.EventId,r=e.Params;return tslib_1.__awaiter(this,void 0,void 0,(function(){return tslib_1.__generator(this,(function(e){return[2,this.appDevSdk.requestApi("AppReportDeviceEvent",{DeviceId:t,EventId:i,Params:r,Method:"ReportEventAsDevice"})]}))}))},e.prototype.addDeviceBySigInFamily=function(e){var t=e.Signature,i=e.DeviceTimestamp,r=e.ProductId,n=e.DeviceName,o=e.DeviceId,a=e.ConnId,s=e.FamilyId,c=e.RoomId,u=e.SignMethod,p=void 0===u?"hmacsha1":u,d=e.BindType,v=void 0===d?"other_sign":d;return tslib_1.__awaiter(this,void 0,void 0,(function(){return tslib_1.__generator(this,(function(e){switch(e.label){case 0:return[4,this.appDevSdk.requestApi("AppSigBindDeviceInFamily",{Signature:t,DeviceTimestamp:i,ProductId:r,DeviceName:n,DeviceId:o,ConnId:a,FamilyId:s,RoomId:c,BindType:v,SignMethod:p})];case 1:return[2,e.sent().Data.AppDeviceInfo]}}))}))},e.prototype.deleteDeviceFromFamily=function(e){var t=e.FamilyId,i=e.DeviceId;return tslib_1.__awaiter(this,void 0,void 0,(function(){return tslib_1.__generator(this,(function(e){return[2,this.appDevSdk.requestApi("AppDeleteDeviceInFamily",{FamilyId:t,DeviceId:i})]}))}))},e.prototype.publishDeviceActionMessage=function(e){var t=e.productId,i=e.deviceName,r=e.clientToken,n=e.actionId,o=e.output;return tslib_1.__awaiter(this,void 0,void 0,(function(){var e,a;return tslib_1.__generator(this,(function(s){return e={method:"action_reply",clientToken:r,ActionId:n,timestamp:Math.floor(Date.now()/1e3),response:o,code:0,status:"action execute success!"},a={ProductId:t,DeviceName:i,Topic:"$thing/up/action/"+t+"/"+i,Payload:JSON.stringify(e)},console.log("---reply action---",a),[2,this.appDevSdk.requestApi("AppPublishMsgAsDevice",a)]}))}))},e.prototype.reportOTAVersion=function(e){var t=e.Version,i=e.DeviceId;return tslib_1.__awaiter(this,void 0,void 0,(function(){return tslib_1.__generator(this,(function(e){return[2,this.appDevSdk.requestApi("AppReportFirmwareVersion",{Version:t,DeviceId:i})]}))}))},e.prototype.getDeviceOTAInfo=function(e){var t=e.DeviceId;return tslib_1.__awaiter(this,void 0,void 0,(function(){return tslib_1.__generator(this,(function(e){return[2,this.appDevSdk.requestApi("AppGetDeviceOTAInfo",{DeviceId:t})]}))}))},e.prototype.getProduct=function(e){var t=e.ProductId;return tslib_1.__awaiter(this,void 0,void 0,(function(){return tslib_1.__generator(this,(function(e){switch(e.label){case 0:return[4,this.appDevSdk.requestApi("AppGetProducts",{ProductIds:[t]})];case 1:return[2,e.sent().Products[0]]}}))}))},e.prototype.getProductConfig=function(e){var t=e.ProductId;return tslib_1.__awaiter(this,void 0,void 0,(function(){var e,i;return tslib_1.__generator(this,(function(r){switch(r.label){case 0:return[4,this.appDevSdk.requestApi("AppGetProductsConfig",{ProductIds:[t]})];case 1:return e=r.sent().Data,i={},e.forEach((function(e){try{e.Config=JSON.parse(e.Config)}catch(t){e.Config={}}i[e.ProductId]=iotexplorer_ui_dev_config_1.initializeUIDevConfig(e.Config)})),[2,i[t]]}}))}))},e.prototype.dynamicRegisterDevice=function(e){var t=e.deviceName,i=e.productId,r=e.timestamp,n=e.nonce,o=e.sign;return tslib_1.__awaiter(this,void 0,void 0,(function(){return tslib_1.__generator(this,(function(e){switch(e.label){case 0:return[4,this.appDevSdk.requestApi("AppDeviceDynamicRegister",{DeviceId:i+"/"+t,DeviceTimestamp:r,Nonce:n,Signature:o})];case 1:return[2,{payload:e.sent().Payload}]}}))}))},e}();exports.Models=Models;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Models=void 0;var tslib_1=require("tslib"),iotexplorer_ui_dev_config_1=require("iotexplorer-ui-dev-config"),Models=function(){function e(e){this.appDevSdk=e}return e.prototype.getDeviceConfig=function(e){var t=e.DeviceId,i=e.DeviceKey,r=void 0===i?"*":i,n=e.isUserConfig,o=void 0!==n&&n;return tslib_1.__awaiter(this,void 0,void 0,(function(){var e,i,n,a;return tslib_1.__generator(this,(function(s){switch(s.label){case 0:e={},s.label=1;case 1:return s.trys.push([1,3,,4]),[4,this.appDevSdk.requestApi(o?"AppGetUserDeviceConfig":"AppGetDeviceConfig",{DeviceId:t,DeviceKey:r})];case 2:return i=s.sent(),e=i.Configs,[3,4];case 3:return n=s.sent(),console.warn("AppGetDeviceConfig fail",n),[3,4];case 4:if("*"===r)return[2,e];if("string"==typeof(a=e[r])&&~a.indexOf("{"))try{a=JSON.parse(a)}catch(e){console.warn("parse device value fail",e)}return[2,a]}}))}))},e.prototype.setDeviceConfig=function(e){var t=e.DeviceId,i=e.DeviceKey,r=e.DeviceValue,n=e.isUserConfig,o=void 0!==n&&n;return"string"!=typeof r&&(r=JSON.stringify(r)),this.appDevSdk.requestApi(o?"AppSetUserDeviceConfig":"AppSetDeviceConfig",{DeviceId:t,DeviceKey:i,DeviceValue:r})},e.prototype.reportBlueToothDeviceData=function(e){var t=e.ProductId,i=e.DeviceName,r=e.Data,n=e.DataTimeStamp;return tslib_1.__awaiter(this,void 0,void 0,(function(){return tslib_1.__generator(this,(function(e){return r||(r={}),"string"!=typeof r&&(r=JSON.stringify(r)),[2,this.appDevSdk.requestApi("AppReportDataAsDevice",{ProductId:t,DeviceName:i,Data:r,DataTimeStamp:n})]}))}))},e.prototype.getDeviceData=function(e){var t=e.ProductId,i=e.DeviceName;return tslib_1.__awaiter(this,void 0,void 0,(function(){var e;return tslib_1.__generator(this,(function(r){switch(r.label){case 0:return[4,this.appDevSdk.requestApi("AppGetDeviceData",{ProductId:t,DeviceName:i})];case 1:e=r.sent().Data;try{return"string"==typeof e&&(e=JSON.parse(e)),[2,e]}catch(e){return console.error("parse json fail",{ProductId:t,DeviceName:i},e),[2,{}]}return[2]}}))}))},e.prototype.reportDeviceEvent=function(e){var t=e.DeviceId,i=e.EventId,r=e.Params;return tslib_1.__awaiter(this,void 0,void 0,(function(){return tslib_1.__generator(this,(function(e){return[2,this.appDevSdk.requestApi("AppReportDeviceEvent",{DeviceId:t,EventId:i,Params:r,Method:"ReportEventAsDevice"})]}))}))},e.prototype.addDeviceBySigInFamily=function(e){var t=e.Signature,i=e.DeviceTimestamp,r=e.ProductId,n=e.DeviceName,o=e.DeviceId,a=e.ConnId,s=e.FamilyId,c=e.RoomId,u=e.SignMethod,p=void 0===u?"hmacsha1":u,d=e.BindType,v=void 0===d?"other_sign":d;return tslib_1.__awaiter(this,void 0,void 0,(function(){return tslib_1.__generator(this,(function(e){switch(e.label){case 0:return[4,this.appDevSdk.requestApi("AppSigBindDeviceInFamily",{Signature:t,DeviceTimestamp:i,ProductId:r,DeviceName:n,DeviceId:o,ConnId:a,FamilyId:s,RoomId:c,BindType:v,SignMethod:p})];case 1:return[2,e.sent().Data.AppDeviceInfo]}}))}))},e.prototype.deleteDeviceFromFamily=function(e){var t=e.FamilyId,i=e.DeviceId;return tslib_1.__awaiter(this,void 0,void 0,(function(){return tslib_1.__generator(this,(function(e){return[2,this.appDevSdk.requestApi("AppDeleteDeviceInFamily",{FamilyId:t,DeviceId:i})]}))}))},e.prototype.publishDeviceActionMessage=function(e){var t=e.productId,i=e.deviceName,r=e.clientToken,n=e.actionId,o=e.output;return tslib_1.__awaiter(this,void 0,void 0,(function(){var e,a;return tslib_1.__generator(this,(function(s){return e={method:"action_reply",clientToken:r,ActionId:n,timestamp:Math.floor(Date.now()/1e3),response:o,code:0,status:"action execute success!"},a={ProductId:t,DeviceName:i,Topic:"$thing/up/action/"+t+"/"+i,Payload:JSON.stringify(e)},console.log("---reply action---",a),[2,this.appDevSdk.requestApi("AppPublishMsgAsDevice",a)]}))}))},e.prototype.reportOTAVersion=function(e){var t=e.Version,i=e.DeviceId;return tslib_1.__awaiter(this,void 0,void 0,(function(){return tslib_1.__generator(this,(function(e){return[2,this.appDevSdk.requestApi("AppReportFirmwareVersion",{Version:t,DeviceId:i})]}))}))},e.prototype.getDeviceOTAInfo=function(e){var t=e.DeviceId;return tslib_1.__awaiter(this,void 0,void 0,(function(){return tslib_1.__generator(this,(function(e){return[2,this.appDevSdk.requestApi("AppGetDeviceOTAInfo",{DeviceId:t})]}))}))},e.prototype.getProduct=function(e){var t=e.ProductId;return tslib_1.__awaiter(this,void 0,void 0,(function(){return tslib_1.__generator(this,(function(e){switch(e.label){case 0:return[4,this.appDevSdk.requestApi("AppGetProducts",{ProductIds:[t]})];case 1:return[2,e.sent().Products[0]]}}))}))},e.prototype.getProductConfig=function(e){var t=e.ProductId;return tslib_1.__awaiter(this,void 0,void 0,(function(){var e,i;return tslib_1.__generator(this,(function(r){switch(r.label){case 0:return[4,this.appDevSdk.requestApi("AppGetProductsConfig",{ProductIds:[t]})];case 1:return e=r.sent().Data,i={},e.forEach((function(e){try{e.Config=JSON.parse(e.Config)}catch(t){e.Config={}}i[e.ProductId]=iotexplorer_ui_dev_config_1.initializeUIDevConfig(e.Config)})),[2,i[t]]}}))}))},e.prototype.dynamicRegisterDevice=function(e){var t=e.deviceName,i=e.productId,r=e.timestamp,n=e.nonce,o=e.sign;return tslib_1.__awaiter(this,void 0,void 0,(function(){return tslib_1.__generator(this,(function(e){switch(e.label){case 0:return[4,this.appDevSdk.requestApi("AppDeviceDynamicRegister",{DeviceId:i+"/"+t,DeviceTimestamp:r,Nonce:n,Signature:o})];case 1:return[2,{payload:e.sent().Payload}]}}))}))},e}();exports.Models=Models;
//# sourceMappingURL=Models.js.map

@@ -59,3 +59,3 @@ import { StandardDeviceAdapter } from '../base';

}): Promise<void>;
disconnectDevice(): void;
disconnectDevice(): Promise<void>;
connectDevice({ autoNotify, }?: {

@@ -62,0 +62,0 @@ autoNotify?: boolean;

@@ -1,2 +0,2 @@

"use strict";var _a;Object.defineProperty(exports,"__esModule",{value:!0}),exports.sliceData=exports.getTlvDataParser=exports.TlvDataTypeIndexMap=exports.convertActionOutputTlvToJsObject=exports.convertEventTlvToJsObject=exports.eventTlvData=exports.convertPropertiesChangeToTlv=exports.convertActionControlToTlv=exports.convertPropertiesTlvToJsObject=exports.tlvHex=exports.stringToTlv=exports.genHead=exports.getTypeHead=exports.getTypeIndexFromHead=exports.getTypeFromHead=void 0;var tslib_1=require("tslib"),qcloud_iotexplorer_appdev_sdk_1=require("qcloud-iotexplorer-appdev-sdk"),constants=tslib_1.__importStar(require("../constants")),util_1=require("./util"),byteUtil=qcloud_iotexplorer_appdev_sdk_1.AppDevSdk.utils.byteUtil;exports.getTypeFromHead=function(t){return parseInt(t,16)>>5},exports.getTypeIndexFromHead=function(t){return 31&parseInt(t,16)},exports.getTypeHead=function(t,e){return"string"==typeof t&&(t=parseInt(t,2)),"string"==typeof e&&(e=parseInt(e,2)),byteUtil.byteToHex(t<<5|31&e)},exports.genHead=function(t,e){var n=constants.TLV_TYPE_INDEX[t];return byteUtil.byteToHex(n<<5|31&e)},exports.stringToTlv=function(t){var e=""+util_1.U16ToHexString(t.length)+byteUtil.byteArrayToHex(byteUtil.stringToByteArray(t));return byteUtil.hexString2hexArray(e)||[""]};var parseTlv=function(t){var e,n=t.type,o=t.tlvHex,a=t.hexIndex,s=t.needResolveType,r=void 0===s||s,T=constants.TLV_TYPE_LENGTH,l=constants.BLE_IOT_DATA_TYPE_BOOL,_=constants.BLE_IOT_DATA_TYPE_INT,c=constants.BLE_IOT_DATA_TYPE_ENUM,p=constants.BLE_IOT_DATA_TYPE_FLOAT,i=constants.BLE_IOT_DATA_TYPE_TIME,v=constants.BLE_IOT_DATA_TYPE_STRING,d=constants.BLE_IOT_DATA_TYPE_STRUCT,u=constants.BLE_IOT_DATA_TYPE_ARRAY;switch(r&&++a,n){case l:e=parseInt(o[a],16),a++;break;case i:case c:e=parseInt(o.slice(a,a+=T[n]).join(""),16);break;case p:e=parseFloat(""+byteUtil.hexArray2Float32(o.slice(a,a+=T[n]),3));break;case _:e=byteUtil.hex2Int32(o.slice(a,a+=T[n]));break;case v:var x=o.slice(a),I=util_1.getStrLength(x);a+=2,x=o.slice(a,a+=I),e=util_1.hex2str(x);break;case u:case d:x=o.slice(a),I=util_1.getStrLength(x);a+=2,e=x=o.slice(a,a+=I)}return{hexIndex:a,value:e}},loopParseTlv=function(t,e,n,o){void 0===n&&(n=0),void 0===o&&(o=!1);for(var a={},s=n;s<e.length;){var r=exports.getTypeFromHead(e[s]),T=t[exports.getTypeIndexFromHead(e[s])];if(!T)throw{code:"ID_TEMPLATE_IS_NOT_EXIT"};var l=o?T.dataType.type:T.define.type;if(console.log("---type---",r,constants.TLV_TYPE_INDEX[l]),r!==constants.TLV_TYPE_INDEX[l])throw{code:"TYPE_IN_MODULE_IS_WRONG"};var _=parseTlv({type:l,tlvHex:e,hexIndex:s});if(s=_.hexIndex,l===constants.BLE_IOT_DATA_TYPE_ARRAY){for(var c=_.value||[],p=[],i=T.define.arrayInfo.type,v=0;v<c.length;){var d=parseTlv({type:i,tlvHex:c,hexIndex:v,needResolveType:!1}),u=d.hexIndex,x=d.value;v=u,i===constants.BLE_IOT_DATA_TYPE_STRUCT?p.push(loopParseTlv(T.define.arrayInfo.specs,x,0,!0)):p.push(x)}console.log("ARRAY",T,_,p),a[T.id]=p}else l===constants.BLE_IOT_DATA_TYPE_STRUCT?(console.log("STRUCT",T.define.specs,_.value),a[T.id]=loopParseTlv(T.define.specs,_.value,0,!0)):a[T.id]=_.value}return a},getIndexMap=function(t){var e={};return t.map((function(t,n){e[t.id]=n})),e},convertToTlv=function(t){var e=t.type,n=t.typeIndex,o=void 0===n?0:n,a=t.value,s=t.templateConfig,r=void 0===s?{}:s,T=t.needGenHead,l=void 0===T||T,_=constants.BLE_IOT_DATA_TYPE_BOOL,c=constants.BLE_IOT_DATA_TYPE_INT,p=constants.BLE_IOT_DATA_TYPE_ENUM,i=constants.BLE_IOT_DATA_TYPE_FLOAT,v=constants.BLE_IOT_DATA_TYPE_TIME,d=constants.BLE_IOT_DATA_TYPE_STRING,u=constants.BLE_IOT_DATA_TYPE_STRUCT,x=constants.BLE_IOT_DATA_TYPE_ARRAY,I=byteUtil.hexString2hexArray,E=byteUtil.int32ToHex,A=byteUtil.byteToHex,y=byteUtil.convertNumberToByte,P=[];switch(e){case _:P=[A(y(a))];break;case v:case c:P=I(E(a))||[""];break;case p:P=I(util_1.U16ToHexString(a))||[""];break;case i:P=byteUtil.float32ToHexArray(parseFloat(a))||[""];break;case d:P=exports.stringToTlv(a);break;case u:var D=getIndexMap(r),g=loopConvertToTlv(a,D,r,!0).tlvData,O=g.length;P=tslib_1.__spread(byteUtil.hexString2hexArray(util_1.U16ToHexString(O)),g);break;case x:var f=r[0],L=a;f&&Array.isArray(L)&&L.forEach((function(t){var e=convertToTlv({type:f.type,value:t,needGenHead:!1,templateConfig:f.type===u?f.specs:{}});P.push.apply(P,tslib_1.__spread(e))})),P=tslib_1.__spread(byteUtil.hexString2hexArray(util_1.U16ToHexString(P.length)),P)}return l&&P.unshift(exports.genHead(e,o)),tslib_1.__spread(P)},loopConvertToTlv=function(t,e,n,o){void 0===o&&(o=!1);var a=[];Object.keys(t).forEach((function(s){var r=e[s],T=n[r]&&(o?n[r].dataType:n[r].define),l=null==T?void 0:T.type;if(!l)throw{code:"TEMPLATE_NOT_MATCH",detail:{jsObj:t,templateConfig:n}};var _=void 0;switch(l){case constants.BLE_IOT_DATA_TYPE_ARRAY:_=[n[r].define.arrayInfo];break;case constants.BLE_IOT_DATA_TYPE_STRUCT:_=n[r].define.specs;break;default:_={}}a[r]=convertToTlv({type:l,typeIndex:r,value:t[s],templateConfig:_})}));var s=[];return a.map((function(t){(null==t?void 0:t.length)&&s.push.apply(s,tslib_1.__spread(t))})),console.log("---tlvData---",s),{tlvData:s,tmpData:a}};exports.tlvHex=["00","00","81","00","00","22","00","00","00","00","43","00","0C","64","65","66","61","75","6C","74","20","6E","61","6D","65"],exports.convertPropertiesTlvToJsObject=function(t,e){constants.TLV_TYPE_INDEX;var n=constants.TEMPLATE_PROPERTY;console.log("---tlvHex--",t);var o=e[n];if(!o)throw{code:"NO_SUCH_MODE_FOR_THIS_PRODUCT"};return loopParseTlv(o,t)},exports.convertActionControlToTlv=function(t,e){console.log("---convertActionControlToTlv--",t);var n=e[constants.TEMPLATE_ACTIONS],o=getIndexMap(n)[t.actionId],a=n[o],s=t.params,r=getIndexMap(a.input);console.log("---jsObj--",s,r);var T=loopConvertToTlv(s,r,a.input);return{actionIndex:o,tlvData:T.tlvData,tmpData:T.tmpData}},exports.convertPropertiesChangeToTlv=function(t,e){var n=constants.TEMPLATE_PROPERTY;console.log("---jsObj--",t,e);var o=e[n],a=getIndexMap(o),s=loopConvertToTlv(t,a,o),r=s.tlvData,T=s.tmpData;return console.warn("---tlvData---",r),console.warn("---tmpData---",T),{tlvData:r,tmpData:T}},exports.eventTlvData=["01","60","00","00","80","3F"],exports.convertEventTlvToJsObject=function(t,e){var n=constants.TEMPLATE_EVENTS,o=(constants.TLV_TYPE_INDEX,parseInt(t[0],16)),a=e[n][o];if(!a)throw{code:"NO_SUCH_MODE_FOR_THIS_PRODUCT"};var s=loopParseTlv(a.params,t,1);return{eventId:a.id,eventIndex:o,params:s}},exports.convertActionOutputTlvToJsObject=function(t,e){var n=parseInt(t[0],16),o=e[constants.TEMPLATE_ACTIONS][n];if(!o)throw{code:"NO_SUCH_MODE_FOR_THIS_PRODUCT"};var a=loopParseTlv(o.output,t,1);return{actionId:o.id,actionIndex:n,outputParams:a}},exports.TlvDataTypeIndexMap=((_a={})[constants.PROPERTY_REPORT]=2,_a[constants.EVENT_REPORT]=3,_a[constants.ACTION_REPLY]=4,_a.default=2,_a),exports.getTlvDataParser=function(t){void 0===t&&(t="default");var e=[];return function(n){console.log("----data----",n);var o=util_1.getStrLength(n),a=o>>14,s=o>>13&1,r=constants.SPLIT_MAP[a];switch(console.log(a,r,t),r){case constants.SPLIT_FIRST:return e=tslib_1.__spread(n.slice(2)),null;case constants.SPLIT_MIDDLE:return e=e.concat(n.slice(void 0!==exports.TlvDataTypeIndexMap[t]?exports.TlvDataTypeIndexMap[t]:2)),null;case constants.SPLIT_LAST:return(e=e.concat(n.slice(void 0!==exports.TlvDataTypeIndexMap[t]?exports.TlvDataTypeIndexMap[t]:2))).splice.apply(e,tslib_1.__spread([0,0],byteUtil.hexString2hexArray(util_1.U16ToHexString(s<<15|e.length))||[])),console.log("----completeData---",e),e;case constants.NOT_SPLIT:return n}}},exports.sliceData=function(t,e){var n=e.head,o=e.mtu,a=e.mode,s=[],r=[],T=o-1-2;return t.map((function(t){if(t.length<T)r.push(t);else for(var e=a===constants.CONTROL_ACTION,n=e?1:0;n<t.length;n+=T)e?r.push(tslib_1.__spread([t[1]],t.slice(n,n+T))):r.push(t.slice(n,n+T))})),r.map((function(t,e){var o,a=n.join("");o=0===e?constants.SPLIT_INDEX_MAP[constants.SPLIT_FIRST]:e===r.length-1?constants.SPLIT_INDEX_MAP[constants.SPLIT_LAST]:constants.SPLIT_INDEX_MAP[constants.SPLIT_MIDDLE],a+=util_1.U16ToHexString(o<<14|t.length),a+=t.join(""),s.push(a)})),s};
"use strict";var _a;Object.defineProperty(exports,"__esModule",{value:!0}),exports.sliceData=exports.getTlvDataParser=exports.TlvDataTypeIndexMap=exports.convertActionOutputTlvToJsObject=exports.convertEventTlvToJsObject=exports.eventTlvData=exports.convertPropertiesChangeToTlv=exports.convertActionControlToTlv=exports.convertPropertiesTlvToJsObject=exports.tlvHex=exports.stringToTlv=exports.genHead=exports.getTypeHead=exports.getTypeIndexFromHead=exports.getTypeFromHead=void 0;var tslib_1=require("tslib"),qcloud_iotexplorer_appdev_sdk_1=require("qcloud-iotexplorer-appdev-sdk"),constants=tslib_1.__importStar(require("../constants")),util_1=require("./util"),byteUtil=qcloud_iotexplorer_appdev_sdk_1.AppDevSdk.utils.byteUtil;exports.getTypeFromHead=function(t){return parseInt(t,16)>>5},exports.getTypeIndexFromHead=function(t){return 31&parseInt(t,16)},exports.getTypeHead=function(t,e){return"string"==typeof t&&(t=parseInt(t,2)),"string"==typeof e&&(e=parseInt(e,2)),byteUtil.byteToHex(t<<5|31&e)},exports.genHead=function(t,e){var n=constants.TLV_TYPE_INDEX[t];return byteUtil.byteToHex(n<<5|31&e)},exports.stringToTlv=function(t){var e=""+util_1.U16ToHexString(t.length)+byteUtil.byteArrayToHex(byteUtil.stringToByteArray(t));return byteUtil.hexString2hexArray(e)||[""]};var parseTlv=function(t){var e,n=t.type,o=t.tlvHex,a=t.hexIndex,r=t.needResolveType,s=void 0===r||r,T=constants.TLV_TYPE_LENGTH,l=constants.BLE_IOT_DATA_TYPE_BOOL,_=constants.BLE_IOT_DATA_TYPE_INT,c=constants.BLE_IOT_DATA_TYPE_ENUM,p=constants.BLE_IOT_DATA_TYPE_FLOAT,i=constants.BLE_IOT_DATA_TYPE_TIME,v=constants.BLE_IOT_DATA_TYPE_STRING,d=constants.BLE_IOT_DATA_TYPE_STRUCT,u=constants.BLE_IOT_DATA_TYPE_ARRAY;switch(s&&++a,n){case l:e=parseInt(o[a],16),a++;break;case i:case c:e=parseInt(o.slice(a,a+=T[n]).join(""),16);break;case p:e=parseFloat(""+byteUtil.hexArray2Float32(o.slice(a,a+=T[n]),3));break;case _:e=byteUtil.hex2Int32(o.slice(a,a+=T[n]));break;case v:var x=o.slice(a),I=util_1.getStrLength(x);a+=2,x=o.slice(a,a+=I),e=util_1.hex2str(x);break;case u:case d:x=o.slice(a),I=util_1.getStrLength(x);a+=2,e=x=o.slice(a,a+=I)}return{hexIndex:a,value:e}},loopParseTlv=function(t,e,n,o){void 0===n&&(n=0),void 0===o&&(o=!1);for(var a={},r=n;r<e.length;){var s=exports.getTypeFromHead(e[r]),T=t[exports.getTypeIndexFromHead(e[r])];if(!T)throw{code:"ID_TEMPLATE_IS_NOT_EXIT"};var l=o?T.dataType.type:T.define.type;if(console.log("---type---",s,constants.TLV_TYPE_INDEX[l]),s!==constants.TLV_TYPE_INDEX[l])throw{code:"TYPE_IN_MODULE_IS_WRONG"};var _=parseTlv({type:l,tlvHex:e,hexIndex:r});if(r=_.hexIndex,l===constants.BLE_IOT_DATA_TYPE_ARRAY){for(var c=_.value||[],p=[],i=T.define.arrayInfo.type,v=0;v<c.length;){var d=parseTlv({type:i,tlvHex:c,hexIndex:v,needResolveType:!1}),u=d.hexIndex,x=d.value;v=u,i===constants.BLE_IOT_DATA_TYPE_STRUCT?p.push(loopParseTlv(T.define.arrayInfo.specs,x,0,!0)):p.push(x)}console.log("ARRAY",T,_,p),a[T.id]=p}else l===constants.BLE_IOT_DATA_TYPE_STRUCT?(console.log("STRUCT",T.define.specs,_.value),a[T.id]=loopParseTlv(T.define.specs,_.value,0,!0)):a[T.id]=_.value}return a},getIndexMap=function(t){var e={};return t.map((function(t,n){e[t.id]=n})),e},convertToTlv=function(t){var e=t.type,n=t.typeIndex,o=void 0===n?0:n,a=t.value,r=t.templateConfig,s=void 0===r?{}:r,T=t.needGenHead,l=void 0===T||T,_=constants.BLE_IOT_DATA_TYPE_BOOL,c=constants.BLE_IOT_DATA_TYPE_INT,p=constants.BLE_IOT_DATA_TYPE_ENUM,i=constants.BLE_IOT_DATA_TYPE_FLOAT,v=constants.BLE_IOT_DATA_TYPE_TIME,d=constants.BLE_IOT_DATA_TYPE_STRING,u=constants.BLE_IOT_DATA_TYPE_STRUCT,x=constants.BLE_IOT_DATA_TYPE_ARRAY,I=byteUtil.hexString2hexArray,E=byteUtil.int32ToHex,A=byteUtil.byteToHex,y=byteUtil.convertNumberToByte,P=[];switch(e){case _:P=[A(y(a))];break;case v:case c:P=I(E(a))||[""];break;case p:P=I(util_1.U16ToHexString(a))||[""];break;case i:P=byteUtil.float32ToHexArray(parseFloat(a))||[""];break;case d:P=exports.stringToTlv(a);break;case u:var g=getIndexMap(s),D=loopConvertToTlv(a,g,s,!0).tlvData,O=D.length;P=tslib_1.__spread(byteUtil.hexString2hexArray(util_1.U16ToHexString(O)),D);break;case x:var f=s[0],h=a;f&&Array.isArray(h)&&h.forEach((function(t){var e=convertToTlv({type:f.type,value:t,needGenHead:!1,templateConfig:f.type===u?f.specs:{}});P.push.apply(P,tslib_1.__spread(e))})),P=tslib_1.__spread(byteUtil.hexString2hexArray(util_1.U16ToHexString(P.length)),P)}return l&&P.unshift(exports.genHead(e,o)),tslib_1.__spread(P)},loopConvertToTlv=function(t,e,n,o){void 0===o&&(o=!1);var a=[];Object.keys(t).forEach((function(r){var s=e[r],T=n[s]&&(o?n[s].dataType:n[s].define),l=null==T?void 0:T.type;if(!l)throw{code:"TEMPLATE_NOT_MATCH",detail:{jsObj:t,templateConfig:n}};var _=void 0;switch(l){case constants.BLE_IOT_DATA_TYPE_ARRAY:_=[n[s].define.arrayInfo];break;case constants.BLE_IOT_DATA_TYPE_STRUCT:_=n[s].define.specs;break;default:_={}}a[s]=convertToTlv({type:l,typeIndex:s,value:t[r],templateConfig:_})}));var r=[];return a.map((function(t){(null==t?void 0:t.length)&&r.push.apply(r,tslib_1.__spread(t))})),console.log("---tlvData---",r),{tlvData:r,tmpData:a}};exports.tlvHex=["00","00","81","00","00","22","00","00","00","00","43","00","0C","64","65","66","61","75","6C","74","20","6E","61","6D","65"],exports.convertPropertiesTlvToJsObject=function(t,e){var n=constants.TEMPLATE_PROPERTY;console.log("---tlvHex--",t);var o=e[n];if(!o)throw{code:"NO_SUCH_MODE_FOR_THIS_PRODUCT"};return loopParseTlv(o,t)},exports.convertActionControlToTlv=function(t,e){console.log("---convertActionControlToTlv--",t);var n=e[constants.TEMPLATE_ACTIONS],o=getIndexMap(n)[t.actionId],a=n[o],r=t.params,s=getIndexMap(a.input);console.log("---jsObj--",r,s);var T=loopConvertToTlv(r,s,a.input);return{actionIndex:o,tlvData:T.tlvData,tmpData:T.tmpData}},exports.convertPropertiesChangeToTlv=function(t,e){var n=constants.TEMPLATE_PROPERTY;console.log("---jsObj--",t,e);var o=e[n],a=getIndexMap(o),r=loopConvertToTlv(t,a,o),s=r.tlvData,T=r.tmpData;return console.warn("---tlvData---",s),console.warn("---tmpData---",T),{tlvData:s,tmpData:T}},exports.eventTlvData=["01","60","00","00","80","3F"],exports.convertEventTlvToJsObject=function(t,e){var n=constants.TEMPLATE_EVENTS,o=parseInt(t[0],16),a=e[n][o];if(!a)throw{code:"NO_SUCH_MODE_FOR_THIS_PRODUCT"};var r=loopParseTlv(a.params,t,1);return{eventId:a.id,eventIndex:o,params:r}},exports.convertActionOutputTlvToJsObject=function(t,e){var n=parseInt(t[0],16),o=e[constants.TEMPLATE_ACTIONS][n];if(!o)throw{code:"NO_SUCH_MODE_FOR_THIS_PRODUCT"};var a=loopParseTlv(o.output,t,1);return{actionId:o.id,actionIndex:n,outputParams:a}},exports.TlvDataTypeIndexMap=((_a={})[constants.PROPERTY_REPORT]=2,_a[constants.EVENT_REPORT]=3,_a[constants.ACTION_REPLY]=4,_a.default=2,_a),exports.getTlvDataParser=function(t){void 0===t&&(t="default");var e=[];return function(n){console.log("----data----",n);var o=util_1.getStrLength(n),a=o>>14,r=o>>13&1,s=constants.SPLIT_MAP[a];switch(console.log(a,s,t),s){case constants.SPLIT_FIRST:return e=tslib_1.__spread(n.slice(2)),null;case constants.SPLIT_MIDDLE:return e=e.concat(n.slice(void 0!==exports.TlvDataTypeIndexMap[t]?exports.TlvDataTypeIndexMap[t]:2)),null;case constants.SPLIT_LAST:return(e=e.concat(n.slice(void 0!==exports.TlvDataTypeIndexMap[t]?exports.TlvDataTypeIndexMap[t]:2))).splice.apply(e,tslib_1.__spread([0,0],byteUtil.hexString2hexArray(util_1.U16ToHexString(r<<15|e.length))||[])),console.log("----completeData---",e),e;case constants.NOT_SPLIT:return n}}},exports.sliceData=function(t,e){var n=e.head,o=e.mtu,a=e.mode,r=[],s=[],T=o-1-2;return t.forEach((function(t){if(t.length<T)s.push(t);else for(var e=a===constants.CONTROL_ACTION,n=e?1:0;n<t.length;n+=T)e?s.push(tslib_1.__spread([t[1]],t.slice(n,n+T))):s.push(t.slice(n,n+T))})),s.forEach((function(t,e){var o,a=n.join("");o=0===e?constants.SPLIT_INDEX_MAP[constants.SPLIT_FIRST]:e===s.length-1?constants.SPLIT_INDEX_MAP[constants.SPLIT_LAST]:constants.SPLIT_INDEX_MAP[constants.SPLIT_MIDDLE],a+=util_1.U16ToHexString(o<<14|t.length),a+=t.join(""),r.push(a)})),r};
//# sourceMappingURL=tlvJson.js.map

@@ -54,3 +54,3 @@ export declare const StandardDeviceAdapter4Mp: (new (...args: any[]) => {

}): Promise<void>;
disconnectDevice(): void;
disconnectDevice(): Promise<void>;
connectDevice({ autoNotify, }?: {

@@ -57,0 +57,0 @@ autoNotify?: boolean;

{
"name": "qcloud-iotexplorer-bluetooth-adapter-llsync",
"version": "1.3.4",
"version": "1.3.6",
"description": "",

@@ -17,6 +17,6 @@ "main": "lib/index.js",

"dependencies": {
"event-emitter-for-miniprogram": "^0.0.12",
"iotexplorer-ui-dev-config": "^1.0.22",
"qcloud-iotexplorer-appdev-sdk": "^1.1.13",
"qcloud-iotexplorer-bluetooth-adapter": "^0.3.3",
"event-emitter-for-miniprogram": "^0.0.13",
"iotexplorer-ui-dev-config": "^1.0.25",
"qcloud-iotexplorer-appdev-sdk": "^1.1.15",
"qcloud-iotexplorer-bluetooth-adapter": "^0.3.5",
"shortid-for-miniprogram": "^2.2.15",

@@ -26,3 +26,3 @@ "spark-md5": "^3.0.1",

},
"gitHead": "c4695c02277c830bcfa8d2084d7a454caf7f87fe"
"gitHead": "10163258c2ec4eacfbe72611ec7205e18498be6a"
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc