From f299e6fe177320539b89271f0feddfd8ebfe8b24 Mon Sep 17 00:00:00 2001 From: lixiao <932184220@qq.com> Date: Fri, 9 May 2025 15:07:00 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=B5=E5=BC=95=E8=BD=A6=E7=AC=AC=E4=BA=8C?= =?UTF-8?q?=E5=AF=BC=E8=88=AA=E4=BB=AA=E6=96=B0udp=E5=A2=9E=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/src/main/cpp/bin/libJudgeSdk.so | Bin 4584568 -> 4584568 bytes entry/src/main/ets/common/utils/GlobalTcp.ts | 62 ---- entry/src/main/ets/common/utils/GlobalUdp.ts | 284 +++++++----------- entry/src/main/ets/common/utils/UdpClient.ts | 237 --------------- .../ets/common/utils/UdpClientByCenter.ts | 74 +++-- entry/src/main/ets/pages/Index.ets | 13 +- .../ets/pages/compontents/SignDisplayCom.ets | 8 - .../ets/pages/compontents/SignDisplayCom2.ets | 6 - entry/src/main/ets/pages/judgeSDK/judge.ts | 16 +- .../ets/pages/judgeSDK/utils/judgeCommon.ts | 44 +-- 10 files changed, 178 insertions(+), 566 deletions(-) delete mode 100644 entry/src/main/ets/common/utils/UdpClient.ts diff --git a/entry/src/main/cpp/bin/libJudgeSdk.so b/entry/src/main/cpp/bin/libJudgeSdk.so index 79da759cfcba81eaa338c86ccedd3cfce49050a5..93667eb23d981f367dceeb3d07b70c3011f7cd8c 100644 GIT binary patch delta 13729 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 delta 13728 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 diff --git a/entry/src/main/ets/common/utils/GlobalTcp.ts b/entry/src/main/ets/common/utils/GlobalTcp.ts index 04485318..9d86b7dc 100644 --- a/entry/src/main/ets/common/utils/GlobalTcp.ts +++ b/entry/src/main/ets/common/utils/GlobalTcp.ts @@ -85,68 +85,6 @@ export async function getTCP(flag=false) { } } return - getSyncData('IpConfigTable').then(async (result: Array) => { - - console.log('result222', JSON.stringify(result)) - if (result.length) { - if (globalThis.TcpClient && globalThis.TcpClient.closeTcp) { - globalThis.TcpClient.closeTcp(async () => { - // const tcpClient: TcpClient =new TcpClient(result[0].tcplocalIp, result[0].tcplocalIpPort,result[0].tcpOppositeIp,result[0].tcpOppositePort) - // globalThis.TcpClient = tcpClient - setTimeout(async () => { - await globalThis.TcpClient.rebindTcp(result[0].tcplocalIp, result[0].tcplocalIpPort, result[0].tcpOppositeIp, result[0].tcpOppositePort) - await globalThis.TcpClient.connectTcp() - await globalThis.TcpClient.sendMsg('1002') //1002 - globalThis.TcpClient.onError((val) => { - setTimeout(() => { - getTCP() - }, 1000) - }) - await globalThis.TcpClient.onMessage((val) => { - setTimeout(() => { - globalThis.TcpClient.sendMsg('1002') //1002 - if (val) { - // const msg=val.substring(5,val.length-1) - console.log('socketTag[PLC.UdpClient] status:', globalThis.udpClient.getStatus()) - globalThis.udpClient?.sendMsg(val) - } - }, 1000) - - }) - }, 2000) - }) - - } - else { - const tcpClient: TcpClient = new TcpClient(result[0].tcplocalIp, result[0].tcplocalIpPort, result[0].tcpOppositeIp, result[0].tcpOppositePort) - globalThis.TcpClient = tcpClient - await globalThis.TcpClient.bindTcp() - await globalThis.TcpClient.connectTcp() - await globalThis.TcpClient.sendMsg('1002') //1002 - globalThis.TcpClient.onError((val) => { - setTimeout(() => { - getTCP() - }, 1000) - }) - await globalThis.TcpClient.onMessage((val) => { - hilog.info(0x0000, 'testTag', "valvalval2" + JSON.stringify(val)); - setTimeout(() => { - globalThis.TcpClient.sendMsg('1002') //1002 - if (val && globalThis.udpClient?.sendMsg) { - globalThis.udpClient?.sendMsg(val) - } - }, 1000) - - }) - } - // globalThis.udpClient = new UdpClient(result[0].localIp, result[0].localIpPort,result[0].oppositeIp,result[0].oppositeIpPort) - - } else { - globalThis.TcpClient = {} - globalThis.TcpClient.onMessage = () => { - } - } - }) } diff --git a/entry/src/main/ets/common/utils/GlobalUdp.ts b/entry/src/main/ets/common/utils/GlobalUdp.ts index 958d400a..169ba563 100644 --- a/entry/src/main/ets/common/utils/GlobalUdp.ts +++ b/entry/src/main/ets/common/utils/GlobalUdp.ts @@ -1,28 +1,24 @@ -//import UdpClient from './UdpClient'; import UdpClientByCenter from './UdpClientByCenter'; -import { getSyncData } from '../service/initable' import { getChuankouFn } from '../../common/service/indexService' import FileUtil from '../../common/utils/File' import { GlobalConfig } from '../../config/index' -import {Array2Byte,fillZero,string2Bytes}from './tools' -import emitter from '@ohos.events.emitter'; +import { Array2Byte, string2Bytes } from './tools' export async function sendMsg(val) { - // globalThis.udpClient1&&globalThis.udpClient1.sendMsg(val) } -export async function getUDP(context,errorFlag?) { - return new Promise(async (reslove,reject)=>{ +export async function getUDP(context, errorFlag?) { + return new Promise(async (resolve, reject) => { const fileUtil = new FileUtil(context) const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/ipConfig.txt'); - console.log('ttttt',data) + console.log('ttttt', data) if (data === '' || data === undefined) { console.log(` getUDP has no IPConfigTable `); globalThis.udpClient = {} globalThis.host = '' - reslove('') + resolve('') } else { - const result=JSON.parse(data) + const result = JSON.parse(data) console.log(` getUDP has IPConfigTable `); if (globalThis.udpClient && globalThis.udpClient.closeUdp) { console.log(` getUDP has udclent close and rebind `); @@ -31,16 +27,15 @@ export async function getUDP(context,errorFlag?) { globalThis.udpClient.rebindUdp(result.udplocalIp, result.udplocalIpPort, result.udpOppositeIp, result.udpOppositeIpPort) globalThis.udpClient.sendMsg('111', null) globalThis.host = `http://${result.centerIp}:${result.centerPort}` - globalThis.udpClient.onError_Callback(()=>{ + globalThis.udpClient.onError_Callback(() => { console.log('getUDPgetUDPgetUDP') - getUDP(context,true) - if(errorFlag&&globalThis.udpClient&&globalThis.udpClient.onMessage_1){ - globalThis.udpClient.onMessage_1=globalThis.udpClient.onMessage_1 + getUDP(context, true) + if (errorFlag && globalThis.udpClient && globalThis.udpClient.onMessage_1) { + globalThis.udpClient.onMessage_1 = globalThis.udpClient.onMessage_1 } }) - reslove(`http://${result.centerIp}:${result.centerPort}`) + resolve(`http://${result.centerIp}:${result.centerPort}`) - // globalThis.udpClient.onError_resend(globalThis.udpClient.onMessage_1?globalThis.udpClient.onMessage_1:()=>{}) }, 1000) }) @@ -48,117 +43,103 @@ export async function getUDP(context,errorFlag?) { else { // 未绑定 console.log(` getUDP has no udclent and bind `); - console.log('ttttttdata',JSON.stringify(result)) + console.log('ttttttdata', JSON.stringify(result)) const udpClient: UdpClientByCenter = new UdpClientByCenter(result.udplocalIp, result.udplocalIpPort, result.udpOppositeIp, result.udpOppositeIpPort) udpClient.bindUdp() udpClient.sendMsg('111') globalThis.host = `http://${result.centerIp}:${result.centerPort}` globalThis.udpClient = udpClient - globalThis.udpClient.onMessage_1(()=>{ + globalThis.udpClient.onMessage_1(() => { console.log('getUDPonMessage_1msgmsgByGloalUdp') - }) - globalThis.udpClient.onError_Callback(()=>{ - getUDP(context,true) - if(errorFlag&&globalThis.udpClient&&globalThis.udpClient.onMessage_1){ - globalThis.udpClient.onMessage_1=globalThis.udpClient.onMessage_1 + globalThis.udpClient.onError_Callback(() => { + getUDP(context, true) + if (errorFlag && globalThis.udpClient && globalThis.udpClient.onMessage_1) { + globalThis.udpClient.onMessage_1 = globalThis.udpClient.onMessage_1 } }) getChuankouFn() - reslove(`http://${result.centerIp}:${result.centerPort}`) - + resolve(`http://${result.centerIp}:${result.centerPort}`) } - } return - getSyncData('IpConfigTable').then((result: Array) => { - if (result.length) { - console.log(` getUDP has IPConfigTable `); - if (globalThis.udpClient && globalThis.udpClient.closeUdp) { - console.log(` getUDP has udclent close and rebind `); - globalThis.udpClient.closeUdp(() => { - setTimeout(() => { - globalThis.udpClient.rebindUdp(result[0].udplocalIp, result[0].udplocalIpPort, result[0].udpOppositeIp, result[0].udpOppositeIpPort) - globalThis.udpClient.sendMsg('111', null) - globalThis.host = `http://${result[0].centerIp}:${result[0].centerPort}` - globalThis.udpClient.onError_Callback(()=>{ - console.log('getUDPgetUDPgetUDP') - getUDP(true,context) - if(errorFlag&&globalThis.udpClient&&globalThis.udpClient.onMessage_1){ - globalThis.udpClient.onMessage_1=globalThis.udpClient.onMessage_1 - } - }) - reslove(`http://${result[0].centerIp}:${result[0].centerPort}`) - - // globalThis.udpClient.onError_resend(globalThis.udpClient.onMessage_1?globalThis.udpClient.onMessage_1:()=>{}) - }, 1000) - }) - - } - else { - // 未绑定 - console.log(` getUDP has no udclent and bind `); - const udpClient: UdpClientByCenter = new UdpClientByCenter(result[0].udplocalIp, result[0].udplocalIpPort, result[0].udpOppositeIp, result[0].udpOppositeIpPort) - udpClient.bindUdp() - udpClient.sendMsg('111') - globalThis.host = `http://${result[0].centerIp}:${result[0].centerPort}` - globalThis.udpClient = udpClient - - globalThis.udpClient.onMessage_1(()=>{ - console.log('getUDPonMessage_1msgmsgByGloalUdp') - - }) - globalThis.udpClient.onError_Callback(()=>{ - getUDP(true,context) - if(errorFlag&&globalThis.udpClient&&globalThis.udpClient.onMessage_1){ - globalThis.udpClient.onMessage_1=globalThis.udpClient.onMessage_1 - } - }) - // udpClient.onError_resend(globalThis.udpClient.onMessage_1?globalThis.udpClient.onMessage_1:()=>{}) - getChuankouFn() - reslove(`http://${result[0].centerIp}:${result[0].centerPort}`) - - - } - - } else { - console.log(` getUDP has no IPConfigTable `); - // if(globalThis.udpClient) - // { - // console.log(` getUDP2 has IPConfigTable ,has udpClient ,close it`); - // globalThis.udpClient.closeUdp(async ()=>{ }) - // } - globalThis.udpClient = {} - // globalThis.udpClient.onMessage_1 = () => {} - globalThis.host = '' - reslove('') - - } - }) }) - } -export async function getUDP2(context,errorFlag?) { +export async function getUDPGps2(context, errorFlag?) { + return new Promise(async (resolve, reject) => { + const fileUtil = new FileUtil(context) + const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/ipConfig.txt'); + console.log('ttttt', data) + if (data === '' || data === undefined) { + globalThis.udpClientGps2 = {} + resolve('') + } else { + const result = JSON.parse(data) + if (globalThis.udpClientGps2 && globalThis.udpClientGps2.closeUdp) { + console.log(` getUDPGPS2 has udclent close and rebind `); + globalThis.udpClientGps2.closeUdp(() => { + setTimeout(() => { + globalThis.udpClientGps2.rebindUdp(result.udplocalIp, result.udplocalIpPort, result.udpOppositeIp, Number(result.udpOppositeIpPort) + 1) + globalThis.udpClientGps2.sendMsg('111', null) + globalThis.udpClientGps2.onError_Callback(() => { + console.log('getUDPGPS') + getUDP(context, true) + if (errorFlag && globalThis.udpClientGps2 && globalThis.udpClientGps2.onMessage_1) { + globalThis.udpClientGps2.onMessage_1 = globalThis.udpClientGps2.onMessage_1 + } + }) + resolve(`http://${result.centerIp}:${result.centerPort}`) + }, 1000) + }) + + } + else { + // 未绑定 + console.log(` getUDPGPS2 has no udclent and bind `); + const udpClient: UdpClientByCenter = new UdpClientByCenter(result.udplocalIp, result.udplocalIpPort, result.udpOppositeIp, result.udpOppositeIpPort) + udpClient.bindUdp() + udpClient.sendMsg('111') + globalThis.host = `http://${result.centerIp}:${result.centerPort}` + globalThis.udpClientGps2 = udpClient + + globalThis.udpClientGps2.onMessage_1(() => { + console.log('getUDPGPS2 onMessage_1 MsgByGlobalUdpGPS2') + }) + globalThis.udpClientGps2.onError_Callback(() => { + getUDPGps2(context, true) + if (errorFlag && globalThis.udpClientGps2 && globalThis.udpClientGps2.onMessage_1) { + globalThis.udpClientGps2.onMessage_1 = globalThis.udpClientGps2.onMessage_1 + } + }) + resolve(`http://${result.centerIp}:${result.centerPort}`) + } + } + return + }) +} + + +export async function getUDP2(context, errorFlag?) { const fileUtil = new FileUtil(context) const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/ipConfig.txt'); if (data === '' || data === undefined) { globalThis.udpClient2 = {} globalThis.udpClient2.setMsgCallBack = () => { } - }else{ - const result=JSON.parse(data) + } else { + const result = JSON.parse(data) console.log(` getUDP2 has IPConfigTable `); if (globalThis.udpClient2 && globalThis.udpClient2.closeUdp) { console.log(` getUDP2 has udclent ,close and rebind `); globalThis.udpClient2.closeUdp(async () => { setTimeout(() => { globalThis.udpClient2.rebindUdp(result.udplocalIp, '8800', globalThis.carInfo?.udpAddress, globalThis.carInfo?.messagePort) - globalThis.udpClient2.onError_Callback(()=>{ - getUDP2(context,true); - if(errorFlag&&globalThis.udpClient2&&globalThis.udpClient2.onMessage_2){ - globalThis.udpClient2.onMessage_2=globalThis.udpClient2.onMessage_2 + globalThis.udpClient2.onError_Callback(() => { + getUDP2(context, true); + if (errorFlag && globalThis.udpClient2 && globalThis.udpClient2.onMessage_2) { + globalThis.udpClient2.onMessage_2 = globalThis.udpClient2.onMessage_2 } }) }, 1000) @@ -169,32 +150,33 @@ export async function getUDP2(context,errorFlag?) { console.log(` getUDP2 has no udclent and bind `); const udpClient2: UdpClientByCenter = new UdpClientByCenter(result.udplocalIp, '8800', globalThis.carInfo?.udpAddress, globalThis.carInfo?.messagePort) console.info('surenjun udp2=> ', globalThis.carInfo?.messagePort) - await udpClient2.bindUdp() - await udpClient2.onError_Callback(()=>{ - getUDP2(context,true); - if(errorFlag&&globalThis.udpClient2&&globalThis.udpClient2.onMessage_2){ - globalThis.udpClient2.onMessage_2=globalThis.udpClient2.onMessage_2 + udpClient2.bindUdp() + udpClient2.onError_Callback(() => { + getUDP2(context, true); + if (errorFlag && globalThis.udpClient2 && globalThis.udpClient2.onMessage_2) { + globalThis.udpClient2.onMessage_2 = globalThis.udpClient2.onMessage_2 } }) - if(!errorFlag){ - await udpClient2.onMessage_2((val) => { + if (!errorFlag) { + udpClient2.onMessage_2((val) => { if (val.id == '32') { globalThis.signNum = val.body[1] - if(val.body[0] == 5){ + if (val.body[0] == 5) { console.info('surenjun', `接收到平台扣分请求,请求指令为:${val.body[1]}`) globalThis.udpEvent.sendOnKf(val.body[1]) } - if(val.body[0] == 11){ - console.info('surenjun','GlobalUdp收到beginExam事件') + if (val.body[0] == 11) { + console.info('surenjun', 'GlobalUdp收到beginExam事件') globalThis.udpEvent.sendBeginExam(val.body[1]) } - if(val.body[0] == 12){ - console.info('surenjun','GlobalUdp收到endExam事件') + if (val.body[0] == 12) { + console.info('surenjun', 'GlobalUdp收到endExam事件') globalThis.udpEvent.sendEndExam(val.body[1]) } - }if (val.id == '36'){ + } + if (val.id == '36') { //获取远程扣分内容 - console.info('surenjun','考车收到远程扣分项目内容,扣分代码:' + val.body[0]) + console.info('surenjun', '考车收到远程扣分项目内容,扣分代码:' + val.body[0]) globalThis.udpEvent.sendKfContent(val.body[0]) } else if (val.id == '46') { let tmpList = [] @@ -217,65 +199,6 @@ export async function getUDP2(context,errorFlag?) { } } return - console.log(` getUDP2 enter`); - getSyncData('IpConfigTable').then(async (result: Array) => { - if (result.length) { - console.log(` getUDP2 has IPConfigTable `); - if (globalThis.udpClient2 && globalThis.udpClient2.closeUdp) { - console.log(` getUDP2 has udclent ,close and rebind `); - globalThis.udpClient2.closeUdp(async () => { - setTimeout(() => { - globalThis.udpClient2.rebindUdp(result[0].udplocalIp, '8800', globalThis.carInfo?.udpAddress, globalThis.carInfo?.messagePort) - globalThis.udpClient2.onError_Callback(()=>{ - getUDP2(true); - if(errorFlag&&globalThis.udpClient2&&globalThis.udpClient2.onMessage_2){ - globalThis.udpClient2.onMessage_2=globalThis.udpClient2.onMessage_2 - } - }) - }, 1000) - }) - } - else { - // 未绑定 - console.log(` getUDP2 has no udclent and bind `); - const udpClient2: UdpClientByCenter = new UdpClientByCenter(result[0].udplocalIp, '8800', globalThis.carInfo?.udpAddress, globalThis.carInfo?.messagePort) - await udpClient2.bindUdp() - await udpClient2.onError_Callback(()=>{ - getUDP2(true); - if(errorFlag&&globalThis.udpClient2&&globalThis.udpClient2.onMessage_2){ - globalThis.udpClient2.onMessage_2=globalThis.udpClient2.onMessage_2 - } - }) - if(!errorFlag){ - await udpClient2.onMessage_2((val) => { - if (val.id == '32') { - globalThis.signNum = val.body[1] - - } else if (val.id == '46') { - let tmpList = [] - const str = globalThis.lsh - for (let i = 0; i < str.length; i++) { - tmpList.push(this.string2Bytes(str.charCodeAt(i), 1 * 8)[0]) - } - const param = { - id: 47, - list: tmpList, - carNo: globalThis.carInfo.carNo, - placeId: globalThis.carInfo.examinationRoomId - } - globalThis.udpClient2.send(param) - } - }) - } - globalThis.udpClient2 = udpClient2 - - } - } else { - globalThis.udpClient2 = {} - globalThis.udpClient2.setMsgCallBack = () => { - } - } - }) } export async function setTopLineUdp() { @@ -283,7 +206,6 @@ export async function setTopLineUdp() { const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/ipConfig.txt'); const config = JSON.parse(data) - // const config = await getSyncData('IpConfigTable'); if (config && config.udplocalIp) { const {udplocalIp,udpOppositeIp,udpOppositeIpPort} = config; const udpClient: UdpClientByCenter = new UdpClientByCenter(udplocalIp, '55509', udpOppositeIp, udpOppositeIpPort) @@ -320,11 +242,13 @@ export async function setJudgeUdp() { globalThis.carInfo?.udpAddress, globalThis.carInfo?.hintPort ) - console.info('surenjun hintPort=> ',globalThis.carInfo?.hintPort) + console.info('surenjun hintPort=> ', globalThis.carInfo?.hintPort) - await udpClientbyCenter.onError_Callback(()=>{}) - await udpClientbyCenter.bindUdp() - await udpClientbyCenter.onMessage_2((val) => {}) + udpClientbyCenter.onError_Callback(() => { + }) + udpClientbyCenter.bindUdp() + udpClientbyCenter.onMessage_2((val) => { + }) //远程监听开始考试、结束考试、扣分指令 @@ -343,7 +267,7 @@ export async function setJudgeUdp() { }, //申请远程扣分查询 - askKf(directives){ + askKf(directives) { globalThis.udpClient2.sendMsgExt({ id: 35, list: [directives], @@ -354,10 +278,10 @@ export async function setJudgeUdp() { }, //确定远程扣分 - confirmKf(directives,code){ + confirmKf(directives, code) { globalThis.udpClient2.sendMsgExt({ id: 37, - list: Array2Byte([string2Bytes(directives,8),string2Bytes(code,8)]), + list: Array2Byte([string2Bytes(directives, 8), string2Bytes(code, 8)]), carNo: globalThis.carInfo.carNo, placeId: globalThis.carInfo.examinationRoomId }) @@ -376,4 +300,4 @@ export async function setJudgeUdp() { } } -// globalThis.udpClient.bindUdp() + diff --git a/entry/src/main/ets/common/utils/UdpClient.ts b/entry/src/main/ets/common/utils/UdpClient.ts deleted file mode 100644 index 0fe7d78f..00000000 --- a/entry/src/main/ets/common/utils/UdpClient.ts +++ /dev/null @@ -1,237 +0,0 @@ -/* - * Copyright (c) 2022 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import socket from '@ohos.net.socket'; -import { Array2Byte } from '../utils/tools' -import {getChuankouFn} from '../../common/service/indexService' -import {getUDP} from './GlobalUdp' -const TAG = 'socketTag[PLC.UdpClient]' -import prompt from '@ohos.prompt' - -import hilog from '@ohos.hilog'; -let num=0 -export default class UdpClient { - private localIp: string = '' - private localIpPort: string = '' - private oppositeIp: string = '' - private oppositeIpPort: string = '' - - private udp: any = null - // private stashFn:StashFuncotionon - - constructor(udplocalIp: string, udplocalIpPort: string, udpOppositeIp: string, udpOppositeIpPort: string) { - this.localIp = udplocalIp - this.oppositeIp = udpOppositeIp - this.localIpPort = udplocalIpPort - this.oppositeIpPort = udpOppositeIpPort - getChuankouFn() - console.log(TAG,'newUdp') - // this.stashFn=()=>{} - this.udp = socket.constructUDPSocketInstance(); - } - - rebindUdp(localIp: string, localIpPort: string, oppositeIp: string, oppositeIpPort: string) { - console.log(TAG,'rebindUdp',this.localIp,this.localIpPort) - - this.localIp = localIp - this.oppositeIp = oppositeIp - this.localIpPort = localIpPort - this.oppositeIpPort = oppositeIpPort - let promise = this.udp.bind({ - address: this.localIp, port: parseInt(this.localIpPort), family: 1 - }); - promise.then(() => { - globalThis.closeUDPSocket=false - - console.log(`${TAG},udpCLient udp rebind success`); - }).catch(err => { - globalThis.closeUDPSocket=true - console.log(`${TAG},udpCLient udp rebind failed:${JSON.stringify(err)}`); - }); - } - - bindUdp() { - console.log(TAG,'udpbind',this.localIp,this.localIpPort) - let promise = this.udp.bind({ - // address: '192.168.7.170', port: 20122, family: 1 - // address: '192.168.7.170', port: 31013, family: 1 - address: this.localIp, port: parseInt(this.localIpPort), family: 1 - }); - promise.then(() => { - globalThis.closeUDPSocket=false - console.log(`${TAG}udpCLient udp bind success`); - }).catch(err => { - globalThis.closeUDPSocket=true - console.log(`${TAG}udpCLient udp bind failed:${JSON.stringify(err)}`); - }); - } - setMsgCallBack(callback){ - // this.stashFn=callback?callback:()=>{} - } - sendMsg(msg) { - console.log(TAG,'UdpSend1111',this.oppositeIp,this.oppositeIpPort) - this.udp.getState((err, data) => { - if (err) { - - console.log('getState fail'); - return; - } else { - 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}udpCLient udp send success:oppositeIp${this.oppositeIp},oppositeIpPort:${this.oppositeIpPort},localIp:${this.localIp},localIpPort,${this.localIpPort}`); - }).catch(err => { - console.log(`${TAG}udpCLient udp send fail:oppositeIp${this.oppositeIp},oppositeIpPort:${this.oppositeIpPort},localIp:${this.localIp},localIpPort,${this.localIpPort}`); - }); - } - console.log('getState success:' + JSON.stringify(data)); - }) - - } - onError(callback?){ - this.udp.on('error',async err => { - globalThis.closeUDPSocket=true - console.log(TAG,'udpError',JSON.stringify(err)) - await this.bindUdp() - await this.sendMsg('111') - await this.onMessage(callback) - // callback&&callback() - // this.closeUdp(()=>{ - // this.bindUdp() - // }) - }); - } - - onMessage(callback?) { - console.info(TAG, '注册udp message监听事件') - this.udp.on('message', value => { - console.log(TAG,'udponmessage') - // 收到的是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}`); - let strachArr = str.split(',') - if (strachArr[0] != '#DN_GD') { - return - } - console.log(`${TAG} udp222 on message array buffer:${str}`); - - strachArr[28]=globalThis.chuankoMsg||'0' - // this.stashFn(str) - const newArr=JSON.parse(JSON.stringify(strachArr)) - // this.stashFn=()=>{} - callback&&callback(newArr.toString()) - - } else { - callback&&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(async () => { - //程序断开 - lightLineUdp?.send(globalThis.plcUdpError ? arrRedBuffer : (isJudge ? arrGreenBugger : arrBlueBuffer)); - if (globalThis.plcUdpError) { - // num++ - console.log(TAG,'plc udp信号丢失') - // if(num==3){ - getUDP(globalThis.context,true) - // await this.bindUdp() - // await this.sendMsg('111') - // await this.onMessage(callback) - // num=0 - // } - prompt.showToast({ - message: 'plc udp信号丢失', - duration: 2000 - }); - } - globalThis.plcUdpError = true; - }, 2000) - }, 3000) - } - - closeUdp(callback) { - this.udp.close(err => { - hilog.info(0x0000,TAG, 'udpCLient', 'close'); - - if (err) { - hilog.info(0x0000,TAG, 'udpCLient', 'closeonerror'); - globalThis.closeUDPSocket=false - - } else { - globalThis.closeUDPSocket=true - - 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'); - // }); - } - }); - } - - -} -interface StashFunction { - (str: string) -} \ No newline at end of file diff --git a/entry/src/main/ets/common/utils/UdpClientByCenter.ts b/entry/src/main/ets/common/utils/UdpClientByCenter.ts index d1891209..c6eecea0 100644 --- a/entry/src/main/ets/common/utils/UdpClientByCenter.ts +++ b/entry/src/main/ets/common/utils/UdpClientByCenter.ts @@ -20,12 +20,10 @@ import FileUtil from '../../common/utils/File' import { fillZero, string2Bytes } from '../utils/tools' const TAG = '[UdpDemo.UdpClient]' -import hilog from '@ohos.hilog'; import prompt from '@ohos.prompt' import promptAction from '@ohos.promptAction'; import { getUDP } from './GlobalUdp'; import { dateFormat } from '../utils/tools' -import { getSyncData } from '../service/initable'; export default class UdpClientByCenter { @@ -43,15 +41,16 @@ export default class UdpClientByCenter { private context private folderPath private stashFn: StashFunction - private errorStep: number=0 + private errorStep: number = 0 private interval private headLenth: number = 9 //消息头长度 private isWorking: Boolean = false private plcUdpError = false; private initParam - private onMessage_1Callback:Function = ()=>{} - public currentValue:string = '' + private onMessage_1Callback: Function = () => { + } + public currentValue: string = '' constructor(udplocalIp: string, udplocalIpPort: string, udpOppositeIp: string, udpOppositeIpPort: string) { this.localIp = udplocalIp @@ -68,8 +67,7 @@ export default class UdpClientByCenter { return this.isWorking } - rebindUdp(localIp: string, localIpPort: string, oppositeIp: string, oppositeIpPort: string) - { + rebindUdp(localIp: string, localIpPort: string, oppositeIp: string, oppositeIpPort: string) { this.localIp = localIp this.oppositeIp = oppositeIp this.localIpPort = localIpPort @@ -90,10 +88,10 @@ export default class UdpClientByCenter { }).catch(err => { //globalThis.closeHeartSocket=true this.isWorking = false - // this.writeLog({ - // time:dateFormat(new Date()), - // PLC:`${TAG} getUDPudp rebind failed:${JSON.stringify(err)}`, - // }) + // this.writeLog({ + // time:dateFormat(new Date()), + // PLC:`${TAG} getUDPudp rebind failed:${JSON.stringify(err)}`, + // }) console.log(`${TAG} getUDPudp rebind failed:${JSON.stringify(err)}`); }); } @@ -171,15 +169,14 @@ export default class UdpClientByCenter { console.log('getUDPsendHeadMsg exit') } - sendMsg(msg, sendCallback?) - { - if (!this.isWorking ) { + sendMsg(msg, sendCallback?) { + if (!this.isWorking) { // console.log(`${TAG}getUDPudpCLient sendMsg is closed return `); // this.writeLog({ // time:dateFormat(new Date()), // PLC:`${TAG}getUDPudpCLient sendMsg is closed return oppositeIp:${this.oppositeIp},oppositeIpPort:${this.oppositeIpPort},localIp:${this.localIp},localIpPort:${this.localIpPort}`, // }) - if(sendCallback) { + if (sendCallback) { sendCallback() } return; @@ -205,8 +202,8 @@ export default class UdpClientByCenter { // PLC:`${TAG}getUDPudpCLient udp send fail:oppositeIp${this.oppositeIp},oppositeIpPort:${this.oppositeIpPort},localIp:${this.localIp},localIpPort,${this.localIpPort}${JSON.stringify(err)}`, // }) promptAction.showToast({ - message:`${TAG}getUDPudpCLient udp send fail:oppositeIp${this.oppositeIp},oppositeIpPort:${this.oppositeIpPort},localIp:${this.localIp},localIpPort,${this.localIpPort}`, - duration:4000 + message: `${TAG}getUDPudpCLient udp send fail:oppositeIp${this.oppositeIp},oppositeIpPort:${this.oppositeIpPort},localIp:${this.localIp},localIpPort,${this.localIpPort}`, + duration: 4000 }) }); } @@ -243,6 +240,7 @@ export default class UdpClientByCenter { this.stashFn = callback ? callback : () => { } } + //中心udp回执 onMessage_2(callback, type?) { this.udp.on('message', (value, remoteInfo) => { @@ -268,7 +266,6 @@ export default class UdpClientByCenter { }) - // this.interval=setInterval(()=>{ // // },3000) @@ -300,16 +297,16 @@ export default class UdpClientByCenter { //plc onMessage_1(callback?) { this.onMessage_1Callback = callback; - this.udp&&this.udp.on('message', this.message_1Fn); + this.udp && this.udp.on('message', this.message_1Fn); } - closeMessage_1(){ + closeMessage_1() { console.info('surenjun', 'getUDP关闭udp message监听事件') - this.udp.off('message',this.message_1Fn); + this.udp.off('message', this.message_1Fn); console.info('surenjun', 'getUDP关闭udp message监听事件 成功') } - message_1Fn = (value)=>{ + message_1Fn = (value) => { let callback = this.onMessage_1Callback // 收到的是ArrayBuffer 需要进行转换解析 this.plcUdpError = false @@ -336,15 +333,15 @@ export default class UdpClientByCenter { // time:dateFormat(new Date()), // PLC: JSON.stringify(newArr.toString()), // }) - if(strachArr[83]!='4'){ - console.log('差分状态异常',strachArr[83],strachArr[92]) + if (strachArr[83] != '4') { + console.log('差分状态异常', strachArr[83], strachArr[92]) this.writeLog({ - time:dateFormat(new Date()), + time: dateFormat(new Date()), PLC: `${TAG}差分状态异常,${strachArr[83]},${strachArr[92]}`, }) - }else{ - globalThis.dialogOpen=false - this.chafenFlag=0 + } else { + globalThis.dialogOpen = false + this.chafenFlag = 0 } callback && callback(newArr.toString()) this.currentValue = newArr.toString(); @@ -354,15 +351,18 @@ export default class UdpClientByCenter { this.testIfUdpConnetced(callback) } - async writeLog(param){ + + async writeLog(param) { // const fileUtil = new FileUtil(globalThis.context) // fileUtil.editFile(`${this.folderPath}/plcLog.txt`, JSON.stringify(param)+`\n`) } - async initPath(){ + + async initPath() { // const fileUtil = new FileUtil(globalThis.context) // const date=dateFormat(new Date).split(' ')[0] // this.folderPath = await fileUtil.initFolder(`/PLC/${date}`); } + //获取当前UDP信号 getCurrentMessage = () => { return this.currentValue @@ -376,7 +376,7 @@ export default class UdpClientByCenter { const arrRedBuffer = Array2Byte(arrRed).buffer const arrGreenBugger = Array2Byte(arrGreen).buffer let num = 0 - globalThis.dialogOpen=false + globalThis.dialogOpen = false //监听udp是否断开 clearInterval(globalThis.messageTimer) @@ -389,15 +389,14 @@ export default class UdpClientByCenter { if (this.plcUdpError) { num++ this.writeLog({ - time:dateFormat(new Date()), + time: dateFormat(new Date()), PLC: 'plc udp信号丢失', }) - console.log(TAG, 'plc udp信号丢失') if (num == 3) { - getUDP(globalThis.context,true) - globalThis.title='plc udp信号丢失' - globalThis.type='3' - if(!globalThis.dialogOpen){ + getUDP(globalThis.context, true) + globalThis.title = 'plc udp信号丢失' + globalThis.type = '3' + if (!globalThis.dialogOpen) { // AppStorage.SetOrCreate('errorCode', 1); // if(this.errorStep!=1){ // console.log('sys.v_valuesys.v_valuesys.v_value11221') @@ -425,7 +424,6 @@ export default class UdpClientByCenter { } num = 0 } - prompt.showToast({ message: 'plc udp信号丢失', duration: 2000 diff --git a/entry/src/main/ets/pages/Index.ets b/entry/src/main/ets/pages/Index.ets index 8abcbc49..9333f269 100644 --- a/entry/src/main/ets/pages/Index.ets +++ b/entry/src/main/ets/pages/Index.ets @@ -6,7 +6,7 @@ import { getCurrentTime, string2Bytes } from '../common/utils/tools'; import { FileHelper } from '../common/service/FileHelper'; import { getEsCarModel, getSyncData, } from '../common/service/initable'; import FileUtil from '../common/utils/File'; -import { getUDP, getUDP2 } from '../common/utils/GlobalUdp'; +import { getUDP, getUDP2, getUDPGps2 } from '../common/utils/GlobalUdp'; import { initJudgeUdp } from '../common/utils/UdpJudge'; import { judgeConfig } from './judgeSDK/utils/judgeConfig'; import { getTCP } from '../common/utils/GlobalTcp'; @@ -580,6 +580,8 @@ struct Index { // deleteAllFIleLog(GlobalConfig.comoonfileWriteAddress + '/PLC/') //设置plc udp 同步requesthost await getUDP(this.context, false) + // A2牵引车2号导航仪 + await getUDPGps2(this.context, false) this.loading = false await getDeviceInfo(this.context) @@ -611,15 +613,6 @@ struct Index { } }, 1000) this.createAlbum() - // clearInterval(globalThis.demo) - // globalThis.demo= setInterval(()=>{ - // const str= {"carId":"1062","examinationRoomId":"2","videoVersion":"1.0","judgeVersion":"2023.09.30.1","shellVersion":"2023.12.13.01","host":"http://172.37.55.191:8082"} - // initialization(str) - // },10000) - //下载模型 - // await this.getModel() - // const arr = [0x55, 0xaa, 0x01, 0x00, 0x02, 0x01, 0x03, 0x00] - // globalThis.udpClientByTopLine.sendMsg(Array2Byte(arr).buffer) } async getModel() { diff --git a/entry/src/main/ets/pages/compontents/SignDisplayCom.ets b/entry/src/main/ets/pages/compontents/SignDisplayCom.ets index 60dbe634..d7b0fb72 100644 --- a/entry/src/main/ets/pages/compontents/SignDisplayCom.ets +++ b/entry/src/main/ets/pages/compontents/SignDisplayCom.ets @@ -1,11 +1,7 @@ import router from '@ohos.router'; -import UdpClient from '../../common/utils/UdpClient'; -import FileLog from '../judgeSDK/utils/fileLog'; import RealTime from '../compontents/judge/RealTime'; import { GPSData, SignalData } from '../../mock'; import { SignalDataType } from '../../model'; -import FileUtil from '../../common/utils/File' -import { GlobalConfig } from '../../config/index' @Component export default struct SignDisplayCom { @State showBack: boolean = false @@ -23,10 +19,6 @@ export default struct SignDisplayCom { @State interval: number = 0 @State @Watch('outClick') outFlag: boolean = false; @State url: string = '' - private timer = null - private udpClient: UdpClient = null - private FileLog: FileLog - private vocObj = null; constructor() { super() diff --git a/entry/src/main/ets/pages/compontents/SignDisplayCom2.ets b/entry/src/main/ets/pages/compontents/SignDisplayCom2.ets index 4e766772..213fcc12 100644 --- a/entry/src/main/ets/pages/compontents/SignDisplayCom2.ets +++ b/entry/src/main/ets/pages/compontents/SignDisplayCom2.ets @@ -1,6 +1,4 @@ import router from '@ohos.router'; -import UdpClient from '../../common/utils/UdpClient'; -import FileLog from '../judgeSDK/utils/fileLog'; import RealTime from '../compontents/judge/RealTime'; import { GPSData, SignalData } from '../../mock'; import { SignalDataType } from '../../model'; @@ -22,10 +20,6 @@ export default struct SignDisplayCom { @State interval: number = 0 @State @Watch('outClick') outFlag: boolean = false; @State url: string = '' - private timer = null - private udpClient: UdpClient = null - private FileLog: FileLog - private vocObj = null; constructor() { super() diff --git a/entry/src/main/ets/pages/judgeSDK/judge.ts b/entry/src/main/ets/pages/judgeSDK/judge.ts index bb1817f5..5f93b685 100644 --- a/entry/src/main/ets/pages/judgeSDK/judge.ts +++ b/entry/src/main/ets/pages/judgeSDK/judge.ts @@ -232,14 +232,14 @@ export default class Judge { } } // 处理udp plc信号 - handleUdp = async (msg) => { + handleUdp = async (msg, gps2) => { console.info('plc信号', msg) const {fileLog,getPlcData,usbService,isUdpEnd,isExamEnd,judgeUI} = this const stachArr = msg.split(',') if (stachArr[0] != '#DN_GD' || isUdpEnd) { return } - const plcData = await getPlcData(msg); + const plcData = await getPlcData(msg, gps2); // 4.过程数据 await fileLog.setExamJudgeData(plcData) //检测到有无锡所设备接入,需要发送特定的数据,供检测 @@ -461,11 +461,11 @@ export default class Judge { private testKmItems: any private plcData: any // 获取plc数据 - getPlcData = async (plc: string) => { + getPlcData = async (plc: string, gps2: string) => { const {fileLog,mndgStr,rmndg} = this; await fileLog.setPlcProgressData(plc) //plc字符串转化成评判初始化数据 - const tempData = await plcStrToJson(plc); + const tempData = await plcStrToJson(plc, gps2); //模拟灯光回放时刻 tempData.sensor.rmndg = rmndg; //模拟灯灯光灯光项目 @@ -1856,10 +1856,14 @@ export default class Judge { return } // 处理实时udp里的plc信号 - // globalThis.udpClient.closeMessage_1(); + let gps2 = "" + globalThis.udpClientGps2?.onMessage_1(msg => { + console.info('socketTag[PLC.UdpClient]', '收到udp gps2回调数据') + gps2 = msg + }) globalThis.udpClient.onMessage_1(async (msg) => { console.info('socketTag[PLC.UdpClient]', '收到udp回调数据') - handleUdp(msg) + handleUdp(msg, gps2) const udpIndex = globalThis.udpIndex; if (udpIndex % 5 === 0) { handDistance(); diff --git a/entry/src/main/ets/pages/judgeSDK/utils/judgeCommon.ts b/entry/src/main/ets/pages/judgeSDK/utils/judgeCommon.ts index 34210095..477bc66f 100644 --- a/entry/src/main/ets/pages/judgeSDK/utils/judgeCommon.ts +++ b/entry/src/main/ets/pages/judgeSDK/utils/judgeCommon.ts @@ -458,16 +458,22 @@ export function promptWxCode( } // 获取plc数据 -export const plcStrToJson = async (plc: string) => { - +export const plcStrToJson = async (plc: string, gps2: string = "") => { const p = plc.split(',').map((val, key) => { if (key !== 27 && key !== 92) { - //@ts-ignore - return val * 1 + return Number(val) } else { return val } }); + const p2 = gps2.split(',').map((val, key) => { + if (key !== 27 && key !== 92) { + return Number(val) + } else { + return val + } + }); + let data: any = testRealExam; const time = await systemTime.getCurrentTime() const tempData = { @@ -544,27 +550,27 @@ export const plcStrToJson = async (plc: string) => { // gps2:data.gps, gps2: { //办卡类型 定位差分状态 - bklx: p[56], - dwzt: p[83], + bklx: p2[56], + dwzt: p2[83], //@ts-ignore 角度差分状态 - jdzt: p[92].split('-')[0] * 1, + jdzt: p2[92].split('-')[0] * 1, //gps数据 //gps时间 经度 纬度 航向角 俯仰角 海拔高 高度差 速度 sj: time, - jd: p[96], - wd: p[95], - hxj: p[90], - fyj: p[91], - hbg: p[85], - gdc: p[86], - sd: p[97], + jd: p2[96], + wd: p2[95], + hxj: p2[90], + fyj: p2[91], + hbg: p2[85], + gdc: p2[86], + sd: p2[97], //龄期 经度因子 纬度因子 定位搜星数 - age: p[87], - jdyz: p[89], - wdyz: p[88], - dwsxs: p[84] || 0, + age: p2[87], + jdyz: p2[89], + wdyz: p2[88], + dwsxs: p2[84] || 0, //@ts-ignore 角度搜星数 - jdsxs: p[92].split('-')[1] * 1 || 0 + jdsxs: p2[92].split('-')[1] * 1 || 0 }, vision: data.vision, radar: data.radar,