diff --git a/entry/src/main/ets/api/judge.ts b/entry/src/main/ets/api/judge.ts index e9cd92e8..419eca18 100644 --- a/entry/src/main/ets/api/judge.ts +++ b/entry/src/main/ets/api/judge.ts @@ -58,7 +58,7 @@ export async function writeObjectOut(params,filePath?:string): Promise { await fileUtil.initFolder(filePath); fileUtil.editFile(`${filePath}/wuxi_exam_data.txt`,JSON.stringify({ xtlb,jkxlh,jkid,drvexam:{...drvexam,zp:''}, - })); + }) +`\n`); } console.info('surenjun','调用旧监管') @@ -93,6 +93,11 @@ export async function writeObjectOut(params,filePath?:string): Promise { method: 'post', xml: true }) + if(filePath){ + const fileUtil = new FileUtil(globalThis.context); + await fileUtil.initFolder(filePath); + fileUtil.editFile(`${filePath}/wuxi_exam_data.txt`,JSON.stringify(temp) +`\n`); + } return temp } diff --git a/entry/src/main/ets/common/service/videoService.ts b/entry/src/main/ets/common/service/videoService.ts index 4d59d4c1..3b5c1322 100644 --- a/entry/src/main/ets/common/service/videoService.ts +++ b/entry/src/main/ets/common/service/videoService.ts @@ -106,8 +106,7 @@ console.log('baoyihubaoyihu',video_uri,flag) // var snapResult = rtsp_server.getVideoSnapshot(context, video_uri, '', dir); if(flag==0){ rtsp_server.detectVideoSnapshotSize(video_uri,fileName,(err,snapResult)=>{ - console.log("baohaowen_detectLoop round end size1:"+JSON.stringify(snapResult)); - //errorCode=0为正常 + console.log("baohaowen_detectLoop round end size1:"+snapResult.fileSize); callback({fileSize:snapResult.fileSize,errorCode:snapResult.errorCode }) }); @@ -117,7 +116,6 @@ console.log('baoyihubaoyihu',video_uri,flag) return new Promise((resolve,reject)=>{ rtsp_server.getVideoSnapshot(context, video_uri, fileName,dir,true,(err,snapResult)=>{ console.log('baoyihubaoyihu',video_uri,flag,JSON.stringify(snapResult)) - //errorCode=-2拍照失败 console.log('getPhtot',JSON.stringify(snapResult)) resolve({base64: snapResult.dataString,name:snapResult.fileName,fileSize:snapResult.fileSize,errorCode:snapResult.errorCode }) }); diff --git a/entry/src/main/ets/common/utils/UdpJudge.ts b/entry/src/main/ets/common/utils/UdpJudge.ts index d5db4e5f..93121210 100644 --- a/entry/src/main/ets/common/utils/UdpJudge.ts +++ b/entry/src/main/ets/common/utils/UdpJudge.ts @@ -74,7 +74,7 @@ export const getMessageHeartbeat = async (msg) => { string2Bytes(serialIndex, 2 * 8), translateSignals, //@ts-ignore - string2Bytes(Math.floor((Math.floor(gps.sd))*1.852*100) , 2 * 8), string2Bytes(fdjzs / 100, 8), string2Bytes(translateJd, 4 * 8), string2Bytes(translateWd, 4 * 8), string2Bytes(1, 8), + string2Bytes(Math.floor(gps.sd*1.852) * 100, 2 * 8), string2Bytes(fdjzs / 100, 8), string2Bytes(translateJd, 4 * 8), string2Bytes(translateWd, 4 * 8), string2Bytes(1, 8), //GPS东向距离 string2Bytes(0, 4 * 8), //GPS北向距离 diff --git a/entry/src/main/ets/pages/Index.ets b/entry/src/main/ets/pages/Index.ets index ab724f87..22a5c778 100644 --- a/entry/src/main/ets/pages/Index.ets +++ b/entry/src/main/ets/pages/Index.ets @@ -378,13 +378,8 @@ struct Index { this.isSingle = globalThis.singlePlay this.loading = false this.createAlbum() - this.num = 0 - - - // // const TcpClient: TcpClient =new TcpClient(result[0].tcplocalIp, result[0].tcplocalIpPort,result[0].tcpOppositeIp,result[0].tcpOppositePort) - console.info('Index onPageShow'); globalThis.lsh = '1111111111111' } diff --git a/entry/src/main/ets/pages/Judge.ets b/entry/src/main/ets/pages/Judge.ets index 77c1e615..cc2b7b74 100644 --- a/entry/src/main/ets/pages/Judge.ets +++ b/entry/src/main/ets/pages/Judge.ets @@ -291,16 +291,13 @@ struct Index { //项目开始数据是否上传过 isUpload:false, } - if(isInExam){ - if(kStringArr.includes(txt2)){ - this.projectsObj[no2*1] = currentProject - this.projectsCenterObj[txt2] = currentProject - this.projects.push(currentProject); - } - }else { - this.projectsObj[no2*1] = currentProject - this.projectsCenterObj[txt2] = currentProject - this.projects.push(currentProject); + this.projectsObj[no2*1] = currentProject + this.projectsCenterObj[txt2] = currentProject + this.projects.push(currentProject); + if(isInExam && !kStringArr.includes(txt2)){ + this.projectsObj[no2*1].type = '3' + + // this.ddxkKsxmArr.push(txt2) } } @@ -906,7 +903,6 @@ struct Index { this.loadingPopupVisible = true clearInterval(this.timer); clearInterval(globalThis.judgeTimer) - globalThis.windowClass.setWindowSystemBarEnable(['navigation']) this.judge.checkExamIsEnd(true); } }) diff --git a/entry/src/main/ets/pages/Roads.ets b/entry/src/main/ets/pages/Roads.ets index cb34111e..a6cbbbab 100644 --- a/entry/src/main/ets/pages/Roads.ets +++ b/entry/src/main/ets/pages/Roads.ets @@ -99,7 +99,7 @@ export default struct Index { kfdm, wayno, //TODO 真实监管项目 - // kString:'40300,40500,40700,40800' + // kString:'40200,40300,40400,40500,40700,41000,41100,41200,41300,41400,40600,41500,41700,40400,40800,40900' } }, router.RouterMode.Single); diff --git a/entry/src/main/ets/pages/judgeSDK/api/index.ts b/entry/src/main/ets/pages/judgeSDK/api/index.ts index 1130ab6d..4bd0db71 100644 --- a/entry/src/main/ets/pages/judgeSDK/api/index.ts +++ b/entry/src/main/ets/pages/judgeSDK/api/index.ts @@ -192,6 +192,24 @@ export async function examJudgeSoundEnd(param:{ return await handle(temp,'examJudgeSoundEnd') } +/** + * + * @desc 实时距离计算 + * + * */ +export async function examCalcGpsDistance(param:{ + jd1:number, + wd1:number, + jd2:number, + wd2:number, + h:number +}){ + const {jd1,wd1,jd2,wd2,h} = param + const temp = libJudgeSdk.examJudgeSoundEnd(jd1,wd1,jd2,wd2,h); + return await handle(temp,'examCalcGpsDistance') +} + + /* * @desc通用处理函数 * diff --git a/entry/src/main/ets/pages/judgeSDK/judge.ts b/entry/src/main/ets/pages/judgeSDK/judge.ts index 1971bd00..0718e107 100644 --- a/entry/src/main/ets/pages/judgeSDK/judge.ts +++ b/entry/src/main/ets/pages/judgeSDK/judge.ts @@ -177,6 +177,8 @@ export default class Judge { console.info('socketTag[PLC.UdpClient]', '收到udp回调数据') handleUdp(msg) }) + + //TODO 监听远程扣分 } // 获取评判初始化数据 @@ -233,7 +235,7 @@ export default class Judge { const {sczb,kfdm} = currentParams; const {isExam} = this; const judgeUI = this.judgeUI - const {projects,carType,isDdxk,ddxkTime,projectsCenterObj,ddxkKsxmArr,ddxkKfArr} = judgeUI; + const {projects,carType,isDdxk,ddxkTime,projectsCenterObj,ddxkKsxmArr,ddxkKfArr,passingScore} = judgeUI; const beginInfo = { kgid: '012', kgxm: decodeURI(examinerName || ''), @@ -254,6 +256,7 @@ export default class Judge { wayno: judgeUI.wayno * 1, czlx: 0, kskssj: await systemTime.getCurrentTime(), + passing:passingScore * 1, ksxm: projects.map(project => { return { xmdm: project.projectCode * 1, @@ -837,7 +840,7 @@ export default class Judge { this.judgeUI.totalScore = isAllProjectsEnd ? totalScore : 0; const singlePlay = globalThis.singlePlay const param302 = judgeConfigObj['302']; - globalThis.windowClass.setWindowSystemBarEnable(['navigation']) + // globalThis.windowClass.setWindowSystemBarEnable(['navigation']) //自动退出待验证并且不合格 if (!isManual && examSubject == 3 && (param302 == 1 || (singlePlay && param302 == 2)) && totalScore < passingScore) { @@ -913,24 +916,44 @@ export default class Judge { const param302 = judgeConfigObj['302']; judgeUI.loadingPopupVisible = true; + let currentKssycs =0; let voiceURL = '' if (examSubject == 2) { voiceURL = (totalScore < passingScore ? `voice/unqualified_${kssycs == 1 ? 'one' : 'two'}.wav` : 'voice/qualified.mp3') + switch (voiceURL){ + case 'voice/unqualified_one.wav': + currentKssycs = 0; + break; + + case 'voice/unqualified_two.wav': + currentKssycs = 1; + break; + + case 'voice/qualified.mp3': + currentKssycs = 0; + break; + } } if (examSubject == 3) { if (isAllProjectsEnd) { if (totalScore < passingScore) { voiceURL = `voice/${kssycs == 1 ? 'exam_no_pass_finish' : 'exam_no_pass'}.mp3` + currentKssycs = kssycs == 1 ? 0 : 1 } else { voiceURL = 'voice/exam_pass.mp3' + currentKssycs = 0 } } else { voiceURL = `voice/${kssycs == 1 ? 'exam_no_pass_finish' : 'exam_no_pass'}.mp3` + currentKssycs = 0 } } - const USER =await getSyncData('USER'); - await upDateTableByArray('USER', [{...USER[0],kssycs:kssycs == 2 ? 1 : 0}]) + const USER = await getSyncData('USER'); + await upDateTableByArray('USER', [{ + ...USER[0], + kssycs:currentKssycs + }]) console.info(judgeTag, `考试成绩:${totalScore}`) if(!singlePlay){ @@ -1296,7 +1319,7 @@ export default class Judge { const udpIndex = globalThis.udpIndex; if (udpIndex % 5 === 0 && !isUdpEnd) { const judgeUdp = globalThis.judgeUdp - const bytes = await this.getMessageHeartbeat(); + const bytes = await this.getMessageHeartbeat(isExamEnd); console.info(judgeTag+'UDP',JSON.stringify(bytes)) judgeUdp.send(bytes) } diff --git a/entry/src/main/ets/pages/judgeSDK/utils/judgeCommon.ts b/entry/src/main/ets/pages/judgeSDK/utils/judgeCommon.ts index 48549a08..5e983f3d 100644 --- a/entry/src/main/ets/pages/judgeSDK/utils/judgeCommon.ts +++ b/entry/src/main/ets/pages/judgeSDK/utils/judgeCommon.ts @@ -163,6 +163,7 @@ export function promptWxCode( return } switch (jkid){ + //项目开始 case '17C52': switch (code){ diff --git a/entry/src/main/ets/pages/judgeSDK/utils/judgeConfig.ts b/entry/src/main/ets/pages/judgeSDK/utils/judgeConfig.ts index 4ead1d0b..81dd9a3f 100644 --- a/entry/src/main/ets/pages/judgeSDK/utils/judgeConfig.ts +++ b/entry/src/main/ets/pages/judgeSDK/utils/judgeConfig.ts @@ -6,7 +6,7 @@ export const judgeConfig = { //是否开启拍照 isPhotoOpen: true, //扣分语音是否强制开启 - kfVoiceOpen: true, + kfVoiceOpen: false, //忽略的考试项目 ignoreProjects:[], // 是否忽略考试前熄火、车门检查