diff --git a/entry/src/main/ets/pages/Judge.ets b/entry/src/main/ets/pages/Judge.ets index cc7a7d4..a74389b 100644 --- a/entry/src/main/ets/pages/Judge.ets +++ b/entry/src/main/ets/pages/Judge.ets @@ -204,7 +204,7 @@ export struct JudgePage { async aboutToDisappear() { this.generateExamRecordsDialogController.close() this.signalTrajectoryDialogController.close() - this.judgeBusiness.close() + // this.judgeBusiness.close() clearInterval(this.mileageTimer) } diff --git a/entry/src/main/ets/pages/Judge/BaseJudgeBussines.ets b/entry/src/main/ets/pages/Judge/BaseJudgeBussines.ets index 8042914..6a425db 100644 --- a/entry/src/main/ets/pages/Judge/BaseJudgeBussines.ets +++ b/entry/src/main/ets/pages/Judge/BaseJudgeBussines.ets @@ -35,7 +35,6 @@ import { endRecordVideo, saveStartRecordVideo } from '../../utils/Video' import router from '@ohos.router' import { GetSyncData, UpdateTableByArray } from '../../utils/table/Operation' import { CurrentProjectConversion, DeductionProjectConversion, DetectingDifferences, GetCarStatus } from './utils' -import { DifferentialSignal } from '../../utils/business/DifferentialSignal' import { DifferentialAndSignal } from '../../utils/business/DifferentialAndSignalWorker' @@ -73,7 +72,11 @@ export const SetJudgeItem = async (itemno: string, type: 1 | 2) => { } export class BaseJudge { - protected isUdpEnd: boolean = false + private isUdpEnd: boolean = false + + getIsUdpEnd() { + return this.isUdpEnd + } async goJudgeVoice(sound: JudgeSound, avPlayer: VoiceAnnounce) { dConsole.info(JudgeTag, 'surenjun code=>', JSON.stringify(sound.code)) diff --git a/entry/src/main/ets/pages/Judge/JudgeBusiness.ets b/entry/src/main/ets/pages/Judge/JudgeBusiness.ets index f166c6f..2b9184f 100644 --- a/entry/src/main/ets/pages/Judge/JudgeBusiness.ets +++ b/entry/src/main/ets/pages/Judge/JudgeBusiness.ets @@ -22,9 +22,7 @@ import { examJudgeRealExam } from './JudgeSDKUtils' import { DifferentialAndSignal } from '../../utils/business/DifferentialAndSignalWorker' import { PlcStrToJson, PlcStrToWXJson } from './utils' import { BaseJudgeImpl, SetJudgeItem } from './BaseJudgeBussines' -import { JudgePage } from '../Judge'; -import { CenterUDPBusinessInstance } from '../../utils/business/CenterUdpBusiness' -import { ObtainUdpBusinessInstance } from '../../utils/business/ObtainUdpBusiness' +import { JudgePage } from '../Judge' export default class JudgeBusiness { public mndgStr: string | undefined @@ -63,13 +61,6 @@ export default class JudgeBusiness { private tempData?: PLCType // 是否发送udp private judgeBusiness: BaseJudgeImpl - private onObdCallback = (data: string) => { - const result: WorkerBackMessage = JSON.parse(data) - if (result.type === WorkerBackMessageType.ObtainUdpData) { - this.HandlePLCData(result.data as string) - dConsole.writeProcessData(ProcessDataEnumType.PlcData, result.data as string) - } - } constructor(judgeUI: JudgePage) { this.judgeUI = judgeUI @@ -138,10 +129,22 @@ export default class JudgeBusiness { this.judgeBusiness.JudgeEnd(this.judgeUI, this, isManual) } + close() { + DifferentialAndSignal.offMsg(this.onObdCallback) + } + + private onObdCallback = (data: string) => { + const result: WorkerBackMessage = JSON.parse(data) + if (result.type === WorkerBackMessageType.ObtainUdpData) { + this.HandlePLCData(result.data as string) + dConsole.writeProcessData(ProcessDataEnumType.PlcData, result.data as string) + } + } + // 处理PLC数据 private async HandlePLCData(msg: string) { const plcArr = msg.split(',') - if (plcArr[0] != '#DN_GD' || this.isExamEnd) { + if (plcArr[0] != '#DN_GD' || this.judgeBusiness.getIsUdpEnd()) { return } const gpsPart = msg.split("#END$GPS,")[1]; @@ -172,6 +175,9 @@ export default class JudgeBusiness { this.judgeUI.sd = ((param350 == 0 ? this.plcData.gps.sd : this.plcData.sensor.cs) as number * 1.852).toFixed(0) + '' this.judgeUI.dw = (Math.floor(this.plcData.sensor.dw as number) || 0) + '' + dConsole.info("小红球过程数据1", this.judgeBusiness.getIsUdpEnd(), this.judgeUI.kfArr) + + DifferentialAndSignal.sendMsg({ type: WorkerMessageDataType.JudgeSend, data: { performInfo: this.performInfo, @@ -195,9 +201,5 @@ export default class JudgeBusiness { await examJudgeRealExam(this.plcData) } } - - close() { - DifferentialAndSignal.offMsg(this.onObdCallback) - } } diff --git a/entry/src/main/ets/pages/Judge/LargeJudgeBusiness.ets b/entry/src/main/ets/pages/Judge/LargeJudgeBusiness.ets index d9f5d2a..254b59e 100644 --- a/entry/src/main/ets/pages/Judge/LargeJudgeBusiness.ets +++ b/entry/src/main/ets/pages/Judge/LargeJudgeBusiness.ets @@ -40,8 +40,8 @@ export class LargeJudge extends BaseJudge implements BaseJudgeImpl { private mockLight: boolean = false private mode: number = 1 - getIsUdpEnd() { - return super.isUdpEnd + getIsUdpEnd(): boolean { + return super.getIsUdpEnd() } public async JudgeInit(judgeUI: JudgePage, that: JudgeBusiness): Promise { diff --git a/entry/src/main/ets/pages/Judge/SmallJudgeBusiness.ets b/entry/src/main/ets/pages/Judge/SmallJudgeBusiness.ets index c69802c..0c1db55 100644 --- a/entry/src/main/ets/pages/Judge/SmallJudgeBusiness.ets +++ b/entry/src/main/ets/pages/Judge/SmallJudgeBusiness.ets @@ -36,10 +36,8 @@ import systemDateTime from '@ohos.systemDateTime'; import { testKm2Items, testKm3Items } from '../../mock/Judge'; export class SmallJudge extends BaseJudge implements BaseJudgeImpl { - - - getIsUdpEnd() { - return super.isUdpEnd + getIsUdpEnd(): boolean { + return super.getIsUdpEnd() } public async GetJudgeBeginData(projects: Project[], carType: string, kssycs: string, isDdxk: boolean, ddxkTime: number, projectsCenterObj: Object, ddxkKsxmArr: string[], ddxkKfArr: string[], passingScore: number, wayno: number, name: string, lsh: string, idCard: string, isExam: boolean) { diff --git a/entry/src/main/ets/utils/business/JudgeUdpBusiness.ets b/entry/src/main/ets/utils/business/JudgeUdpBusiness.ets index 67d5650..9935208 100644 --- a/entry/src/main/ets/utils/business/JudgeUdpBusiness.ets +++ b/entry/src/main/ets/utils/business/JudgeUdpBusiness.ets @@ -14,9 +14,8 @@ import { } from '../../model'; import { JudgeConfig } from '../../config'; -import { FillZero, FormatTimeFlexible, NumberToByteArray, StringToASCII } from '../Common'; +import { FillZero, NumberToByteArray, StringToASCII } from '../Common'; import UdpClient, { MsgExt } from '../UdpUtils'; -import { CenterUDPBusinessInstance } from './CenterUdpBusiness'; import systemTime from '@ohos.systemDateTime'; import { SerialNumberInstance } from '../SerialNumber'; import { GetCenterProjectStatus, GetDwStatusType, GetTranslateSignals } from '../../pages/Judge/utils'; @@ -28,15 +27,15 @@ const Tag = "JudgeUdpBusiness" class JudgeUdpBusiness { private static instance: JudgeUdpBusiness + public business: JudgeUDPData | null = null + public performInfo: JudgePerformInfo | null = null + public isUDPEnd: boolean = false + public isExamEnd: boolean = false private udp: UdpClient = new UdpClient() private carInfo: CarInfoType = {} private singlePlay: boolean = false private lsh: string = "" private serialIndex: number = 1 - public business: JudgeUDPData | null = null - public performInfo: JudgePerformInfo | null = null - public isUDPEnd: boolean = false - public isExamEnd: boolean = false constructor() { if (!JudgeUdpBusiness.instance) { @@ -75,8 +74,8 @@ class JudgeUdpBusiness { let fyj = Number(plcData.gps.fyj.toFixed(2)) fyj = Math.floor(fyj > 0 ? (fyj * 100) : (fyj * 100 + 65536)) let examType = this.carInfo.examSubject === "2" ? "2" : "3" + dConsole.info("小红球过程数据2", this.isExamEnd, this.business.kfArr) - dConsole.info("小红球过程数据", this.isExamEnd, this.business) const arr: number[][] = [ //考生号 @@ -112,7 +111,7 @@ class JudgeUdpBusiness { //本次考试行驶距离 NumberToByteArray(Math.floor(this.performInfo.dcjl! + this.performInfo.qjjl!) / 100, 2 * 8), //扣分值 - NumberToByteArray(100 - Math.abs(this.business.totalScore), 2 * 8), + NumberToByteArray(100 - Math.abs(this.business.totalScore < 0 ? 0 : this.business.totalScore), 2 * 8), //扣分数量 NumberToByteArray(this.business.kfArr.length, 8), //n个扣分序号 diff --git a/entry/src/main/ets/workers/DifferentialCorrection.ets b/entry/src/main/ets/workers/DifferentialCorrection.ets index b9ff6f1..3c508d4 100644 --- a/entry/src/main/ets/workers/DifferentialCorrection.ets +++ b/entry/src/main/ets/workers/DifferentialCorrection.ets @@ -134,7 +134,7 @@ function getDataFn(config: EnvironmentConfigurationType) { JudgeUdpBusinessInstance.sendData(byte, udpLsh) } udpIndex++ - // console.log(SerialPortTag, "处理完的档位信号", data) + console.log(SerialPortTag, "后置机消息", data) workerPort.postMessage( JSON.stringify({ type: WorkerBackMessageType.ObtainUdpData, diff --git a/oh-package-lock.json5 b/oh-package-lock.json5 index f76874c..b959024 100644 --- a/oh-package-lock.json5 +++ b/oh-package-lock.json5 @@ -1,18 +1,20 @@ { - "lockfileVersion": 1, + "lockfileVersion": 2, "ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.", "specifiers": { - "@ohos/crypto-js@2.0.3": "@ohos/crypto-js@2.0.3", - "@ohos/hypium@1.0.19": "@ohos/hypium@1.0.19" + "@ohos/hypium@1.0.19": "@ohos/hypium@1.0.19", + "@ohos/crypto-js@2.0.3": "@ohos/crypto-js@2.0.3" }, "packages": { - "@ohos/crypto-js@2.0.3": { - "resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/crypto-js/-/crypto-js-2.0.3.har", - "integrity": "sha512-LuHaR1kD5PxnOXnuR1fWvPwGtbed9Q/QGzk6JOh8y5Wdzvi8brPesODZiaWf9scOVRHsbTPOtZw91vWB35p1vQ==" - }, "@ohos/hypium@1.0.19": { "resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/hypium/-/hypium-1.0.19.har", - "integrity": "sha512-cEjDgLFCm3cWZDeRXk7agBUkPqjWxUo6AQeiu0gEkb3J8ESqlduQLSIXeo3cCsm8U/asL7iKjF85ZyOuufAGSQ==" + "integrity": "sha512-cEjDgLFCm3cWZDeRXk7agBUkPqjWxUo6AQeiu0gEkb3J8ESqlduQLSIXeo3cCsm8U/asL7iKjF85ZyOuufAGSQ==", + "registryType": "ohpm" + }, + "@ohos/crypto-js@2.0.3": { + "resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/crypto-js/-/crypto-js-2.0.3.har", + "integrity": "sha512-LuHaR1kD5PxnOXnuR1fWvPwGtbed9Q/QGzk6JOh8y5Wdzvi8brPesODZiaWf9scOVRHsbTPOtZw91vWB35p1vQ==", + "registryType": "ohpm" } } } \ No newline at end of file