forked from harmony_car/subject-two
		
	feat: 修复一些问题
This commit is contained in:
		
							parent
							
								
									ed60046db6
								
							
						
					
					
						commit
						ed236df1d6
					
				| @ -1,6 +1,6 @@ | |||||||
| import UdpClient from './UdpClient'; | import UdpClient from './UdpClient'; | ||||||
| import UdpClientByCenter from './UdpClientByCenter'; | import UdpClientByCenter from './UdpClientByCenter'; | ||||||
| import { getSyncData} from '../service/initable' | import { getSyncData } from '../service/initable' | ||||||
| import { dateFormat } from '../../common/utils/tools' | import { dateFormat } from '../../common/utils/tools' | ||||||
| import prompt from '@ohos.prompt' | import prompt from '@ohos.prompt' | ||||||
| import TcpClient from './TcpClient'; | import TcpClient from './TcpClient'; | ||||||
| @ -28,17 +28,18 @@ import TcpClient from './TcpClient'; | |||||||
| //  }
 | //  }
 | ||||||
| // })
 | // })
 | ||||||
| 
 | 
 | ||||||
| export async function sendMsg(val){ | export async function sendMsg(val) { | ||||||
|   globalThis.udpClient1&&globalThis.udpClient1.sendMsg(val) |   globalThis.udpClient1 && globalThis.udpClient1.sendMsg(val) | ||||||
| } | } | ||||||
| export async function getUDP() { |  | ||||||
|   getSyncData('IpConfigTable').then((result:Array<any>)=>{ |  | ||||||
|     console.log('result222',JSON.stringify(result)) |  | ||||||
|     if(result.length){ |  | ||||||
|       if(globalThis.udpClient&&globalThis.udpClient.closeUdp){ |  | ||||||
|         globalThis.udpClient.closeUdp(()=>{ |  | ||||||
| 
 | 
 | ||||||
|           globalThis.udpClient.rebindUdp(result[0].udplocalIp, result[0].udplocalIpPort,result[0].udpOppositeIp,result[0].udpOppositeIpPort) | export async function getUDP() { | ||||||
|  |   getSyncData('IpConfigTable').then((result: Array<any>) => { | ||||||
|  |     console.log('result222', JSON.stringify(result)) | ||||||
|  |     if (result.length) { | ||||||
|  |       if (globalThis.udpClient && globalThis.udpClient.closeUdp) { | ||||||
|  |         globalThis.udpClient.closeUdp(() => { | ||||||
|  | 
 | ||||||
|  |           globalThis.udpClient.rebindUdp(result[0].udplocalIp, result[0].udplocalIpPort, result[0].udpOppositeIp, result[0].udpOppositeIpPort) | ||||||
|           // globalThis.udpClient.rebindUdp('192.168.7.170', '20122','192.168.7.124','20022')
 |           // globalThis.udpClient.rebindUdp('192.168.7.170', '20122','192.168.7.124','20022')
 | ||||||
|           // setInterval(()=>{
 |           // setInterval(()=>{
 | ||||||
|           //   globalThis.udpClient.sendMsg('111')
 |           //   globalThis.udpClient.sendMsg('111')
 | ||||||
| @ -47,40 +48,41 @@ export async function getUDP() { | |||||||
| 
 | 
 | ||||||
|           // globalThis.udpClient = udpClient
 |           // globalThis.udpClient = udpClient
 | ||||||
|         }) |         }) | ||||||
|       }else{ |       } else { | ||||||
| 
 | 
 | ||||||
|         const udpClient: UdpClient =new UdpClient(result[0].udplocalIp, result[0].udplocalIpPort,result[0].udpOppositeIp,result[0].udpOppositeIpPort) |         const udpClient: UdpClient = new UdpClient(result[0].udplocalIp, result[0].udplocalIpPort, result[0].udpOppositeIp, result[0].udpOppositeIpPort) | ||||||
|         udpClient.bindUdp() |         udpClient.bindUdp() | ||||||
|         udpClient.sendMsg('111') |         udpClient.sendMsg('111') | ||||||
|         globalThis.udpClient = udpClient |         globalThis.udpClient = udpClient | ||||||
|       } |       } | ||||||
|       // globalThis.udpClient = new UdpClient(result[0].localIp, result[0].localIpPort,result[0].oppositeIp,result[0].oppositeIpPort)
 |       // globalThis.udpClient = new UdpClient(result[0].localIp, result[0].localIpPort,result[0].oppositeIp,result[0].oppositeIpPort)
 | ||||||
| 
 | 
 | ||||||
|     }else{ |     } else { | ||||||
|       globalThis.udpClient={} |       globalThis.udpClient = {} | ||||||
|       globalThis.udpClient.onMessage=()=>{} |       globalThis.udpClient.onMessage = () => { | ||||||
|  |       } | ||||||
|     } |     } | ||||||
|   }) |   }) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export async function getUDP2() { | export async function getUDP2() { | ||||||
|   getSyncData('IpConfigTable').then(async (result:Array<any>)=>{ |   getSyncData('IpConfigTable').then(async (result: Array<any>) => { | ||||||
|     console.log('result222',JSON.stringify(result)) |     console.log('result222', JSON.stringify(result)) | ||||||
|     if(result.length){ |     if (result.length) { | ||||||
|       if(globalThis.udpClient2&&globalThis.udpClient2.closeUdp){ |       if (globalThis.udpClient2 && globalThis.udpClient2.closeUdp) { | ||||||
|         globalThis.udpClient2.closeUdp(async ()=>{ |         globalThis.udpClient2.closeUdp(async () => { | ||||||
|           // globalThis.udpClient2.rebindUdp(result[0].udplocalIp, '8800','112.80.35.83','11056')
 |           // globalThis.udpClient2.rebindUdp(result[0].udplocalIp, '8800','112.80.35.83','11056')
 | ||||||
|           globalThis.udpClient2.rebindUdp(result[0].udplocalIp, '8800',result[0].centerIp,result[0].heartPort) |           globalThis.udpClient2.rebindUdp(result[0].udplocalIp, '8800', result[0].centerIp, result[0].heartPort) | ||||||
|           // globalThis.udpClient2.rebindUdp(result[0].tcplocalIp, result[0].tcplocalIpPort,result[0].tcpOppositeIp,result[0].tcpOppositePort)
 |           // globalThis.udpClient2.rebindUdp(result[0].tcplocalIp, result[0].tcplocalIpPort,result[0].tcpOppositeIp,result[0].tcpOppositePort)
 | ||||||
|           // globalThis.udpClient2.rebindUdp(result[0].udplocalIp, result[0].udpLocalIpByGPS,result[0].udpOppositeIp,result[0].udpOppositeIpPortByGPS)
 |           // globalThis.udpClient2.rebindUdp(result[0].udplocalIp, result[0].udpLocalIpByGPS,result[0].udpOppositeIp,result[0].udpOppositeIpPortByGPS)
 | ||||||
|           globalThis.udpClient2.onMessage((val)=>{ |           globalThis.udpClient2.onMessage((val) => { | ||||||
|             // globalThis.udpClnt2.sendMsg(heartMsg(context))
 |             // globalThis.udpClnt2.sendMsg(heartMsg(context))
 | ||||||
|           }) |           }) | ||||||
| 
 | 
 | ||||||
|         }) |         }) | ||||||
|       }else{ |       } else { | ||||||
|         // const udpClient: UdpClient =new UdpClient(result[0].udplocalIp, result[0].udpLocalIpByGPS,result[0].udpOppositeIp,result[0].udpOppositeIpPortByGPS)
 |         // const udpClient: UdpClient =new UdpClient(result[0].udplocalIp, result[0].udpLocalIpByGPS,result[0].udpOppositeIp,result[0].udpOppositeIpPortByGPS)
 | ||||||
|         const udpClient: UdpClientByCenter =new UdpClientByCenter(result[0].udplocalIp, '8800',result[0].centerIp,result[0].heartPort) |         const udpClient: UdpClientByCenter = new UdpClientByCenter(result[0].udplocalIp, '8800', result[0].centerIp, result[0].heartPort) | ||||||
|         // const udpClient: UdpClientByCenter =new UdpClientByCenter(result[0].udplocalIp, '8800','112.80.35.83','11056')
 |         // const udpClient: UdpClientByCenter =new UdpClientByCenter(result[0].udplocalIp, '8800','112.80.35.83','11056')
 | ||||||
|         // const udpClient: UdpClient =new UdpClient(result[0].tcplocalIp, result[0].tcplocalIpPort,result[0].tcpOppositeIp,result[0].tcpOppositePort)
 |         // const udpClient: UdpClient =new UdpClient(result[0].tcplocalIp, result[0].tcplocalIpPort,result[0].tcpOppositeIp,result[0].tcpOppositePort)
 | ||||||
| 
 | 
 | ||||||
| @ -89,20 +91,25 @@ export async function getUDP2() { | |||||||
| 
 | 
 | ||||||
|         // globalThis.udpClient2.sendMsg(heartMsg(context))
 |         // globalThis.udpClient2.sendMsg(heartMsg(context))
 | ||||||
| 
 | 
 | ||||||
|         globalThis.udpClient2.onMessage((val)=>{ |         globalThis.udpClient2.onMessage((val) => { | ||||||
| 
 | 
 | ||||||
|           if(val.id=='32'){ |           if (val.id == '32') { | ||||||
|             globalThis.signNum=val.body[1] |             globalThis.signNum = val.body[1] | ||||||
|           }else if(val.id=='46'){ |           } else if (val.id == '46') { | ||||||
| 
 | 
 | ||||||
|             let tmpList = [] |             let tmpList = [] | ||||||
|             console.log('lsh',globalThis.lsh) |             console.log('lsh', globalThis.lsh) | ||||||
|             const str = globalThis.lsh |             const str = globalThis.lsh | ||||||
|             for (let i = 0;i < str.length; i++) { |             for (let i = 0; i < str.length; i++) { | ||||||
|               tmpList.push(this.string2Bytes(str.charCodeAt(i), 1 * 8)[0]) |               tmpList.push(this.string2Bytes(str.charCodeAt(i), 1 * 8)[0]) | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             const param = { id: 47, list: tmpList, carNo: globalThis.carInfo.carNo, placeId: globalThis.carInfo.examinationRoomId } |             const param = { | ||||||
|  |               id: 47, | ||||||
|  |               list: tmpList, | ||||||
|  |               carNo: globalThis.carInfo.carNo, | ||||||
|  |               placeId: globalThis.carInfo.examinationRoomId | ||||||
|  |             } | ||||||
|             globalThis.udpClient2.send(param) |             globalThis.udpClient2.send(param) | ||||||
|           } |           } | ||||||
| 
 | 
 | ||||||
| @ -113,12 +120,14 @@ export async function getUDP2() { | |||||||
|           // },1000)
 |           // },1000)
 | ||||||
|         }) |         }) | ||||||
|       } |       } | ||||||
|     }else{ |     } else { | ||||||
|       globalThis.udpClient2={} |       globalThis.udpClient2 = {} | ||||||
|       globalThis.udpClient2.onMessage=()=>{} |       globalThis.udpClient2.onMessage = () => { | ||||||
|  |       } | ||||||
|     } |     } | ||||||
|   }) |   }) | ||||||
| } | } | ||||||
|  | 
 | ||||||
| function fillZero(str, len) { | function fillZero(str, len) { | ||||||
|   str = str + ''; |   str = str + ''; | ||||||
|   if (str.length > len || !len) { |   if (str.length > len || !len) { | ||||||
| @ -133,6 +142,7 @@ function fillZero(str, len) { | |||||||
| 
 | 
 | ||||||
|   return zeroStr + str; |   return zeroStr + str; | ||||||
| } | } | ||||||
|  | 
 | ||||||
| // function getByteToInt(arr){
 | // function getByteToInt(arr){
 | ||||||
| //   let a = list[0];
 | //   let a = list[0];
 | ||||||
| //   let b = list[1];
 | //   let b = list[1];
 | ||||||
| @ -140,17 +150,17 @@ function fillZero(str, len) { | |||||||
| //   let id = Math.floor(+c/1000)
 | //   let id = Math.floor(+c/1000)
 | ||||||
| // }
 | // }
 | ||||||
| export async function getUDPByTopLine() { | export async function getUDPByTopLine() { | ||||||
|   getSyncData('IpConfigTable').then((result:Array<any>)=>{ |   getSyncData('IpConfigTable').then((result: Array<any>) => { | ||||||
|     if(result.length){ |     if (result.length) { | ||||||
|       if(globalThis.udpClientByTopLine&&globalThis.udpClientByTopLine.closeUdp){ |       if (globalThis.udpClientByTopLine && globalThis.udpClientByTopLine.closeUdp) { | ||||||
|         globalThis.udpClientByTopLine.closeUdp(()=>{ |         globalThis.udpClientByTopLine.closeUdp(() => { | ||||||
| 
 | 
 | ||||||
|           globalThis.udpClientByTopLine.rebindUdp(result[0].udplocalIp,'5509',result[0].udpOppositeIp,result[0].udpOppositeIpPort) |           globalThis.udpClientByTopLine.rebindUdp(result[0].udplocalIp, '5509', result[0].udpOppositeIp, result[0].udpOppositeIpPort) | ||||||
|           // globalThis.udpClient.rebindUdp('192.168.7.170', '20122','192.168.7.124','20022')
 |           // globalThis.udpClient.rebindUdp('192.168.7.170', '20122','192.168.7.124','20022')
 | ||||||
|         }) |         }) | ||||||
|       }else{ |       } else { | ||||||
| 
 | 
 | ||||||
|         const udpClient: UdpClient =new UdpClient(result[0].udplocalIp, '55509',result[0].udpOppositeIp,result[0].udpOppositeIpPort) |         const udpClient: UdpClient = new UdpClient(result[0].udplocalIp, '55509', result[0].udpOppositeIp, result[0].udpOppositeIpPort) | ||||||
|         // const udpClient: UdpClient =new UdpClient(result[0].udplocalIp, '8800','192.168.36.9','11111')
 |         // const udpClient: UdpClient =new UdpClient(result[0].udplocalIp, '8800','192.168.36.9','11111')
 | ||||||
|         // const udpClient: UdpClient =new UdpClient('192.168.7.170', '20122','192.168.7.124','20022')
 |         // const udpClient: UdpClient =new UdpClient('192.168.7.170', '20122','192.168.7.124','20022')
 | ||||||
|         // globalThis.udpClient2.rebindUdp('192.168.7.170', '20122','192.168.7.124','20022')
 |         // globalThis.udpClient2.rebindUdp('192.168.7.170', '20122','192.168.7.124','20022')
 | ||||||
| @ -160,22 +170,24 @@ export async function getUDPByTopLine() { | |||||||
|       } |       } | ||||||
|       // globalThis.udpClient = new UdpClient(result[0].localIp, result[0].localIpPort,result[0].oppositeIp,result[0].oppositeIpPort)
 |       // globalThis.udpClient = new UdpClient(result[0].localIp, result[0].localIpPort,result[0].oppositeIp,result[0].oppositeIpPort)
 | ||||||
| 
 | 
 | ||||||
|     }else{ |     } else { | ||||||
|       globalThis.udpClientByTopLine={} |       globalThis.udpClientByTopLine = {} | ||||||
|       globalThis.udpClientByTopLine.onMessage=()=>{} |       globalThis.udpClientByTopLine.onMessage = () => { | ||||||
|  |       } | ||||||
|     } |     } | ||||||
|   }) |   }) | ||||||
| } | } | ||||||
| export async function setTopLineUdp(){ | 
 | ||||||
|  | export async function setTopLineUdp() { | ||||||
|   const config = await getSyncData('IpConfigTable'); |   const config = await getSyncData('IpConfigTable'); | ||||||
|   if(config && config[0] && config[0].udplocalIp){ |   if (config && config[0] && config[0].udplocalIp) { | ||||||
|     const {udplocalIp,udpOppositeIp,udpOppositeIpPort} = config[0]; |     const {udplocalIp,udpOppositeIp,udpOppositeIpPort} = config[0]; | ||||||
|     const udpClient: UdpClientByCenter = new UdpClientByCenter(udplocalIp, '55509',udpOppositeIp,udpOppositeIpPort) |     const udpClient: UdpClientByCenter = new UdpClientByCenter(udplocalIp, '55509', udpOppositeIp, udpOppositeIpPort) | ||||||
|     // const udpClient: UdpClientByCenter = new UdpClientByCenter(udplocalIp, '8800','192.168.36.4','33333')
 |     // const udpClient: UdpClientByCenter = new UdpClientByCenter(udplocalIp, '8800','192.168.36.4','33333')
 | ||||||
|     udpClient.bindUdp() |     udpClient.bindUdp() | ||||||
| 
 | 
 | ||||||
|     return { |     return { | ||||||
|       send(bytes){ |       send(bytes) { | ||||||
|         udpClient.sendHeadMsg(bytes) |         udpClient.sendHeadMsg(bytes) | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
| @ -183,21 +195,26 @@ export async function setTopLineUdp(){ | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| export async function setJudgeUdp(){ | export async function setJudgeUdp() { | ||||||
|   const config = await getSyncData('IpConfigTable'); |   const config = await getSyncData('IpConfigTable'); | ||||||
|   if(config && config[0] && config[0].udplocalIp){ |   if (config && config[0] && config[0].udplocalIp) { | ||||||
|     const {udplocalIp,centerIp,gpsPort} = config[0]; |     const {udplocalIp,centerIp,gpsPort} = config[0]; | ||||||
|     // const udpClient: UdpClientByCenter = new UdpClientByCenter(udplocalIp, '8080','192.168.32.167','33333')
 |     // const udpClient: UdpClientByCenter = new UdpClientByCenter(udplocalIp, '8080','192.168.32.167','33333')
 | ||||||
|     const udpClient: UdpClientByCenter = new UdpClientByCenter(udplocalIp, '8080',centerIp,gpsPort) |     const udpClient: UdpClientByCenter = new UdpClientByCenter(udplocalIp, '8080', centerIp, gpsPort) | ||||||
|     // const udpClient: UdpClientByCenter = new UdpClientByCenter(udplocalIp, '8800','192.168.36.4','33333')
 |     // const udpClient: UdpClientByCenter = new UdpClientByCenter(udplocalIp, '8800','192.168.36.4','33333')
 | ||||||
|     udpClient.bindUdp() |     udpClient.bindUdp() | ||||||
|     udpClient.onMessage((val)=>{ |     udpClient.onMessage((val) => { | ||||||
|     }) |     }) | ||||||
|     globalThis.judgeUdpClient = udpClient; |     globalThis.judgeUdpClient = udpClient; | ||||||
|     return { |     return { | ||||||
|       send(bytes){ |       send(bytes) { | ||||||
|         console.log('carInfo111',JSON.stringify(globalThis.carInfo)) |         console.log('carInfo111', JSON.stringify(globalThis.carInfo)) | ||||||
|         udpClient.sendMsg({id:45,list:bytes,carNo:globalThis.carInfo.carNo,placeId:globalThis.carInfo.examinationRoomId}) |         udpClient.sendMsg({ | ||||||
|  |           id: 45, | ||||||
|  |           list: bytes, | ||||||
|  |           carNo: globalThis.carInfo.carNo, | ||||||
|  |           placeId: globalThis.carInfo.examinationRoomId | ||||||
|  |         }) | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  | |||||||
| @ -14,164 +14,166 @@ | |||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| import socket from '@ohos.net.socket'; | import socket from '@ohos.net.socket'; | ||||||
| import {Array2Byte} from '../utils/tools' | import { Array2Byte } from '../utils/tools' | ||||||
| 
 | 
 | ||||||
| const TAG = '[PLC.UdpClient]' | const TAG = '[PLC.UdpClient]' | ||||||
| import prompt from '@ohos.prompt' | import prompt from '@ohos.prompt' | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| export default class UdpClient { | export default class UdpClient { | ||||||
|     private localIp: string = '' |   private localIp: string = '' | ||||||
|     private localIpPort: string = '' |   private localIpPort: string = '' | ||||||
|     private oppositeIp: string = '' |   private oppositeIp: string = '' | ||||||
|     private oppositeIpPort: string = '' |   private oppositeIpPort: string = '' | ||||||
| 
 | 
 | ||||||
|     private udp: any = null |   private udp: any = null | ||||||
| 
 | 
 | ||||||
|     constructor(udplocalIp: string, udplocalIpPort:string,udpOppositeIp: string,udpOppositeIpPort:string) { |   constructor(udplocalIp: string, udplocalIpPort: string, udpOppositeIp: string, udpOppositeIpPort: string) { | ||||||
|         this.localIp = udplocalIp |     this.localIp = udplocalIp | ||||||
|         this.oppositeIp = udpOppositeIp |     this.oppositeIp = udpOppositeIp | ||||||
|         this.localIpPort = udplocalIpPort |     this.localIpPort = udplocalIpPort | ||||||
|         this.oppositeIpPort = udpOppositeIpPort |     this.oppositeIpPort = udpOppositeIpPort | ||||||
| 
 | 
 | ||||||
|         this.udp = socket.constructUDPSocketInstance(); |     this.udp = socket.constructUDPSocketInstance(); | ||||||
|     } |   } | ||||||
|     rebindUdp(localIp: string, localIpPort:string,oppositeIp: string,oppositeIpPort:string){ |  | ||||||
| 
 | 
 | ||||||
|         this.localIp = localIp |   rebindUdp(localIp: string, localIpPort: string, oppositeIp: string, oppositeIpPort: string) { | ||||||
|         this.oppositeIp = oppositeIp |  | ||||||
|         this.localIpPort = localIpPort |  | ||||||
|         this.oppositeIpPort = oppositeIpPort |  | ||||||
| 
 | 
 | ||||||
|         let promise = this.udp.bind({ |     this.localIp = localIp | ||||||
|             // address: '192.168.7.170', port: 20122, family: 1
 |     this.oppositeIp = oppositeIp | ||||||
|             // address: '192.168.7.170', port: 31013, family: 1
 |     this.localIpPort = localIpPort | ||||||
|             address: this.localIp, port: parseInt(this.localIpPort), family: 1 |     this.oppositeIpPort = oppositeIpPort | ||||||
|         }); |  | ||||||
|         promise.then(() => { |  | ||||||
|             console.log(`${TAG} udp bind success`); |  | ||||||
|         }).catch(err => { |  | ||||||
| 
 | 
 | ||||||
|             console.log(`${TAG} udp bind failed:${JSON.stringify(err)}`); |     let promise = this.udp.bind({ | ||||||
|         }); |       // address: '192.168.7.170', port: 20122, family: 1
 | ||||||
|     } |       // address: '192.168.7.170', port: 31013, family: 1
 | ||||||
|     bindUdp() { |       address: this.localIp, port: parseInt(this.localIpPort), family: 1 | ||||||
|         console.log('localIp',this.localIp) |     }); | ||||||
|         console.log('localIpPort',this.localIpPort) |     promise.then(() => { | ||||||
|         let promise = this.udp.bind({ |       console.log(`${TAG} udp bind success`); | ||||||
|             // address: '192.168.7.170', port: 20122, family: 1
 |     }).catch(err => { | ||||||
|             // address: '192.168.7.170', port: 31013, family: 1
 |  | ||||||
|             address: this.localIp, port: parseInt(this.localIpPort), family: 1 |  | ||||||
|         }); |  | ||||||
|         promise.then(() => { |  | ||||||
|             console.log(`${TAG} udp bind success`); |  | ||||||
|         }).catch(err => { |  | ||||||
| 
 | 
 | ||||||
|             console.log(`${TAG} udp bind failed:${JSON.stringify(err)}`); |       console.log(`${TAG} udp bind failed:${JSON.stringify(err)}`); | ||||||
|         }); |     }); | ||||||
|     } |   } | ||||||
| 
 | 
 | ||||||
|     sendMsg(msg: string) { |   bindUdp() { | ||||||
|         let promise = this.udp.send({ |     console.log('localIp', this.localIp) | ||||||
|             data: msg, |     console.log('localIpPort', this.localIpPort) | ||||||
|             address: { |     let promise = this.udp.bind({ | ||||||
|                 // address: '192.168.7.124',
 |       // address: '192.168.7.170', port: 20122, family: 1
 | ||||||
|                 // port: 30013,
 |       // address: '192.168.7.170', port: 31013, family: 1
 | ||||||
|                 // address: '192.168.7.124',
 |       address: this.localIp, port: parseInt(this.localIpPort), family: 1 | ||||||
|                 // port: 20022,
 |     }); | ||||||
|                 address: this.oppositeIp, |     promise.then(() => { | ||||||
|                 port: parseInt(this.oppositeIpPort), |       console.log(`${TAG} udp bind success`); | ||||||
|                 family: 1 |     }).catch(err => { | ||||||
|  | 
 | ||||||
|  |       console.log(`${TAG} udp bind failed:${JSON.stringify(err)}`); | ||||||
|  |     }); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   sendMsg(msg: string) { | ||||||
|  |     let promise = this.udp.send({ | ||||||
|  |       data: msg, | ||||||
|  |       address: { | ||||||
|  |         // address: '192.168.7.124',
 | ||||||
|  |         // port: 30013,
 | ||||||
|  |         // address: '192.168.7.124',
 | ||||||
|  |         // port: 20022,
 | ||||||
|  |         address: this.oppositeIp, | ||||||
|  |         port: parseInt(this.oppositeIpPort), | ||||||
|  |         family: 1 | ||||||
|  |       } | ||||||
|  |     }); | ||||||
|  |     promise.then(() => { | ||||||
|  |       console.log(`${TAG} ${this.oppositeIpPort} udp send success:${msg}`); | ||||||
|  |     }).catch(err => { | ||||||
|  |       console.log(`${TAG} udp send fail:${JSON.stringify(err)}`); | ||||||
|  |     }); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   onMessage(callback) { | ||||||
|  | 
 | ||||||
|  |     this.udp.on('message', value => { | ||||||
|  |       // 收到的是ArrayBuffer 需要进行转换解析
 | ||||||
|  |       globalThis.plcUdpError = false | ||||||
|  |       if (value) { | ||||||
|  | 
 | ||||||
|  |         let dataView = new DataView(value.message) | ||||||
|  |         //            console.log(`${TAG} udp message length:${dataView?.byteLength}`);
 | ||||||
|  |         let str = "" | ||||||
|  |         for (let i = 0; i < dataView?.byteLength; ++i) { | ||||||
|  |           let c = String.fromCharCode(dataView?.getUint8(i)) | ||||||
|  |           if (c !== "\n") { | ||||||
|  |             str += c | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |         console.log(`${TAG} udp on message array buffer:${str}`); | ||||||
|  |         const strachArr = str.split(',') | ||||||
|  |         if (strachArr[0] != '#DN_GD') { | ||||||
|  |           return | ||||||
|  |         } | ||||||
|  |         callback(str) | ||||||
|  |       } else { | ||||||
|  |         callback('') | ||||||
|  |       } | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  |     const arrRed = [0x55, 0xaa, 0x01, 0x01, 0x02, 0x00, 0x03, 0x00]; | ||||||
|  |     const arrBlue = [0x55, 0xaa, 0x01, 0x00, 0x02, 0x01, 0x03, 0x00]; | ||||||
|  |     const arrGreen = [0x55, 0xaa, 0x01, 0x00, 0x02, 0x00, 0x03, 0x01]; | ||||||
|  |     const arrBlueBuffer = Array2Byte(arrBlue).buffer | ||||||
|  |     const arrRedBuffer = Array2Byte(arrRed).buffer | ||||||
|  |     const arrGreenBugger = Array2Byte(arrGreen).buffer | ||||||
|  | 
 | ||||||
|  |     //监听udp是否断开
 | ||||||
|  |     clearInterval(globalThis.messageTimer) | ||||||
|  |     globalThis.messageTimer = setInterval(() => { | ||||||
|  |       const lightLineUdp = globalThis.lightLineUdp | ||||||
|  |       const isJudge = globalThis.isJudge | ||||||
|  |       setTimeout(() => { | ||||||
|  |         //程序断开
 | ||||||
|  |         lightLineUdp?.send(globalThis.plcUdpError ? arrRedBuffer : (isJudge ? arrGreenBugger : arrBlueBuffer)); | ||||||
|  |         if (globalThis.plcUdpError) { | ||||||
|  |           prompt.showToast({ | ||||||
|  |             message: 'plc udp信号丢失', | ||||||
|  |             duration: 2000 | ||||||
|  |           }); | ||||||
|  |         } | ||||||
|  |         globalThis.plcUdpError = true; | ||||||
|  |       }, 2000) | ||||||
|  |     }, 3000) | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   closeUdp(callback) { | ||||||
|  |     this.udp.close(err => { | ||||||
|  |       if (err) { | ||||||
|  | 
 | ||||||
|  |       } else { | ||||||
|  |         this.udp.getState((err, data) => { | ||||||
|  |           if (err) { | ||||||
|  |             console.log('getState fail'); | ||||||
|  |             return; | ||||||
|  |           } else { | ||||||
|  |             if (!data.isisClose) { | ||||||
|  |               setTimeout(() => { | ||||||
|  |                 callback() | ||||||
|  |               }, 1000) | ||||||
|             } |             } | ||||||
|         }); |           } | ||||||
|         promise.then(() => { |           console.log('getState success:' + JSON.stringify(data)); | ||||||
|             console.log(`${TAG} ${this.oppositeIpPort} udp send success:${msg}`); |         }) | ||||||
|         }).catch(err => { |         // let promise = this.udp.getState({});
 | ||||||
|             console.log(`${TAG} udp send fail:${JSON.stringify(err)}`); |         // promise.then(data => {
 | ||||||
|         }); |         //
 | ||||||
|     } |         //     console.log('getState success:' + JSON.stringify(data));
 | ||||||
|  |         // }).catch(err => {
 | ||||||
|  |         //     callback()
 | ||||||
|  |         //     console.log('getState fail');
 | ||||||
|  |         // });
 | ||||||
|  |       } | ||||||
|  |     }); | ||||||
| 
 | 
 | ||||||
|     onMessage(callback) { |   } | ||||||
| 
 |  | ||||||
|         this.udp.on('message', value => { |  | ||||||
|             // 收到的是ArrayBuffer 需要进行转换解析
 |  | ||||||
|             globalThis.plcUdpError = false |  | ||||||
|             if (value) { |  | ||||||
| 
 |  | ||||||
|                 let dataView = new DataView(value.message) |  | ||||||
|                 //            console.log(`${TAG} udp message length:${dataView?.byteLength}`);
 |  | ||||||
|                 let str = "" |  | ||||||
|                 for (let i = 0;i < dataView?.byteLength; ++i) { |  | ||||||
|                     let c = String.fromCharCode(dataView?.getUint8(i)) |  | ||||||
|                     if (c !== "\n") { |  | ||||||
|                         str += c |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|                 console.log(`${TAG} udp on message array buffer:${str}`); |  | ||||||
|                 const strachArr=str.split(',') |  | ||||||
|                 if (strachArr[0] != '#DN_GD') { |  | ||||||
|                     return |  | ||||||
|                 } |  | ||||||
|                 callback(str) |  | ||||||
|             }else{ |  | ||||||
|                 callback('') |  | ||||||
|             } |  | ||||||
|         }); |  | ||||||
| 
 |  | ||||||
|         const arrRed= [0x55, 0xaa, 0x01, 0x01, 0x02, 0x00, 0x03, 0x00]; |  | ||||||
|         const arrBlue = [0x55, 0xaa, 0x01, 0x00, 0x02, 0x01, 0x03, 0x00]; |  | ||||||
|         const arrGreen =[0x55,  0xaa, 0x01, 0x00, 0x02, 0x00, 0x03, 0x01]; |  | ||||||
|         const arrBlueBuffer= Array2Byte(arrBlue).buffer |  | ||||||
|         const arrRedBuffer = Array2Byte(arrRed).buffer |  | ||||||
|         const arrGreenBugger = Array2Byte(arrGreen).buffer |  | ||||||
| 
 |  | ||||||
|         //监听udp是否断开
 |  | ||||||
|         clearInterval(globalThis.messageTimer) |  | ||||||
|         globalThis.messageTimer =  setInterval(()=>{ |  | ||||||
|             const lightLineUdp = globalThis.lightLineUdp |  | ||||||
|             const isJudge = globalThis.isJudge |  | ||||||
|             setTimeout(()=>{ |  | ||||||
|                 //程序断开
 |  | ||||||
|                 lightLineUdp?.send( globalThis.plcUdpError?arrRedBuffer:(isJudge?arrGreenBugger:arrBlueBuffer)); |  | ||||||
|                 if(globalThis.plcUdpError){ |  | ||||||
|                     prompt.showToast({ |  | ||||||
|                         message: 'plc udp信号丢失', |  | ||||||
|                         duration: 2000 |  | ||||||
|                     }); |  | ||||||
|                 } |  | ||||||
|                 globalThis.plcUdpError = true; |  | ||||||
|             },2000) |  | ||||||
|         },3000) |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     closeUdp(callback) { |  | ||||||
|          this.udp.close(err=>{ |  | ||||||
|                  if(err){ |  | ||||||
| 
 |  | ||||||
|              }else{ |  | ||||||
|                  this.udp.getState((err, data) => { |  | ||||||
|                      if (err) { |  | ||||||
|                          console.log('getState fail'); |  | ||||||
|                          return; |  | ||||||
|                      }else{ |  | ||||||
|                          if(!data.isisClose){ |  | ||||||
|                              setTimeout(()=>{ |  | ||||||
|                                  callback() |  | ||||||
|                              },1000) |  | ||||||
|                          } |  | ||||||
|                      } |  | ||||||
|                      console.log('getState success:' + JSON.stringify(data)); |  | ||||||
|                  }) |  | ||||||
|                  // let promise = this.udp.getState({});
 |  | ||||||
|                  // promise.then(data => {
 |  | ||||||
|                  //
 |  | ||||||
|                  //     console.log('getState success:' + JSON.stringify(data));
 |  | ||||||
|                  // }).catch(err => {
 |  | ||||||
|                  //     callback()
 |  | ||||||
|                  //     console.log('getState fail');
 |  | ||||||
|                  // });
 |  | ||||||
|              } |  | ||||||
|          }); |  | ||||||
| 
 |  | ||||||
|     } |  | ||||||
| } | } | ||||||
| @ -18,7 +18,7 @@ const PERMISSIONS: Array<string> = [ | |||||||
|   'ohos.permission.CAMERA'] |   'ohos.permission.CAMERA'] | ||||||
| 
 | 
 | ||||||
| @Component | @Component | ||||||
| struct FaceCompare { | export default struct FaceCompare { | ||||||
|   constructor() { |   constructor() { | ||||||
|     super() |     super() | ||||||
|   } |   } | ||||||
| @ -340,4 +340,4 @@ struct FaceCompare { | |||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export default FaceCompare | // export default FaceCompare | ||||||
| @ -400,11 +400,11 @@ struct FaceCompare { | |||||||
|       return |       return | ||||||
|     } |     } | ||||||
|     this.param = JSON.parse(data) |     this.param = JSON.parse(data) | ||||||
|     this.param.userName = JSON.parse(data).userName |     // this.param.userName = JSON.parse(data).userName | ||||||
|     this.param.ip = JSON.parse(data).ip |     // this.param.ip = JSON.parse(data).ip | ||||||
|     this.param.pwd = JSON.parse(data).pwd |     // this.param.pwd = JSON.parse(data).pwd | ||||||
|     this.param.port = JSON.parse(data).port |     // this.param.port = JSON.parse(data).port | ||||||
|     this.param.rlls = JSON.parse(data).rlls |     // this.param.rlls = JSON.parse(data).rlls | ||||||
|     console.log('this.parm', this.param.userName, this.param.pwd, this.param.ip, this.param.port, this.param.rlls) |     console.log('this.parm', this.param.userName, this.param.pwd, this.param.ip, this.param.port, this.param.rlls) | ||||||
|     this.controller.start() |     this.controller.start() | ||||||
|     // this.video_url = `rtsp://${this.param.userName}:${this.param.pwd}@${this.param.ip}:${this.param.port}/h264/ch${this.param.rlls}/main/av_stream`; |     // this.video_url = `rtsp://${this.param.userName}:${this.param.pwd}@${this.param.ip}:${this.param.port}/h264/ch${this.param.rlls}/main/av_stream`; | ||||||
|  | |||||||
							
								
								
									
										31
									
								
								entry/src/ohosTest/ets/test/GlobleUdp.test.ets
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								entry/src/ohosTest/ets/test/GlobleUdp.test.ets
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,31 @@ | |||||||
|  | import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium' | ||||||
|  | 
 | ||||||
|  | export default function GlobleUdpTest() { | ||||||
|  |   describe('GlobleUdpTest', () => { | ||||||
|  |     // Defines a test suite. Two parameters are supported: test suite name and test suite function. | ||||||
|  |     beforeAll(() => { | ||||||
|  |       // Presets an action, which is performed only once before all test cases of the test suite start. | ||||||
|  |       // This API supports only one parameter: preset action function. | ||||||
|  |     }) | ||||||
|  |     beforeEach(() => { | ||||||
|  |       // Presets an action, which is performed before each unit test case starts. | ||||||
|  |       // The number of execution times is the same as the number of test cases defined by **it**. | ||||||
|  |       // This API supports only one parameter: preset action function. | ||||||
|  |     }) | ||||||
|  |     afterEach(() => { | ||||||
|  |       // Presets a clear action, which is performed after each unit test case ends. | ||||||
|  |       // The number of execution times is the same as the number of test cases defined by **it**. | ||||||
|  |       // This API supports only one parameter: clear action function. | ||||||
|  |     }) | ||||||
|  |     afterAll(() => { | ||||||
|  |       // Presets a clear action, which is performed after all test cases of the test suite end. | ||||||
|  |       // This API supports only one parameter: clear action function. | ||||||
|  |     }) | ||||||
|  |     it('assertEqual', 0, () => { | ||||||
|  |       // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function. | ||||||
|  |       let a = 'test' | ||||||
|  |       // Defines a variety of assertion methods, which are used to declare expected boolean conditions. | ||||||
|  |       expect(a).assertEqual('test') | ||||||
|  |     }) | ||||||
|  |   }) | ||||||
|  | } | ||||||
| @ -1,5 +1,7 @@ | |||||||
|  | import GlobleUdpTest from './GlobleUdp.test' | ||||||
| import abilityTest from './Ability.test' | import abilityTest from './Ability.test' | ||||||
| 
 | 
 | ||||||
| export default function testsuite() { | export default function testsuite() { | ||||||
|   abilityTest() |   abilityTest() | ||||||
|  |   GlobleUdpTest() | ||||||
| } | } | ||||||
| @ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "hvigorVersion": "2.1.1", |   "hvigorVersion": "3.0.9", | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@ohos/hvigor-ohos-plugin": "2.1.1" |     "@ohos/hvigor-ohos-plugin": "3.0.9" | ||||||
|   } |   } | ||||||
| } | } | ||||||
							
								
								
									
										3
									
								
								hvigor/hvigor-wrapper.js
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										3
									
								
								hvigor/hvigor-wrapper.js
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user