From b073663570756cd1659319f6e5d0e3716e3447c5 Mon Sep 17 00:00:00 2001 From: lixiao <932184220@qq.com> Date: Mon, 7 Apr 2025 14:46:26 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=84=E5=88=A4udp=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/ets/entryability/EntryAbility.ets | 14 ++++-- entry/src/main/ets/pages/Index.ets | 11 +++-- entry/src/main/ets/pages/TerminalInfos.ets | 3 -- entry/src/main/ets/utils/TcpUtils.ets | 4 +- entry/src/main/ets/utils/UdpUtils.ets | 49 +++++++++++++++++-- .../ets/utils/business/DifferentialSignal.ets | 2 +- 6 files changed, 62 insertions(+), 21 deletions(-) diff --git a/entry/src/main/ets/entryability/EntryAbility.ets b/entry/src/main/ets/entryability/EntryAbility.ets index 20a1ec9c..7126995f 100644 --- a/entry/src/main/ets/entryability/EntryAbility.ets +++ b/entry/src/main/ets/entryability/EntryAbility.ets @@ -4,11 +4,13 @@ import window from '@ohos.window'; import { GlobalConfig } from '../config/global'; import Want from '@ohos.app.ability.Want'; import AbilityConstant from '@ohos.app.ability.AbilityConstant'; -import { BaseInfoType, CarInfoType, ExaminerInfoType } from '../model'; +import { BaseInfoType, CarInfoType, EnvironmentConfigurationType, ExaminerInfoType } from '../model'; import { tcpUtil } from '../utils/TcpRequest'; import DB from '../utils/DbSql'; import { DrivingDataStorage } from '../utils/business/DrivingDataStorage'; import { InitTable } from '../utils/table/Operation'; +import FileUtils from '../utils/FileUtils'; +import { lightUDPClient } from '../utils/UdpUtils'; export default class EntryAbility extends UIAbility { async onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) { @@ -17,23 +19,27 @@ export default class EntryAbility extends UIAbility { await DB.init(this.context) await InitTable() console.log("sql first success") + let fileUtil = new FileUtils(this.context) + const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/ipConfig.txt'); + if (data !== '' && data !== undefined) { + const result: EnvironmentConfigurationType = JSON.parse(data) + AppStorage.setOrCreate("EnvironmentConfiguration", result) + } } catch (e) { console.error('sql first error', e) } - hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); } onDestroy() { const arrClose = [0x55, 0xaa, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00] // TODO UDP缺失 - // globalThis?.lightLineUdp?.send(arrCloseBuffer); + lightUDPClient.sendMsg(new Uint8Array(arrClose).buffer) DrivingDataStorage.close() hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy'); } async onWindowStageCreate(windowStage: window.WindowStage) { - // this.context // Main window is created, set main page for this ability hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); await tcpUtil.init() diff --git a/entry/src/main/ets/pages/Index.ets b/entry/src/main/ets/pages/Index.ets index 5ad43fe9..f87d5d76 100644 --- a/entry/src/main/ets/pages/Index.ets +++ b/entry/src/main/ets/pages/Index.ets @@ -24,6 +24,7 @@ import { ObtainSignalData } from '../utils/business/ObtainSignalData'; import { CentralHeartbeat } from '../utils/business/CentralHeartbeat'; import { DrivingDataStorage } from '../utils/business/DrivingDataStorage'; import { initJudgeUdp } from '../utils/business/UdpJudge'; +import { centerUDPClient, judgeUDPClient, lightUDPClient, objUDPClient } from '../utils/UdpUtils'; @Entry @@ -499,7 +500,11 @@ struct Index { async initParams() { //设置plc udp 同步requesthost - // await getUDP(this.context, false) + objUDPClient.init() + centerUDPClient.init() + lightUDPClient.init() + judgeUDPClient.init() + ObtainSignalData.init(); CentralHeartbeat.init(); CentralHeartbeat.sendHeartData() @@ -511,11 +516,9 @@ struct Index { this.loading = false await GetDeviceInfo(this.context) await GetCarInfo() - // await getUDP2(this.context, false) // getTCP() this.carInfo = AppStorage.get('carInfo') this.deviceId = this.carInfo.carNo - // await setCurrentTime(); await SetCurrentTime() this.timeInfo = AppStorage.get('timeInfo') DrivingDataStorage.init(this.context) @@ -529,9 +532,7 @@ struct Index { clearInterval(this.interval) this.interval = setInterval(() => { this.num++ - // setliushuiNum() SetSerialNumber() - // getliushuiNum(this.context) if (this.num >= 3) { this.heartMsg() } diff --git a/entry/src/main/ets/pages/TerminalInfos.ets b/entry/src/main/ets/pages/TerminalInfos.ets index 9d9dbd85..4fc83b5f 100644 --- a/entry/src/main/ets/pages/TerminalInfos.ets +++ b/entry/src/main/ets/pages/TerminalInfos.ets @@ -150,9 +150,6 @@ struct Index { this.inputTextList1[10] = result.udplocalIpPort this.inputTextList1[7] = result.udpOppositeIp this.inputTextList1[8] = result.udpOppositeIpPort - - // this.inputTextList1[0]=result[0].tcplocalIp - // this.inputTextList1[13]=result[0].tcplocalIpPort this.inputTextList1[0] = result.tcpOppositeIp this.inputTextList1[1] = result.tcpOppositePort this.inputTextList1[5] = result.gateway diff --git a/entry/src/main/ets/utils/TcpUtils.ets b/entry/src/main/ets/utils/TcpUtils.ets index 1409f022..ba4dc988 100644 --- a/entry/src/main/ets/utils/TcpUtils.ets +++ b/entry/src/main/ets/utils/TcpUtils.ets @@ -65,7 +65,7 @@ export default class TcpClient { return this.tcp?.close() } - onMessage(callback: Function) { + onMsg(callback: Function) { this.events.push(callback) } @@ -86,5 +86,3 @@ export default class TcpClient { this.events = this.events.filter(cb => cb !== callback) } } - -// export const tcpClient = new TcpClient() \ No newline at end of file diff --git a/entry/src/main/ets/utils/UdpUtils.ets b/entry/src/main/ets/utils/UdpUtils.ets index ee153412..66671af2 100644 --- a/entry/src/main/ets/utils/UdpUtils.ets +++ b/entry/src/main/ets/utils/UdpUtils.ets @@ -127,6 +127,16 @@ export default class UdpClient { // 获取后置机信号 class ObjUdpClient extends UdpClient { + private static instance: ObjUdpClient + + constructor() { + super() + if (!ObjUdpClient.instance) { + ObjUdpClient.instance = this + } + return ObjUdpClient.instance + } + async init(): Promise { return new Promise((resolve, reject) => { try { @@ -147,8 +157,18 @@ class ObjUdpClient extends UdpClient { } } -// 给中心发送GPS消息 +// 中心 class CenterUDPClient extends UdpClient { + private static instance: CenterUDPClient + + constructor() { + super() + if (!CenterUDPClient.instance) { + CenterUDPClient.instance = this + } + return CenterUDPClient.instance + } + async init(): Promise { return new Promise((resolve, reject) => { try { @@ -170,6 +190,16 @@ class CenterUDPClient extends UdpClient { // 顶灯 class LightUDPClient extends UdpClient { + private static instance: LightUDPClient + + constructor() { + super() + if (!LightUDPClient.instance) { + LightUDPClient.instance = this + } + return LightUDPClient.instance + } + async init(): Promise { return new Promise((resolve, reject) => { try { @@ -191,9 +221,18 @@ class LightUDPClient extends UdpClient { } // 评判udp -class JudgeUdp extends UdpClient { +class JudgeUdpClient extends UdpClient { private udpIndex = 0; private currentUdpIndex = 0; + private static instance: JudgeUdpClient + + constructor() { + super() + if (!JudgeUdpClient.instance) { + JudgeUdpClient.instance = this + } + return JudgeUdpClient.instance + } async init(): Promise { return new Promise((resolve, reject) => { @@ -257,11 +296,11 @@ class JudgeUdp extends UdpClient { // obj export const objUDPClient = new ObjUdpClient() -// 中心GPS +// 中心 export const centerUDPClient = new CenterUDPClient() -// 顶灯 +// 灯光 export const lightUDPClient = new LightUDPClient() // 评判 -export const judgeUDPClient = new JudgeUdp() +export const judgeUDPClient = new JudgeUdpClient() diff --git a/entry/src/main/ets/utils/business/DifferentialSignal.ets b/entry/src/main/ets/utils/business/DifferentialSignal.ets index 2fc2fc21..64cfeddd 100644 --- a/entry/src/main/ets/utils/business/DifferentialSignal.ets +++ b/entry/src/main/ets/utils/business/DifferentialSignal.ets @@ -29,7 +29,7 @@ class differentialSignal { // 获取消息 getData(callback: (data: ArrayBuffer) => void) { - this.differentialSignalTcp.onMessage((data: ArrayBuffer) => { + this.differentialSignalTcp.onMsg((data: ArrayBuffer) => { callback(data); }); }