From f604c1c8f2cf33de02b736f12732c128bf86b2b6 Mon Sep 17 00:00:00 2001 From: wangzhongjie Date: Fri, 20 Jun 2025 16:42:34 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E8=AF=84=E5=88=A4?= =?UTF-8?q?=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/src/main/ets/model/Judge.ets | 192 ++++++++++++++- entry/src/main/ets/pages/Judge.ets | 56 +---- .../api/index.ets => Judge/JudgeUtils.ets} | 2 +- .../ets/pages/compontents/SignalDisplay.ets | 3 +- .../main/ets/pages/judgeSDK/api/judgeSDK.d.ts | 232 ------------------ entry/src/main/ets/pages/judgeSDK/judge.ets | 37 ++- .../ets/pages/judgeSDK/utils/judgeCommon.ets | 9 +- .../ets/pages/judgeSDK/utils/judgeReal.ets | 43 ---- .../ets/utils/business/JudgeUdpBusiness.ets | 2 +- 9 files changed, 222 insertions(+), 354 deletions(-) rename entry/src/main/ets/pages/{judgeSDK/api/index.ets => Judge/JudgeUtils.ets} (98%) delete mode 100644 entry/src/main/ets/pages/judgeSDK/api/judgeSDK.d.ts delete mode 100644 entry/src/main/ets/pages/judgeSDK/utils/judgeReal.ets diff --git a/entry/src/main/ets/model/Judge.ets b/entry/src/main/ets/model/Judge.ets index a7f9a3c..694a6a0 100644 --- a/entry/src/main/ets/model/Judge.ets +++ b/entry/src/main/ets/model/Judge.ets @@ -402,6 +402,7 @@ export interface SYSSET { } + export interface ProjectRoads { param_3?: string[] param_4?: string[] @@ -411,7 +412,7 @@ export interface ProjectRoads { param_12?: string[] } -interface MAPPOINT { +export interface MAPPOINT { point_no: number, gps_e: number, gps_n: number, @@ -425,7 +426,7 @@ interface MAPPOINT { passed: number } -interface MAPITEMPOINTITEM { +export interface MAPITEMPOINTITEM { point_no: number, itemno: number, itemno1: number, @@ -486,7 +487,7 @@ export interface JudgeUI { defaultTabIndex: number isDwztRight: boolean draw: boolean - lane: JudgeLane + lane: LANE sd: string dw: string } @@ -708,11 +709,6 @@ export interface JudgeSoundB { type: 0 | 1 } -export interface JudgeLane { - road: string - num: number - count: number -} export interface JudgeNonGPS { type: 0 | 1 | 2 | 3 | 4 @@ -780,7 +776,7 @@ export interface JudgeCallBackData { xmqx: JudgeKSXM sound: JudgeSound mndg: string - lane: JudgeLane + lane: LANE precast: JudgeKSXM nongps: JudgeNonGPS } @@ -833,3 +829,181 @@ export interface ProjectItemType { code: ProjectDataType status: string } + +export interface Project { + //项目名称 + name: string + //项目代码 + projectCode: string + //无锡所项目代码 + projectCodeCenter: string + //项目简写 + abbreviation?: string + //项目状态:未做 正在做 及格 不及格 有扣分 + type?: '1' | '2' | '3' | '4' | '5' + // + isEnd: boolean, + isUpload: boolean +} + + +export interface KF { + //项目名称 + xmmcStr: string, + xmdm: string | number, + + //扣分描述 + desc: string, + + //扣分 + score: string + //无锡所扣分代码 + markcatalog: string + markserial: string + kfxh: string + type: 0 | 1 | 2 +} + + +export interface SYSTEMPARMARROBJ { + 'no1': number, + 'no2': number, + 'no3': number, + 'txt1': string, + 'txt2': string, + 'txt3': string, + +} + + +export interface EXAMDATA { + //1:项目开始 2:项目结束 3:扣分 4:考车状态 5:考试结束 6:项目取消 7:语音播放和提示 8:模拟灯光事件 9:车道信息事件 10:预进项目事件 11:差分事件 + event: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 + //时间 + sj: number + //考车状态 -1:后退 0:停车 1:前进 + carzt: -1 | 0 | 1 + //项目开始 + xmks: xmksType + //项目结束 + xmjs: xmjsType + //扣分 + kf: kfType + //考试结束 + ksjs: ksjxType + //项目取消 + xmqx: xmqxType + sound: soundType + //模拟灯光 + mndg: string + lane: LANE + type: number + //预进项目 + precast: precastType + nongps: nongpsType +} + +interface xmksType { + //项目代码 项目子序号 + xmdm: number, + xmxh: string +} + +interface xmjsType { + //项目代码 项目子序号 项目是否合格 + xmdm: number, + xmxh: string, + xmhg: 1 | 0 +} + +interface kfType { + //项目代码 + xmdm: number, + + //扣分代码 + kfdm: string, + + //无锡所扣分代码 + markcatalog: string + // 0:评判自动扣分 1:本地人工扣分 2:远程人工扣分 + type: 0 | 1 | 2 +} + +interface ksjxType { + //前进距离 + qjjl: number, + + //倒车距离 + dcjl: number, + d1: number + d2: number + d3: number + d4: number + d5: number + d6: number +} + +interface xmqxType { + //项目代码 项目子序号 + xmdm: number, + xmxh: string +} + +interface soundType { + xmdm: number, + + //语音播放文件代码 + code: string, + type: number +} + +interface precastType { + xmdm: number, + xmxh: string +} + +interface nongpsType { + type: 0 | 1 | 2 | 3 | 4 +} + +export interface KSJS { + //0:自动结束,1:手动结束 + type: 0 | 1 + qjjl: number, + dcjl: number, + d1: number, + d2: number, + d3: number, + d4: number, + d5: number, + d6: number, +} + +export interface MAPPOINTITEM {} + + +export interface SOUND { + //项目代码 + xmdm: number + //语音播放提示代码 + code: string, + + //0:普通,1:模拟灯光 + type: number +} + +export interface LANE { + //当前路段号 如果road为空字符串””,说明当前在未测绘得道路上或者不在差分状态 + road: string + /*当前基准天线所在车道号 + num等于0或者count等于0说明当前未在测绘路段,或者不在差分状态。 + num等于1的时候表示在最右侧车道 + num等于count的时候的表示在最左侧车道 + */ + num: number + //当前基准天线共有几股车道 + count: number +} + + + diff --git a/entry/src/main/ets/pages/Judge.ets b/entry/src/main/ets/pages/Judge.ets index 8597b45..1976ba4 100644 --- a/entry/src/main/ets/pages/Judge.ets +++ b/entry/src/main/ets/pages/Judge.ets @@ -10,14 +10,13 @@ import { defaultJudgeConfigObj } from './judgeSDK/utils//judgeCommon'; import { uploadExamMileage } from '../api/judge'; import DwztErrorPopup from './compontents/judge/DwztErrorPopup'; import MsgPopup from './compontents/judge/MsgPopup'; -import { CARINFO, CDSBInfo, LANE, MAPITEMPOINTITEM, MAPPOINT, Project, SYSTEMPARMARR } from './judgeSDK/api/judgeSDK.d'; - import { JudgeConfig } from '../config'; -import SignDisplayCom from './compontents/SignDisplayCom'; import { AmplifyItem, + CARINFO, CarInfoType, + CDSBInfo, CDSBInfos, DefaultJudgeConfigObj, ES_CARINFOType, @@ -25,20 +24,25 @@ import { JudgeBeginObj, JudgeCallBacData, JudgeInitObj, + LANE, MA_CDSBINFOType, MA_ITEMINFOType, MA_MAP_POINT_ITEMType, MA_MAP_POINTType, MA_SYSTEMPARMType, + MAPITEMPOINTITEM, + MAPPOINT, MarkRule, MarkRules, MASYSSETTableType, + Project, ProjectInfo, ProjectInfos, ProjectRoads, RouteParamsType, SYSSET, SyssetConfig, + SYSTEMPARMARR, User } from '../model'; import { GetSyncData } from '../utils/table/Operation'; @@ -60,8 +64,6 @@ struct Index { @State endPopupVisible: boolean = false //等待弹窗(考试及格,考试不及格使用) @State loadingPopupVisible: boolean = false - //实时轨迹弹窗 - @State signDisplayComVisible: boolean = false @State isDdxk: boolean = false; @State time: string = '' //考试用时 @@ -449,12 +451,12 @@ struct Index { } this.systemparmArr.push({ - 'NO1': Number(systemParm.no1), - 'NO2': Number(systemParm.no2), - 'NO3': Number(systemParm.no3), - 'TXT1': decodeURIComponent(systemParm.txt1 || ""), - 'TXT2': decodeURIComponent(systemParm.txt2 || ""), - 'TXT3': decodeURIComponent(systemParm.txt3 || ""), + NO1: Number(systemParm.no1), + NO2: Number(systemParm.no2), + NO3: Number(systemParm.no3), + TXT1: decodeURIComponent(systemParm.txt1 || ""), + TXT2: decodeURIComponent(systemParm.txt2 || ""), + TXT3: decodeURIComponent(systemParm.txt3 || ""), }) }) const projects = this.projects; @@ -946,7 +948,6 @@ struct Index { // type: 1, // name: 'button_media.wav' // }) - // this.signDisplayComVisible = true this.signalTrajectoryDialog.open() }) @@ -1049,7 +1050,6 @@ struct Index { //科目三人工扣分弹窗 if (this.isDeductedPopShow && this.examSubject == '3' && Reflect.get(this.judgeConfigObj, '342') == '0') { - DeductedPopup({ defaultTabIndex: this.defaultTabIndex, // currentItems: Reflect.ownKeys(this.projectsObj).map(projectKey => { @@ -1076,31 +1076,6 @@ struct Index { }) } - if (this.signDisplayComVisible) { - Column() { - SignDisplayCom({ - showBack: false, - scaleNum: 1.8, - msgStr: this.judge.plcStr || '', - showTrajectory: this.singlePlay ? true : (this.syssetParam623), - }).margin({ top: 100 }) - - Row() { - } - .width(240) - .height(240) - .position({ x: '81%', y: 80 }) - .backgroundImage($rawfile('judge/close.png'), ImageRepeat.NoRepeat) - .backgroundImageSize({ width: '33.33%', height: '33.33%' }) - .onClick(() => { - // this.vocObj.playAudio({ - // type: 1, - // name: 'button_media.wav' - // }) - this.signDisplayComVisible = false - }) - }.width('100%').height('100%').position({ y: 0 }).backgroundColor('rgba(0,0,0,0.6)') - } //科目三人工项目确认框 if (this.isAmplifyPopShow && this.examSubject == '3') { @@ -1204,19 +1179,14 @@ struct Index { switch (type) { case '1': return '#E6DECF'; - break; case '2': return '#FFAD33'; - break; case '3': return '#ff109d0a'; - break; case '4': return '#FF7566'; - break; default: return '#E6DECF'; - break; } } diff --git a/entry/src/main/ets/pages/judgeSDK/api/index.ets b/entry/src/main/ets/pages/Judge/JudgeUtils.ets similarity index 98% rename from entry/src/main/ets/pages/judgeSDK/api/index.ets rename to entry/src/main/ets/pages/Judge/JudgeUtils.ets index 05261c0..ae50437 100644 --- a/entry/src/main/ets/pages/judgeSDK/api/index.ets +++ b/entry/src/main/ets/pages/Judge/JudgeUtils.ets @@ -1,5 +1,5 @@ import libJudgeSdk from 'libjudgesdk.so'; -import { JudgeBeginObj, JudgeInitObj, Plc } from '../../../model'; +import { JudgeBeginObj, JudgeInitObj, Plc } from '../../model'; /** * 苏仁君 diff --git a/entry/src/main/ets/pages/compontents/SignalDisplay.ets b/entry/src/main/ets/pages/compontents/SignalDisplay.ets index 91a8569..e170829 100644 --- a/entry/src/main/ets/pages/compontents/SignalDisplay.ets +++ b/entry/src/main/ets/pages/compontents/SignalDisplay.ets @@ -1,8 +1,9 @@ import { GPSData, InitialPerLane, SignalData } from '../../mock' import { EnvironmentConfigurationType, PerLane, RoadDataType, SignalDataType, WorkerBackMessage } from '../../model' import apiJudgeSdk from 'libJudgeSdk.so' -import { examJudgeMapSetScaling } from '../judgeSDK/api' + import { DifferentialAndSignal } from '../../utils/business/DifferentialAndSignalWorker' +import { examJudgeMapSetScaling } from '../Judge/JudgeUtils' @Component diff --git a/entry/src/main/ets/pages/judgeSDK/api/judgeSDK.d.ts b/entry/src/main/ets/pages/judgeSDK/api/judgeSDK.d.ts deleted file mode 100644 index ec234b3..0000000 --- a/entry/src/main/ets/pages/judgeSDK/api/judgeSDK.d.ts +++ /dev/null @@ -1,232 +0,0 @@ -export interface Project { - //项目名称 - name: string - //项目代码 - projectCode: string - //无锡所项目代码 - projectCodeCenter: string - //项目简写 - abbreviation?: string - //项目状态:未做 正在做 及格 不及格 有扣分 - type?: '1' | '2' | '3' | '4' | '5' - // - isEnd: boolean, - isUpload: boolean -} - -export interface MarkRule { - itemno?: number - markcatalog?: string - markshow?: string - markserial?: string - markstandard?: number, - markreal?: number - kfxh?: string - onlyoneid?: number - OnlyOneKind?: number - nocancelid?: number - NoCancelId?: number - gps_sid?: number, - GPS_SID?: boolean - score?: number - xmmcStr?: string - desc?: string - xmdm?: number - type?: 0 | 1 | 2 -} - -export interface KF { - //项目名称 - xmmcStr: string, - xmdm: string | number, - - //扣分描述 - desc: string, - - //扣分 - score: string - //无锡所扣分代码 - markcatalog: string - markserial: string - kfxh: string - type: 0 | 1 | 2 -} - -export interface SYSTEMPARMARR { - 'NO1': number, - 'NO2': number, - 'NO3': number, - 'TXT1': string, - 'TXT2': string, - 'TXT3': string, -} - -export interface SYSTEMPARMARROBJ { - 'no1': number, - 'no2': number, - 'no3': number, - 'txt1': string, - 'txt2': string, - 'txt3': string, - - [k: string]: string | number -} - - -export interface CARINFO { - CARID: string, - IPADDR: string, - CARCLASS: string, - KSCX: string, - CARNAME: string, - FLAG: string, - BK1: string, - BK2: string -} - -export interface MAPPOINT { - point_no: number, - gps_e: number, - gps_n: number, - point_no_f: number, - point_type: number, - road_code: string, - gps_e_Location: number - gps_n_Location: number - f_gps_e: number, - f_gps_n: number, - passed: number -} - -export interface MAPITEMPOINTITEM { - point_no: number, - itemno: number, - itemno1: number, - subname: string -} - -export interface EXAMDATA { - //1:项目开始 2:项目结束 3:扣分 4:考车状态 5:考试结束 6:项目取消 7:语音播放和提示 8:模拟灯光事件 9:车道信息事件 10:预进项目事件 11:差分事件 - event: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 - //时间 - sj: number - //考车状态 -1:后退 0:停车 1:前进 - carzt: -1 | 0 | 1 - //项目开始 - xmks: { - //项目代码 项目子序号 - xmdm: number, - xmxh: string - } - //项目结束 - xmjs: { - //项目代码 项目子序号 项目是否合格 - xmdm: number, - xmxh: string, - xmhg: 1 | 0 - }, - - //扣分 - kf: { - //项目代码 - xmdm: number, - //扣分代码 - kfdm: string, - //无锡所扣分代码 - markcatalog: string - // 0:评判自动扣分 1:本地人工扣分 2:远程人工扣分 - type: 0 | 1 | 2 - }, - - //考试结束 - ksjs: { - //前进距离 - qjjl: number, - //倒车距离 - dcjl: number, - d1: number - d2: number - d3: number - d4: number - d5: number - d6: number - }, - - //项目取消 - xmqx: { - //项目代码 项目子序号 - xmdm: number, - xmxh: string - }, - sound: { - xmdm: number, - //语音播放文件代码 - code: string, - type: number - }, - - //模拟灯光 - mndg: string, - lane: LANE, - type: number - //预进项目 - precast: { - xmdm: number, - xmxh: string - } - nongps: { - type: 0 | 1 | 2 | 3 | 4 - } -} - -export interface KSJS { - //0:自动结束,1:手动结束 - type: 0 | 1 - qjjl: number, - dcjl: number, - d1: number, - d2: number, - d3: number, - d4: number, - d5: number, - d6: number, -} - -export interface MAPPOINTITEM {} - -export interface CDSBInfo {} - -export interface SOUND { - //项目代码 - xmdm: number - //语音播放提示代码 - code: string, - - //0:普通,1:模拟灯光 - type: number -} - -export interface SYSSET { - v_no: string, - v_name: string, - v_value: string -} - -export interface LANE { - //当前路段号 如果road为空字符串””,说明当前在未测绘得道路上或者不在差分状态 - road: string - /*当前基准天线所在车道号 - num等于0或者count等于0说明当前未在测绘路段,或者不在差分状态。 - num等于1的时候表示在最右侧车道 - num等于count的时候的表示在最左侧车道 - */ - num: number - //当前基准天线共有几股车道 - count: number -} - -export interface ProjectObj { - [k: string]: Project -} - - diff --git a/entry/src/main/ets/pages/judgeSDK/judge.ets b/entry/src/main/ets/pages/judgeSDK/judge.ets index 5b08855..1a306ec 100644 --- a/entry/src/main/ets/pages/judgeSDK/judge.ets +++ b/entry/src/main/ets/pages/judgeSDK/judge.ets @@ -3,33 +3,17 @@ import router from '@ohos.router'; import util from '@ohos.util'; import buffer from '@ohos.buffer'; import { testKm2Items, testKm3Items } from './dataTest/index'; -import { KSJS } from './api/judgeSDK'; + import VoiceAnnounce from './utils/voiceAnnouncements'; import FileModel from './utils/fileModel'; import FilePhoto from './utils/filePhoto'; import FileLog from './utils/fileLog'; import JudgeTask from './utils/judgeTask'; import { JudgeConfig } from '../../config'; -import { LANE } from '../judgeSDK/api/judgeSDK.d'; import { GetSyncData, SqlInsertTable } from '../../utils/table/Operation'; import { getCarStatus, getCenterProjectStatus, plcStrToJson, plcStrToWXJson, promptWxCode } from './utils/judgeCommon'; -import { - examCalcGpsDistance, - examJudgeArtificialItem, - examJudgeArtificialMark, - examJudgeBeginExam, - examJudgeEndExam, - examJudgeInit, - examJudgeRealExam, - examJudgeSetLogCallback, - examJudgeSetPerformCallback, - examJudgeSetRealExamCallback, - examJudgeSoundEnd, - examJudgeVersion -} from './api/index'; - import { uploadExamProgressData, writeObjectOut } from '../../api/judge'; import { endRecordVideo, saveStartRecordVideo } from '../../utils/Video'; import common from '@ohos.app.ability.common'; @@ -59,6 +43,7 @@ import { JudgeXMJS, Km3JudgeInitConfig, KmItem, + LANE, MarkRule, Plc, ProjectInfo, @@ -70,6 +55,20 @@ import { WR } from '../../model'; import { DrivingDataStorage } from '../../utils/business/DrivingDataStorage'; +import { + examCalcGpsDistance, + examJudgeArtificialItem, + examJudgeArtificialMark, + examJudgeBeginExam, + examJudgeEndExam, + examJudgeInit, + examJudgeRealExam, + examJudgeSetLogCallback, + examJudgeSetPerformCallback, + examJudgeSetRealExamCallback, + examJudgeSoundEnd, + examJudgeVersion +} from '../Judge/JudgeUtils'; const judgeTag = 'SURENJUN_JUDGE' @@ -1192,7 +1191,7 @@ export default class Judge { judgeTask.addTask(async () => { console.info(judgeTag, '考试结束 start') AppStorage.setOrCreate('isJudge', false) - await handEndExam(ksjs) + await handEndExam() }) // TODO待修改 // clearInterval(globalThis.judgeTimer) @@ -1318,7 +1317,7 @@ export default class Judge { } } // 处理考试结束 - public handEndExam = async (ksjs: KSJS) => { + public handEndExam = async () => { this.judgeUI.loadingPopupVisible = true; this.judgeUI.endPopupVisible = false; this.judgeUI.isDeductedPopShow = false; diff --git a/entry/src/main/ets/pages/judgeSDK/utils/judgeCommon.ets b/entry/src/main/ets/pages/judgeSDK/utils/judgeCommon.ets index d923456..530b34a 100644 --- a/entry/src/main/ets/pages/judgeSDK/utils/judgeCommon.ets +++ b/entry/src/main/ets/pages/judgeSDK/utils/judgeCommon.ets @@ -4,7 +4,7 @@ import { ArrayToByteArray, NumberToByteArray } from '../../../utils/Common'; import systemTime from '@ohos.systemDateTime'; import { CarInfoType } from '../../../model'; -import { DefaultJudgeConfigObj, Gps, JudgeLane, Plc, Radar, Vision } from '../../../model/Judge'; +import { DefaultJudgeConfigObj, Gps, LANE, Plc, Radar, Vision } from '../../../model/Judge'; interface Extend {} @@ -98,7 +98,7 @@ export function getKmProjectVoice( // 1:项目开始 2:项目结束 type: 1 | 2, judgeConfig: object, - lane: JudgeLane, + lane: LANE, xmxh: string ) { const carInfo = AppStorage.get('carInfo')!; @@ -110,9 +110,8 @@ export function getKmProjectVoice( console.info('surenjun => param544Str.length', param544Str.length) - const num = lane.num - const count = lane.count - const road = lane.road + const num: number = lane?.num + const count: number = lane?.count if (examSubject == '2') { return projectCode } diff --git a/entry/src/main/ets/pages/judgeSDK/utils/judgeReal.ets b/entry/src/main/ets/pages/judgeSDK/utils/judgeReal.ets deleted file mode 100644 index e578c4c..0000000 --- a/entry/src/main/ets/pages/judgeSDK/utils/judgeReal.ets +++ /dev/null @@ -1,43 +0,0 @@ -import FileUtils from '../../../utils/FileUtils'; -import { examJudgeMapSetParam, examJudgeMapSetScaling } from '../api/index'; - -import FileModel from './fileModel'; - -const judgeTag = 'SURENJUN_JUDGE' - -export default class JudgeImg { - private judgeUI - private modelPath: string - private fileModel: FileModel - private fileUtil: FileUtils - - // private plcData: any - - constructor(judgeUI) { - this.modelPath = 'models/model_enc' - this.judgeUI = judgeUI - this.fileUtil = new FileUtils(judgeUI.context) - this.fileModel = new FileModel(judgeUI.context) - this.init() - } - - async init() { - const isJudgeInitBool = AppStorage.get('isJudgeInitBool'); - const { judgeUI } = this; - - //TODO 临时处理 - setTimeout(async () => { - console.info(judgeTag, '1.进入评判入口') - await examJudgeMapSetParam(640, 480); //设置参数宽、高 - await examJudgeMapSetScaling(100); //设置缩放比例,一般默认填100(就是100%的意思) ,数字越大视野越大,数字越小视野越小,不能为0 - }) - - judgeUI.draw = true - - } - - //获取评判初始化数据 - getInitInfo = () => { - - } -} \ No newline at end of file diff --git a/entry/src/main/ets/utils/business/JudgeUdpBusiness.ets b/entry/src/main/ets/utils/business/JudgeUdpBusiness.ets index 6c313cf..415b3c0 100644 --- a/entry/src/main/ets/utils/business/JudgeUdpBusiness.ets +++ b/entry/src/main/ets/utils/business/JudgeUdpBusiness.ets @@ -16,8 +16,8 @@ import UdpClient from '../UdpUtils'; import { CenterUDPBusinessInstance } from './CenterUdpBusiness'; import { ObtainUdpBusinessInstance } from './ObtainUdpBusiness'; import systemTime from '@ohos.systemDateTime'; -import { examCalcGpsDistance } from '../../pages/judgeSDK/api'; import { SerialNumberInstance } from '../SerialNumber'; +import { examCalcGpsDistance } from '../../pages/Judge/JudgeUtils'; class JudgeUdpBusiness {