From 22acd782b9ea77c0c1e33acb11158f0cd6d7af81 Mon Sep 17 00:00:00 2001 From: lvyuankang <1344032923@qq.com> Date: Wed, 3 Jul 2024 16:21:56 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A8=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/src/main/ets/common/service/initable.ts | 7 +- entry/src/main/ets/common/utils/GlobalTcp.ts | 113 ++++++------------ entry/src/main/ets/common/utils/UdpClient.ts | 14 +-- .../ets/common/utils/UdpClientByCenter.ts | 10 ++ entry/src/main/ets/common/utils/request.ts | 6 +- entry/src/main/ets/pages/Index.ets | 20 ++-- 6 files changed, 73 insertions(+), 97 deletions(-) diff --git a/entry/src/main/ets/common/service/initable.ts b/entry/src/main/ets/common/service/initable.ts index 937f8925..76815dc8 100644 --- a/entry/src/main/ets/common/service/initable.ts +++ b/entry/src/main/ets/common/service/initable.ts @@ -62,6 +62,8 @@ const centerToMap={ 'SystemParm':MA_SYSTEMPARM, 'mapCollectList':MA_MAP_COLLECT, 'mapCollectshapeList':MA_MAP_COLLECT_SHAPE, + 'Map_Collect': MA_MAP_COLLECT, + 'Map_Collect_Shape': MA_MAP_COLLECT_SHAPE, 'Map_ItemClass':MA_MAP_ITEMCLASS, 'Map_Point':MA_MAP_POINT, 'Map_Point_Item':MA_MAP_POINT_ITEM, @@ -400,8 +402,8 @@ function setSyncCenterSqlData(key,res,param){ 'ItemInfo':'MA_ITEMINFO', 'MarkRule':'MA_MARKRULE', 'SystemParm':'MA_SYSTEMPARM', - 'MA_MAP_COLLECT':'MA_MAP_COLLECT', - 'MA_MAP_COLLECT_SHAPE':'MA_MAP_COLLECT_SHAPE', + 'Map_Collect': 'MA_MAP_COLLECT', + 'Map_Collect_Shape': 'MA_MAP_COLLECT_SHAPE', 'Map_ItemClass':'MA_MAP_ITEMCLASS', 'Map_Point':'MA_MAP_POINT', 'Map_Point_Item':'MA_MAP_POINT_ITEM', @@ -418,7 +420,6 @@ function setSyncCenterSqlData(key,res,param){ } // const accountTable = new AccountTable(() => { // }, centerToMap[key],param.context); - console.log('kkkkkkkkk',key) let arrList if(res.initializationRsp.body[key].record instanceof Array){ arrList =res.initializationRsp.body[key].record diff --git a/entry/src/main/ets/common/utils/GlobalTcp.ts b/entry/src/main/ets/common/utils/GlobalTcp.ts index e8239e87..fb7800fa 100644 --- a/entry/src/main/ets/common/utils/GlobalTcp.ts +++ b/entry/src/main/ets/common/utils/GlobalTcp.ts @@ -1,105 +1,60 @@ import TcpClient from './TcpClient'; -import { getSyncData } from '../service/initable' +import { getSyncData} from '../service/initable' import hilog from '@ohos.hilog'; +export async function getTCP() { -export async function getTCP(flag?) { - - 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 () => { - if(!flag){ - return - } - setTimeout(async () => { - await globalThis.TcpClient.rebindTcp(result[0].tcplocalIp, result[0].tcplocalIpPort, result[0].tcpOppositeIp, result[0].tcpOppositePort) + 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(globalThis.carInfo?.carNo || '402') //1002 - await globalThis.TcpClient.onMessage((val) => { - hilog.info(0x0000, 'testTag', "valvalval1" + JSON.stringify(val)); - - // console.log('valvalval',val) - setTimeout(() => { - globalThis.TcpClient.sendMsg(globalThis.carInfo?.carNo || '402') //1002 - if (val && globalThis.udpClient && globalThis.udpClient.sendMsg) { + await globalThis.TcpClient.sendMsg('1002')//1002 + globalThis.TcpClient.onError() + await globalThis.TcpClient.onMessage((val)=>{ + setTimeout(()=>{ + globalThis.TcpClient.sendMsg('1002')//1002 + if(val&&!globalThis.closeUDPSocket){ // const msg=val.substring(5,val.length-1) + console.log('socketTag[PLC.UdpClient]closeUDPSocket',globalThis.closeUDPSocket) globalThis.udpClient?.sendMsg(val) } - }, 1000) + },1000) }) - globalThis.TcpClient.onError(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(globalThis.carInfo?.carNo || '402') //1002 - await globalThis.TcpClient.onMessage((val) => { - hilog.info(0x0000, 'testTag', "valvalval1" + JSON.stringify(val)); - - // console.log('valvalval',val) - setTimeout(() => { - globalThis.TcpClient.sendMsg(globalThis.carInfo?.carNo || '402') //1002 - if (val && globalThis.udpClient && globalThis.udpClient.sendMsg) { - // const msg=val.substring(5,val.length-1) - globalThis.udpClient?.sendMsg(val) - } - }, 1000) - - }) - }) - },1000) + },2000) }) - } - else { - // prompt.showToast({ - // message:'初始化localIp'+ result[0].localIp+ result[0].localIpPort+'oppositeIp'+result[0].oppositeIp+result[0].oppositeIpPort, - // duration: 1000 - // }); - const tcpClient: TcpClient = new TcpClient(result[0].tcplocalIp, result[0].tcplocalIpPort, result[0].tcpOppositeIp, result[0].tcpOppositePort) + }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(globalThis.carInfo?.carNo || '402') //1002 - - await globalThis.TcpClient.onMessage((val) => { + await globalThis.TcpClient.sendMsg('1002')//1002 + globalThis.TcpClient.onError() + await globalThis.TcpClient.onMessage((val)=>{ hilog.info(0x0000, 'testTag', "valvalval2" + JSON.stringify(val)); - setTimeout(() => { - globalThis.TcpClient.sendMsg(globalThis.carInfo?.carNo || '402') //1002 - if (val && globalThis.udpClient && globalThis.udpClient.sendMsg) { + setTimeout(()=>{ + globalThis.TcpClient.sendMsg('1002')//1002 + if(val&&!globalThis.closeUDPSocket){ // const msg=val.substring(5,val.length-1) + console.log('socketTag[PLC.UdpClient]closeUDPSocket',globalThis.closeUDPSocket) + globalThis.udpClient?.sendMsg(val) } - }, 1000) + },1000) }) - globalThis.TcpClient.onError(async () => { - 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(globalThis.carInfo?.carNo || '402') //1002 - - await globalThis.TcpClient.onMessage((val) => { - hilog.info(0x0000, 'testTag', "valvalval2" + JSON.stringify(val)); - setTimeout(() => { - globalThis.TcpClient.sendMsg(globalThis.carInfo?.carNo || '402') //1002 - if (val && globalThis.udpClient && globalThis.udpClient.sendMsg) { - // const msg=val.substring(5,val.length-1) - 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 = () => { - } + }else{ + globalThis.TcpClient={} + globalThis.TcpClient.onMessage=()=>{} } }) } diff --git a/entry/src/main/ets/common/utils/UdpClient.ts b/entry/src/main/ets/common/utils/UdpClient.ts index d0b4257b..43cc829b 100644 --- a/entry/src/main/ets/common/utils/UdpClient.ts +++ b/entry/src/main/ets/common/utils/UdpClient.ts @@ -170,12 +170,12 @@ export default class UdpClient { if (globalThis.plcUdpError) { num++ console.log(TAG,'plc udp信号丢失') - // if(num==2){ - // await this.bindUdp() - // await this.sendMsg('111') - // await this.onMessage(callback) - // num=0 - // } + if(num==3){ + await this.bindUdp() + await this.sendMsg('111') + await this.onMessage(callback) + num=0 + } prompt.showToast({ message: 'plc udp信号丢失', duration: 2000 @@ -187,7 +187,7 @@ export default class UdpClient { } closeUdp(callback) { - + globalThis.closeUDPSocket=true this.udp.close(err => { hilog.info(0x0000,TAG, 'udpCLient', 'close'); diff --git a/entry/src/main/ets/common/utils/UdpClientByCenter.ts b/entry/src/main/ets/common/utils/UdpClientByCenter.ts index 27074376..c1f062db 100644 --- a/entry/src/main/ets/common/utils/UdpClientByCenter.ts +++ b/entry/src/main/ets/common/utils/UdpClientByCenter.ts @@ -151,6 +151,15 @@ export default class UdpClientByCenter { console.log(`${TAG} udpLine send fail:${JSON.stringify(err)}`); }); } + onError(callback?){ + this.udp.on('error',async err => { + callback&&callback() + // callback&&callback() + // this.closeUdp(()=>{ + // this.bindUdp() + // }) + }); + } setMsgCallBack(callback){ this.stashFn=callback?callback:()=>{} } @@ -205,6 +214,7 @@ export default class UdpClientByCenter { } closeUdp(callback) { + globalThis.closeHeartSocket=true this.udp.close(err=>{ if(err){ diff --git a/entry/src/main/ets/common/utils/request.ts b/entry/src/main/ets/common/utils/request.ts index 042454d9..bb95ff22 100644 --- a/entry/src/main/ets/common/utils/request.ts +++ b/entry/src/main/ets/common/utils/request.ts @@ -86,7 +86,11 @@ export default async function request(req: any) { }); } } catch (e) { - const code = e.code; + if(!e||!(e?.message)){ + return false + } + const code = e?.code; + prompt.showToast({ message: e?.message, duration: 5000 diff --git a/entry/src/main/ets/pages/Index.ets b/entry/src/main/ets/pages/Index.ets index 6d05819f..c755bbdd 100644 --- a/entry/src/main/ets/pages/Index.ets +++ b/entry/src/main/ets/pages/Index.ets @@ -14,6 +14,7 @@ import { getTCP } from '../common/utils/GlobalTcp'; import { getliushuiNum, setliushuiNum } from '../common/service/indexService'; import abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl'; import worker, { MessageEvents } from '@ohos.worker'; +import promptAction from '@ohos.promptAction' @Entry @Component @@ -28,7 +29,7 @@ struct Index { @State ratio: number = 1700 / 960 @State loading: boolean = true @State fd: number = -1; - @State param: VideoConfig = VideoConfigData + @State num: number = 0; fileHelper = null; private fileUtil: FileUtil private interval = null; @@ -67,7 +68,7 @@ struct Index { ], }) .then(data => { - if(data.index==0){ + if (data.index == 0) { router.back() } }) @@ -93,7 +94,7 @@ struct Index { this.angle = 360 }, 1000) this.angle = 0 - if(!globalThis.timeInfo){ + if (!globalThis.timeInfo) { promptAction.showToast({ message: `网络连接失败`, duration: 3000 @@ -235,7 +236,7 @@ struct Index { url: 'pages/ExaminerLogin', }, router.RouterMode.Single) } - this.loading=false + this.loading = false } } @@ -257,7 +258,7 @@ struct Index { placeId: globalThis.carInfo.examinationRoomId } // globalThis.udpClient2.initHeartSendMsg(param,this.context) - if(!globalThis.closeHeartSocket){ + if (!globalThis.closeHeartSocket) { globalThis.udpClient2.sendMsg(param, this.context) } } @@ -268,11 +269,15 @@ struct Index { this.userAuth(); getUDP() getUDP2() + this.num=0 clearInterval(this.interval) this.interval = setInterval(() => { + this.num++ setliushuiNum(this.context) getliushuiNum(this.context) - this.heartMsg() + if(this.num>=3){ + this.heartMsg() + } }, 1000) // takePhotoFn(this.context) @@ -295,8 +300,9 @@ struct Index { this.fileHelper.createAlbum('pz'); } + userAuth() { - const permissions: Array = ["ohos.permission.SET_TIME","ohos.permission.READ_IMAGEVIDEO", "ohos.permission.DISTRIBUTED_DATASYNC" ,'ohos.permission.CONNECTIVITY_INTERNAL','ohos.permission.CAMERA','ohos.permission.READ_MEDIA','ohos.permission.WRITE_MEDIA','ohos.permission.FILE_ACCESS_MANAGER']; + const permissions: Array = ["ohos.permission.SET_TIME", "ohos.permission.READ_IMAGEVIDEO", "ohos.permission.DISTRIBUTED_DATASYNC", 'ohos.permission.CONNECTIVITY_INTERNAL', 'ohos.permission.CAMERA', 'ohos.permission.READ_MEDIA', 'ohos.permission.WRITE_MEDIA', 'ohos.permission.FILE_ACCESS_MANAGER']; let context = this.context; let atManager = abilityAccessCtrl.createAtManager(); // requestPermissionsFromUser会判断权限的授权状态来决定是否唤起弹窗