forked from harmony_car/subject-two
		
	
		
			
				
	
	
		
			855 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			855 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | |
| import UdpClient from '../common/utils/UdpClient';
 | |
| import { voiceService } from '../common/service/voiceService'
 | |
| //import { resolveIP } from '../common/utils/SocketUtil'
 | |
| import prompt from '@ohos.prompt'
 | |
| import router from '@ohos.router'
 | |
| import { carConfigurationInfo,uploadExamCarCheckResult } from '../api/checkCar'
 | |
| // import CommonConstants from '../common/constants/CommonConstants';
 | |
| // import AccountTable from '../common/database/tables/AccountTable';
 | |
| 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 = 850/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 errorMsg: string = false
 | |
|   @State msgFlag: boolean = false
 | |
|   @State confimDialogFlag: boolean = false
 | |
|   private udpClient: UdpClient  = null
 | |
|   private localIp: string = null
 | |
|   private vocObj = null;
 | |
|   @State checkList: Array<any> = []
 | |
|   @State subFlag: boolean = true
 | |
|   @State signArr: Array<any> = []
 | |
|   @State checkListCopy: Array<any> = []
 | |
|   @State warnFlag: 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 @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:false,
 | |
|     1:false,
 | |
|     2:false,
 | |
|     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 len:any=''
 | |
|   @State fd: number = -1;
 | |
|   @State devPath: string = "/dev/ttyS5"
 | |
|   // 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'){
 | |
|           // this.startCheck()
 | |
|          // setTimeout(()=>{
 | |
|            this.getCheckList()
 | |
|          // },1000)
 | |
|           // that.udpClient.sendMsg('111')
 | |
|         }else {
 | |
|           this.subFlag=false
 | |
|           this.getNextNode()
 | |
|         }
 | |
|       }
 | |
|     });
 | |
| 
 | |
|     this.carConfigurationInfoFn()
 | |
|     //todo串口
 | |
|     // this.openChuankouFn()
 | |
|     // setInterval(()=>{
 | |
|     //   const realNum = {
 | |
|     //     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: ''
 | |
|     //   }
 | |
|     //   const dw = [14, 15, 16, 17, 18, 19, 20];
 | |
|     //   const dwMap = {
 | |
|     //     14: '1',
 | |
|     //     15: '2',
 | |
|     //     16: '3',
 | |
|     //     17: '4',
 | |
|     //     18: '5',
 | |
|     //     19: '9',
 | |
|     //     20: '0'
 | |
|     //   }
 | |
|     //   const dwArr=[14,15,16,17,18,19,20]
 | |
|     //   if(dwArr.indexOf(this.index)>=0){
 | |
|     //     this.getChuankouFn()
 | |
|     //     return
 | |
|     //   }
 | |
|     // },1000)
 | |
|   }
 | |
|   aboutToDisappear(){
 | |
|     // this.udpClient.closeUdp()
 | |
|   }
 | |
|   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 = 2000000; // 2秒超时
 | |
|     let databuff = [0x61,0xAA,0x0A,0X15,0X00]; // send ABCDE
 | |
|     let ret = testNapi.SerialSend(this.fd, databuff);
 | |
|     let revTestInfo = testNapi.SerialRecv(this.fd, timeout);
 | |
| 
 | |
|     //let revTestInfo = testNapi.SerialRecv(this.fd, timeout, 6);
 | |
|     const message=revTestInfo.recevedBuf.toString()
 | |
|     if(message==''){
 | |
|       return
 | |
|     }
 | |
|     const msg=message.split(',')
 | |
|     const dwMap = {
 | |
|       14: '1',
 | |
|       15: '2',
 | |
|       16: '3',
 | |
|       17: '4',
 | |
|       18: '5',
 | |
|       19: '9',
 | |
|       20: '0'
 | |
|     }
 | |
| 
 | |
|     if(msg[0]!='98'||msg[1]!='85'||msg.length<9){
 | |
|       return
 | |
|     }
 | |
|     console.log('msgmsg',msg[9],'this.index',this.index)
 | |
|     if(msg[9] == dwMap[this.index]){
 | |
|       this.warnFlag[this.index]='2'
 | |
|     }
 | |
