|
|
-
- 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
|