| 
						|
								const WXAPI = require('./request')
							 | 
						|
								class IotTask{
							 | 
						|
								    constructor(lockId,doTask){
							 | 
						|
								        this.lockId = lockId
							 | 
						|
								        this.response = null;
							 | 
						|
								        this.taskContent = '' //锁返回的
							 | 
						|
								        this.timer = null //定时器
							 | 
						|
								        this.interval = 1000; //任务执行间隔
							 | 
						|
								        this.doTask = doTask;
							 | 
						|
								    }
							 | 
						|
								    run(){
							 | 
						|
								        this.timer = setInterval(async () => {
							 | 
						|
								            await this.getTask()
							 | 
						|
								            const lockeResult = await this.doTask(this.response)
							 | 
						|
								            this.taskContent = lockeResult
							 | 
						|
								        }, this.interval);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    clearTimer(){
							 | 
						|
								        clearInterval(this.timer)
							 | 
						|
								        this.timer = null
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    async getTask(){
							 | 
						|
								        //如果获取任务为空
							 | 
						|
								        const params = {
							 | 
						|
								          code: "zg/bleIotTransmit",
							 | 
						|
								          data: {
							 | 
						|
								            lockerId: this.lockId,
							 | 
						|
								            hexString: this.taskContent
							 | 
						|
								          }
							 | 
						|
								        }
							 | 
						|
								        let res = null
							 | 
						|
								        try{
							 | 
						|
								            res = await WXAPI.sendCommand(params)
							 | 
						|
								            console.log('后台获取的任务',res)
							 | 
						|
								            if(res.code != 200){
							 | 
						|
								                this.clearTimer()
							 | 
						|
								                return
							 | 
						|
								            }
							 | 
						|
								            if(res.data.sendContentsHexString){
							 | 
						|
								                wx.showLoading({
							 | 
						|
								                  title: '同步中',
							 | 
						|
								                })
							 | 
						|
								                const len = res.data.sendContentsHexString.length
							 | 
						|
								                console.log(len)
							 | 
						|
								                this.response = res.data.sendContentsHexString.substring(36,len)
							 | 
						|
								                console.log(this.response)
							 | 
						|
								                if(!this.response){
							 | 
						|
								                    wx.showToast({
							 | 
						|
								                        title: '没有可同步的任务',
							 | 
						|
								                        icon:'error'
							 | 
						|
								                      })
							 | 
						|
								                    wx.hideLoading()
							 | 
						|
								                    this.clearTimer()
							 | 
						|
								                }
							 | 
						|
								            }else{
							 | 
						|
								                wx.showToast({
							 | 
						|
								                  title: '没有可同步的任务',
							 | 
						|
								                  icon:'error'
							 | 
						|
								                })
							 | 
						|
								                this.clearTimer()
							 | 
						|
								            }
							 | 
						|
								        }catch(e){
							 | 
						|
								            if(e.errMsg == 'request:fail fail:time out'){
							 | 
						|
								                wx.showToast({
							 | 
						|
								                  title: '接口请求超时',
							 | 
						|
								                  icon: 'error'
							 | 
						|
								                })
							 | 
						|
								                this.clearTimer()
							 | 
						|
								                return 
							 | 
						|
								            }
							 | 
						|
								        }
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								module.exports  =  IotTask
							 |