792 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			792 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| import UdpClient from '../common/utils/UdpClient';
 | |
| import { voiceService } from '../common/service/voiceService'
 | |
| import router from '@ohos.router'
 | |
| import { carConfigurationInfo, uploadExamCarCheckResult } from '../api/checkCar'
 | |
| import TopLogo from './compontents/topLogo'
 | |
| import testNapi from '@ohos.hiserialsdk'
 | |
| import { dateFormat } from '../common/utils/tools';
 | |
| 
 | |
| @Entry
 | |
| @Component
 | |
| struct Index {
 | |
|   @State angle: number = 0
 | |
|   @State ratio: number = 1700 / 960
 | |
|   @State index: number = -1
 | |
|   @State time: string = ''
 | |
|   @State msg: string = ''
 | |
|   @State zjMsg: string = ''
 | |
|   @State zjFlag: boolean = false
 | |
|   @State loading: boolean = false
 | |
|   @State breakFlag: boolean = false
 | |
|   @State checkFlag: boolean = false
 | |
|   @State msgFlag: boolean = false
 | |
|   @State confimDialogFlag: boolean = false
 | |
|   private vocObj = null;
 | |
|   @State checkList: Array<any> = []
 | |
|   @State subFlag: boolean = true
 | |
|   @State signArr: Array<any> = []
 | |
|   @State checkListCopy: Array<any> = []
 | |
|   @State warnFlag: object = {
 | |
|     1:'0',
 | |
|     2:'0',
 | |
|     3:'0',
 | |
|     4:'0',
 | |
|     5:'0',
 | |
|     6:'0',
 | |
|     7:'0',
 | |
|     8:'0',
 | |
|     9:'0',
 | |
|     10: '0',
 | |
|     11: '0',
 | |
|     12: '0',
 | |
|     13: '0',
 | |
|     14: '0',
 | |
|     15: '0',
 | |
|     16: '0',
 | |
|     17: '0',
 | |
|     18: '0',
 | |
|     19: '0',
 | |
|     20: '0',
 | |
|     21: '0',
 | |
|     22: '0',
 | |
|     23: '0',
 | |
|     24: '0',
 | |
|     25: '0',
 | |
|     26: '0',
 | |
|     27: '0',
 | |
|     28: '0',
 | |
|     29: '0',
 | |
|   }
 | |
|   @State @Watch('outClick') outFlag: boolean = false;
 | |
|   @State passArray: object = {
 | |
|     1: false,
 | |
|     2: false,
 | |
|     3: false,
 | |
|     4: false,
 | |
|     5: false,
 | |
|     6: false,
 | |
|     7: false,
 | |
|     8: false,
 | |
|     9: false,
 | |
|     10: false,
 | |
|     11: false,
 | |
|     12: false,
 | |
|     13: false,
 | |
|     14: false,
 | |
|     15: false,
 | |
|     16: false,
 | |
|     17: false,
 | |
|     18: false,
 | |
|     19: false,
 | |
|     20: false,
 | |
|     21: false,
 | |
|     22: false,
 | |
|     23: false,
 | |
|     24: false,
 | |
|     25: false,
 | |
|     26: false,
 | |
|     27: false,
 | |
|     28: false,
 | |
|     29: false,
 | |
|   }
 | |
|   @State stachValue: object = {
 | |
|     1: '',
 | |
|     2: "",
 | |
|     3: "",
 | |
|     4: "",
 | |
|     5: "",
 | |
|     6: "",
 | |
|     7: "",
 | |
|     8: "",
 | |
|     9: "",
 | |
|     10: "",
 | |
|     11: "",
 | |
|     12: "",
 | |
|     13: "",
 | |
|     14: "",
 | |
|     15: "",
 | |
|     16: "",
 | |
|     17: "",
 | |
|     18: "",
 | |
|     19: "",
 | |
|     20: "",
 | |
|     21: "",
 | |
|     22: "",
 | |
|     23: "",
 | |
|     24: "",
 | |
|     25: "",
 | |
|     26: "",
 | |
|     27: "",
 | |
|     28: "",
 | |
|     29: "",
 | |
|   }
 | |
|   @State warnFlagTip: object = {
 | |
|     0: [],
 | |
|     1: [],
 | |
|     2: [],
 | |
|     3: ['check1.wav', 'check2.wav'],
 | |
|     4: ['check3.wav', 'check4.wav'],
 | |
|     5: ['check5.wav', 'check6.wav'],
 | |
|     6: ['check7.wav', 'check8.wav'],
 | |
|     7: ['check9.wav', 'check10.wav'],
 | |
|     8: ['check26.wav', 'check27.wav'],
 | |
|     9: ['dianhuoVideo.wav', 'xihuoVideo.wav'],
 | |
|     10: ['check31.wav'],
 | |
|     11: ['check30.wav'],
 | |
|     12: ['check28.wav'],
 | |
|     13: ['check29.wav'],
 | |
|     14: ['check11.wav'],
 | |
|     15: ['check12.wav'],
 | |
|     16: ['check13.wav'],
 | |
|     17: ['check14.wav'],
 | |
|     18: ['check15.wav'],
 | |
|     19: ['check16.wav'],
 | |
|     20: ['check17.wav'],
 | |
|     21: ['check18.wav'],
 | |
|     22: ['check19.wav'],
 | |
|     23: ['check22.wav'],
 | |
|     24: ['check23.wav'],
 | |
|     25: ['check20.wav', 'check21.wav'],
 | |
|     26: ['check24.wav'],
 | |
|     // 27:[],
 | |
|     // 28:[],
 | |
|     // 29:[],
 | |
|   }
 | |
|   @State realNum: object = {
 | |
|     3: 19,
 | |
|     4: 17,
 | |
|     5: 13,
 | |
|     6: 12,
 | |
|     7: 14,
 | |
|     8: 18,
 | |
|     9: 5,
 | |
|     10: 29,
 | |
|     11: 30,
 | |
|     12: 31,
 | |
|     13: 32,
 | |
|     14: 28,
 | |
|     15: 28,
 | |
|     16: 28,
 | |
|     17: 28,
 | |
|     18: 28,
 | |
|     19: 28,
 | |
|     20: 28,
 | |
|     21: 2, //左方向灯,
 | |
|     22: 3,
 | |
|     23: 7,
 | |
|     24: 8,
 | |
|     25: 20,
 | |
|     26: ''
 | |
|   }
 | |
|   @State dwMap: object = {
 | |
|     14: '1',
 | |
|     15: '2',
 | |
|     16: '3',
 | |
|     17: '4',
 | |
|     18: '5',
 | |
|     19: '9',
 | |
|     20: '0'
 | |
|   }
 | |
|   @State len: any = ''
 | |
|   @State fd: number = -1;
 | |
|   @State devPath: string = "/dev/ttyS3"
 | |
|   @State interval: any=""
 | |
|   @State chuankouFlag: any=""
 | |
|   @State stopFlag: boolean=false
 | |
|   // private AccountTable = new AccountTable(()=>{},CommonConstants);
 | |
|   onPageShow() {
 | |
|     const that = this
 | |
|     this.vocObj = new voiceService(async (status, val, next) => {
 | |
|       if (!that.breakFlag) {
 | |
|         return
 | |
|       }
 | |
|       if (status == 'idle') {
 | |
|         if (val == 'kszj.wav') {
 | |
|           console.log('finsh')
 | |
|           this.getCheckList()
 | |
|         } else {
 | |
|           this.subFlag = false
 | |
|           this.getNextNode()
 | |
|         }
 | |
|       }
 | |
|     });
 | |
| 
 | |
|     this.carConfigurationInfoFn()
 | |
|     // //todo串口
 | |
|     // this.openChuankouFn()
 | |
|     // // this.getChuankouFn()
 | |
|     //
 | |
|     // this.interval=setInterval(()=>{
 | |
|     //   const dwArr=[14,15,16,17,18,19,20]
 | |
|     //   // if(dwArr.indexOf(this.index)>=0&&!this.stopFlag){
 | |
|     //     this.getChuankouFn()
 | |
|     //     return
 | |
|     //   // }
 | |
|     // },1000)
 | |
|   }
 | |
| 
 | |
|   openChuankouFn() {
 | |
|     this.fd = testNapi.SerialOpen(this.devPath);
 | |
|     let parity = 0x4e; // 'N'
 | |
|     let ret = testNapi.SerialSet(this.fd, 115200, 0, 8, 1, parity);
 | |
|   }
 | |
| 
 | |
|   getChuankouFn() {
 | |
|     let timeout = 50000; // 2秒超时
 | |
|     let databuff = [0x61, 0xAA, 0x0A, 0X15, 0X00]; // send ABCDE
 | |
| 
 | |
|     let ret = testNapi.SerialSend(this.fd, databuff);
 | |
|     console.log('mmmm',ret)
 | |
|     let revTestInfo = testNapi?.SerialRecv(this.fd, timeout);
 | |
| 
 | |
|     console.log('revTestInfo',revTestInfo.recevedBuf.length)
 | |
| 
 | |
|     const message = revTestInfo?.recevedBuf?.toString()
 | |
|     console.log('chuankou',this.index,message)
 | |
|     if (message == '') {
 | |
|       this.stopFlag=true
 | |
|       return
 | |
|     }
 | |
|     const msg = message?.split(',')
 | |
|     if(!msg?.length){
 | |
|       return
 | |
|     }
 | |
|     if (msg[0] != '98' || msg[1] != '85' || msg.length < 9) {
 | |
|       return
 | |
|     }
 | |
|     globalThis.chuankoMsg=msg[9]
 | |
|     if (msg[9] == this.dwMap[this.index]) {
 | |
|       this.warnFlag[this.index] = '2'
 | |
|     }
 | |
| 
 | |
|   }
 | |
| 
 | |
| 
 | |
|   async xhxs() {
 | |
|     this.vocObj.avPlayerStop()
 | |
|     this.vocObj.releasePlayer()
 | |
|     router.pushUrl({
 | |
|       url: 'pages/SignDisplay',
 | |
|     }, router.RouterMode.Single);
 | |
|     // clearInterval(this.interval)
 | |
| 
 | |
|   }
 | |
|   //
 | |
|   carConfigurationInfoFn() {
 | |
|     if (globalThis.singlePlay) {
 | |
|       //
 | |
|       const str = "1:5;2:5;3:5;4:5;5:5;6:5;7:5;8:5;9:5;10:5;11:5;12:5;13:5;14:5;15:5;16:5;17:5;18:5;19:5;20:5;21:5;22:2;23:5;24:5;25:5;"
 | |
|       const data = str.split(';')
 | |
|       this.checkList = []
 | |
|       const list = data
 | |
|       list.map(res => {
 | |
|         const arr = res.split(':')
 | |
|         this.checkList.push({
 | |
|           'key': parseInt(arr[0]) + 2, 'time': arr[1]
 | |
|         })
 | |
|       })
 | |
|       this.checkListCopy = JSON.parse(JSON.stringify(this.checkList))
 | |
|       return
 | |
|     }
 | |
|     //模拟真实数据
 | |
|     const param = {
 | |
|       "body":
 | |
|       {
 | |
|         "carIdString": globalThis.carInfo.carId, //考车ID
 | |
|         "deviceNo": globalThis.deviceNo
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     carConfigurationInfo(param).then(res => {
 | |
|       const data = res.body.ES_CHECK_CAR_ITEM[0].ITEMS.split(';')
 | |
|       this.checkList = []
 | |
|       const list = data
 | |
|       list.map(res => {
 | |
|         const arr = res.split(':')
 | |
|         this.checkList.push({
 | |
|           'key': parseInt(arr[0]) + 2, 'time': arr[1]
 | |
|         })
 | |
|       })
 | |
|       this.checkListCopy = JSON.parse(JSON.stringify(this.checkList))
 | |
|       //            this.checkList = JSON.parse(res).body.ES_CHECK_CAR_ITEM[0].split(';')
 | |
|       console.log('this.checkList' + this.checkList)
 | |
|     }).catch((error) => {
 | |
|       console.log('error12error' + error)
 | |
|     })
 | |
|   }
 | |
| 
 | |
|   async kszj() {
 | |
|     this.breakFlag = true
 | |
|     this.stachValue = {
 | |
|       1: '',
 | |
|       2: "",
 | |
|       3: "",
 | |
|       4: "",
 | |
|       5: "",
 | |
|       6: "",
 | |
|       7: "",
 | |
|       8: "",
 | |
|       9: "",
 | |
|       10: "",
 | |
|       11: "",
 | |
|       12: "",
 | |
|       13: "",
 | |
|       14: "",
 | |
|       15: "",
 | |
|       16: "",
 | |
|       17: "",
 | |
|       18: "",
 | |
|       19: "",
 | |
|       20: "",
 | |
|       21: "",
 | |
|       22: "",
 | |
|       23: "",
 | |
|       24: "",
 | |
|       25: "",
 | |
|       26: "",
 | |
|       27: "",
 | |
|       28: "",
 | |
|       29: "",
 | |
|     }
 | |
|     this.warnFlag = {
 | |
|       1: 0,
 | |
|       2: 0,
 | |
|       3: 0,
 | |
|       4: 0,
 | |
|       5: 0,
 | |
|       6: 0,
 | |
|       7: 0,
 | |
|       8: 0,
 | |
|       9: 0,
 | |
|       10: 0,
 | |
|       11: 0,
 | |
|       12: 0,
 | |
|       13: 0,
 | |
|       14: 0,
 | |
|       15: 0,
 | |
|       16: 0,
 | |
|       17: 0,
 | |
|       18: 0,
 | |
|       19: 0,
 | |
|       20: 0,
 | |
|       21: 0,
 | |
|       22: 0,
 | |
|       23: 0,
 | |
|       24: 0,
 | |
|       25: 0,
 | |
|       26: 0,
 | |
|       27: 0,
 | |
|       28: 0,
 | |
|       29: 0,
 | |
|     }
 | |
|     this.passArray = {
 | |
|       1: false,
 | |
|       2: false,
 | |
|       3: false,
 | |
|       4: false,
 | |
|       5: false,
 | |
|       6: false,
 | |
|       7: false,
 | |
|       8: false,
 | |
|       9: false,
 | |
|       10: false,
 | |
|       11: false,
 | |
|       12: false,
 | |
|       13: false,
 | |
|       14: false,
 | |
|       15: false,
 | |
|       16: false,
 | |
|       17: false,
 | |
|       18: false,
 | |
|       19: false,
 | |
|       20: false,
 | |
|       21: false,
 | |
|       22: false,
 | |
|       23: false,
 | |
|       24: false,
 | |
|       25: false,
 | |
|       26: false,
 | |
|       27: false,
 | |
|       28: false,
 | |
|       29: false,
 | |
|     }
 | |
|     this.checkListCopy = JSON.parse(JSON.stringify(this.checkList))
 | |
|     this.index = this.checkListCopy[0].key
 | |
|     this.vocObj.playAudio({
 | |
|       type: 1,
 | |
|       name: 'kszj.wav'
 | |
|     })
 | |
|   }
 | |
|   getPLCInfo(){
 | |
|     const that=this
 | |
|     globalThis.udpClient&&globalThis.udpClient.onMessage((msg) => {
 | |
|       if (!this.breakFlag) {
 | |
|         return
 | |
|       }
 | |
|       const stachArr = msg.split(',')
 | |
|       if (stachArr[0] != '#DN_GD') {
 | |
|         return
 | |
|       }
 | |
|       this.signArr = stachArr
 | |
|       const dw = [14, 15, 16, 17, 18, 19, 20];
 | |
|       const dwArr = [14, 15, 16, 17, 18, 19, 20]
 | |
| 
 | |
|       if(dwArr.indexOf(this.index)>=0){
 | |
|         if (stachArr[28] == this.dwMap[this.index]) {
 | |
|           this.warnFlag[this.index] = '2'
 | |
|         }
 | |
|       }
 | |
| 
 | |
|       if (this.subFlag) {
 | |
|         //进项目
 | |
|         that.stachValue[that.index] = that.signArr[that.realNum[that.index]]
 | |
| 
 | |
|         return
 | |
|       }
 | |
|       if (this.index == 26) {
 | |
|         //关闭所有灯光
 | |
|         if (that.signArr[2] != '0' || that.signArr[3] != '0' || that.signArr[7] != '0' || that.signArr[8] != '0') {
 | |
|         } else {
 | |
|           this.warnFlag[26] = '2'
 | |
|         }
 | |
|       }
 | |
| 
 | |
|       if (that.index == 10 || that.index == 11 || that.index == 12 || that.index == 13) {
 | |
|         if (that.signArr[that.realNum[that.index]] != '1200') {
 | |
|           that.warnFlag[that.index] = '2'
 | |
|         } else {
 | |
|         }
 | |
|         return
 | |
|       }
 | |
| 
 | |
|       if (this.warnFlagTip[that.index].length > 1) {
 | |
|         if (that.stachValue[that.index] != that.signArr[that.realNum[that.index]]) {
 | |
|           that.warnFlag[that.index] = '2'
 | |
|         }
 | |
|         return
 | |
|       }
 | |
|       if (!Array.isArray(that.realNum[that.index])) {
 | |
|         if (dw.indexOf(that.index) >= 0) {
 | |
|           that.warnFlag[that.index] = (that.signArr[28] == that.dwMap[that.index] ? '2' : '0')
 | |
|           return
 | |
|         }
 | |
|         if (that.signArr[that.realNum[that.index]] !== '0') {
 | |
|           that.warnFlag[that.index] = '2'
 | |
|         } else {
 | |
| 
 | |
|         }
 | |
| 
 | |
|       }
 | |
|     })
 | |
|   }
 | |
| 
 | |
|   stopCheck() {
 | |
|     this.breakFlag = false
 | |
|   }
 | |
| 
 | |
|   getNextNode() {
 | |
|     setTimeout(() => {
 | |
|       if (this.warnFlag[this.index] != '2') {
 | |
|         this.warnFlag[this.index] = '1'
 | |
|         this.warnFlag=JSON.parse(JSON.stringify(this.warnFlag))
 | |
|       }
 | |
|       if (!this.breakFlag) {
 | |
|         return
 | |
|       }
 | |
|       this.checkListCopy.splice(0, 1)
 | |
|       if (this.checkListCopy.length) {
 | |
|         this.getCheckList()
 | |
|       } else {
 | |
| 
 | |
|         this.zjFlag = true
 | |
|         let flag = false
 | |
|         for (let item in this.warnFlag) {
 | |
|           if (this.warnFlag[item] == '1') {
 | |
|             flag = true
 | |
|           }
 | |
|         }
 | |
|         this.vocObj.playAudio({
 | |
|           type: 1,
 | |
|           name: flag ? 'zjwtg.wav' : 'zjtg.wav'
 | |
|         })
 | |
|         if (globalThis.singlePlay) {
 | |
|           return
 | |
|         }
 | |
|         let date = new Date();
 | |
|         const data = {
 | |
|           time: dateFormat(date),
 | |
|           carId: globalThis.carInfo.carId,
 | |
|           examinationRoomId: globalThis.carInfo.examinationRoomId,
 | |
|           plateNo: globalThis.carInfo.plateNo,
 | |
|           flag: flag ? 'N' : 'Y',
 | |
|           condition: flag ? '自检不通过' : '自检通过'
 | |
|         }
 | |
| 
 | |
|         this.stopCheck()
 | |
|         uploadExamCarCheckResult(data).then((res) => {
 | |
|         })
 | |
|       }
 | |
|     }, parseInt(this.checkListCopy[0].time) * 1000)
 | |
|   }
 | |
| 
 | |
|   getCheckList() {
 | |
|     if (!this.breakFlag) {
 | |
|       return
 | |
|     }
 | |
|     this.index = this.checkListCopy[0].key
 | |
|     this.passArray[this.index] = true
 | |
|     this.passArray=JSON.parse(JSON.stringify(this.passArray))
 | |
|     this.subFlag = true
 | |
|     if (this.warnFlagTip[this.index].length == 1) {
 | |
|       this.vocObj.playAudio({
 | |
|         type: 1,
 | |
|         name: this.warnFlagTip[this.index][0],
 | |
|       })
 | |
|     } else if (this.warnFlagTip[this.index].length == 2) {
 | |
|       if (this.signArr[this.realNum[this.index]] && this.signArr[this.realNum[this.index]] != '0') {
 | |
|         this.vocObj.playAudio({
 | |
|           type: 1,
 | |
|           name: this.warnFlagTip[this.index][1],
 | |
|         })
 | |
|       } else {
 | |
|         this.vocObj.playAudio({
 | |
|           type: 1,
 | |
|           name: this.warnFlagTip[this.index][0],
 | |
|         })
 | |
| 
 | |
|       }
 | |
|     }
 | |
| 
 | |
|   }
 | |
| 
 | |
|   outClick() {
 | |
|     this.vocObj&& this.vocObj.releasePlayer()
 | |
|     this.breakFlag = false
 | |
|     // clearInterval(this.interval)
 | |
|   }
 | |
| 
 | |
|   build() {
 | |
|     Column() {
 | |
|       TopLogo({ outFlag: $outFlag }).margin({ bottom: 25.5 * this.ratio })
 | |
|       Flex({ justifyContent: FlexAlign.SpaceBetween }) {
 | |
|         Column() {
 | |
|           Row() {
 | |
| 
 | |
|             Image(this.passArray[0] ? (this.warnFlag[0] == '0' ? $r('app.media.cheliangmoxing') : (this.warnFlag[0] == '1' ? $r('app.media.cheliangmoxing_r') : $r('app.media.cheliangmoxing_g'))) : $r('app.media.cheliangmoxing'))
 | |
|               .width(138.5 * this.ratio)
 | |
|               .height(112.5 * this.ratio)
 | |
|             Image(this.passArray[1] ? (this.warnFlag[1] == '0' ? $r('app.media.weixingxinhao') : (this.warnFlag[1] == '1' ? $r('app.media.weixingxinhao_r') : $r('app.media.weixingxinhao_g'))) : $r('app.media.weixingxinhao'))
 | |
|               .width(138.5 * this.ratio)
 | |
|               .height(112.5 * this.ratio)
 | |
|             Image(this.passArray[2] ? (this.warnFlag[2] == '0' ? $r('app.media.shipinjiankong') : (this.warnFlag[2] == '1' ? $r('app.media.shipingjiankong_r') : $r('app.media.shipinjiankong_g'))) : $r('app.media.shipinjiankong'))
 | |
|               .width(138.5 * this.ratio)
 | |
|               .height(112.5 * this.ratio)
 | |
|             Image(this.passArray[3] ? (this.warnFlag[3] == '0' ? $r('app.media.anquandai') : (this.warnFlag[3] == '1' ? $r('app.media.anquandai_r') : $r('app.media.anquandai_g'))) : $r('app.media.anquandai'))
 | |
|               .width(138.5 * this.ratio)
 | |
|               .height(112.5 * this.ratio)
 | |
|             Image(this.passArray[4] ? (this.warnFlag[4] == '0' ? $r('app.media.liheqi') : (this.warnFlag[4] == '1' ? $r('app.media.liheqi_r') : $r('app.media.leheqi_g'))) : $r('app.media.liheqi'))
 | |
|               .width(138.5 * this.ratio)
 | |
|               .height(112.5 * this.ratio)
 | |
|           }
 | |
| 
 | |
|           Row() {
 | |
|             Image(this.passArray[5] ? (this.warnFlag[5] == '0' ? $r('app.media.shousha') : (this.warnFlag[5] == '1' ? $r('app.media.shousha_r') : $r('app.media.shousha_g'))) : $r('app.media.shousha'))
 | |
|               .width(138.5 * this.ratio)
 | |
|               .height(112.5 * this.ratio)
 | |
|             Image(this.passArray[6] ? (this.warnFlag[6] == '0' ? $r('app.media.jiaosha') : (this.warnFlag[6] == '1' ? $r('app.media.jiaosha_r') : $r('app.media.jiaosha_g'))) : $r('app.media.jiaosha'))
 | |
|               .width(138.5 * this.ratio)
 | |
|               .height(112.5 * this.ratio)
 | |
|             Image(this.passArray[7] ? (this.warnFlag[7] == '0' ? $r('app.media.chemen') : (this.warnFlag[7] == '1' ? $r('app.media.chemen_r') : $r('app.media.chemeen_g'))) : $r('app.media.chemen'))
 | |
|               .width(138.5 * this.ratio)
 | |
|               .height(112.5 * this.ratio)
 | |
|             Image(this.passArray[8] ? (this.warnFlag[8] == '0' ? $r('app.media.fusha') : (this.warnFlag[8] == '1' ? $r('app.media.fusha_r') : $r('app.media.fusha_g'))) : $r('app.media.fusha'))
 | |
|               .width(138.5 * this.ratio)
 | |
|               .height(112.5 * this.ratio)
 | |
|             Image(this.passArray[9] ? (this.warnFlag[9] == '0' ? $r('app.media.dianhuo') : (this.warnFlag[9] == '1' ? $r('app.media.dianhuo_r') : $r('app.media.dianhuo_g'))) : $r('app.media.dianhuo'))
 | |
|               .width(138.5 * this.ratio)
 | |
|               .height(112.5 * this.ratio)
 | |
| 
 | |
|           }
 | |
|         }
 | |
| 
 | |
|         if (this.breakFlag) {
 | |
|           Column() {
 | |
|             Image($r('app.media.open_loading'))
 | |
|               .width(100 * this.ratio)
 | |
|               .rotate({ angle: this.angle })
 | |
|               .height(100 * this.ratio)
 | |
|               .animation({
 | |
|                 duration: 5000, // 动画时长
 | |
|                 curve: Curve.EaseOut, // 动画曲线
 | |
|                 delay: 500, // 动画延迟
 | |
|                 iterations: -1, // 播放次数
 | |
|                 playMode: PlayMode.Normal, // 动画模式
 | |
|               })
 | |
|             Text('等待检测…').fontSize(24 * this.ratio).fontColor('#FFB133').margin({ top: 35 * this.ratio })
 | |
|           }.align(Alignment.Center).flexGrow(1)
 | |
|         }
 | |
| 
 | |
|       }
 | |
| 
 | |
|       Flex({ justifyContent: FlexAlign.SpaceBetween }) {
 | |
|         Row() {
 | |
|           //绕车
 | |
|           Column() {
 | |
|             Row() {
 | |
|               Image(this.warnFlag[10] == '1' ? $r('app.media.zq_r') : this.warnFlag[10] == '2' ? $r('app.media.zq') : '')
 | |
|                 .width(102 * this.ratio)
 | |
|                 .height(118.5 * this.ratio)
 | |
|                 .visibility(this.passArray[10] ? Visibility.Visible : Visibility.Hidden)
 | |
|               Image(this.warnFlag[11] == '1' ? $r('app.media.yq_r') : this.warnFlag[11] == '2' ? $r('app.media.yq') : '')
 | |
|                 .width(102 * this.ratio)
 | |
|                 .height(118.5 * this.ratio)
 | |
|                 .visibility(this.passArray[11] ? Visibility.Visible : Visibility.Hidden)
 | |
|             }
 | |
| 
 | |
|             Row() {
 | |
|               Image(this.warnFlag[12] == '1' ? $r('app.media.zh_r') : this.warnFlag[12] == '2' ? $r('app.media.zh') : '')
 | |
|                 .width(103 * this.ratio)
 | |
|                 .height(118.5 * this.ratio)
 | |
|                 .visibility(this.passArray[12] ? Visibility.Visible : Visibility.Hidden)
 | |
|               Image(this.warnFlag[13] == '1' ? $r('app.media.yh_r') : this.warnFlag[13] == '2' ? $r('app.media.yh') : '')
 | |
|                 .width(103 * this.ratio)
 | |
|                 .height(118.5 * this.ratio)
 | |
|                 .visibility(this.passArray[13] ? Visibility.Visible : Visibility.Hidden)
 | |
|             }
 | |
|           }
 | |
|           .backgroundImage($r('app.media.rc'))
 | |
|           .backgroundImageSize({ width: '100%', height: '100%' })
 | |
|           .width(206 * this.ratio)
 | |
|           .height(235.5 * this.ratio)
 | |
|           //档位
 | |
|           Column() {
 | |
|             Image(this.warnFlag[14] == '1' ? $r('app.media.1_r') : this.warnFlag[14] == '2' ? $r('app.media.1') : '')
 | |
|               .width(44.5 * this.ratio)
 | |
|               .height(44.5 * this.ratio)
 | |
|               .position({ x: 25 * this.ratio, y: 57 * this.ratio })
 | |
|               .visibility(this.passArray[14] ? Visibility.Visible : Visibility.Hidden)
 | |
|             Image(this.warnFlag[16] == '1' ? $r('app.media.3_r') : this.warnFlag[16] == '2' ? $r('app.media.3') : '')
 | |
|               .width(44.5 * this.ratio)
 | |
|               .height(44.5 * this.ratio)
 | |
|               .position({ x: 82.5 * this.ratio, y: 57 * this.ratio })
 | |
|               .visibility(this.passArray[16] ? Visibility.Visible : Visibility.Hidden)
 | |
|             Image(this.warnFlag[18] == '1' ? $r('app.media.5_r') : this.warnFlag[18] == '2' ? $r('app.media.5') : '')
 | |
|               .width(44.5 * this.ratio)
 | |
|               .height(44.5 * this.ratio)
 | |
|               .position({ x: 139.5 * this.ratio, y: 57 * this.ratio })
 | |
|               .visibility(this.passArray[18] ? Visibility.Visible : Visibility.Hidden)
 | |
|             Image(this.warnFlag[15] == '1' ? $r('app.media.2_r') : this.warnFlag[15] == '2' ? $r('app.media.2') : '')
 | |
|               .width(44.5 * this.ratio)
 | |
|               .height(44.5 * this.ratio)
 | |
|               .position({ x: 25 * this.ratio, y: 173.5 * this.ratio })
 | |
|               .visibility(this.passArray[15] ? Visibility.Visible : Visibility.Hidden)
 | |
|             Image(this.warnFlag[17] == '1' ? $r('app.media.4_r') : this.warnFlag[17] == '2' ? $r('app.media.4') : '')
 | |
|               .width(44.5 * this.ratio)
 | |
|               .height(44.5 * this.ratio)
 | |
|               .position({ x: 82.5 * this.ratio, y: 173.5 * this.ratio })
 | |
|               .visibility(this.passArray[17] ? Visibility.Visible : Visibility.Hidden)
 | |
|             Image(this.warnFlag[19] == '1' ? $r('app.media.R_r') : this.warnFlag[19] == '2' ? $r('app.media.R') : '')
 | |
|               .width(44.5 * this.ratio)
 | |
|               .height(44.5 * this.ratio)
 | |
|               .position({ x: 139.5 * this.ratio, y: 173.5 * this.ratio })
 | |
|               .visibility(this.passArray[19] ? Visibility.Visible : Visibility.Hidden)
 | |
|             Image(this.warnFlag[20] == '1' ? $r('app.media.N_r') : this.warnFlag[20] == '2' ? $r('app.media.N') : '')
 | |
|               .width(44.5 * this.ratio)
 | |
|               .height(44.5 * this.ratio)
 | |
|               .position({ x: 82.5 * this.ratio, y: 115.5 * this.ratio })
 | |
|               .visibility(this.passArray[20] ? Visibility.Visible : Visibility.Hidden)
 | |
|           }
 | |
|           .backgroundImage($r('app.media.dw'))
 | |
|           .backgroundImageSize({ width: '100%', height: '100%' })
 | |
|           .width(206 * this.ratio)
 | |
|           .height(235.5 * this.ratio)
 | |
| 
 | |
|           Column() {
 | |
|             Row() {
 | |
|               Image(this.passArray[21] ? (this.warnFlag[21] == '0' ? $r('app.media.zuo') : (this.warnFlag[21] == '1' ? $r('app.media.zuo_r') : $r('app.media.zuo_g'))) : $r('app.media.zuo'))
 | |
|                 .width(138.5 * this.ratio)
 | |
|                 .height(81.5 * this.ratio)
 | |
|               Image(this.passArray[22] ? (this.warnFlag[22] == '0' ? $r('app.media.you') : (this.warnFlag[22] == '1' ? $r('app.media.you_r') : $r('app.media.you_g'))) : $r('app.media.you'))
 | |
|                 .width(138.5 * this.ratio)
 | |
|                 .height(81.5 * this.ratio)
 | |
|             }
 | |
| 
 | |
|             Row() {
 | |
|               Image(this.passArray[23] ? (this.warnFlag[23] == '0' ? $r('app.media.zuo1') : (this.warnFlag[23] == '1' ? $r('app.media.yuanguangdeng_r') : $r('app.media.yuanguangdeng_g'))) : $r('app.media.zuo1'))
 | |
|                 .width(138.5 * this.ratio)
 | |
|                 .height(81.5 * this.ratio)
 | |
|               Image(this.passArray[24] ? (this.warnFlag[24] == '0' ? $r('app.media.jinguangdeng') : (this.warnFlag[24] == '1' ? $r('app.media.jinguangdeng_r') : $r('app.media.jinguangdeng_g'))) : $r('app.media.jinguangdeng'))
 | |
|                 .width(138.5 * this.ratio)
 | |
|                 .height(81.5 * this.ratio)
 | |
|             }
 | |
| 
 | |
|             Row() {
 | |
|               Image(this.passArray[25] ? (this.warnFlag[25] == '0' ? $r('app.media.guzhang') : (this.warnFlag[25] == '1' ? $r('app.media.guzhang_r') : $r('app.media.guzhang_g'))) : $r('app.media.guzhang'))
 | |
|                 .width(138.5 * this.ratio)
 | |
|                 .height(81.5 * this.ratio)
 | |
|               Image(this.passArray[26] ? (this.warnFlag[26] == '0' ? $r('app.media.jinzhi') : (this.warnFlag[26] == '1' ? $r('app.media.jinzhi_r') : $r('app.media.jinzhi_g'))) : $r('app.media.jinzhi'))
 | |
|                 .width(138.5 * this.ratio)
 | |
|                 .height(81.5 * this.ratio)
 | |
|             }
 | |
|           }
 | |
|         }
 | |
| 
 | |
|         Column() {
 | |
|           if (this.breakFlag) {
 | |
|             Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) {
 | |
| 
 | |
|             }
 | |
|             .width(215 * this.ratio)
 | |
|             .height(64 * this.ratio)
 | |
|             .margin({ bottom: 10 * this.ratio })
 | |
|             .onClick(() => {
 | |
|             })
 | |
|             .zIndex(11)
 | |
|           } else {
 | |
| 
 | |
|             Image($r('app.media.xhxs_btn'))
 | |
|               .width(215 * this.ratio)
 | |
|               .height(64 * this.ratio)
 | |
|               .backgroundImage($r('app.media.button_nor'))
 | |
|               .backgroundImageSize({ width: '100%', height: '100%' })
 | |
|               .margin({ bottom: 10 * this.ratio })
 | |
|               .onClick(() => {
 | |
|                 console.log('xhsx')
 | |
|                 this.xhxs()
 | |
|               })
 | |
|               .zIndex(11)
 | |
|           }
 | |
| 
 | |
|           Image($r('app.media.tczj_btn'))
 | |
|             .width(215 * this.ratio)
 | |
|             .height(64 * this.ratio)
 | |
|             .backgroundImage($r('app.media.button_nor'))
 | |
|             .backgroundImageSize({ width: '100%', height: '100%' })
 | |
|             .margin({ bottom: 10 * this.ratio })
 | |
|             .onClick(() => {
 | |
|               this.stopCheck()
 | |
|             })
 | |
|             .zIndex(11)
 | |
|           Image($r('app.media.kszj_btn'))
 | |
|             .width(215 * this.ratio)
 | |
|             .height(64 * this.ratio)
 | |
|             .backgroundImage($r('app.media.anniu_nor'))
 | |
|             .backgroundImageSize({ width: '100%', height: '100%' })
 | |
|             .margin({ bottom: 10 * this.ratio })
 | |
|             .onClick(() => {
 | |
|               this.kszj()
 | |
|               this.getPLCInfo()
 | |
|               setTimeout(() => {
 | |
|                 this.angle = 360
 | |
|               }, 1000)
 | |
|             })
 | |
|             .zIndex(11)
 | |
|         }
 | |
|       }.width('100%')
 | |
|     }
 | |
|     .height('100%')
 | |
|     .width('100%')
 | |
|     .backgroundImage($r('app.media.bg'))
 | |
|     .backgroundImageSize({ width: '100%', height: '100%' })
 | |
|   }
 | |
| } |