Compare commits

..

4 Commits

Author SHA1 Message Date
6ecddd7cbf feat:评判修改 2024-09-02 19:23:56 +08:00
9e5749b296 Merge remote-tracking branch 'origin/dev' into dev 2024-09-02 18:23:57 +08:00
8da91d74e0 Merge remote-tracking branch 'origin/dev' into dev
# Conflicts:
#	entry/src/main/ets/common/service/voiceService.ts
2024-09-02 18:20:19 +08:00
9082c5169c feat:评判修改 2024-08-28 16:39:18 +08:00
12 changed files with 146 additions and 82 deletions

View File

@ -24,11 +24,12 @@ export async function setCurrentTime():Promise<void> {
let times = new Date(currentTime).getTime(); let times = new Date(currentTime).getTime();
console.log('jiangsong:times==' + times); console.log('jiangsong:times==' + times);
try { try {
systemTime.setTime(times).then(() => { await systemTime.setTime(times)
console.info(`Succeeded in setting time.`); // systemTime.setTime(times).then(() => {
}).catch((error) => { // console.info(`Succeeded in setting time.`);
console.info(`Failed to set time. message: ${error.message}, code: ${error.code}`); // }).catch((error) => {
}); // console.info(`Failed to set time. message: ${error.message}, code: ${error.code}`);
// });
} catch(e) { } catch(e) {
console.info(`Failed to set time. message: ${e.message}, code: ${e.code}`); console.info(`Failed to set time. message: ${e.message}, code: ${e.code}`);
} }

View File

@ -92,7 +92,6 @@ export class voiceService {
} }
// 以下为使用资源管理接口获取打包在HAP内的媒体资源文件并通过fdSrc属性进行播放示例 // 以下为使用资源管理接口获取打包在HAP内的媒体资源文件并通过fdSrc属性进行播放示例
avPlayerFdSrc(name) { avPlayerFdSrc(name) {
globalThis.context.resourceManager.getRawFd(name,async (error, value) => { globalThis.context.resourceManager.getRawFd(name,async (error, value) => {
if (error != null) { if (error != null) {
console.log(`jiangsong callback getRawFd failed error code: ${error.code}, message: ${error.message}.`); console.log(`jiangsong callback getRawFd failed error code: ${error.code}, message: ${error.message}.`);

View File

@ -42,7 +42,7 @@ export default class GetDistance {
const content = await fileUtil.readFile(`${folderPath}/${date}.txt`) || ''; const content = await fileUtil.readFile(`${folderPath}/${date}.txt`) || '';
const contentArr = content.split('\n').filter(item => item) const contentArr = content.split('\n').filter(item => item)
console.info('surenjun contentArr',JSON.stringify(contentArr)) console.info('surenjun contentArr',JSON.stringify(contentArr))
this.totalDistance += str * 1 this.totalDistance += (str * 1 > 200 ? 200 : str*1)
this.totalTime += 1; this.totalTime += 1;
contentArr[contentArr.length - 1] = `程序启动时间:${timeStr} 累计行驶距离:${(this.totalDistance).toFixed(2)}m 累计运行时常:${Math.ceil(this.totalTime/60)}min`+ '\n' contentArr[contentArr.length - 1] = `程序启动时间:${timeStr} 累计行驶距离:${(this.totalDistance).toFixed(2)}m 累计运行时常:${Math.ceil(this.totalTime/60)}min`+ '\n'
console.info('surenjun',contentArr.join('\n')) console.info('surenjun',contentArr.join('\n'))

View File

@ -298,7 +298,8 @@ export async function setJudgeUdp() {
if (config && config.udplocalIp) { if (config && config.udplocalIp) {
const {udplocalIp} = config; const {udplocalIp} = config;
const udpClientbyCenter: UdpClientByCenter = new UdpClientByCenter(udplocalIp, '8080', globalThis.carInfo?.gpsAddress, globalThis.carInfo?.hintPort) const udpClientbyCenter: UdpClientByCenter = new UdpClientByCenter(udplocalIp, '8080', globalThis.carInfo?.udpAddress, globalThis.carInfo?.hintPort)
await udpClientbyCenter.onError_Callback(()=>{}) await udpClientbyCenter.onError_Callback(()=>{})
await udpClientbyCenter.bindUdp() await udpClientbyCenter.bindUdp()
await udpClientbyCenter.onMessage_2((val) => {}) await udpClientbyCenter.onMessage_2((val) => {})

View File

@ -43,11 +43,8 @@ export const initJudgeUdp = async () => {
wd2:wd, wd2:wd,
h:msgArr[90]*1 || 1, h:msgArr[90]*1 || 1,
}) })
if(distance < 1){
return
}
//@ts-ignore //@ts-ignore
globalThis.distanceClass.setTimeData(((distance / 100).toFixed(2)) * 1) globalThis.distanceClass?.setTimeData(((distance / 100).toFixed(2)) * 1)
} }
prevJd = jd; prevJd = jd;
preWd = wd; preWd = wd;
@ -66,7 +63,7 @@ export const getMessageHeartbeat = async (msg) => {
? '1111111111111' ? '1111111111111'
: globalThis.lsh, : globalThis.lsh,
13)); 13));
const ascksyhArr = stringToASC(fillZero('1111111111111', 13)) const ascksyhArr = stringToASC(fillZero(examSubject == 2 ? '0000000000000':'1111111111111', 13))
const ascsbxhArr = stringToASC('00000000') const ascsbxhArr = stringToASC('00000000')
// const ascsbxhArr = stringToASC('153216400880') // const ascsbxhArr = stringToASC('153216400880')
const serialIndex = globalThis.serialIndex const serialIndex = globalThis.serialIndex

View File

@ -62,6 +62,7 @@ export default async function request(req: any) {
//处理中心服务code //处理中心服务code
if(res.Envelope){ if(res.Envelope){
const msgXml = res.Envelope.Body.writeObjectOutResponse.return; const msgXml = res.Envelope.Body.writeObjectOutResponse.return;
//Envelope.Body.writeObjectOutResponse.return
const dd = handleCenterCode(msgXml,isNewCenter); const dd = handleCenterCode(msgXml,isNewCenter);
return dd return dd
} }
@ -165,12 +166,14 @@ function handleCenterCode(msgXml,isNewCenter){
} }
//正则匹配code message字段 //正则匹配code message字段
const [code,message] = [/<code>(.*)<\/code>/i,/<message>(.*)<\/message>/i].map(pattern=>{ const [code,message,keystr] = [/<code>(.*)<\/code>/i,/<message>(.*)<\/message>/i,/<keystr>(.*)<\/keystr>/i].map(pattern=>{
const patternArr = pattern.exec(msgXml); const patternArr = pattern.exec(msgXml);
return patternArr[1] return patternArr[1]
}); });
if(code === ''){ console.info('surenjun =>request-prev',keystr)
if(code != '1'){
prompt.showToast({ prompt.showToast({
message: decodeURIComponent(message as string), message: decodeURIComponent(message as string),
duration: 3000 duration: 3000
@ -180,7 +183,8 @@ function handleCenterCode(msgXml,isNewCenter){
// globalThis.errorDialog.open() // globalThis.errorDialog.open()
return {code,message:decodeURIComponent(message)} return {code,message:decodeURIComponent(message)}
}else{ }else{
return { code } console.info('surenjun =>request',keystr)
return { code ,keystr, message }
} }
} }

View File

@ -236,4 +236,16 @@ export function convertGpsCoord2 (num){
const du = Math.floor(tempNum / 100); const du = Math.floor(tempNum / 100);
const fen = tempNum % 100 + num - tempNum; const fen = tempNum % 100 + num - tempNum;
return du + fen / 60 return du + fen / 60
} }
export function debounce(fn, delay){
// 利用闭包定义定时器id变量存储
let timer = null;
return () => {
// 如果有值就清除定时器,重新计时
if (timer) {
clearTimeout(timer)
}
timer = setTimeout(fn, delay);
}
};

View File

@ -28,10 +28,10 @@ export default class EntryAbility extends UIAbility {
globalThis.examinerInfo = {} globalThis.examinerInfo = {}
globalThis.deviceNo = ''; globalThis.deviceNo = '';
globalThis.hasAuth = false globalThis.hasAuth = false
// globalThis.version = '2022.08.13.01'//洛阳 globalThis.version = '2022.08.13.01'//洛阳
// globalThis.judgeVersion = '2022.12.05.1'
globalThis.judgeVersion = '2022.12.05.1' globalThis.judgeVersion = '2022.12.05.1'
globalThis.version = '2022.08.13.01' // globalThis.judgeVersion = '2022.12.05.1'
// globalThis.version = '2022.08.13.01'
// globalThis.version = '2024.11.22.14'//济南 // globalThis.version = '2024.11.22.14'//济南
// globalThis.judgeVersion = '2024.11.22.14' // globalThis.judgeVersion = '2024.11.22.14'
globalThis.videoVersion= '1.0' globalThis.videoVersion= '1.0'

View File

@ -9,6 +9,8 @@ import Judge from './judgeSDK/judge';
import { defaultJudgeConfigObj } from './judgeSDK/utils//judgeCommon'; import { defaultJudgeConfigObj } from './judgeSDK/utils//judgeCommon';
import {uploadExamMileage} from '../api/judge' import {uploadExamMileage} from '../api/judge'
import DwztErrorPopup from './compontents/judge/DwztErrorPopup' import DwztErrorPopup from './compontents/judge/DwztErrorPopup'
import {debounce} from '../common/utils/tools'
import { import {
CARINFO, CARINFO,
CDSBInfo, CDSBInfo,
@ -28,6 +30,7 @@ import { getSyncData } from '../common/service/initable';
import { judgeConfig } from './judgeSDK/utils/judgeConfig'; import { judgeConfig } from './judgeSDK/utils/judgeConfig';
import FileUtil from '../common/utils/File'; import FileUtil from '../common/utils/File';
import SignDisplayCom from './compontents/signDisplayCom'; import SignDisplayCom from './compontents/signDisplayCom';
import promptAction from '@ohos.promptAction';
@Entry @Entry
@Component @Component
@ -161,7 +164,8 @@ struct Index {
const syssetParams = sysset || await getSyncData('MA_SYSSET') const syssetParams = sysset || await getSyncData('MA_SYSSET')
//@ts-ignore //@ts-ignore
const serialNumberArr = syssetParams.filter(sys => sys.v_no === '901'); const serialNumberArr = syssetParams.filter(sys => sys.v_no === '901');
this.serialNumber = (serialNumberArr[0] && serialNumberArr[0].v_value) || '123456' console.info('surenjun serialNumberArr' + JSON.stringify(serialNumberArr))
this.serialNumber = (serialNumberArr[0] && serialNumberArr[0].v_value) || '';
const {isTrajectoryOpen} = judgeConfig const {isTrajectoryOpen} = judgeConfig
const syssetJudgeConfigArr = [] const syssetJudgeConfigArr = []
@ -294,12 +298,15 @@ struct Index {
this.projectsObj[no2*1] = currentProject this.projectsObj[no2*1] = currentProject
this.projectsCenterObj[txt2] = currentProject this.projectsCenterObj[txt2] = currentProject
this.projects.push(currentProject); this.projects.push(currentProject);
console.info('surenjun txt2=>',txt2)
//真实监管下发考试项目 //真实监管下发考试项目
if(isInExam && !kStringArr.includes(txt2)){ if(isInExam && !kStringArr.includes(txt2)){
this.projectsObj[no2*1].type = '3' this.projectsObj[no2*1].type = '3'
this.projectsObj[no2*1].isUpload = true this.projectsObj[no2*1].isUpload = true
this.projectsObj[no2*1].isEnd = true this.projectsObj[no2*1].isEnd = true
this.projectsCenterObj[txt2].type = '3'
this.projectsCenterObj[txt2].isUpload = true
this.projectsCenterObj[txt2].isEnd = true
this.isDdxk = true this.isDdxk = true
this.ddxkKsxmArr.push(txt2) this.ddxkKsxmArr.push(txt2)
} }
@ -381,6 +388,8 @@ struct Index {
const projectCode = this.projectsCenterObj[xmdm].projectCode const projectCode = this.projectsCenterObj[xmdm].projectCode
if(this.projectsObj[projectCode]){ if(this.projectsObj[projectCode]){
this.projectsObj[projectCode].type = '3' this.projectsObj[projectCode].type = '3'
this.projectsObj[projectCode].isUpload = true
this.projectsObj[projectCode].isEnd = true
} }
}) })
this.ddxkKsxmArr = ddxkKsxmArr this.ddxkKsxmArr = ddxkKsxmArr
@ -845,10 +854,15 @@ struct Index {
this.isDeductedPopShow = false; this.isDeductedPopShow = false;
this.defaultTabIndex = 0; this.defaultTabIndex = 0;
}, },
confirmMark: async (itemno, serial) => { confirmMark: async (itemno, serial)=>{
const judge = this.judge clearTimeout(this.popTimer)
await judge.setJudgeMark(itemno, serial); this.popTimer = null
this.isDeductedPopShow = false this.popTimer = setTimeout(async ()=>{
const judge = this.judge
await judge.setJudgeMark(itemno, serial);
this.isDeductedPopShow = false
this.popTimer = null;
},500)
} }
}) })
} }
@ -878,10 +892,15 @@ struct Index {
if (this.isAmplifyPopShow && this.examSubject == 3) { if (this.isAmplifyPopShow && this.examSubject == 3) {
AmplifyPopup({ AmplifyPopup({
amplifyImgIndex: this.amplifiedImgIndex, amplifyImgIndex: this.amplifiedImgIndex,
confirmAmplify: async (amplify) => { confirmAmplify:async (amplify)=>{
const judge = this.judge clearTimeout(this.popTimer)
await judge.setJudgeItem(amplify.projectCode, 1); this.popTimer = null
this.isAmplifyPopShow = false this.popTimer = setTimeout(async ()=>{
const judge = this.judge
await judge.setJudgeItem(amplify.projectCode, 1);
this.isAmplifyPopShow = false
this.popTimer = null;
},500)
}, },
closeAmplifyPop: () => { closeAmplifyPop: () => {
this.isAmplifyPopShow = false this.isAmplifyPopShow = false
@ -1262,4 +1281,5 @@ struct Index {
@State mileageTimer: number = 0; @State mileageTimer: number = 0;
@State passingScore: number = 80 @State passingScore: number = 80
@State dwztErrorVisible: boolean = false; @State dwztErrorVisible: boolean = false;
@State popTimer:number =0;
} }

View File

@ -650,6 +650,8 @@ struct UserInfo {
message, message,
duration: 4000 duration: 4000
}) })
avPlayer.playAudio(['voice/监管审核未通过.mp3']);
this.isLoadingPopupVisible = false
return return
} }
this.currentUser.id = '0' this.currentUser.id = '0'
@ -799,7 +801,7 @@ struct UserInfo {
drvexam, drvexam,
xtlb: '17', xtlb: '17',
//接口序列号 //接口序列号
jkxlh: this.jkxlh || '', jkxlh: this.jkxlh,
//接口标识 //接口标识
jkid: '17C51', jkid: '17C51',
} }

View File

@ -80,14 +80,16 @@ export default class Judge {
this.isExam = !this.judgeUI.singlePlay; this.isExam = !this.judgeUI.singlePlay;
const {projectsCenterObj,examSubject} = judgeUI; const {projectsCenterObj,examSubject} = judgeUI;
//科目三待修改
(examSubject ==2 ? testKm2Items : testKm3Items ).forEach(item => { (examSubject ==2 ? testKm2Items : testKm3Items ).forEach(item => {
const projectCenterObj = projectsCenterObj[item.code]
this.testKmItems[item.code] = item; this.testKmItems[item.code] = item;
//考试项目存在 //考试项目存在
this.testKmItems[item.code] = { this.testKmItems[item.code] = {
code: item.code, code: item.code,
status: 1, status: projectCenterObj === undefined
// status: projectsCenterObj[item.code]?.isRequired ? 1 : 0 ? 0
: ( projectCenterObj.isEnd ? 3 : 1 )
} }
}) })
console.info(judgeTag+'testKmItems',JSON.stringify(this.testKmItems)) console.info(judgeTag+'testKmItems',JSON.stringify(this.testKmItems))
@ -156,13 +158,25 @@ export default class Judge {
let beginExamInfo = isTrajectoryOpen ? { let beginExamInfo = isTrajectoryOpen ? {
...JSON.parse(strArr[1]), ...JSON.parse(strArr[1]),
replay: 1, replay: 1,
ykxm:judgeConfig.ignoreProjects
} : await getJudgeBeginData() } : await getJudgeBeginData()
await fileLog.setExamJudgeData(beginExamInfo) await fileLog.setExamJudgeData(beginExamInfo)
await examJudgeBeginExam(beginExamInfo); await examJudgeBeginExam(beginExamInfo);
console.info(judgeTag, '6.开始考试注册完成') console.info(judgeTag, '6.开始考试注册完成')
avPlayer.playAudio([globalThis.singlePlay ? 'voice/ksks.WAV' : 'voice/监管成功.mp3']) avPlayer.playAudio([globalThis.singlePlay ? 'voice/ksks.WAV' : 'voice/监管成功.mp3'])
const {examSubject,projectsObj} = this.judgeUI
if(examSubject == 3){
//不做模拟灯光,需要做上车准备 =>(请上车准备)
if(projectsObj[41]?.type == 3 && projectsObj[1]?.type != 3){
avPlayer.playAudio(['voice/上车准备.mp3'])
}
//不做模拟灯光,不做上车准备 =>(请起步,完成考试)
if(projectsObj[41]?.type == 3 && projectsObj[1]?.type == 3){
avPlayer.playAudio(['voice/402001.mp3'])
}
}
this.judgeUI.draw = true this.judgeUI.draw = true
// 处理轨迹plc信息 // 处理轨迹plc信息
if (isTrajectoryOpen) { if (isTrajectoryOpen) {
@ -179,24 +193,15 @@ export default class Judge {
handDistance(); handDistance();
} }
}) })
//TODO 监听远程扣分 //TODO 监听远程扣分
} }
//实时计算gps经纬度距离
handDistance= async ()=>{ handDistance= async ()=>{
const {jd,wd,hxj,dwzt} = this.tempData.gps; const {jd,wd,hxj,dwzt} = this.tempData.gps;
const tJD = convertGpsCoord2(jd) const tJD = convertGpsCoord2(jd)
const tWD = convertGpsCoord2(wd) const tWD = convertGpsCoord2(wd)
const {prevJd,prevWd} = this const {prevJd,prevWd} = this
console.info('surenjun =>prevJd',prevJd)
console.info('surenjun =>dwzt',dwzt)
if(prevJd && dwzt == 4){ if(prevJd && dwzt == 4){
console.info('surenjun =>tJD',tJD)
console.info('surenjun =>tWD',tWD)
console.info('surenjun =>prevJd',prevJd)
console.info('surenjun =>preWd',prevWd)
console.info('surenjun =>hxj',hxj)
const distance = await examCalcGpsDistance({ const distance = await examCalcGpsDistance({
jd1:prevJd, jd1:prevJd,
wd1:prevWd, wd1:prevWd,
@ -204,9 +209,8 @@ export default class Judge {
wd2:tWD, wd2:tWD,
h:hxj || 1, h:hxj || 1,
}) })
console.info('surenjun =>distance',distance)
//@ts-ignore //@ts-ignore
globalThis.distanceClass.setTimeData(((distance / 100).toFixed(2)) * 1) globalThis.distanceClass?.setTimeData(((distance / 100).toFixed(2)) * 1)
} }
this.prevJd = tJD; this.prevJd = tJD;
this.prevWd = tWD; this.prevWd = tWD;
@ -638,7 +642,6 @@ export default class Judge {
kssj: time kssj: time
} }
} }
console.info(judgeTag +'filePath' , filePath)
const {code} = await writeObjectOut(data,filePath) const {code} = await writeObjectOut(data,filePath)
console.info(judgeTag, '项目开始 end') console.info(judgeTag, '项目开始 end')
if (code === 2300007) { if (code === 2300007) {
@ -802,18 +805,9 @@ export default class Judge {
//及格分 //及格分
let passingGrade = passingScore let passingGrade = passingScore
if (isManual) { if (isManual) {
if (isAllProjectsEnd) { // 考试不合格
// 考试合格 await examJudgeEndExam()
if (totalScore >= passingGrade) { this.isExamEnd = true
// 考试合格
await examJudgeEndExam();
this.isExamEnd = true
}
} else {
// 考试不合格
await examJudgeEndExam()
this.isExamEnd = true
}
this.isManual = true this.isManual = true
} else { } else {
const param302 = judgeConfigObj['302']; const param302 = judgeConfigObj['302'];
@ -824,17 +818,30 @@ export default class Judge {
if (singlePlay) { if (singlePlay) {
console.info(judgeTag + ' isAllProjectsEnd => ',isAllProjectsEnd) console.info(judgeTag + ' isAllProjectsEnd => ',isAllProjectsEnd)
if (isAllProjectsEnd) { if (isAllProjectsEnd) {
if (examSubject == 3 && (param342 == 0 || param342 == 2) && (param302 != 6 || param302 != 7 || param302 != 8)) { //成绩合格
if(param512[7] != 0){ if(totalScore >= passingGrade && !isEndTip) {
avPlayer.playAudio(['voice/综合评判.mp3']) if (examSubject == 3 && (param342 == 0 || param342 == 2) && (param302 != 6 || param302 != 7 || param302 != 8)) {
this.judgeUI.isDeductedPopShow = true if(param512[7] != 0){
this.judgeUI.defaultTabIndex = 1 avPlayer.playAudio(['voice/综合评判.mp3'])
this.isEndTip = true this.judgeUI.isDeductedPopShow = true
} this.judgeUI.defaultTabIndex = 1
} else { this.isEndTip = true
await examJudgeEndExam() return
this.isExamEnd = true }
} } else {
await examJudgeEndExam()
this.isExamEnd = true
return
}
}else{
if(examSubject == 3 && param302 == 4){
await examJudgeEndExam()
this.isExamEnd = true
return
}
}
await examJudgeEndExam()
this.isExamEnd = true
} }
} else { } else {
//成绩不合格 //成绩不合格
@ -850,6 +857,11 @@ export default class Judge {
} }
//成绩合格 //成绩合格
if (isAllProjectsEnd && totalScore >= passingGrade && !isEndTip) { if (isAllProjectsEnd && totalScore >= passingGrade && !isEndTip) {
if(examSubject == 2){
await examJudgeEndExam()
this.isExamEnd = true
return
}
//考试合格自动退出 //考试合格自动退出
if(examSubject == 3 && param302 == 4){ if(examSubject == 3 && param302 == 4){
await examJudgeEndExam() await examJudgeEndExam()
@ -955,8 +967,15 @@ export default class Judge {
dwlc: [d1,d2,d3,d4,d5].map((d,index) => `${index+1},${Math.floor(d /100)}`).join(';'), dwlc: [d1,d2,d3,d4,d5].map((d,index) => `${index+1},${Math.floor(d /100)}`).join(';'),
} }
} }
const temp = await writeObjectOut(data,filePath); const {code,keystr,message} = await writeObjectOut(data,filePath);
promptWxCode('17C56', temp.code) promptWxCode('17C56', code)
if(code != 1){
avPlayer.playAudio(['voice/监管失败.mp3'])
this.isUdpEnd = true
router.back();
return
}
console.info(judgeTag, '考试结束 end') console.info(judgeTag, '考试结束 end')
const param302 = judgeConfigObj['302']; const param302 = judgeConfigObj['302'];
judgeUI.loadingPopupVisible = true; judgeUI.loadingPopupVisible = true;
@ -964,8 +983,13 @@ export default class Judge {
let currentKssycs =0; let currentKssycs =0;
let voiceURL = '' let voiceURL = ''
if (examSubject == 2) { if (examSubject == 2) {
voiceURL = (totalScore < passingScore ? `voice/unqualified_${kssycs == 1 ? 'one' : 'two'}.wav` : 'voice/qualified.mp3') if (isAllProjectsEnd) {
switch (voiceURL){ voiceURL = (totalScore < passingScore ? `voice/unqualified_${kssycs == 1 ? 'one' : 'two'}.wav` : 'voice/qualified.mp3')
}else{
voiceURL = `voice/unqualified_${kssycs == 1 ? 'one' : 'two'}.wav`
currentKssycs = kssycs == 1 ? 0 : 1
}
switch (voiceURL){
case 'voice/unqualified_one.wav': case 'voice/unqualified_one.wav':
currentKssycs = 0; currentKssycs = 0;
break; break;
@ -1063,6 +1087,7 @@ export default class Judge {
const projectsObj = this.judgeUI.projectsObj const projectsObj = this.judgeUI.projectsObj
return projectsObj[type]?.abbreviation || '通用评判' return projectsObj[type]?.abbreviation || '通用评判'
} }
// 扣分项目转换 // 扣分项目转换
getKfStr = (code) => { getKfStr = (code) => {
const markRuleListObj = this.judgeUI.markRuleListObj; const markRuleListObj = this.judgeUI.markRuleListObj;
@ -1107,7 +1132,7 @@ export default class Judge {
const sbxh = getSbxh(xmdm, xmxh) const sbxh = getSbxh(xmdm, xmxh)
const {carzt,dcjl,qjjl,dxjl,bxjl} = performInfo || {}; const {carzt,dcjl,qjjl,dxjl,bxjl} = performInfo || {};
const asclshArr = stringToASC( const asclshArr = stringToASC(
fillZero((singlePlay ? 1111111111111 : lsh) || 0, 13) fillZero((singlePlay ? (examSubject == 2 ? '0000000000000':'1111111111111') : lsh) || 0, 13)
); );
//13不足要补0 //13不足要补0
const ascksyhArr = stringToASC(fillZero(ksyh || 0, 13)) const ascksyhArr = stringToASC(fillZero(ksyh || 0, 13))
@ -1124,7 +1149,6 @@ export default class Judge {
//@ts-ignore //@ts-ignore
let tempSd = ((judgeConfigObj['350'] ==0 ? sd : cs) * 1.852).toFixed(0) * 1 let tempSd = ((judgeConfigObj['350'] ==0 ? sd : cs) * 1.852).toFixed(0) * 1
console.info(judgeTag + "prevSD",tempSd);
if(tempSd < 1){ if(tempSd < 1){
tempSd = 0 tempSd = 0
} }
@ -1228,7 +1252,6 @@ export default class Judge {
status: getCenterProjectStatus(current.status) status: getCenterProjectStatus(current.status)
} }
}) })
// console.info(judgeTag+'TranslateProject',JSON.stringify(tempItems));
const arr = []; const arr = [];
for (let i = 0; i <= 4; i++) { for (let i = 0; i <= 4; i++) {
@ -1276,6 +1299,7 @@ export default class Judge {
} }
//人工操作项目 //人工操作项目
public setJudgeItem = async (itemno, type: 1 | 2) => { public setJudgeItem = async (itemno, type: 1 | 2) => {
console.info('surenjun','2')
const {fileLog} = this; const {fileLog} = this;
await examJudgeArtificialItem(itemno * 1, type); await examJudgeArtificialItem(itemno * 1, type);
await fileLog.setExamJudgeData({ await fileLog.setExamJudgeData({
@ -1392,7 +1416,10 @@ export default class Judge {
if (udpIndex % 5 === 0 && !isUdpEnd) { if (udpIndex % 5 === 0 && !isUdpEnd) {
const judgeUdp = globalThis.judgeUdp const judgeUdp = globalThis.judgeUdp
const bytes = await this.getMessageHeartbeat(isExamEnd); const bytes = await this.getMessageHeartbeat(isExamEnd);
console.info(judgeTag,JSON.stringify(bytes))
console.info(judgeTag,'udp-prev-send')
judgeUdp.send(bytes) judgeUdp.send(bytes)
console.info(judgeTag,'udp-prev-end')
} }
globalThis.udpIndex += 1 globalThis.udpIndex += 1
} }
@ -1444,12 +1471,13 @@ export default class Judge {
const msgStr = strArr[num]; const msgStr = strArr[num];
if(msgStr == ''){ if(msgStr == ''){
console.info(judgeTag, '模拟数据考试结束') console.info(judgeTag, '模拟数据考试结束')
// globalThis.windowClass.setWindowSystemBarEnable(['navigation']) globalThis.windowClass.setWindowSystemBarEnable(['navigation'])
clearInterval(judgeTimer) clearInterval(judgeTimer)
this.checkExamIsEnd(true) this.checkExamIsEnd(true)
return return
} }
const msg = JSON.parse(strArr[num]); const msg = JSON.parse(strArr[num]);
num++
// 4.过程数据 // 4.过程数据
this.tempData = msg this.tempData = msg
this.judgeUI.isDwztRight = msg?.gps?.dwzt == 4; this.judgeUI.isDwztRight = msg?.gps?.dwzt == 4;
@ -1467,8 +1495,8 @@ export default class Judge {
await examJudgeRealExam(msg) await examJudgeRealExam(msg)
const bytes = await this.getMessageHeartbeat(); const bytes = await this.getMessageHeartbeat();
bytes && globalThis.judgeUdp.send(bytes) bytes && globalThis.judgeUdp.send(bytes)
num++
}, 200) }, 50)
globalThis.judgeTimer = judgeTimer; globalThis.judgeTimer = judgeTimer;
} }

View File

@ -16,7 +16,7 @@ export const judgeConfig = {
// 本地模型地址 // 本地模型地址
modelPath: 'models/model_enc', modelPath: 'models/model_enc',
// 济南科目三 // 济南科目三
trajectoryPath: 'logs/2024_08_17/2024_08_17_16_51_24_9999282315477_203908531884520064_彭雯季/judge_exam_data.txt', trajectoryPath: 'logs/2024_08_29/2024_08_29_09_48_08_2230612098578_410311200501058031_闫嘉衡/judge_exam_data.txt',
//四合一画面配置 //四合一画面配置
fourInOneScreen:{ fourInOneScreen:{
//gps位数 //gps位数