forked from harmony_car/subject-two
		
	
		
			
				
	
	
		
			416 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			416 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| import deviceInfo from '@ohos.deviceInfo'
 | |
| import prompt from '@ohos.prompt'
 | |
| import router from '@ohos.router'
 | |
| import { timeSynchronize } from '../common/service/timeService'
 | |
| import { getCarInfo } from '../common/service/terminalService'
 | |
| import { dateFormat } from '../common/utils/tools'
 | |
| import ethernet from '@ohos.net.ethernet';
 | |
| import UdpClient from '../common/utils/UdpClient';
 | |
| import FileLog from './judgeSDK/utils/file-log'
 | |
| import TopLogo from './compontents/topLogo'
 | |
| import { voiceService } from '../common/service/voiceService'
 | |
| 
 | |
| @Entry
 | |
| @Component
 | |
| struct Index {
 | |
|   @State mlxhColum: Array<any> = [{ key: '车速', value: '0' }, { key: '倒车时速', value: '0' }, {
 | |
|     key: '档位',
 | |
|     value: '0'
 | |
|   }, { key: '溜车距离', value: '0' }, { key: '熄火次数', value: '0' }, { key: '累计距离', value: '0' }, {
 | |
|     key: '发动机转速',
 | |
|     value: '0'
 | |
|   }, { key: '项目距离', value: '0' }, { key: '倒车距离', value: '0' }, { key: '左前超声波', value: '0' }, {
 | |
|     key: '右后超声波',
 | |
|     value: '0'
 | |
|   }, { key: '右前超声波', value: '0' }, { key: '左后超声波', value: '0' }, { key: '前磁计数s', value: '0' }, {
 | |
|     key: '左前磁计数s',
 | |
|     value: '0'
 | |
|   }, { key: '右前磁计数s', value: '0' }, { key: '左后磁计数s', value: '0' }, { key: '右后磁计数s', value: '0' }, {
 | |
|     key: '左后外磁计数',
 | |
|     value: '0'
 | |
|   }, { key: '右后外磁计数s', value: '0' }, { key: '累计脉冲', value: '0' },
 | |
|     { key: '倒车脉冲', value: '0' }, { key: '溜车脉冲', value: '0' }, { key: '前磁计数n', value: '0' }
 | |
|     , { key: '左后外磁计数n', value: '0' }, { key: '右后外磁计数n', value: '0' }, { key: '前磁ns脉冲', value: '0' },
 | |
|     { key: '左前磁ns脉冲', value: '0' }, { key: '右前磁ns脉冲', value: '0' }, { key: '左后磁ns脉冲', value: '0' },
 | |
|     { key: '右后磁ns脉冲', value: '0' }, { key: '超声波1', value: '0' }, { key: '超声波2', value: '0' }, {
 | |
|       key: 'X坐标',
 | |
|       value: '0'
 | |
|     }, { key: 'Y坐标', value: '0' }
 | |
|     , { key: '左后外磁计数s', value: '0' }, { key: '右后外磁计数s', value: '0' }, { key: '差分改正数', value: '0' },
 | |
|   ]
 | |
|   @State sjxhColum: Array<any> = [{ key: '应答位', value: '0' }, { key: '左方向灯', value: '0' }, {
 | |
|     key: '右方向灯',
 | |
|     value: '0'
 | |
|   }, { key: '双跳灯', value: '0' }, { key: '远光灯', value: '0' }, { key: '近光灯', value: '0' }, {
 | |
|     key: '视宽灯',
 | |
|     value: '0'
 | |
|   }, { key: '点火1', value: '0' }, { key: '点火2', value: '0' }, { key: '离合器', value: '0' }, {
 | |
|     key: '脚刹',
 | |
|     value: '0'
 | |
|   }, { key: '手刹', value: '0' }, { key: '副刹', value: '0' }, { key: '喇叭', value: '0' }, { key: '门开关', value: '0' }, {
 | |
|     key: '安全带',
 | |
|     value: '0'
 | |
|   }, { key: '雾灯', value: '0' }, { key: '闪灯', value: '0' }, { key: '方向盘', value: '0' }, { key: '计时', value: '0' }, {
 | |
|     key: '前进状态',
 | |
|     value: '0'
 | |
|   }, { key: '后退状态', value: '0' }, { key: '停车状态', value: '0' }, { key: '加减档错', value: '0' }, {
 | |
|     key: '1-2',
 | |
|     value: ''
 | |
|   }, { key: '震动', value: '0' }, { key: '前磁s', value: '0' }, { key: '左前磁s', value: '0' }, {
 | |
|     key: '右前磁s',
 | |
|     value: ''
 | |
|   }, { key: '左后磁s', value: '0' }, { key: '右后磁s', value: '0' }, { key: '左后外磁s', value: '0' }, {
 | |
|     key: '右后外磁s',
 | |
|     value: ''
 | |
|   }, { key: '前磁n', value: '0' }, { key: '左前磁n', value: '0' }, { key: '右前磁n', value: '0' }, {
 | |
|     key: '左后磁n',
 | |
|     value: '0'
 | |
|   }, { key: '右后磁n', value: '0' }, { key: '左后外磁n', value: '0' }, { key: '右后外磁n', value: '0' }, {
 | |
|     key: '雨刮器',
 | |
|     value: '0'
 | |
|   }]
 | |
|   @State ratio: number = 1280 / 960
 | |
|   @State gpsActive: number = 1
 | |
|   @State active: number = 0
 | |
|   @State msg: string = ''
 | |
|   @State @Watch('outClick') outFlag: boolean = false;
 | |
|   private timer = null
 | |
|   private udpClient: UdpClient = null
 | |
|   private FileLog: FileLog
 | |
|   private vocObj = null;
 | |
|   @State url: string = ''
 | |
|   //  @State gpsList: Array<any> = []
 | |
|   build() {
 | |
|     Column() {
 | |
|       TopLogo({outFlag:$outFlag})
 | |
|       Flex({ justifyContent: FlexAlign.SpaceBetween }) {
 | |
|         Row() {
 | |
|           // Image($r('app.media.signal_logoS')).width(30 * this.ratio).height(24 * this.ratio)
 | |
|           Row() {
 | |
|             Text('PLC信号').fontColor(this.active == 0 ? '#FFAD33' : '#e7cba3').fontSize(20 * this.ratio)
 | |
|           }
 | |
|           .backgroundImage(this.active == 0 ? $r('app.media.signal_tabS') : $r('app.media.signal_tab'))
 | |
|           .width(144 * this.ratio)
 | |
|           .height(50 * this.ratio)
 | |
|           .backgroundImageSize({ width: '100%', height: '100%' })
 | |
|           .justifyContent(FlexAlign.Center)
 | |
|           .onClick(() => {
 | |
|             this.active = 0
 | |
|           })
 | |
| 
 | |
|           Row() {
 | |
|             Text('实时轨迹').fontColor(this.active == 1 ? '#FFAD33' : '#e7cba3').fontSize(20 * this.ratio)
 | |
|           }
 | |
|           .backgroundImage(this.active == 1 ? $r('app.media.signal_tabS') : $r('app.media.signal_tab'))
 | |
|           .width(144 * this.ratio)
 | |
|           .height(50 * this.ratio)
 | |
|           .backgroundImageSize({ width: '100%', height: '100%' })
 | |
|           .justifyContent(FlexAlign.Center)
 | |
|           .onClick(() => {
 | |
|             this.active = 1
 | |
|           })
 | |
| 
 | |
|           Row() {
 | |
|             Text('原始数据').fontColor(this.active == 2 ? '#FFAD33' : '#e7cba3').fontSize(20 * this.ratio)
 | |
|           }
 | |
|           .backgroundImage(this.active == 2 ? $r('app.media.signal_tabS') : $r('app.media.signal_tab'))
 | |
|           .width(144 * this.ratio)
 | |
|           .height(50 * this.ratio)
 | |
|           .backgroundImageSize({ width: '100%', height: '100%' })
 | |
|           .justifyContent(FlexAlign.Center)
 | |
|           .onClick(() => {
 | |
|             this.active = 2
 | |
|           })
 | |
|         }
 | |
| 
 | |
|         Row() {
 | |
|           Image($r('app.media.topB_back')).width('16.7%').height('12.2%')
 | |
|             .onClick(()=>{
 | |
|               // router.back()
 | |
|               this.url='back'
 | |
|               // this.vocObj.playAudio({
 | |
|               //   type: 1,
 | |
|               //   name: 'media_button.wav'
 | |
|               // })
 | |
|               this.outFlag=true
 | |
|             })
 | |
| 
 | |
|           // Row(){
 | |
|           //   Text('保存日志').fontSize(21*this.ratio).fontColor('#fff')
 | |
|           // }.width(137*this.ratio).height(36*this.ratio).margin({left:12*this.ratio}).backgroundImageSize({width:'100%',height:'100%'}).backgroundImage($r('app.media.button_nor')).justifyContent(FlexAlign.Center).onClick(()=>{
 | |
|           //   this.saveLog()
 | |
|           // })
 | |
|           // Row() {
 | |
|           //   Text('关闭').fontSize(21 * this.ratio).fontColor('#fff')
 | |
|           // }
 | |
|           // .width(137 * this.ratio)
 | |
|           // .height(36 * this.ratio)
 | |
|           // .margin({ left: 12 * this.ratio })
 | |
|           // .backgroundImageSize({ width: '100%', height: '100%' })
 | |
|           // .backgroundImage($r('app.media.button_nor'))
 | |
|           // .justifyContent(FlexAlign.Center)
 | |
|           // .onClick(() => {
 | |
|           //   // globalThis.udpClient.closeUdp(()=>{
 | |
|           //   router.back()
 | |
|           //   // })
 | |
|           // })
 | |
|         }
 | |
|       }
 | |
| 
 | |
|       Row() {
 | |
|         Column() {
 | |
|           Text('数字信号').fontSize(18 * this.ratio).margin({ top: 10 * this.ratio })
 | |
|           Flex({ direction: FlexDirection.Column, wrap: FlexWrap.Wrap }) {
 | |
|             ForEach(this.sjxhColum, (item) => {
 | |
|               Row() {
 | |
|                 Text(`${item.key}:${item.value}`)
 | |
|                   .fontSize(14 * this.ratio)
 | |
|                   .lineHeight(21 * this.ratio)
 | |
|                   .fontColor('#fff')
 | |
|               }.width('33.3%').height(21 * this.ratio)
 | |
|             })
 | |
|           }
 | |
|           .width(440 * this.ratio)
 | |
|           .height(360 * this.ratio)
 | |
|           .padding({ left: 10 * this.ratio, top: 10 * this.ratio })
 | |
|           .backgroundColor('#282828')
 | |
|         }.width(460 * this.ratio).height('100%')
 | |
| 
 | |
|         Column() {
 | |
|           Text('模拟信号').fontSize(18 * this.ratio).margin({ top: 10 * this.ratio })
 | |
|           Flex({ direction: FlexDirection.Column, wrap: FlexWrap.Wrap }) {
 | |
|             ForEach(this.mlxhColum, (item) => {
 | |
|               Row() {
 | |
|                 Text(`${item.key}:${item.value}`)
 | |
|                   .fontSize(14 * this.ratio)
 | |
|                   .lineHeight(21 * this.ratio)
 | |
|                   .fontColor('#fff')
 | |
|               }.width('33.3%').height(21 * this.ratio)
 | |
|             })
 | |
|           }
 | |
|           .width(440 * this.ratio)
 | |
|           .height(360 * this.ratio)
 | |
|           .padding({ left: 10 * this.ratio, top: 10 * this.ratio })
 | |
|           .backgroundColor('#282828')
 | |
|         }.width(460 * this.ratio).height('100%')
 | |
| 
 | |
|         Column() {
 | |
|           Text('模拟信号').fontSize(18 * this.ratio).margin({ top: 10 * this.ratio })
 | |
|           Flex({ direction: FlexDirection.Column, wrap: FlexWrap.Wrap }) {
 | |
|             ForEach(this.mlxhColum, (item) => {
 | |
|               Row() {
 | |
|                 Text(`${item.key}:${item.value}`)
 | |
|                   .fontSize(14 * this.ratio)
 | |
|                   .lineHeight(21 * this.ratio)
 | |
|                   .fontColor('#fff')
 | |
|               }.width('33.3%').height(21 * this.ratio)
 | |
|             })
 | |
|           }
 | |
|           .width(440 * this.ratio)
 | |
|           .height(360 * this.ratio)
 | |
|           .padding({ left: 10 * this.ratio, top: 10 * this.ratio })
 | |
|           .backgroundColor('#282828')
 | |
|         }.width(460 * this.ratio).height('100%')
 | |
|       }
 | |
|       .width(936 * this.ratio)
 | |
|       .height(420 * this.ratio)
 | |
|       .margin({ left: 10 * this.ratio })
 | |
|       .padding({ left: 10 * this.ratio, right: 10 * this.ratio })
 | |
|       .backgroundImage($r('app.media.km_open'))
 | |
|       .backgroundImageSize({ width: '100%', height: '100%' })
 | |
|       .visibility(this.active == 0 ? Visibility.Visible : Visibility.None)
 | |
| 
 | |
|       Row() {
 | |
|         Flex({ direction: FlexDirection.Column }) {
 | |
|           Row() {
 | |
|             Row() {
 | |
|               Text('GPS1').fontColor(this.gpsActive == 0 ? '#2D3C5A' : '#fff')
 | |
|             }
 | |
|             .width(72)
 | |
|             .height(24)
 | |
|             .backgroundColor(this.gpsActive == 0 ? '#fff' : '#1A1A1A')
 | |
|             .margin({ left: 10, right: 10 })
 | |
|             .justifyContent(FlexAlign.Center)
 | |
|             .onClick(() => {
 | |
|               this.gpsActive = 0
 | |
|             })
 | |
| 
 | |
|             Row() {
 | |
|               Text('GPS2').fontColor(this.gpsActive == 1 ? '#2D3C5A' : '#fff')
 | |
|             }
 | |
|             .width(72)
 | |
|             .height(24)
 | |
|             .backgroundColor(this.gpsActive == 1 ? '#fff' : '#1A1A1A')
 | |
|             .justifyContent(FlexAlign.Center)
 | |
|             .onClick(() => {
 | |
|               this.gpsActive = 1
 | |
|             })
 | |
|           }.margin({ top: 10 })
 | |
|           //            ForEach(this.gpsList,(item)=>{
 | |
|           //              Text()
 | |
|           //            })
 | |
| 
 | |
|         }
 | |
|         .width(168 * this.ratio)
 | |
|         .height(380 * this.ratio)
 | |
|         .backgroundColor('#282828')
 | |
|         .margin({ top: 6 * this.ratio, left: 10 * this.ratio })
 | |
| 
 | |
|         Row() {
 | |
| 
 | |
|         }.width(168 * this.ratio).height(380 * this.ratio).backgroundColor('#1A1A1A').margin({ top: 6 * this.ratio })
 | |
| 
 | |
|         Row() {
 | |
| 
 | |
|         }
 | |
|         .width(550 * this.ratio)
 | |
|         .height(380 * this.ratio)
 | |
|         .backgroundColor('#1A1A1A')
 | |
|         .margin({ top: 6 * this.ratio, left: 6 * this.ratio })
 | |
| 
 | |
|       }
 | |
|       .width(936 * this.ratio)
 | |
|       .height(420 * this.ratio)
 | |
|       .margin({ left: 10 * this.ratio })
 | |
|       .padding({ left: 10 * this.ratio, right: 10 * this.ratio })
 | |
|       .backgroundImage($r('app.media.km_open'))
 | |
|       .backgroundImageSize({ width: '100%', height: '100%' })
 | |
|       .visibility(this.active == 1 ? Visibility.Visible : Visibility.None)
 | |
|     }
 | |
|     .width('100%')
 | |
|     .height('100%')
 | |
|     .backgroundImage($r('app.media.bg'))
 | |
|     .backgroundImageSize({ width: '100%', height: '100%' })
 | |
|   }
 | |
| 
 | |
|   aboutToDisappear() {
 | |
|     this.vocObj = new voiceService(async (status,val) => {
 | |
|       if (status == 'idle') {
 | |
|         if(this.url=='back'){
 | |
|           router.back()
 | |
|           // that.udpClient.sendMsg('111')
 | |
|         }else {
 | |
|           router.pushUrl({
 | |
|             url: this.url,
 | |
|           });
 | |
|         }
 | |
|       }
 | |
|     });
 | |
| 
 | |
|     // this.udpClient.closeUdp()
 | |
|   }
 | |
| 
 | |
|   onPageShow() {
 | |
|     console.info('Index onPageShow');
 | |
|     const that = this
 | |
| 
 | |
| 
 | |
|     if (!globalThis.udpClient) {
 | |
|       return
 | |
|     }
 | |
|     globalThis.udpClient.onMessage((msg) => {
 | |
|       that.msg = msg
 | |
|       const signArr = msg.split(',')
 | |
|       that.sjxhColum[1].value = signArr[2]
 | |
|       that.sjxhColum[2].value = signArr[3]
 | |
|       that.sjxhColum[3].value = signArr[20]
 | |
|       that.sjxhColum[4].value = signArr[8]
 | |
|       that.sjxhColum[5].value = signArr[7]
 | |
|       // that.sjxhColum[6].value=signArr[7]//宽视灯
 | |
|       that.sjxhColum[7].value = signArr[5] //
 | |
|       that.sjxhColum[8].value = signArr[6] //
 | |
|       that.sjxhColum[9].value = signArr[17] //
 | |
|       that.sjxhColum[10].value = signArr[12]
 | |
|       that.sjxhColum[11].value = signArr[13]
 | |
|       that.sjxhColum[12].value = signArr[18]
 | |
|       that.sjxhColum[13].value = signArr[4]
 | |
|       that.sjxhColum[14].value = signArr[14]
 | |
|       that.sjxhColum[15].value = signArr[19]
 | |
|       that.sjxhColum[16].value = signArr[10]
 | |
|       // that.sjxhColum[17].value=signArr[10]//闪灯
 | |
|       that.sjxhColum[18].value = signArr[27]
 | |
|       // that.sjxhColum[19].value=signArr[27] //计时
 | |
|       // that.sjxhColum[20].value=signArr[27]//前进状态
 | |
|       // that.sjxhColum[21].value=signArr[27]//后退状态
 | |
|       // that.sjxhColum[22].value=signArr[27]//停车状态
 | |
|       // that.sjxhColum[23].value=signArr[27]//加减档错
 | |
|       // that.sjxhColum[24].value=signArr[27]//1-2
 | |
|       // that.sjxhColum[25].value=signArr[27]//震动
 | |
|       // that.sjxhColum[26].value=signArr[27]//震动
 | |
|       // that.sjxhColum[27].value=signArr[27]//前磁s
 | |
|       // that.sjxhColum[28].value=signArr[27]//左前磁s
 | |
|       // that.sjxhColum[29].value=signArr[27]//右前磁s
 | |
|       //that.sjxhColum[30].value=signArr[27]//左后磁s
 | |
|       //that.sjxhColum[31].value=signArr[27]//右后磁s
 | |
|       //that.sjxhColum[32].value=signArr[27]//左后外磁s
 | |
|       //that.sjxhColum[33].value=signArr[27]//左后外磁s
 | |
|       //that.sjxhColum[34].value=signArr[27]//前磁n
 | |
|       //that.sjxhColum[35].value=signArr[27]//左前磁n
 | |
|       //that.sjxhColum[36].value=signArr[27]//右前磁n
 | |
|       //that.sjxhColum[37].value=signArr[27]//左后磁n
 | |
|       //that.sjxhColum[38].value=signArr[27]//右后磁n
 | |
|       //that.sjxhColum[39].value=signArr[27]//左后外磁
 | |
|       //that.sjxhColum[40].value=signArr[27]//右后外磁
 | |
|       that.sjxhColum[40].value = signArr[11] //右后外磁
 | |
|       that.sjxhColum = JSON.parse(JSON.stringify((that.sjxhColum)))
 | |
| 
 | |
|       that.mlxhColum[0].value = signArr[23]
 | |
|       // that.mlxhColum[1].value = signArr[28]
 | |
|       that.mlxhColum[2].value = signArr[28]
 | |
|       // that.mlxhColum[3].value = signArr[24]
 | |
|       that.mlxhColum[4].value = signArr[26]
 | |
|       // that.mlxhColum[5].value = signArr[29]
 | |
|       that.mlxhColum[6].value = signArr[25] //发动机转速
 | |
|       // that.mlxhColum[7].value = signArr[31]
 | |
|       // that.mlxhColum[8].value = signArr[32]
 | |
|       that.mlxhColum[9].value = signArr[29]
 | |
|       that.mlxhColum[10].value = signArr[30]
 | |
|       that.mlxhColum[11].value = signArr[31]
 | |
|       that.mlxhColum[12].value = signArr[32]
 | |
|       // that.mlxhColum[13].value = signArr[84]//前磁计数s
 | |
|       // that.mlxhColum[14].value = signArr[85]
 | |
|       // that.mlxhColum[15].value = signArr[86]
 | |
|       // that.mlxhColum[16].value = signArr[87]
 | |
|       // that.mlxhColum[17].value = signArr[88]
 | |
|       // that.mlxhColum[18].value = signArr[89]
 | |
|       // that.mlxhColum[19].value = signArr[90]
 | |
|       that.mlxhColum[20].value = signArr[24] //累计脉冲
 | |
|       that.mlxhColum[31].value = signArr[29] //超声波1
 | |
|       that.mlxhColum[32].value = signArr[30] //超声波2
 | |
|       that.mlxhColum[33].value = signArr[95]
 | |
|       that.mlxhColum[34].value = signArr[96]
 | |
|       that.mlxhColum = JSON.parse(JSON.stringify((that.mlxhColum)))
 | |
|       // if (that.timer) {
 | |
|       //   return
 | |
|       // }
 | |
|       // that.timer = setTimeout(() => {
 | |
|       //
 | |
|       //
 | |
|       //   that.timer=null
 | |
|       // }, 1000)
 | |
| 
 | |
| 
 | |
|     })
 | |
|   }
 | |
|   outClick(){
 | |
|   }
 | |
|   saveLog() {
 | |
|     // this.FileLog.initFileLogo('d          .0ateLog')
 | |
|     // this.FileLog.createFile('123')
 | |
|   }
 | |
|   // getDeviceNo() {
 | |
|   //   globalThis.deviceNo = 'FE-FC-FE-7C-5C-72'; //设备号
 | |
|   // }
 | |
| 
 | |
|   // initTime() {
 | |
|   //
 | |
|   // }
 | |
|   //
 | |
|   // initCarInfo() {
 | |
|   //
 | |
|   // }
 | |
|   //
 | |
|   // getData() {
 | |
|   //
 | |
|   // }
 | |
| } |