| 
 | |
|   }
 | |
|   deCode(ArrayBuffer) {
 | |
|     var utf8 = new Uint8Array(ArrayBuffer);
 | |
|     var decodedString = String.fromCharCode.apply(null, utf8);
 | |
|     return decodedString;
 | |
|   }
 | |
|   async xhxs() {
 | |
|     this.vocObj.avPlayerStop()
 | |
|     this.vocObj.releasePlayer()
 | |
|     // this.udpClient.closeUdp(()=>{
 | |
|       router.pushUrl({
 | |
|         url: 'pages/signDisplay',
 | |
|       },router.RouterMode.Single);
 | |
|     // })
 | |
| 
 | |
|   }
 | |
|   format(dat) {
 | |
|     //获取年月日,时间
 | |
|     var year = dat.getFullYear();
 | |
|     var mon = (dat.getMonth() + 1) < 10 ? "0" + (dat.getMonth() + 1) : dat.getMonth() + 1;
 | |
|     var data = dat.getDate() < 10 ? "0" + (dat.getDate()) : dat.getDate();
 | |
|     var hour = dat.getHours() < 10 ? "0" + (dat.getHours()) : dat.getHours();
 | |
|     var min = dat.getMinutes() < 10 ? "0" + (dat.getMinutes()) : dat.getMinutes();
 | |
|     var seon = dat.getSeconds() < 10 ? "0" + (dat.getSeconds()) : dat.getSeconds();
 | |
| 
 | |
|     var newDate = year + "-" + mon + "-" + data + " " + hour + ":" + min + ":" + seon;
 | |
|     return newDate;
 | |
|   }
 | |
|   carConfigurationInfoFn() {
 | |
|     // 1:5;2:5;3:5;4:5;5:5;8:5;9:5;10:5;11:5;
 | |
|     //16:5;17:5;18:5;19:5;20:5;21:5;22:5;23:5;24:5
 | |
|     // 12:5;13:5;14:5;15:5;
 | |
|     if(globalThis.singlePlay){
 | |
|       const str="1:5;2:5;3:5;4:5;5:5;8:5;9:5;10:5;11:5;12:5;13:5;14:5;15: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'
 | |
|     })
 | |
|   }
 | |
|   stopCheck(){
 | |
|     this.breakFlag=false
 | |
|   }
 | |
| 
 | |
|   getNextNode(){
 | |
|     setTimeout(() => {
 | |
|       if(this.warnFlag[this.index]!='2'){
 | |
|         this.warnFlag[this.index]='1'
 | |
|       }
 | |
|       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() {
 | |
|     // this.warnFlag[Math.ceil(this.index/2)]=!this.warnFlagTip[Math.ceil(this.index/2)]
 | |
|     if(!this.breakFlag){
 | |
|       return
 | |
|     }
 | |
|     this.index = this.checkListCopy[0].key
 | |
|     this.passArray[this.index]=true
 | |
|     this.subFlag=true
 | |
|     const realNum = {
 | |
|       3: 19,
 | |
|       4: 17,
 | |
|       5: 13,
 | |
|       6: 12,
 | |
|       7: 14,
 | |
|       8: 18,
 | |
|       9: 5,
 | |
|       10: 29,
 | |
|       11: 30,
 | |
|       12: 31,
 | |
|       13: 32,
 | |
|       14: 27,
 | |
|       15: 27,
 | |
|       16: 27,
 | |
|       17: 27,
 | |
|       18: 27,
 | |
|       19: 27,
 | |
|       20: 27,
 | |
|       21: 2, //左方向灯,
 | |
|       22: 3,
 | |
|       23: 7,
 | |
|       24: 8,
 | |
|       25: 20,
 | |
|       26: ''
 | |
|     }
 | |
|     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[realNum[this.index]]&&this.signArr[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],
 | |
|         })
 | |
| 
 | |
|       }
 | |
|     }
 | |
|     // this.index = (this.checkListCopy[0].key-4)*2+4
 | |
|     // if(this.warnFlagTip[this.index].length==1){
 | |
|     //   this.vocObj.playAudio({
 | |
|     //     type: 1,
 | |
|     //     name: this.warnFlagTip[this.index][0],
 | |
