stach
This commit is contained in:
parent
747f88e65a
commit
f19a7a7743
@ -24,11 +24,12 @@ export async function setCurrentTime():Promise<void> {
|
||||
let times = new Date(currentTime).getTime();
|
||||
console.log('jiangsong:times==' + times);
|
||||
try {
|
||||
systemTime.setTime(times).then(() => {
|
||||
console.info(`Succeeded in setting time.`);
|
||||
}).catch((error) => {
|
||||
console.info(`Failed to set time. message: ${error.message}, code: ${error.code}`);
|
||||
});
|
||||
await systemTime.setTime(times)
|
||||
// systemTime.setTime(times).then(() => {
|
||||
// console.info(`Succeeded in setting time.`);
|
||||
// }).catch((error) => {
|
||||
// console.info(`Failed to set time. message: ${error.message}, code: ${error.code}`);
|
||||
// });
|
||||
} catch(e) {
|
||||
console.info(`Failed to set time. message: ${e.message}, code: ${e.code}`);
|
||||
}
|
||||
|
||||
@ -33,7 +33,7 @@ const FILE_ASSET_FETCH_COLUMNS = [photoAccessHelper.PhotoKeys.URI,
|
||||
|
||||
// const rtsp_server = record.createServer();
|
||||
|
||||
export async function startRecordVideo(param, td, context, dir, path?) {
|
||||
export async function startRecordVideo(param, td, context, dir, path?,index?) {
|
||||
return new Promise(async (reslove, reject) => {
|
||||
// const fileUtil = new FileUtil(globalThis.context)
|
||||
// const date=dateFormat(new Date).split(' ')[0]
|
||||
@ -47,7 +47,7 @@ export async function startRecordVideo(param, td, context, dir, path?) {
|
||||
if (!path) {
|
||||
fileName = `movie_record${num}.mp4`
|
||||
} else {
|
||||
fileName = `${path}.mp4`
|
||||
fileName = `${path}_${index||num}.mp4`
|
||||
}
|
||||
|
||||
// @ts-ignore
|
||||
@ -101,18 +101,18 @@ export async function saveStartRecordVideo(path) {
|
||||
if (param['videoRecord'+i]) {
|
||||
console.log('pathpath0',path)
|
||||
|
||||
record_handle[i] = await getfilehandleCode(i, param, date, path)
|
||||
record_handle[i] = await getfilehandleCode(i, param, date, path,i)
|
||||
}
|
||||
}
|
||||
reslove(record_handle)
|
||||
})
|
||||
}
|
||||
|
||||
async function getfilehandleCode(td, param, dir, path) {
|
||||
async function getfilehandleCode(td, param, dir, path,index) {
|
||||
return new Promise(async (reslove, reject) => {
|
||||
console.log('pathpath1',path)
|
||||
|
||||
const record_handle = await startRecordVideo(param, td, globalThis.context, dir, path)
|
||||
const record_handle = await startRecordVideo(param, td, globalThis.context, dir, path,index)
|
||||
// this.rocordHandleObj['rocord_handle'+td] = record_handle
|
||||
reslove(record_handle)
|
||||
})
|
||||
@ -137,6 +137,8 @@ export async function getUserAlbumItemByDisplayName(displayName: string): Promis
|
||||
console.log('get getUserAlbumItemByDisplayName, count: ' + JSON.stringify(fetchResult));
|
||||
if (fetchResult.getCount() > 0) {
|
||||
const albums = await fetchResult.getLastObject();
|
||||
console.log('get getUserAlbumItemByDisplayName album111',albums.albumName)
|
||||
|
||||
if(isSevenDaysAgo(albums.albumName)){
|
||||
deleteAllFileByPiC(albums.albumName,2)
|
||||
}
|
||||
|
||||
@ -92,7 +92,6 @@ export class voiceService {
|
||||
}
|
||||
// 以下为使用资源管理接口获取打包在HAP内的媒体资源文件并通过fdSrc属性进行播放示例
|
||||
avPlayerFdSrc(name) {
|
||||
|
||||
globalThis.context.resourceManager.getRawFd(name,async (error, value) => {
|
||||
if (error != null) {
|
||||
console.log(`jiangsong callback getRawFd failed error code: ${error.code}, message: ${error.message}.`);
|
||||
|
||||
@ -42,7 +42,7 @@ export default class GetDistance {
|
||||
const content = await fileUtil.readFile(`${folderPath}/${date}.txt`) || '';
|
||||
const contentArr = content.split('\n').filter(item => item)
|
||||
console.info('surenjun contentArr',JSON.stringify(contentArr))
|
||||
this.totalDistance += str * 1
|
||||
this.totalDistance += (str * 1 > 200 ? 200 : str*1)
|
||||
this.totalTime += 1;
|
||||
contentArr[contentArr.length - 1] = `程序启动时间:${timeStr} 累计行驶距离:${(this.totalDistance).toFixed(2)}m 累计运行时常:${Math.ceil(this.totalTime/60)}min`+ '\n'
|
||||
console.info('surenjun',contentArr.join('\n'))
|
||||
|
||||
@ -27,7 +27,7 @@ export async function getTCP() {
|
||||
})
|
||||
await globalThis.TcpClient.onMessage((val) => {
|
||||
setTimeout(() => {
|
||||
globalThis.TcpClient.sendMsg('1002') //1002
|
||||
globalThis.TcpClient.sendMsg(globalThis.carInfo?.carNo||'1002') //1002
|
||||
if (val) {
|
||||
// const msg=val.substring(5,val.length-1)
|
||||
console.log('socketTag[PLC.UdpClient] status:', globalThis.udpClient.getStatus())
|
||||
@ -54,7 +54,7 @@ export async function getTCP() {
|
||||
await globalThis.TcpClient.onMessage((val) => {
|
||||
hilog.info(0x0000, 'testTag', "valvalval2" + JSON.stringify(val));
|
||||
setTimeout(() => {
|
||||
globalThis.TcpClient.sendMsg('1002') //1002
|
||||
globalThis.TcpClient.sendMsg(globalThis.carInfo?.carNo||'1002') //1002
|
||||
if (val && globalThis.udpClient?.sendMsg) {
|
||||
globalThis.udpClient?.sendMsg(val)
|
||||
}
|
||||
|
||||
@ -298,7 +298,8 @@ export async function setJudgeUdp() {
|
||||
|
||||
if (config && config.udplocalIp) {
|
||||
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.bindUdp()
|
||||
await udpClientbyCenter.onMessage_2((val) => {})
|
||||
|
||||
@ -195,7 +195,6 @@ export default class TcpClient {
|
||||
}
|
||||
clearInterval(globalThis.intervaltcp)
|
||||
globalThis.intervaltcp=setInterval(()=>{
|
||||
setTimeout(async () => {
|
||||
//程序断开
|
||||
if (globalThis.tcpUdpError) {
|
||||
console.log(TAG,'tcp信号丢失')
|
||||
@ -206,7 +205,6 @@ export default class TcpClient {
|
||||
});
|
||||
}
|
||||
globalThis.tcpUdpError = true;
|
||||
}, 2000)
|
||||
},3000)
|
||||
// callback(value.message)
|
||||
});
|
||||
|
||||
@ -343,10 +343,10 @@ export default class UdpClientByCenter {
|
||||
|
||||
// this.stashFn(str)
|
||||
const newArr = JSON.parse(JSON.stringify(strachArr))
|
||||
// this.writeLog({
|
||||
// time:dateFormat(new Date()),
|
||||
// PLC: JSON.stringify(newArr.toString()),
|
||||
// })
|
||||
this.writeLog({
|
||||
time:dateFormat(new Date()),
|
||||
PLC: JSON.stringify(newArr.toString()),
|
||||
})
|
||||
if(strachArr[83]!='4'){
|
||||
this.chafenFlag++
|
||||
if(this.chafenFlag>=15&&!globalThis.dialogOpen){
|
||||
@ -393,10 +393,10 @@ export default class UdpClientByCenter {
|
||||
this.testIfUdpConnetced(callback)
|
||||
}
|
||||
async writeLog(param){
|
||||
// const fileUtil = new FileUtil(globalThis.context)
|
||||
// const date=dateFormat(new Date).split(' ')[0]
|
||||
// const folderPath = await fileUtil.initFolder(`/PLC/${date}`);
|
||||
// fileUtil.editFile(`${folderPath}/plcLog.txt`, JSON.stringify(param)+`\n`)
|
||||
const fileUtil = new FileUtil(globalThis.context)
|
||||
const date=dateFormat(new Date).split(' ')[0]
|
||||
const folderPath = await fileUtil.initFolder(`/PLC/${date}`);
|
||||
fileUtil.editFile(`${folderPath}/plcLog.txt`, JSON.stringify(param)+`\n`)
|
||||
|
||||
}
|
||||
//获取当前UDP信号
|
||||
|
||||
@ -43,11 +43,8 @@ export const initJudgeUdp = async () => {
|
||||
wd2:wd,
|
||||
h:msgArr[90]*1 || 1,
|
||||
})
|
||||
if(distance < 1){
|
||||
return
|
||||
}
|
||||
//@ts-ignore
|
||||
globalThis.distanceClass.setTimeData(((distance / 100).toFixed(2)) * 1)
|
||||
globalThis.distanceClass?.setTimeData(((distance / 100).toFixed(2)) * 1)
|
||||
}
|
||||
prevJd = jd;
|
||||
preWd = wd;
|
||||
@ -66,7 +63,7 @@ export const getMessageHeartbeat = async (msg) => {
|
||||
? '1111111111111'
|
||||
: globalThis.lsh,
|
||||
13));
|
||||
const ascksyhArr = stringToASC(fillZero('1111111111111', 13))
|
||||
const ascksyhArr = stringToASC(fillZero(examSubject == 2 ? '0000000000000':'1111111111111', 13))
|
||||
const ascsbxhArr = stringToASC('00000000')
|
||||
// const ascsbxhArr = stringToASC('153216400880')
|
||||
const serialIndex = globalThis.serialIndex
|
||||
|
||||
@ -62,6 +62,7 @@ export default async function request(req: any) {
|
||||
//处理中心服务code
|
||||
if(res.Envelope){
|
||||
const msgXml = res.Envelope.Body.writeObjectOutResponse.return;
|
||||
//Envelope.Body.writeObjectOutResponse.return
|
||||
const dd = handleCenterCode(msgXml,isNewCenter);
|
||||
return dd
|
||||
}
|
||||
@ -165,12 +166,14 @@ function handleCenterCode(msgXml,isNewCenter){
|
||||
}
|
||||
|
||||
//正则匹配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);
|
||||
return patternArr[1]
|
||||
});
|
||||
|
||||
if(code === ''){
|
||||
console.info('surenjun =>request-prev',keystr)
|
||||
|
||||
if(code != '1'){
|
||||
prompt.showToast({
|
||||
message: decodeURIComponent(message as string),
|
||||
duration: 3000
|
||||
@ -180,7 +183,8 @@ function handleCenterCode(msgXml,isNewCenter){
|
||||
// globalThis.errorDialog.open()
|
||||
return {code,message:decodeURIComponent(message)}
|
||||
}else{
|
||||
return { code }
|
||||
console.info('surenjun =>request',keystr)
|
||||
return { code ,keystr, message }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -236,4 +236,16 @@ export function convertGpsCoord2 (num){
|
||||
const du = Math.floor(tempNum / 100);
|
||||
const fen = tempNum % 100 + num - tempNum;
|
||||
return du + fen / 60
|
||||
}
|
||||
}
|
||||
|
||||
export function debounce(fn, delay){
|
||||
// 利用闭包定义定时器id变量存储
|
||||
let timer = null;
|
||||
return () => {
|
||||
// 如果有值就清除定时器,重新计时
|
||||
if (timer) {
|
||||
clearTimeout(timer)
|
||||
}
|
||||
timer = setTimeout(fn, delay);
|
||||
}
|
||||
};
|
||||
@ -28,10 +28,10 @@ export default class EntryAbility extends UIAbility {
|
||||
globalThis.examinerInfo = {}
|
||||
globalThis.deviceNo = '';
|
||||
globalThis.hasAuth = false
|
||||
// globalThis.version = '2022.08.13.01'//洛阳
|
||||
globalThis.version = '2024.03.19.01'//洛阳
|
||||
globalThis.judgeVersion = '2024.01.05.1'
|
||||
// globalThis.judgeVersion = '2022.12.05.1'
|
||||
globalThis.judgeVersion = '2022.12.05.1'
|
||||
globalThis.version = '2022.08.13.01'
|
||||
// globalThis.version = '2022.08.13.01'
|
||||
// globalThis.version = '2024.11.22.14'//济南
|
||||
// globalThis.judgeVersion = '2024.11.22.14'
|
||||
globalThis.videoVersion= '1.0'
|
||||
@ -59,8 +59,8 @@ export default class EntryAbility extends UIAbility {
|
||||
|
||||
const windowClass = await windowStage.getMainWindow();
|
||||
globalThis.windowClass = windowClass
|
||||
// await windowClass.setWindowLayoutFullScreen(true)
|
||||
await windowClass.setWindowSystemBarEnable([]) //全屏
|
||||
await windowClass.setWindowLayoutFullScreen(true)
|
||||
// await windowClass.setWindowSystemBarEnable([]) //全屏
|
||||
// await windowClass.setWindowSystemBarEnable(['navigation'])
|
||||
|
||||
windowStage.loadContent('pages/Index', (err, data) => {
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
// @ts-nocheck
|
||||
import common from '@ohos.app.ability.common';
|
||||
import router from '@ohos.router';
|
||||
import { getCarInfo, getDeviceInfo } from '../common/service/terminalService';
|
||||
@ -20,6 +19,7 @@ import errorMsgDialog from './compontents/errorMsgDialog'
|
||||
import { getSyncData } from '../common/service/initable';
|
||||
import GetDistance from '../common/utils/GetDistance'
|
||||
import UIAbility from '@ohos.app.ability.UIAbility';
|
||||
import { endRecordVideo, getUserAlbumItemByDisplayName, saveStartRecordVideo } from '../common/service/videoService';
|
||||
|
||||
// import VoiceAnnounce from './judgeSDK/utils/voiceAnnouncements';
|
||||
|
||||
@ -45,8 +45,6 @@ struct Index {
|
||||
private vocObj = null;
|
||||
private workerInstance = null;
|
||||
private context = getContext(this) as common.UIAbilityContext;
|
||||
private title = ''
|
||||
private type = '2'
|
||||
errorDialog: CustomDialogController = new CustomDialogController({
|
||||
builder: errorMsgDialog({
|
||||
title: globalThis.title,
|
||||
@ -185,7 +183,7 @@ struct Index {
|
||||
Column() {
|
||||
Row() {
|
||||
Column() {
|
||||
Text('V ' + globalThis.version)
|
||||
Text('V 1.0')
|
||||
.fontColor('#CCAE7A')
|
||||
.fontSize(22 * globalThis.ratio)
|
||||
.width('30%')
|
||||
@ -301,9 +299,9 @@ struct Index {
|
||||
this.loading = false
|
||||
globalThis.lsh = '1111111111111'
|
||||
globalThis.errorDialog = this.errorDialog
|
||||
const distanceClass = new GetDistance(globalThis.context)
|
||||
await distanceClass.initFolder()
|
||||
globalThis.distanceClass = distanceClass
|
||||
// const distanceClass = new GetDistance(globalThis.context)
|
||||
// await distanceClass.initFolder()
|
||||
// globalThis.distanceClass = distanceClass
|
||||
}
|
||||
|
||||
async testXMLToJSONInWorker() {
|
||||
@ -330,6 +328,7 @@ struct Index {
|
||||
workerInstance.postMessage(param);
|
||||
workerInstance.onmessage = (e: MessageEvents): void => {
|
||||
console.log("baoyihu after postMessage :", JSON.stringify(e.data));
|
||||
// @ts-ignore
|
||||
let workData: WorkData = e.data;
|
||||
if (workData.isComplete) {
|
||||
router.pushUrl({
|
||||
@ -378,6 +377,7 @@ struct Index {
|
||||
console.log('globalThis.singlePlay', globalThis.singlePlay)
|
||||
if (globalThis.singlePlay == undefined || globalThis.singlePlay == null) {
|
||||
this.context.resourceManager.getRawFileContent("welcome.wav").then(value => {
|
||||
console.log('tttttttt')
|
||||
this.vocObj.playAudio({
|
||||
type: 1,
|
||||
name: 'welcome.wav'
|
||||
@ -431,7 +431,6 @@ struct Index {
|
||||
|
||||
async initParams() {
|
||||
console.log('kkkkmmm')
|
||||
delHilog()
|
||||
// deleteAllFIleLog(GlobalConfig.comoonfileWriteAddress + '/PLC/')
|
||||
//设置plc udp 同步requesthost
|
||||
await getUDP(this.context, false)
|
||||
@ -459,6 +458,8 @@ struct Index {
|
||||
this.heartMsg()
|
||||
}
|
||||
}, 1000)
|
||||
delHilog()
|
||||
getUserAlbumItemByDisplayName('')
|
||||
//下载模型
|
||||
// await this.getModel()
|
||||
// const arr = [0x55, 0xaa, 0x01, 0x00, 0x02, 0x01, 0x03, 0x00]
|
||||
|
||||
@ -9,6 +9,8 @@ import Judge from './judgeSDK/judge';
|
||||
import { defaultJudgeConfigObj } from './judgeSDK/utils//judgeCommon';
|
||||
import {uploadExamMileage} from '../api/judge'
|
||||
import DwztErrorPopup from './compontents/judge/DwztErrorPopup'
|
||||
import {debounce} from '../common/utils/tools'
|
||||
|
||||
import {
|
||||
CARINFO,
|
||||
CDSBInfo,
|
||||
@ -28,6 +30,7 @@ import { getSyncData } from '../common/service/initable';
|
||||
import { judgeConfig } from './judgeSDK/utils/judgeConfig';
|
||||
import FileUtil from '../common/utils/File';
|
||||
import SignDisplayCom from './compontents/signDisplayCom';
|
||||
import promptAction from '@ohos.promptAction';
|
||||
|
||||
@Entry
|
||||
@Component
|
||||
@ -161,7 +164,8 @@ struct Index {
|
||||
const syssetParams = sysset || await getSyncData('MA_SYSSET')
|
||||
//@ts-ignore
|
||||
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 syssetJudgeConfigArr = []
|
||||
|
||||
@ -294,12 +298,15 @@ struct Index {
|
||||
this.projectsObj[no2*1] = currentProject
|
||||
this.projectsCenterObj[txt2] = currentProject
|
||||
this.projects.push(currentProject);
|
||||
console.info('surenjun txt2=>',txt2)
|
||||
|
||||
//真实监管下发考试项目
|
||||
if(isInExam && !kStringArr.includes(txt2)){
|
||||
this.projectsObj[no2*1].type = '3'
|
||||
this.projectsObj[no2*1].isUpload = 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.ddxkKsxmArr.push(txt2)
|
||||
}
|
||||
@ -381,6 +388,8 @@ struct Index {
|
||||
const projectCode = this.projectsCenterObj[xmdm].projectCode
|
||||
if(this.projectsObj[projectCode]){
|
||||
this.projectsObj[projectCode].type = '3'
|
||||
this.projectsObj[projectCode].isUpload = true
|
||||
this.projectsObj[projectCode].isEnd = true
|
||||
}
|
||||
})
|
||||
this.ddxkKsxmArr = ddxkKsxmArr
|
||||
@ -845,10 +854,15 @@ struct Index {
|
||||
this.isDeductedPopShow = false;
|
||||
this.defaultTabIndex = 0;
|
||||
},
|
||||
confirmMark: async (itemno, serial) => {
|
||||
const judge = this.judge
|
||||
await judge.setJudgeMark(itemno, serial);
|
||||
this.isDeductedPopShow = false
|
||||
confirmMark: async (itemno, serial)=>{
|
||||
clearTimeout(this.popTimer)
|
||||
this.popTimer = null
|
||||
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) {
|
||||
AmplifyPopup({
|
||||
amplifyImgIndex: this.amplifiedImgIndex,
|
||||
confirmAmplify: async (amplify) => {
|
||||
const judge = this.judge
|
||||
await judge.setJudgeItem(amplify.projectCode, 1);
|
||||
this.isAmplifyPopShow = false
|
||||
confirmAmplify:async (amplify)=>{
|
||||
clearTimeout(this.popTimer)
|
||||
this.popTimer = null
|
||||
this.popTimer = setTimeout(async ()=>{
|
||||
const judge = this.judge
|
||||
await judge.setJudgeItem(amplify.projectCode, 1);
|
||||
this.isAmplifyPopShow = false
|
||||
this.popTimer = null;
|
||||
},500)
|
||||
},
|
||||
closeAmplifyPop: () => {
|
||||
this.isAmplifyPopShow = false
|
||||
@ -1262,4 +1281,5 @@ struct Index {
|
||||
@State mileageTimer: number = 0;
|
||||
@State passingScore: number = 80
|
||||
@State dwztErrorVisible: boolean = false;
|
||||
@State popTimer:number =0;
|
||||
}
|
||||
|
||||
@ -389,7 +389,7 @@ struct UserInfo {
|
||||
db.getRdbStore(() => {
|
||||
db.query('0', (syssetParams) => {
|
||||
const serialNumberArr = syssetParams.filter(sys => sys.v_no === '901')
|
||||
that.jkxlh = serialNumberArr?.[0]?.v_value || '1234567'
|
||||
that.jkxlh = serialNumberArr?.[0]?.v_value || ''
|
||||
const ksxtbhArr = syssetParams.filter(sys => sys.v_no === '902')
|
||||
that.ksxtbh = ksxtbhArr?.[0]?.v_value || '222'
|
||||
const studentRefreshParam = syssetParams.filter(sys => sys.v_no === '452') //判断自动更新
|
||||
@ -650,6 +650,8 @@ struct UserInfo {
|
||||
message,
|
||||
duration: 4000
|
||||
})
|
||||
avPlayer.playAudio(['voice/监管审核未通过.mp3']);
|
||||
this.isLoadingPopupVisible = false
|
||||
return
|
||||
}
|
||||
this.currentUser.id = '0'
|
||||
@ -799,7 +801,7 @@ struct UserInfo {
|
||||
drvexam,
|
||||
xtlb: '17',
|
||||
//接口序列号
|
||||
jkxlh: this.jkxlh || '1234567',
|
||||
jkxlh: this.jkxlh,
|
||||
//接口标识
|
||||
jkid: '17C51',
|
||||
}
|
||||
|
||||
@ -80,14 +80,16 @@ export default class Judge {
|
||||
|
||||
this.isExam = !this.judgeUI.singlePlay;
|
||||
const {projectsCenterObj,examSubject} = judgeUI;
|
||||
//科目三待修改
|
||||
|
||||
(examSubject ==2 ? testKm2Items : testKm3Items ).forEach(item => {
|
||||
const projectCenterObj = projectsCenterObj[item.code]
|
||||
this.testKmItems[item.code] = item;
|
||||
//考试项目存在
|
||||
this.testKmItems[item.code] = {
|
||||
code: item.code,
|
||||
status: 1,
|
||||
// status: projectsCenterObj[item.code]?.isRequired ? 1 : 0
|
||||
status: projectCenterObj === undefined
|
||||
? 0
|
||||
: ( projectCenterObj.isEnd ? 3 : 1 )
|
||||
}
|
||||
})
|
||||
console.info(judgeTag+'testKmItems',JSON.stringify(this.testKmItems))
|
||||
@ -156,13 +158,25 @@ export default class Judge {
|
||||
let beginExamInfo = isTrajectoryOpen ? {
|
||||
...JSON.parse(strArr[1]),
|
||||
replay: 1,
|
||||
ykxm:judgeConfig.ignoreProjects
|
||||
} : await getJudgeBeginData()
|
||||
|
||||
await fileLog.setExamJudgeData(beginExamInfo)
|
||||
await examJudgeBeginExam(beginExamInfo);
|
||||
console.info(judgeTag, '6.开始考试注册完成')
|
||||
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
|
||||
// 处理轨迹plc信息
|
||||
if (isTrajectoryOpen) {
|
||||
@ -179,24 +193,15 @@ export default class Judge {
|
||||
handDistance();
|
||||
}
|
||||
})
|
||||
|
||||
//TODO 监听远程扣分
|
||||
}
|
||||
|
||||
|
||||
//实时计算gps经纬度距离
|
||||
handDistance= async ()=>{
|
||||
const {jd,wd,hxj,dwzt} = this.tempData.gps;
|
||||
const tJD = convertGpsCoord2(jd)
|
||||
const tWD = convertGpsCoord2(wd)
|
||||
const {prevJd,prevWd} = this
|
||||
console.info('surenjun =>prevJd',prevJd)
|
||||
console.info('surenjun =>dwzt',dwzt)
|
||||
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({
|
||||
jd1:prevJd,
|
||||
wd1:prevWd,
|
||||
@ -204,9 +209,8 @@ export default class Judge {
|
||||
wd2:tWD,
|
||||
h:hxj || 1,
|
||||
})
|
||||
console.info('surenjun =>distance',distance)
|
||||
//@ts-ignore
|
||||
globalThis.distanceClass.setTimeData(((distance / 100).toFixed(2)) * 1)
|
||||
globalThis.distanceClass?.setTimeData(((distance / 100).toFixed(2)) * 1)
|
||||
}
|
||||
this.prevJd = tJD;
|
||||
this.prevWd = tWD;
|
||||
@ -638,7 +642,6 @@ export default class Judge {
|
||||
kssj: time
|
||||
}
|
||||
}
|
||||
console.info(judgeTag +'filePath' , filePath)
|
||||
const {code} = await writeObjectOut(data,filePath)
|
||||
console.info(judgeTag, '项目开始 end')
|
||||
if (code === 2300007) {
|
||||
@ -802,18 +805,9 @@ export default class Judge {
|
||||
//及格分
|
||||
let passingGrade = passingScore
|
||||
if (isManual) {
|
||||
if (isAllProjectsEnd) {
|
||||
// 考试合格
|
||||
if (totalScore >= passingGrade) {
|
||||
// 考试合格
|
||||
await examJudgeEndExam();
|
||||
this.isExamEnd = true
|
||||
}
|
||||
} else {
|
||||
// 考试不合格
|
||||
await examJudgeEndExam()
|
||||
this.isExamEnd = true
|
||||
}
|
||||
// 考试不合格
|
||||
await examJudgeEndExam()
|
||||
this.isExamEnd = true
|
||||
this.isManual = true
|
||||
} else {
|
||||
const param302 = judgeConfigObj['302'];
|
||||
@ -824,17 +818,30 @@ export default class Judge {
|
||||
if (singlePlay) {
|
||||
console.info(judgeTag + ' isAllProjectsEnd => ',isAllProjectsEnd)
|
||||
if (isAllProjectsEnd) {
|
||||
if (examSubject == 3 && (param342 == 0 || param342 == 2) && (param302 != 6 || param302 != 7 || param302 != 8)) {
|
||||
if(param512[7] != 0){
|
||||
avPlayer.playAudio(['voice/综合评判.mp3'])
|
||||
this.judgeUI.isDeductedPopShow = true
|
||||
this.judgeUI.defaultTabIndex = 1
|
||||
this.isEndTip = true
|
||||
}
|
||||
} else {
|
||||
await examJudgeEndExam()
|
||||
this.isExamEnd = true
|
||||
}
|
||||
//成绩合格
|
||||
if(totalScore >= passingGrade && !isEndTip) {
|
||||
if (examSubject == 3 && (param342 == 0 || param342 == 2) && (param302 != 6 || param302 != 7 || param302 != 8)) {
|
||||
if(param512[7] != 0){
|
||||
avPlayer.playAudio(['voice/综合评判.mp3'])
|
||||
this.judgeUI.isDeductedPopShow = true
|
||||
this.judgeUI.defaultTabIndex = 1
|
||||
this.isEndTip = true
|
||||
return
|
||||
}
|
||||
} 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 {
|
||||
//成绩不合格
|
||||
@ -850,6 +857,11 @@ export default class Judge {
|
||||
}
|
||||
//成绩合格
|
||||
if (isAllProjectsEnd && totalScore >= passingGrade && !isEndTip) {
|
||||
if(examSubject == 2){
|
||||
await examJudgeEndExam()
|
||||
this.isExamEnd = true
|
||||
return
|
||||
}
|
||||
//考试合格自动退出
|
||||
if(examSubject == 3 && param302 == 4){
|
||||
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(';'),
|
||||
}
|
||||
}
|
||||
const temp = await writeObjectOut(data,filePath);
|
||||
promptWxCode('17C56', temp.code)
|
||||
const {code,keystr,message} = await writeObjectOut(data,filePath);
|
||||
promptWxCode('17C56', code)
|
||||
|
||||
if(code != 1){
|
||||
avPlayer.playAudio(['voice/监管失败.mp3'])
|
||||
this.isUdpEnd = true
|
||||
router.back();
|
||||
return
|
||||
}
|
||||
console.info(judgeTag, '考试结束 end')
|
||||
const param302 = judgeConfigObj['302'];
|
||||
judgeUI.loadingPopupVisible = true;
|
||||
@ -964,8 +983,13 @@ export default class Judge {
|
||||
let currentKssycs =0;
|
||||
let voiceURL = ''
|
||||
if (examSubject == 2) {
|
||||
voiceURL = (totalScore < passingScore ? `voice/unqualified_${kssycs == 1 ? 'one' : 'two'}.wav` : 'voice/qualified.mp3')
|
||||
switch (voiceURL){
|
||||
if (isAllProjectsEnd) {
|
||||
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':
|
||||
currentKssycs = 0;
|
||||
break;
|
||||
@ -1063,6 +1087,7 @@ export default class Judge {
|
||||
const projectsObj = this.judgeUI.projectsObj
|
||||
return projectsObj[type]?.abbreviation || '通用评判'
|
||||
}
|
||||
|
||||
// 扣分项目转换
|
||||
getKfStr = (code) => {
|
||||
const markRuleListObj = this.judgeUI.markRuleListObj;
|
||||
@ -1107,7 +1132,7 @@ export default class Judge {
|
||||
const sbxh = getSbxh(xmdm, xmxh)
|
||||
const {carzt,dcjl,qjjl,dxjl,bxjl} = performInfo || {};
|
||||
const asclshArr = stringToASC(
|
||||
fillZero((singlePlay ? 1111111111111 : lsh) || 0, 13)
|
||||
fillZero((singlePlay ? (examSubject == 2 ? '0000000000000':'1111111111111') : lsh) || 0, 13)
|
||||
);
|
||||
//13不足要补0
|
||||
const ascksyhArr = stringToASC(fillZero(ksyh || 0, 13))
|
||||
@ -1124,7 +1149,6 @@ export default class Judge {
|
||||
|
||||
//@ts-ignore
|
||||
let tempSd = ((judgeConfigObj['350'] ==0 ? sd : cs) * 1.852).toFixed(0) * 1
|
||||
console.info(judgeTag + "prevSD",tempSd);
|
||||
if(tempSd < 1){
|
||||
tempSd = 0
|
||||
}
|
||||
@ -1228,7 +1252,6 @@ export default class Judge {
|
||||
status: getCenterProjectStatus(current.status)
|
||||
}
|
||||
})
|
||||
// console.info(judgeTag+'TranslateProject',JSON.stringify(tempItems));
|
||||
|
||||
const arr = [];
|
||||
for (let i = 0; i <= 4; i++) {
|
||||
@ -1276,6 +1299,7 @@ export default class Judge {
|
||||
}
|
||||
//人工操作项目
|
||||
public setJudgeItem = async (itemno, type: 1 | 2) => {
|
||||
console.info('surenjun','2')
|
||||
const {fileLog} = this;
|
||||
await examJudgeArtificialItem(itemno * 1, type);
|
||||
await fileLog.setExamJudgeData({
|
||||
@ -1392,7 +1416,10 @@ export default class Judge {
|
||||
if (udpIndex % 5 === 0 && !isUdpEnd) {
|
||||
const judgeUdp = globalThis.judgeUdp
|
||||
const bytes = await this.getMessageHeartbeat(isExamEnd);
|
||||
console.info(judgeTag,JSON.stringify(bytes))
|
||||
console.info(judgeTag,'udp-prev-send')
|
||||
judgeUdp.send(bytes)
|
||||
console.info(judgeTag,'udp-prev-end')
|
||||
}
|
||||
globalThis.udpIndex += 1
|
||||
}
|
||||
@ -1444,12 +1471,13 @@ export default class Judge {
|
||||
const msgStr = strArr[num];
|
||||
if(msgStr == ''){
|
||||
console.info(judgeTag, '模拟数据考试结束')
|
||||
// globalThis.windowClass.setWindowSystemBarEnable(['navigation'])
|
||||
globalThis.windowClass.setWindowSystemBarEnable(['navigation'])
|
||||
clearInterval(judgeTimer)
|
||||
this.checkExamIsEnd(true)
|
||||
return
|
||||
}
|
||||
const msg = JSON.parse(strArr[num]);
|
||||
num++
|
||||
// 4.过程数据
|
||||
this.tempData = msg
|
||||
this.judgeUI.isDwztRight = msg?.gps?.dwzt == 4;
|
||||
@ -1467,8 +1495,8 @@ export default class Judge {
|
||||
await examJudgeRealExam(msg)
|
||||
const bytes = await this.getMessageHeartbeat();
|
||||
bytes && globalThis.judgeUdp.send(bytes)
|
||||
num++
|
||||
}, 200)
|
||||
|
||||
}, 50)
|
||||
|
||||
globalThis.judgeTimer = judgeTimer;
|
||||
}
|
||||
|
||||
@ -16,7 +16,7 @@ export const judgeConfig = {
|
||||
// 本地模型地址
|
||||
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:{
|
||||
//gps位数
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user