From 33bb4207253c1493ecd1232765bcfc2e40166656 Mon Sep 17 00:00:00 2001 From: wangzhongjie Date: Thu, 24 Jul 2025 10:45:56 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=BD=A8=E8=BF=B9=E6=9F=A5=E7=9C=8B?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E6=A0=8F=E9=81=AE=E6=8C=A1=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/src/main/ets/model/Judge.ets | 2 +- entry/src/main/ets/pages/Judge.ets | 7 +- .../pages/Judge/SignalTrajectoryDialog.ets | 3 +- .../ets/pages/compontents/SignalDisplay.ets | 8 +- .../ets/pages/compontents/judge/RealTime.ets | 161 ------------------ 5 files changed, 13 insertions(+), 168 deletions(-) delete mode 100644 entry/src/main/ets/pages/compontents/judge/RealTime.ets diff --git a/entry/src/main/ets/model/Judge.ets b/entry/src/main/ets/model/Judge.ets index 59b62b2..4b3b36f 100644 --- a/entry/src/main/ets/model/Judge.ets +++ b/entry/src/main/ets/model/Judge.ets @@ -498,7 +498,7 @@ export interface JudgeUI { dw: string endExamDialogController: CustomDialogController generateExamRecordsDialogController: CustomDialogController - laneSignal:PerLane + laneSignal:PerLane, } diff --git a/entry/src/main/ets/pages/Judge.ets b/entry/src/main/ets/pages/Judge.ets index a737b04..7d86083 100644 --- a/entry/src/main/ets/pages/Judge.ets +++ b/entry/src/main/ets/pages/Judge.ets @@ -147,7 +147,12 @@ struct JudgePage { @State carInfo: CarInfoType = {} @State isErrorMsgEnd: boolean = false @State disConnectErrorOpen: boolean = false - @State laneSignal: PerLane = InitialPerLane + @State @Watch("laneSignalChange") laneSignal: PerLane = InitialPerLane + + laneSignalChange() { + dConsole.log("车道信号变化1", this.laneSignal) + } + public context = getContext(this) as common.UIAbilityContext; // 信号查看弹窗 signalTrajectoryDialogController: CustomDialogController = new CustomDialogController({ diff --git a/entry/src/main/ets/pages/Judge/SignalTrajectoryDialog.ets b/entry/src/main/ets/pages/Judge/SignalTrajectoryDialog.ets index 358344d..135aa5b 100644 --- a/entry/src/main/ets/pages/Judge/SignalTrajectoryDialog.ets +++ b/entry/src/main/ets/pages/Judge/SignalTrajectoryDialog.ets @@ -6,8 +6,7 @@ import TabComponent from '../compontents/Tab' @CustomDialog export default struct SignalTrajectoryDialog { @State active: number = 0 - @Prop laneSignal: PerLane - + @Link laneSignal: PerLane private controller?: CustomDialogController diff --git a/entry/src/main/ets/pages/compontents/SignalDisplay.ets b/entry/src/main/ets/pages/compontents/SignalDisplay.ets index 0c0407a..7922a80 100644 --- a/entry/src/main/ets/pages/compontents/SignalDisplay.ets +++ b/entry/src/main/ets/pages/compontents/SignalDisplay.ets @@ -28,9 +28,11 @@ export default struct SignalDisplayComponent { // 原始数据 @State rawData: string = "$GPS,,,,,,,,,,,,,,,,,,,,,,,,,,,,," // 车道信息 - @Prop laneSignal: PerLane - + @Link @Watch("laneSignalChange") laneSignal: PerLane + laneSignalChange(){ + dConsole.log("车道信号变化3",this.laneSignal) + } aboutToAppear(): void { DifferentialAndSignal.onMsg(this.getMsg) @@ -191,7 +193,7 @@ struct trajectoryComponent { build() { Stack({ - alignContent: Alignment.TopStart + alignContent: Alignment.TopEnd }) { XComponent({ id: 'duolun_plugin_id_draw', //显示轨迹窗口id名称,注意这个ID要和C++侧一致,不能变 diff --git a/entry/src/main/ets/pages/compontents/judge/RealTime.ets b/entry/src/main/ets/pages/compontents/judge/RealTime.ets deleted file mode 100644 index 639e907..0000000 --- a/entry/src/main/ets/pages/compontents/judge/RealTime.ets +++ /dev/null @@ -1,161 +0,0 @@ -import apiJudgeSdk from 'libJudgeSdk.so'; -import { examJudgeMapSetScaling } from '../../judgeSDK/api'; -import { PerLane } from '../../../model'; -import { InitialPerLane } from '../../../mock'; - -interface RoadDataType { - name: string, - key: string | string[] -} - -@Component -export default struct RealTime { - @State message: string = '开始绘制' - // 控制XComponent组件的创建和销毁 - @State draw: boolean = false - //模拟考试项目 - @State scaleNum: number = 100 - @State gpsActive: number = 1 - @State ratio: number = 1 - @State lane: PerLane = InitialPerLane - scaleFn = async (num: number) => { - const scaleNum = this.scaleNum - if (scaleNum > 0 && scaleNum < 5000) { - this.scaleNum += num; - } - if (scaleNum === 0 && num > 0) { - this.scaleNum += num; - } - if (scaleNum > 5000 && num < 0) { - this.scaleNum += num; - } - await examJudgeMapSetScaling(this.scaleNum); - } - private widthNumber: string | number | Resource = 0 - private heightNumber: string | number | Resource = 0 - private RoadData: Array = [ - { name: '路段组号', key: 'MapRoad_Code_No' }, - { name: '路段编码', key: 'MapRoad_Name' }, - { name: '车轮压线', key: ['TouchLineType', 'TouchDir'] }, - { name: '车身碰线', key: ['TouchLineTypeCS', 'TouchLineDirCS'] }, - { name: '基准车道', key: ['BasePointInLaneNo', 'BaseLaneCount'] }, - { name: '前点车道', key: ['FrontPointLaneNo', 'FrontPointLaneCount'] }, - { name: '后车点道', key: ['BackPointLaneNo', 'BackPointLaneCount'] }, - { name: '左前/后车身距离', key: ['Body_LF_ToLeftEdge', 'Body_LB_ToLeftEdge'] }, - { name: '右前/后车身距离', key: ['Body_RF_ToRightEdge', 'Body_RB_ToRightEdge'] }, - { name: '右前/后车身边线', key: ['Body_RF_ToBaseLine', 'Body_RB_ToBaseLine'] }, - { name: '右前/后轮距离', key: ['Wheel_RF_ToRightEdge', 'Wheel_RB_ToRightEdge'] }, - { name: '右前/后轮边线', key: ['Wheel_RF_ToBaseLine', 'Wheel_RB_ToBaseLine'] }, - { name: '左前/后轮距离', key: ['Wheel_LF_ToRightEdge', 'Wheel_LB_ToRightEdge'] }, - { name: '左前/后轮边线', key: ['Wheel_LF_ToBaseLine', 'Wheel_LB_ToBaseLine'] }, - { name: '车道属性', key: ['BasePointInLaneDir', 'CrossLineAttr', 'DirInverse'] }, - { name: '形状', key: ['InShapeAttr', 'ShapeNo', 'ShapeNoWheel'] }, - { name: '路段点', key: ['CrossPointNo'] }, - ] - - async aboutToDisappear() { - // clearInterval(this.timer) - } - - async aboutToAppear() { - // const judge = new Judge(this) - // let timer = setInterval(() => { - // this.lane = globalThis.laneData; - // }, 1000) - // this.timer = timer - } - - getScaleNum = (): number => { - const scaleNum = this.scaleNum; - if (scaleNum < 200) return 10; - if (scaleNum < 400) return 30; - if (scaleNum < 600) return 50; - if (scaleNum < 800) return 70; - if (scaleNum < 1000) return 100; - if (scaleNum < 2000) return 500; - return 1000; - } - - getValues(roadColumn: RoadDataType) { - const lane = this.lane; - let key = roadColumn.key; - let str = '' - if (Array.isArray(key)) { - key.forEach((k, index) => { - str += (Reflect.get(lane, k) === undefined ? '' : Reflect.get(lane, k)) + (index == key.length - 1 ? '' : '/') - }) - } else { - str = Reflect.get(lane, key) === undefined ? '' : Reflect.get(lane, key) - } - return str - } - - build() { - Row() { - Column() { - Row() { - Text('车道信息').fontColor(this.gpsActive == 0 ? '#2D3C5A' : '#fff').fontSize(20) - } - .width('100%') - .height(37) - .backgroundColor(this.gpsActive == 0 ? '#fff' : '#1A1A1A') - .margin({ top: 10 * this.ratio, right: 10 }) - .justifyContent(FlexAlign.Center) - - Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Start }) { - ForEach(this.RoadData, (item: RoadDataType) => { - Column() { - Text(`${item.name}:${this.getValues(item)}`) - .fontSize(20) - .lineHeight(30) - .fontColor('#fff') - }.height(30).justifyContent(FlexAlign.Start).width('100%') - }) - }.margin({ top: 5 }) - - }.width(168 * 1.5) - .height(this.heightNumber) - .backgroundColor('#282828') - .margin({ top: 6 * this.ratio, }) - - Column() { - if (this.draw) { - XComponent({ - id: 'duolun_plugin_id_draw', //显示轨迹窗口id名称,注意这个ID要和C++侧一致,不能变 - type: 'surface', - libraryname: 'JudgeSdk' - // libraryname: 'judgesdk' - }) - .width(this.widthNumber) - .height(this.heightNumber) - .onLoad(() => { - apiJudgeSdk.examJudgeMapSetDrawing(true); //停止绘制地图轨迹,false:表示结束绘制 - }) - .onDestroy(() => { - apiJudgeSdk.examJudgeMapSetDrawing(false); //停止绘制地图轨迹,false:表示结束绘制 - this.draw = false; - // clearInterval(globalThis.realTimer) - }) - } else { - Column() { - } - .width(this.widthNumber) - .height(this.heightNumber) - } - } - .width('100%') - .backgroundColor('#fff') - - Row() { - Image($rawfile('judge/big.png')).width(60).onClick(() => { - this.scaleFn(this.getScaleNum() - 1) - }) - Image($rawfile('judge/small.png')).width(60).onClick(() => { - this.scaleFn(this.getScaleNum()) - }).margin({ left: 20 }) - }.position({ x: '32%', y: 60 }) - } - .height('100%') - } -} -