|     //   })
 | |
|     // }
 | |
|   }
 | |
|   playVideo(name){
 | |
|     this.vocObj.playAudio({
 | |
|       type: 1,
 | |
|       name: name,
 | |
|       nextName: ''
 | |
|     })
 | |
|   }
 | |
|   outClick(){
 | |
|     if(this.vocObj){
 | |
|       this.vocObj.avPlayerStop()
 | |
|       this.vocObj.releasePlayer()
 | |
|     }
 | |
|     this.breakFlag=false
 | |
|   }
 | |
|   build() {
 | |
|     Column() {
 | |
|       TopLogo({outFlag:$outFlag}).margin({bottom:25.5*this.ratio})
 | |
|       // Flex({justifyContent:FlexAlign.SpaceBetween}){
 | |
|       //   Row(){
 | |
|       //     Image($r('app.media.signal_logoS')).width(30*this.ratio).height(20*this.ratio).margin({left:15*this.ratio,right:15*this.ratio})
 | |
|       //     Text(this.time).fontColor('#EAA500').fontSize(18*this.ratio)
 | |
|       //   }
 | |
|       //   Image($r('app.media.topB_back')).width(125*this.ratio).height(50*this.ratio).onClick(()=>{
 | |
|       //     router.back()
 | |
|       //     this.breakFlag=false
 | |
|       //   })
 | |
|       // }.width('100%').height(40*this.ratio).backgroundColor('#343434').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)
 | |
|             // Image(this.passArray[6]?this.warnFlag[6]?$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]?$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]?$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]?$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)
 | |
| 
 | |
|               // Image(this.warnFlag[12]?$r('app.media.zh_r'):$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]?$r('app.media.yh_r'):$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)
 | |
|             // Image(this.warnFlag[14]?$r('app.media.1_r'):$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]?$r('app.media.3_r'):$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]?$r('app.media.5_r'):$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]?$r('app.media.2_r'):$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]?$r('app.media.4_r'):$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]?$r('app.media.R_r'):$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]?$r('app.media.N_r'):$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)
 | |
|               // Image(this.passArray[21]?this.warnFlag[21]?$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]?$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)
 | |
|               // Image(this.passArray[23]?this.warnFlag[23]?$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]?$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)
 | |
|               // Image(this.passArray[25]?this.warnFlag[25]?$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]?$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{
 | |
|             // Flex({justifyContent:FlexAlign.Center,alignItems:ItemAlign.Center}){
 | |
|             //   Image($r('app.media.xhxs')).width(28*this.ratio).height(28*this.ratio)
 | |
|             //   Text('信号显示').fontColor('#fff').fontSize(24*this.ratio)
 | |
|             // }
 | |
|             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("laogoao")
 | |
|               // this.vocObj.playAudio({
 | |
|               //   type: 1,
 | |
|               //   name: 'media_button.wav'
 | |
|               // })
 | |
|               this.xhxs()
 | |
|             }).zIndex(11)
 | |
|           }
 | |
| 
 | |
|           // Flex({justifyContent:FlexAlign.Center,alignItems:ItemAlign.Center}){
 | |
|           //   Image($r('app.media.tczj')).width(28*this.ratio).height(28*this.ratio)
 | |
|           //   Text('退出自检').fontColor('#fff').fontSize(24*this.ratio)
 | |
|           // }
 | |
|           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()
 | |
|             // this.vocObj.playAudio({
 | |
|             //   type: 1,
 | |
|             //   name: 'media_button.wav'
 | |
|             // })
 | |
|             // this.udpClient.closeUdp(()=>{
 | |
|             //
 | |
|             // })
 | |
|             // this.udpClient.onMessage(()=>{
 | |
|             //   prompt.showToast({
 | |
|             //     message: JSON.stringify(('msgChange')),
 | |
|             //     duration: 3000
 | |
|             //   });
 | |
|             // })
 | |
|           }).zIndex(11)
 | |
|           // Flex({justifyContent:FlexAlign.Center,alignItems:ItemAlign.Center}){
 | |
|           //   Text('开始自检').fontColor('#fff').fontSize(24*this.ratio)
 | |
|           // }
 | |
|             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(()=>{
 | |
|             //            console.log(event)
 | |
|             this.kszj()
 | |
|             const that=this
 | |
|              setTimeout(()=>{
 | |
|                this.angle=360
 | |
|              },1000)
 | |
| 
 | |
|             globalThis.udpClient.onMessage((msg) => {
 | |
|               if(!this.breakFlag){
 | |
|                 return
 | |
|               }
 | |
|               //
 | |
|               // that.signArr = msg.split(',')
 | |
|               // if (this.signArr[0] != '#DN_GD') {
 | |
|               //   return
 | |
|               // }
 | |
|               const stachArr=msg.split(',')
 | |
|               if (stachArr[0] != '#DN_GD') {
 | |
|                 return
 | |
|               }
 | |
|               this.signArr = stachArr
 | |
|               const realNum = {
 | |
|                 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: ''
 | |
|               }
 | |
|               const dw = [14, 15, 16, 17, 18, 19, 20];
 | |
|               const dwMap = {
 | |
|                 14: '1',
 | |
|                 15: '2',
 | |
|                 16: '3',
 | |
|                 17: '4',
 | |
|                 18: '5',
 | |
|                 19: '9',
 | |
|                 20: '0'
 | |
|               }
 | |
|               const dwArr=[14,15,16,17,18,19,20]
 | |
|               if(dwArr.indexOf(this.index)>=0){
 | |
|                 return
 | |
|               }
 | |
|               if(this.subFlag){
 | |
|                 //进项目
 | |
|                 that.stachValue[that.index]=that.signArr[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'){
 | |
|                   // this.warnFlag[26]='1'
 | |
|                 }else{
 | |
|                   this.warnFlag[26]='2'
 | |
|                 }
 | |
|               }
 | |
| 
 | |
|               if(that.index==10||that.index==11||that.index==12||that.index==13){
 | |
|                 if(that.signArr[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[realNum[that.index]]){
 | |
|                   that.warnFlag[that.index]='2'
 | |
|                 }else{
 | |
|                   // that.warnFlag[that.index]='1'
 | |
|                 }
 | |
|                 return
 | |
|               }
 | |
| 
 | |
| 
 | |
|               if (!Array.isArray(realNum[that.index])) {
 | |
|                 if (dw.indexOf(that.index) >= 0) {
 | |
|                   // that.warnFlagTip[Math.ceil(that.index/2)] = that.signArr[28] == dwMap[Math.ceil(that.index/2)] ? true : false
 | |
|                   that.warnFlag[that.index] = (that.signArr[28] == dwMap[that.index] ? '2' : '0')
 | |
|                   return
 | |
|                 }
 | |
| 
 | |
| 
 | |
|                 if(that.signArr[realNum[that.index]] !== '0'){
 | |
|                   // that.warnFlagTip[that.index]=true
 | |
|                   that.warnFlag[that.index]='2'
 | |
|                 }else{
 | |
|                   // that.warnFlagTip[that.index]=false
 | |
|                   // that.warnFlag[that.index]='1'
 | |
|                 }
 | |
|                 //                this.warnFlag = !this.signArr[realNum[this.index]]
 | |
|               }
 | |
| 
 | |
|               // else {
 | |
|               //   let flag=false
 | |
|               //   realNum[that.index].map(res => {
 | |
|               //     if (that.signArr[res] !== '0') {
 | |
|               //       flag=true
 | |
|               //       // that.warnFlagTip[that.index] = true
 | |
|               //       that.warnFlag[that.index]='2'
 | |
|               //     }
 | |
|               //   })
 | |
|               //   if(!flag){
 | |
|               //     // that.warnFlagTip[that.index]=false
 | |
|               //     that.warnFlag[that.index]='1'
 | |
|               //   }
 | |
|               // }
 | |
|             })
 | |
|             // globalThis.udpClient.sendMsg('111')
 | |
| 
 | |
|           }).zIndex(11)
 | |
|         }
 | |
|       }.width('100%')
 | |
|     }
 | |
|     .height('100%').width('100%').backgroundImage($r('app.media.bg')).backgroundImageSize({width:'100%',height:'100%'})
 | |
|   }
 | |
| } |