Compare commits
	
		
			6 Commits
		
	
	
		
			3458289d19
			...
			0c2ec74f30
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 0c2ec74f30 | |||
| aceaf3ea30 | |||
| 36cb737068 | |||
| 0369c2c98f | |||
| 60d8f3dec4 | |||
| ca57859bee | 
| @ -33,10 +33,19 @@ export default class FileUtil{ | |||||||
|     let path = absolutePath |     let path = absolutePath | ||||||
|     folderList.forEach((folderName=>{ |     folderList.forEach((folderName=>{ | ||||||
|       path += `/${folderName}`; |       path += `/${folderName}`; | ||||||
|       const isExit = fs.accessSync(path); |       try { | ||||||
|       if(!isExit){ |         const isExit = fs.accessSync(path); | ||||||
|         fs.mkdirSync(path) |         if(!isExit){ | ||||||
|  |           fs.mkdirSync(path) | ||||||
|  |         } | ||||||
|  |       } catch (e) { | ||||||
|  |         promptAction.showToast({ | ||||||
|  |           message:`初始化文件夹失败`+JSON.stringify(e), | ||||||
|  |           duration:4000, | ||||||
|  |         }) | ||||||
|       } |       } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|     })); |     })); | ||||||
|     return path; |     return path; | ||||||
|   } |   } | ||||||
|  | |||||||
| @ -1,12 +1,12 @@ | |||||||
| import systemTime from '@ohos.systemDateTime'; | import systemTime from '@ohos.systemDateTime'; | ||||||
| import { Array2Byte, fillZero, string2Bytes, stringToASC } from '../../common/utils/tools'; | import { Array2Byte, fillZero, string2Bytes, stringToASC } from '../../common/utils/tools'; | ||||||
| import { testKmItems } from '../../pages/judgeSDK/dataTest/index'; | import {  testKm2Items,testKm3Items } from '../../pages/judgeSDK/dataTest/index'; | ||||||
|  | import { judgeConfig } from '../../pages/judgeSDK/utils/judgeConfig'; | ||||||
| import { setJudgeUdp, setTopLineUdp } from './GlobalUdp'; | import { setJudgeUdp, setTopLineUdp } from './GlobalUdp'; | ||||||
| import { convertGpsCoord2 } from '../utils/tools'; | import { convertGpsCoord2 } from '../utils/tools'; | ||||||
| import common from '@ohos.app.ability.common'; | import common from '@ohos.app.ability.common'; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| export const initJudgeUdp = async () => { | export const initJudgeUdp = async () => { | ||||||
|   globalThis.serialIndex = 0; |   globalThis.serialIndex = 0; | ||||||
|   globalThis.udpIndex = 0; |   globalThis.udpIndex = 0; | ||||||
| @ -21,8 +21,6 @@ export const initJudgeUdp = async () => { | |||||||
|     lightLineUdp.send(arrBlueBuffer); |     lightLineUdp.send(arrBlueBuffer); | ||||||
|   } |   } | ||||||
|   globalThis.lightLineUdp = lightLineUdp |   globalThis.lightLineUdp = lightLineUdp | ||||||
|   /*******************************************/ |  | ||||||
| 
 |  | ||||||
|   globalThis.udpClient.onMessage_1(async (msg) => { |   globalThis.udpClient.onMessage_1(async (msg) => { | ||||||
|     const stachArr = msg.split(',') |     const stachArr = msg.split(',') | ||||||
|     if (stachArr[0] != '#DN_GD') { |     if (stachArr[0] != '#DN_GD') { | ||||||
| @ -42,25 +40,25 @@ export const getMessageHeartbeat = async (msg) => { | |||||||
|   const carInfo = globalThis.carInfo; |   const carInfo = globalThis.carInfo; | ||||||
|   const { examSubject,plateNo } = carInfo; |   const { examSubject,plateNo } = carInfo; | ||||||
|   const ksyh='0000000000000' |   const ksyh='0000000000000' | ||||||
|  |   const {fourInOneScreen:{gpsDigit}} = judgeConfig | ||||||
|   const asclshArr = stringToASC(fillZero(globalThis.lsh || 0, 13)); |   const asclshArr = stringToASC(fillZero(globalThis.lsh || 0, 13)); | ||||||
|   const ascksyhArr = stringToASC(fillZero(ksyh || 0, 13)) |   const ascksyhArr = stringToASC(fillZero(ksyh || 0, 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 | ||||||
|   const tempData = await getPlcData(msg); |   const tempData = await getPlcData(msg); | ||||||
|  |   const examType = examSubject == 2?2:3 | ||||||
|   const {sensor,gps} = tempData; |   const {sensor,gps} = tempData; | ||||||
|   const {zfxd,yfxd,shtd,ygd,jgd,skd,dh1,dh2,lhq,jsc,ssc,fsc,lb,mkg,aqd,ygq,cs,fdjzs} = sensor |   const {zfxd,yfxd,shtd,ygd,jgd,skd,dh1,dh2,lhq,jsc,ssc,fsc,lb,mkg,aqd,ygq,cs,fdjzs} = sensor | ||||||
|   const {jd,wd, hxj,  fyj,  hbg,} = gps |   const {jd,wd, hxj,  fyj,  hbg,} = gps | ||||||
|   const translateSignals = getTranslateSignals( |   const translateSignals = getTranslateSignals( | ||||||
|     [zfxd, yfxd, shtd, ygd, jgd, skd, dh1, dh2, lhq, jsc, ssc, fsc, lb, mkg, aqd, 0, 0, 0, 0, 0, 0, ygq, sensor.wd, 0] |     [zfxd, yfxd, shtd, ygd, jgd, skd, dh1, dh2, lhq, jsc, ssc, fsc, lb, mkg, aqd, 0, 0, 0, 0, 0, 0, ygq, sensor.wd, 0] | ||||||
|   ) |   ) | ||||||
|   console.log('jinweiduwaike',wd,jd,hxj,fyj,hbg) |  | ||||||
| 
 |  | ||||||
|   const translateProject = getTranslateProject(); |   const translateProject = getTranslateProject(); | ||||||
|   //@ts-ignore
 |   //@ts-ignore
 | ||||||
|   const translateJd = convertGpsCoord2(wd).toFixed(7) * Math.pow(10, 7) |   const translateJd = convertGpsCoord2(wd).toFixed(gpsDigit) * Math.pow(10, gpsDigit); | ||||||
|   //@ts-ignore
 |   //@ts-ignore
 | ||||||
|   const translateWd = convertGpsCoord2(jd).toFixed(7) * Math.pow(10, 7) |   const translateWd = convertGpsCoord2(jd).toFixed(gpsDigit) * Math.pow(10, gpsDigit) | ||||||
|   //@ts-ignore
 |   //@ts-ignore
 | ||||||
|   const translateProjects = translateProject.map(numStr => string2Bytes(parseInt(numStr, 2), 8)[0]) |   const translateProjects = translateProject.map(numStr => string2Bytes(parseInt(numStr, 2), 8)[0]) | ||||||
|   const arr = [ |   const arr = [ | ||||||
| @ -68,20 +66,20 @@ export const getMessageHeartbeat = async (msg) => { | |||||||
|     asclshArr.map(lsh => string2Bytes(lsh, 8)[0]), |     asclshArr.map(lsh => string2Bytes(lsh, 8)[0]), | ||||||
|     //考试员号
 |     //考试员号
 | ||||||
|     ascksyhArr.map(ksyh => string2Bytes(ksyh, 8)[0]), |     ascksyhArr.map(ksyh => string2Bytes(ksyh, 8)[0]), | ||||||
|     // 科目类型(0:未考试 1:科目二 2:科目三) + 考试开始时间
 |     //科目类型(0:未考试 1:科目二 2:科目三) + 考试开始时间
 | ||||||
|     string2Bytes('00000000000', 4 * 8), |     string2Bytes(`${0}${'00:00:00'}`, 4 * 8), | ||||||
|     // 消息序号
 |     // 消息序号
 | ||||||
|     string2Bytes(serialIndex, 2 * 8), |     string2Bytes(serialIndex, 2 * 8), | ||||||
|     translateSignals, |     translateSignals, | ||||||
|     //@ts-ignore
 |     //@ts-ignore
 | ||||||
|     string2Bytes(cs, 2 * 8), string2Bytes(fdjzs / 60, 8), string2Bytes(translateJd, 4 * 8), string2Bytes(translateWd, 4 * 8), string2Bytes(1, 8), |     string2Bytes(Math.floor(gps.sd*1.852) , 2 * 8), string2Bytes(fdjzs / 100, 8), string2Bytes(translateJd, 4 * 8), string2Bytes(translateWd, 4 * 8), string2Bytes(1, 8), | ||||||
|     //GPS东向距离
 |     //GPS东向距离
 | ||||||
|     string2Bytes(0, 4 * 8), |     string2Bytes(0, 4 * 8), | ||||||
|     //GPS北向距离
 |     //GPS北向距离
 | ||||||
|     string2Bytes(0, 4 * 8), |     string2Bytes(0, 4 * 8), | ||||||
|     //航向角                         俯仰角                   高程(海拔)
 |     //航向角                         俯仰角                   高程(海拔)
 | ||||||
|     //@ts-ignore
 |     //@ts-ignore
 | ||||||
|     string2Bytes((hxj + 90) * 100, 2 * 8), string2Bytes(fyj * 100, 2 * 8), string2Bytes(hbg * 100, 4 * 8), |     string2Bytes((hxj) * 100, 2 * 8), string2Bytes(fyj * 100, 2 * 8), string2Bytes(hbg * 100, 4 * 8), | ||||||
|     //dddd
 |     //dddd
 | ||||||
|     translateProjects, |     translateProjects, | ||||||
|     //当前项目编号
 |     //当前项目编号
 | ||||||
| @ -123,26 +121,28 @@ const getTranslateSignals = (tempItems) => { | |||||||
| 
 | 
 | ||||||
| // 中心所有项目转换
 | // 中心所有项目转换
 | ||||||
| const getTranslateProject = () => { | const getTranslateProject = () => { | ||||||
|   const allKmItemsObj = {}; |   const examSubject =globalThis.examSubject; | ||||||
|   testKmItems.forEach(item => { |  | ||||||
|     allKmItemsObj[item.code] = item; |  | ||||||
|   }) |  | ||||||
| 
 | 
 | ||||||
|   const tempItems = testKmItems.map(item => { |   const tempItems = (examSubject == 2 ? testKm2Items:testKm3Items).map(code => { | ||||||
|     const current = allKmItemsObj[item.code]; |  | ||||||
|     return { |     return { | ||||||
|       code: item.code, |       code, status:'0' | ||||||
|       status: getCenterProjectStatus(current.status) |  | ||||||
|     } |     } | ||||||
|   }) |   }) | ||||||
|   const len = Math.floor(tempItems.length / 8); |  | ||||||
|   const arr = []; |   const arr = []; | ||||||
|   for (let i = 0; i <= len; i++) { |   for (let i = 0; i <= 4; i++) { | ||||||
|     const temp = tempItems.slice(i * 8, (i + 1) * 8); |     const temp = tempItems.slice(i * 4, (i + 1) * 4); | ||||||
|     let tempArr = temp.map(item => item.status) |     let tempArr = temp.map(item => item.status) | ||||||
|     if (i === 4) { |     if (i === 4 && examSubject) { | ||||||
|       tempArr = tempArr.concat(['00', '00']) |       tempArr = examSubject == 2 | ||||||
|  |         //bit36-bit39保留
 | ||||||
|  |         ? tempArr.concat(['00', '00']) | ||||||
|  |         //bit30-bit39保留
 | ||||||
|  |         : tempArr.concat(['00', '00','00','00']) | ||||||
|     } |     } | ||||||
|  |     if (i === 3 && examSubject == 3) { | ||||||
|  |       tempArr = tempArr.concat(['00']) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     arr.push(tempArr.join('')); |     arr.push(tempArr.join('')); | ||||||
|   } |   } | ||||||
|   return arr.map(numStr => parseInt(numStr, 2)); |   return arr.map(numStr => parseInt(numStr, 2)); | ||||||
|  | |||||||
| @ -100,6 +100,11 @@ export async function getCurrentHourTime():Promise<string> { | |||||||
|   //@ts-ignore
 |   //@ts-ignore
 | ||||||
|   s = s < 10 ? '0' + s : s; |   s = s < 10 ? '0' + s : s; | ||||||
|   let ss = date.getMilliseconds(); |   let ss = date.getMilliseconds(); | ||||||
|  |   //@ts-ignore
 | ||||||
|  |   ss = ss < 10 ? '00' + ss : ss; | ||||||
|  |   //@ts-ignore
 | ||||||
|  |   ss = ss < 100 ? '0' + ss : ss; | ||||||
|  | 
 | ||||||
|   return `${h}${m}${s}${ss}` |   return `${h}${m}${s}${ss}` | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -43,28 +43,21 @@ struct Index { | |||||||
|     this.startTime = time.split(' ')[1] |     this.startTime = time.split(' ')[1] | ||||||
|     this.startFullTime = await getCurrentTime(1); |     this.startFullTime = await getCurrentTime(1); | ||||||
|     this.startHourTime = await getCurrentHourTime() |     this.startHourTime = await getCurrentHourTime() | ||||||
|  | 
 | ||||||
|     this.startExamTime = time |     this.startExamTime = time | ||||||
| 
 | 
 | ||||||
|     setInterval(async () => { |     setInterval(async () => { | ||||||
|       this.time = await getCurrentTime(); |       this.time = await getCurrentTime(); | ||||||
|       this.examTime += 1; |       this.examTime += 1; | ||||||
|     }, 1000); |     }, 1000); | ||||||
|     console.log('SURENJUN_JUDGE',10) |  | ||||||
| 
 | 
 | ||||||
|     //初始化数据库表 |     //初始化数据库表 | ||||||
|     await this.initDb() |     await this.initDb() | ||||||
| 
 |  | ||||||
|     //断点续考 |     //断点续考 | ||||||
|     console.log('SURENJUN_JUDGE',11) |  | ||||||
| 
 |  | ||||||
|     await this.goDdxkItems() |     await this.goDdxkItems() | ||||||
| 
 | 
 | ||||||
|     //初始化评判 |     //初始化评判 | ||||||
|     console.log('SURENJUN_JUDGE',6) |  | ||||||
| 
 |  | ||||||
|     const judge = await this.initJudge(); |     const judge = await this.initJudge(); | ||||||
|     console.log('SURENJUN_JUDGE',7) |  | ||||||
| 
 |  | ||||||
|     this.judge = judge |     this.judge = judge | ||||||
| 
 | 
 | ||||||
|   } |   } | ||||||
| @ -76,6 +69,7 @@ struct Index { | |||||||
|     const {isTrajectoryOpen,trajectoryPath} = judgeConfig |     const {isTrajectoryOpen,trajectoryPath} = judgeConfig | ||||||
|     await this.initStudent(); |     await this.initStudent(); | ||||||
|     await this.initCar(); |     await this.initCar(); | ||||||
|  | 
 | ||||||
|     //是否开启轨迹回放模式 |     //是否开启轨迹回放模式 | ||||||
|     if (isTrajectoryOpen) { |     if (isTrajectoryOpen) { | ||||||
|       this.initTrajectoryParam(trajectoryPath) |       this.initTrajectoryParam(trajectoryPath) | ||||||
| @ -85,16 +79,12 @@ struct Index { | |||||||
|       await this.initSysset(); |       await this.initSysset(); | ||||||
|       this.singlePlay = globalThis.singlePlay |       this.singlePlay = globalThis.singlePlay | ||||||
|     } |     } | ||||||
| 
 |  | ||||||
|     await this.initCDSBInfo() |     await this.initCDSBInfo() | ||||||
| 
 | 
 | ||||||
|     // 科目三新增读取表数据 |     // 科目三新增读取表数据 | ||||||
|     if (examSubject == 3) { |     if (examSubject == 3) { | ||||||
| 
 |  | ||||||
|       await this.initMapPoint() |       await this.initMapPoint() | ||||||
| 
 |  | ||||||
|       await this.initMapPointItem() |       await this.initMapPointItem() | ||||||
| 
 |  | ||||||
|       //定时上传考试里程 |       //定时上传考试里程 | ||||||
|       // let mileageTimer = setInterval(()=>{ |       // let mileageTimer = setInterval(()=>{ | ||||||
|       //   this.uploadMileage() |       //   this.uploadMileage() | ||||||
| @ -310,6 +300,8 @@ struct Index { | |||||||
|       }) |       }) | ||||||
|     }) |     }) | ||||||
|     const projects = this.projects; |     const projects = this.projects; | ||||||
|  |     console.info('surenjun',JSON.stringify(this.projectsObj)) | ||||||
|  | 
 | ||||||
|     if (!projects.length) { |     if (!projects.length) { | ||||||
|       Prompt.showToast({ |       Prompt.showToast({ | ||||||
|         message: '读取数据库信息失败,请重新联网更新!', |         message: '读取数据库信息失败,请重新联网更新!', | ||||||
| @ -341,10 +333,7 @@ struct Index { | |||||||
| 
 | 
 | ||||||
|   // 评判相关初始化 |   // 评判相关初始化 | ||||||
|   async initJudge() { |   async initJudge() { | ||||||
|     console.log('SURENJUN_JUDGE',0) |  | ||||||
| 
 |  | ||||||
|     const judge = new Judge(this); |     const judge = new Judge(this); | ||||||
|     console.log('SURENJUN_JUDGE',30) |  | ||||||
|     await judge.onJudgeFn(async (judgeData) => { |     await judge.onJudgeFn(async (judgeData) => { | ||||||
|       const {xmmcStr,carztStr,kfArr} = judgeData; |       const {xmmcStr,carztStr,kfArr} = judgeData; | ||||||
|       this.xmmcStr = xmmcStr; |       this.xmmcStr = xmmcStr; | ||||||
| @ -833,13 +822,6 @@ struct Index { | |||||||
|         .margin({ bottom: 20 }) |         .margin({ bottom: 20 }) | ||||||
|       }.height('90%').justifyContent(FlexAlign.Start).padding({ top: 37, left: 60, bottom: 35, right: 60 }) |       }.height('90%').justifyContent(FlexAlign.Start).padding({ top: 37, left: 60, bottom: 35, right: 60 }) | ||||||
| 
 | 
 | ||||||
|       //loading 弹窗 |  | ||||||
|       if (this.loadingPopupVisible) { |  | ||||||
|         LoadingPopup({ |  | ||||||
|           title: '正在生成考试记录,请稍后...', |  | ||||||
|         }) |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|       if (this.signDisplayComVisible) { |       if (this.signDisplayComVisible) { | ||||||
|         Column() { |         Column() { | ||||||
|           SignDisplayCom({ |           SignDisplayCom({ | ||||||
| @ -922,6 +904,13 @@ struct Index { | |||||||
|           } |           } | ||||||
|         }) |         }) | ||||||
|       } |       } | ||||||
|  | 
 | ||||||
|  |       //loading 弹窗 | ||||||
|  |       if (this.loadingPopupVisible) { | ||||||
|  |         LoadingPopup({ | ||||||
|  |           title: '正在生成考试记录,请稍后...', | ||||||
|  |         }) | ||||||
|  |       } | ||||||
|     } |     } | ||||||
|     .height('100%').backgroundColor('#000').justifyContent(FlexAlign.Start) |     .height('100%').backgroundColor('#000').justifyContent(FlexAlign.Start) | ||||||
|   } |   } | ||||||
| @ -955,9 +944,13 @@ struct Index { | |||||||
|       artSubject3ProjectsCodesArr, |       artSubject3ProjectsCodesArr, | ||||||
|       currentXmdm, |       currentXmdm, | ||||||
|     } = this; |     } = this; | ||||||
|     const projectCode = artSubject3ProjectsCodesArr[index] |     const projectCode = artSubject3ProjectsCodesArr[index]; | ||||||
|  |     console.info('surenjun',getIsExitManualProject(index)) | ||||||
|     if (getIsExitManualProject(index)) { |     if (getIsExitManualProject(index)) { | ||||||
|       // 正在进行的项目 取消项目 |       // 正在进行的项目 取消项目 | ||||||
|  |       console.info('surenjun isManualProjectIn=>',isManualProjectIn) | ||||||
|  |       console.info('surenjun projectCode=>',projectCode) | ||||||
|  |       console.info('surenjun currentXmdm=>',currentXmdm) | ||||||
|       if (isManualProjectIn && projectCode === currentXmdm) { |       if (isManualProjectIn && projectCode === currentXmdm) { | ||||||
|         await this.judge.setJudgeItem(currentXmdm, 2); |         await this.judge.setJudgeItem(currentXmdm, 2); | ||||||
|         Prompt.showToast({ |         Prompt.showToast({ | ||||||
|  | |||||||
| @ -17,14 +17,18 @@ import promptAction from '@ohos.promptAction'; | |||||||
| import FilePhoto from './judgeSDK/utils/filePhoto'; | import FilePhoto from './judgeSDK/utils/filePhoto'; | ||||||
| import { getSyncData, upDateTableByArray } from '../common/service/initable'; | import { getSyncData, upDateTableByArray } from '../common/service/initable'; | ||||||
| import { CandidateData, EmptyCandidateObject } from '../mock/CandidateData'; | import { CandidateData, EmptyCandidateObject } from '../mock/CandidateData'; | ||||||
| import BoardPrePareSetPopup from './compontents/judge/BoardPrePareSetPopup'; | import BoardPrePareSetPopup from './compontents/judge/BoardPrePareSetPopup' | ||||||
| import LoadingPopup from './compontents/judge/LoadingPopup'; | import LoadingPopup from './compontents/judge/LoadingPopup'; | ||||||
| import VoiceAnnounce from './judgeSDK/utils/voiceAnnouncements'; | import VoiceAnnounce from './judgeSDK/utils/voiceAnnouncements'; | ||||||
|  | import { JudgeConfig } from '../config/judge'; | ||||||
| import { judgeConfig } from './judgeSDK/utils/judgeConfig'; | import { judgeConfig } from './judgeSDK/utils/judgeConfig'; | ||||||
| 
 | import { initJudgeUdp } from '../common/utils/UdpJudge'; | ||||||
| @Entry | @Entry | ||||||
| @Component | @Component | ||||||
| struct UserInfo { | struct UserInfo { | ||||||
|  |   private filePhoto: FilePhoto | ||||||
|  |   private avPlayer | ||||||
|  | 
 | ||||||
|   @State pageIndex: number = 0 |   @State pageIndex: number = 0 | ||||||
|   @State ratio: number = 1700 / 960 |   @State ratio: number = 1700 / 960 | ||||||
|   @State index: number = 0 |   @State index: number = 0 | ||||||
| @ -43,12 +47,9 @@ struct UserInfo { | |||||||
|   @State isBoardPrePareSetPopupOpen: boolean = false |   @State isBoardPrePareSetPopupOpen: boolean = false | ||||||
|   @State isFirstBoardPrePareSetPopupBtnShow: boolean = false |   @State isFirstBoardPrePareSetPopupBtnShow: boolean = false | ||||||
|   @State isBoardPrePareSetPopupShow: boolean = false |   @State isBoardPrePareSetPopupShow: boolean = false | ||||||
|   @State isLoadingPopupVisible: boolean = false; |   @State isLoadingPopupVisible:boolean = false; | ||||||
|   @State loadingText: string = '正在认证监管信息,请稍后...' |   @State loadingText:string = '正在认证监管信息,请稍后...' | ||||||
|   @State sczbkf: { |   @State sczbkf:{xmdm:number,kfdm:string}[] = [] | ||||||
|     xmdm: number, |  | ||||||
|     kfdm: string |  | ||||||
|   }[] = [] |  | ||||||
|   @State currentUser: User = EmptyCandidateObject |   @State currentUser: User = EmptyCandidateObject | ||||||
|   @State dataList: Array<User> = [] |   @State dataList: Array<User> = [] | ||||||
|   @State list: Array<User> = [] |   @State list: Array<User> = [] | ||||||
| @ -61,7 +62,7 @@ struct UserInfo { | |||||||
|   @State idCard: string = ''; |   @State idCard: string = ''; | ||||||
|   @State grantDept: string = ''; |   @State grantDept: string = ''; | ||||||
|   //是否已经开始考试 |   //是否已经开始考试 | ||||||
|   @State isExamStart: boolean = false; |   @State isExamStart:boolean = false; | ||||||
|   @State effectDate: string = ''; |   @State effectDate: string = ''; | ||||||
|   @State interval: any = null; |   @State interval: any = null; | ||||||
|   @State studentRefreshStatue: string = '0'; |   @State studentRefreshStatue: string = '0'; | ||||||
| @ -86,10 +87,7 @@ struct UserInfo { | |||||||
|       return photoBase64 |       return photoBase64 | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|   private filePhoto: FilePhoto |   private AccountTable = new AccountTable(() => {}, USER); | ||||||
|   private avPlayer |  | ||||||
|   private AccountTable = new AccountTable(() => { |  | ||||||
|   }, USER); |  | ||||||
|   private context = getContext(this) as common.UIAbilityContext; |   private context = getContext(this) as common.UIAbilityContext; | ||||||
|   private labelBlocks = [ |   private labelBlocks = [ | ||||||
|     { label: '考生姓名', key: 'xm' }, |     { label: '考生姓名', key: 'xm' }, | ||||||
| @ -514,12 +512,12 @@ struct UserInfo { | |||||||
|     this.currentUser.id = '1' |     this.currentUser.id = '1' | ||||||
|     const avPlayer = this.avPlayer; |     const avPlayer = this.avPlayer; | ||||||
|     this.isLoadingPopupVisible = true |     this.isLoadingPopupVisible = true | ||||||
|     avPlayer.playAudio([`voice/监管通信中.mp3`], false, async () => { |     avPlayer.playAudio([`voice/监管通信中.mp3`],false,async ()=>{ | ||||||
|       const code = await this.beginExam(); |       const code = await this.beginExam(); | ||||||
|       if (code != 1) { |       if (code != 1) { | ||||||
|         promptAction.showToast({ |         promptAction.showToast({ | ||||||
|           message: '开始考试接口调用失败!', |           message:'开始考试接口调用失败!', | ||||||
|           duration: 4000 |           duration:4000 | ||||||
|         }) |         }) | ||||||
|         return |         return | ||||||
|       } |       } | ||||||
| @ -543,30 +541,30 @@ struct UserInfo { | |||||||
|   // 检测车门、熄火信号 |   // 检测车门、熄火信号 | ||||||
|   async checkSignal(): Promise<boolean> { |   async checkSignal(): Promise<boolean> { | ||||||
|     const {isCheckFireOpen} = judgeConfig |     const {isCheckFireOpen} = judgeConfig | ||||||
|     return new Promise((resolve, reject) => { |     return new Promise((resolve,reject)=>{ | ||||||
|       if (isCheckFireOpen) { |       if(isCheckFireOpen){ | ||||||
|         resolve(true) |         resolve(true) | ||||||
|         // return |         // return | ||||||
|       } |       } | ||||||
|       console.info('socketTag[PLC.UdpClient]', '注册udp回调') |       console.info('socketTag[PLC.UdpClient]', '注册udp回调') | ||||||
|       let plcValue = globalThis.udpClient.getCurrentMessage(); |       let plcValue =  globalThis.udpClient.getCurrentMessage(); | ||||||
|       console.info('surenjun', plcValue) |       console.info('surenjun',plcValue) | ||||||
|       const msgArr = plcValue.split(',') || '' |       const msgArr = plcValue.split(',') || '' | ||||||
|       const mkg = msgArr[14]; |       const mkg = msgArr[14]; | ||||||
|       const fdjzs = msgArr[25]; |       const fdjzs = msgArr[25]; | ||||||
|       if (mkg == 1) { |       if(mkg == 1){ | ||||||
|         this.avPlayer.playAudio(['voice/关门.mp3']) |         this.avPlayer.playAudio(['voice/关门.mp3']) | ||||||
|         promptAction.showToast({ |         promptAction.showToast({ | ||||||
|           message: '请关闭车门', |           message:'请关闭车门', | ||||||
|           duration: 4000 |           duration:4000 | ||||||
|         }) |         }) | ||||||
|         reject(false) |         reject(false) | ||||||
|       } |       } | ||||||
|       if (fdjzs * 1 > 0) { |       if(fdjzs*1 > 0){ | ||||||
|         this.avPlayer.playAudio(['voice/熄火.mp3']) |         this.avPlayer.playAudio(['voice/熄火.mp3']) | ||||||
|         promptAction.showToast({ |         promptAction.showToast({ | ||||||
|           message: '请熄火', |           message:'请熄火', | ||||||
|           duration: 4000 |           duration:4000 | ||||||
|         }) |         }) | ||||||
|         reject(false) |         reject(false) | ||||||
|       } |       } | ||||||
| @ -744,6 +742,7 @@ struct UserInfo { | |||||||
|                 this.isFirstBoardPrePareSetPopupBtnShow = true; |                 this.isFirstBoardPrePareSetPopupBtnShow = true; | ||||||
|                 this.stepFlag = false |                 this.stepFlag = false | ||||||
|                 this.stopDeviceById() |                 this.stopDeviceById() | ||||||
|  |                 initJudgeUdp() | ||||||
|               } catch (e) { |               } catch (e) { | ||||||
| 
 | 
 | ||||||
|               } |               } | ||||||
| @ -759,11 +758,8 @@ struct UserInfo { | |||||||
|                   if (!this.currentUser.xm) { |                   if (!this.currentUser.xm) { | ||||||
|                     return |                     return | ||||||
|                   } |                   } | ||||||
| 
 |  | ||||||
|                   console.info('surenjun currentUser', JSON.stringify(this.currentUser)) |  | ||||||
|                   if (globalThis.singlePlay) { |                   if (globalThis.singlePlay) { | ||||||
|                     const {examSubject} = globalThis.carInfo; |                     const {examSubject} = globalThis.carInfo; | ||||||
|                     console.info('surenjun => sczbkf', JSON.stringify(this.sczbkf)) |  | ||||||
|                     await upDateTableByArray('USER', [this.currentUser]) |                     await upDateTableByArray('USER', [this.currentUser]) | ||||||
|                     router.pushUrl({ |                     router.pushUrl({ | ||||||
|                       url: examSubject == 3 ? 'pages/Roads' : 'pages/Judge', |                       url: examSubject == 3 ? 'pages/Roads' : 'pages/Judge', | ||||||
| @ -779,6 +775,7 @@ struct UserInfo { | |||||||
|                   if (this.FaceOpenStatue != '0') { |                   if (this.FaceOpenStatue != '0') { | ||||||
|                     this.showFaceCompare = true |                     this.showFaceCompare = true | ||||||
|                   } else { |                   } else { | ||||||
|  |                     initJudgeUdp() | ||||||
|                     this.sfbdinterfaceFn() |                     this.sfbdinterfaceFn() | ||||||
|                   } |                   } | ||||||
|                 } catch (e) { |                 } catch (e) { | ||||||
| @ -845,7 +842,7 @@ struct UserInfo { | |||||||
|       } |       } | ||||||
| 
 | 
 | ||||||
|       // loading |       // loading | ||||||
|       if (this.isLoadingPopupVisible) { |       if(this.isLoadingPopupVisible){ | ||||||
|         LoadingPopup({ |         LoadingPopup({ | ||||||
|           title: this.loadingText, |           title: this.loadingText, | ||||||
|         }) |         }) | ||||||
| @ -885,7 +882,7 @@ struct CommText { | |||||||
| 
 | 
 | ||||||
|   build() { |   build() { | ||||||
|     Text(this.text) |     Text(this.text) | ||||||
|       .fontSize(19.5 * this.ratio) |       .fontSize(16 * this.ratio) | ||||||
|       .lineHeight(30 * this.ratio) |       .lineHeight(30 * this.ratio) | ||||||
|       .fontWeight(500) |       .fontWeight(500) | ||||||
|       .fontColor(this.color) |       .fontColor(this.color) | ||||||
| @ -911,13 +908,9 @@ struct LabelBlock { | |||||||
| 
 | 
 | ||||||
|   build() { |   build() { | ||||||
|     Row() { |     Row() { | ||||||
|       Text(this.label).fontSize(18 * this.ratio).fontColor('#99948A') |       Text(this.label).fontSize(16 * this.ratio).fontColor('#99948A') | ||||||
|       Row() { |       Row() { | ||||||
|         Text(decodeURIComponent(this.value)) |         Text(decodeURIComponent(this.value)).fontColor('#fff').textAlign(TextAlign.Center).width('100%') | ||||||
|           .fontColor('#fff') |  | ||||||
|           .textAlign(TextAlign.Center) |  | ||||||
|           .width('100%') |  | ||||||
|           .fontSize(20 * this.ratio) |  | ||||||
|       } |       } | ||||||
|       .commLabelStyle() |       .commLabelStyle() | ||||||
|     }.margin({ bottom: 10 * this.ratio }) |     }.margin({ bottom: 10 * this.ratio }) | ||||||
|  | |||||||
| @ -25,10 +25,7 @@ export async function examJudgeVersion(){ | |||||||
|  * @desc 设置评判日志级别和日志回调函数 |  * @desc 设置评判日志级别和日志回调函数 | ||||||
|  */ |  */ | ||||||
| export async function examJudgeSetLogCallback(level:number,handleLog:Function):Promise<string>{ | export async function examJudgeSetLogCallback(level:number,handleLog:Function):Promise<string>{ | ||||||
|   console.log('SURENJUN_JUDGESDK',0) |  | ||||||
|   const temp = libJudgeSdk.examJudgeSetLogCallback(level,handleLog); |   const temp = libJudgeSdk.examJudgeSetLogCallback(level,handleLog); | ||||||
|   console.log('SURENJUN_JUDGESDK',1) |  | ||||||
| 
 |  | ||||||
|   return await handle(temp,'examJudgeSetLogCallback') |   return await handle(temp,'examJudgeSetLogCallback') | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -113,7 +113,6 @@ export interface EXAMDATA { | |||||||
|     xmxh: string, |     xmxh: string, | ||||||
|     xmhg: 1 | 0 |     xmhg: 1 | 0 | ||||||
|   }, |   }, | ||||||
| 
 |  | ||||||
|   //扣分
 |   //扣分
 | ||||||
|   kf: { |   kf: { | ||||||
|     //项目代码
 |     //项目代码
 | ||||||
| @ -131,7 +130,13 @@ export interface EXAMDATA { | |||||||
|     //前进距离
 |     //前进距离
 | ||||||
|     qjjl: number, |     qjjl: number, | ||||||
|     //倒车距离
 |     //倒车距离
 | ||||||
|     dcjl: number |     dcjl: number, | ||||||
|  |     d1: number | ||||||
|  |     d2: number | ||||||
|  |     d3: number | ||||||
|  |     d4: number | ||||||
|  |     d5: number | ||||||
|  |     d6: number | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   //项目取消
 |   //项目取消
 | ||||||
|  | |||||||
| @ -557,42 +557,72 @@ export const testUIAllitems = [ | |||||||
|     {"name":"直角转弯","abbreviation":"直角转弯","projectCode":"6","projectCodeCenter":"20700","type":"7"}, |     {"name":"直角转弯","abbreviation":"直角转弯","projectCode":"6","projectCodeCenter":"20700","type":"7"}, | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| //所有的科二项目
 | export const wuxiKm3Items = [ | ||||||
| export const testKmItems = [ |     {projectCode:'1',projectCodeCenter:'40100',name:'上车准备',abbreviation:'上车准备'}, | ||||||
|  |     {projectCode:'2',projectCodeCenter:'40200',name:'起步',abbreviation:'起步'}, | ||||||
|  |     {projectCode:'3',projectCodeCenter:'40300',name:'直线行驶',abbreviation:'直线行驶'}, | ||||||
|  |     {projectCode:'4',projectCodeCenter:'40500',name:'变更车道',abbreviation:'变更车道'}, | ||||||
|  |     {projectCode:'5',projectCodeCenter:'40700',name:'直行通过路口',abbreviation:'直行通过路口'}, | ||||||
|  |     {projectCode:'6',projectCodeCenter:'41000',name:'通过人行横道线',abbreviation:'通过人行横道线'}, | ||||||
|  |     {projectCode:'7',projectCodeCenter:'41100',name:'通过学校区域',abbreviation:'通过学校区域'}, | ||||||
|  |     {projectCode:'8',projectCodeCenter:'41200',name:'通过公共汽车站',abbreviation:'通过公共汽车站'}, | ||||||
|  |     {projectCode:'9' ,projectCodeCenter:'41300',name:'会车',abbreviation:'会车'}, | ||||||
|  |     {projectCode:'10',projectCodeCenter:'41400',name:'超车',abbreviation:'超车'}, | ||||||
|  |     {projectCode:'11',projectCodeCenter:'40600',name:'靠边停车',abbreviation:'靠边停车'}, | ||||||
|  |     {projectCode:'12',projectCodeCenter:'41500',name:'掉头',abbreviation:'掉头'}, | ||||||
|  |     {projectCode:'13',projectCodeCenter:'41600',name:'夜间行驶',abbreviation:'夜间行驶'}, | ||||||
|  |     {projectCode:'14',projectCodeCenter:'40400',name:'加减档位操作',abbreviation:'加减档位操作'}, | ||||||
|  |     {projectCode:'15',projectCodeCenter:'40800',name:'路口左转弯',abbreviation:'路口左转弯'}, | ||||||
|  |     {projectCode:'16',projectCodeCenter:'40900',name:'路口右转弯',abbreviation:'路口右转弯'}, | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | //所有的科二 科目三项目
 | ||||||
|  | export const testKm2Items = [ | ||||||
|     {code:'20100',status:0}, |     {code:'20100',status:0}, | ||||||
|     {code:'20200',status:0}, |     {code:'20200',status:0}, | ||||||
|     {code:'20300',status:0}, |     {code:'20300',status:0}, | ||||||
|     {code:'20400',status:0}, |     {code:'20400',status:0}, | ||||||
|  | 
 | ||||||
|     {code:'20500',status:0}, |     {code:'20500',status:0}, | ||||||
|     {code:'20600',status:0}, |     {code:'20600',status:0}, | ||||||
|     {code:'20700',status:0}, |     {code:'20700',status:0}, | ||||||
|     {code:'20800',status:0}, |     {code:'20800',status:0}, | ||||||
|  | 
 | ||||||
|     {code:'20900',status:0}, |     {code:'20900',status:0}, | ||||||
|     {code:'21000',status:0}, |     {code:'21000',status:0}, | ||||||
|     {code:'21100',status:0}, |     {code:'21100',status:0}, | ||||||
|     {code:'21200',status:0}, |     {code:'21200',status:0}, | ||||||
|  | 
 | ||||||
|     {code:'21300',status:0}, |     {code:'21300',status:0}, | ||||||
|     {code:'21400',status:0}, |     {code:'21400',status:0}, | ||||||
|     {code:'21500',status:0}, |     {code:'21500',status:0}, | ||||||
|     {code:'21600',status:0}, |     {code:'21600',status:0}, | ||||||
|  | 
 | ||||||
|     {code:'21700',status:0}, |     {code:'21700',status:0}, | ||||||
|     {code:'21800',status:0}, |     {code:'21800',status:0}, | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | export const testKm3Items= [ | ||||||
|     {code:'40100',status:0}, |     {code:'40100',status:0}, | ||||||
|     {code:'40200',status:0}, |     {code:'40200',status:0}, | ||||||
|     {code:'40300',status:0}, |     {code:'40300',status:0}, | ||||||
|     {code:'40400',status:0}, |     {code:'40400',status:0}, | ||||||
|  | 
 | ||||||
|     {code:'40500',status:0}, |     {code:'40500',status:0}, | ||||||
|     {code:'40600',status:0}, |     {code:'40600',status:0}, | ||||||
|     {code:'40700',status:0}, |     {code:'40700',status:0}, | ||||||
|     {code:'40800',status:0}, |     {code:'40800',status:0}, | ||||||
|  | 
 | ||||||
|     {code:'40900',status:0}, |     {code:'40900',status:0}, | ||||||
|     {code:'41000',status:0}, |     {code:'41000',status:0}, | ||||||
|     {code:'41100',status:0}, |     {code:'41100',status:0}, | ||||||
|     {code:'41200',status:0}, |     {code:'41200',status:0}, | ||||||
|  | 
 | ||||||
|     {code:'41300',status:0}, |     {code:'41300',status:0}, | ||||||
|     {code:'41400',status:0}, |     {code:'41400',status:0}, | ||||||
|     {code:'41500',status:0}, |     {code:'41500',status:0}, | ||||||
|     {code:'41600',status:0}, |     {code:'41600',status:0}, | ||||||
|  | 
 | ||||||
|     {code:'41700',status:0}, |     {code:'41700',status:0}, | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -2,7 +2,7 @@ import systemTime from '@ohos.systemDateTime'; | |||||||
| import router from '@ohos.router'; | import router from '@ohos.router'; | ||||||
| import util from '@ohos.util'; | import util from '@ohos.util'; | ||||||
| import buffer from '@ohos.buffer'; | import buffer from '@ohos.buffer'; | ||||||
| import { testKmItems, testMarkRules } from './dataTest/index'; | import { testKm2Items,testKm3Items, testMarkRules } from './dataTest/index'; | ||||||
| import { EXAMDATA, SOUND, KSJS } from './api/judgeSDK'; | import { EXAMDATA, SOUND, KSJS } from './api/judgeSDK'; | ||||||
| import VoiceAnnounce from './utils/voiceAnnouncements'; | import VoiceAnnounce from './utils/voiceAnnouncements'; | ||||||
| import FileModel from './utils/fileModel'; | import FileModel from './utils/fileModel'; | ||||||
| @ -28,6 +28,7 @@ import { | |||||||
| import { | import { | ||||||
|   getCarStatus, |   getCarStatus, | ||||||
|   getCarStatusType, |   getCarStatusType, | ||||||
|  |   getDwStatusType, | ||||||
|   getCenterProjectStatus, |   getCenterProjectStatus, | ||||||
|   getKmProjectVoice, |   getKmProjectVoice, | ||||||
|   getTranslateSignals, |   getTranslateSignals, | ||||||
| @ -78,18 +79,19 @@ export default class Judge { | |||||||
|     this.trajectoryPath = trajectoryPath; |     this.trajectoryPath = trajectoryPath; | ||||||
| 
 | 
 | ||||||
|     this.isExam = !this.judgeUI.singlePlay; |     this.isExam = !this.judgeUI.singlePlay; | ||||||
|     const {projectsCenterObj} = judgeUI |     const {projectsCenterObj,examSubject} = judgeUI; | ||||||
| 
 |  | ||||||
|     //科目三待修改
 |     //科目三待修改
 | ||||||
|     testKmItems.forEach(item => { |     (examSubject ==2 ? testKm2Items : testKm3Items ).forEach(item => { | ||||||
|       this.testKmItems[item.code] = item; |       this.testKmItems[item.code] = item; | ||||||
|       //考试项目存在
 |       //考试项目存在
 | ||||||
|       if (projectsCenterObj[item.code]) { |       this.testKmItems[item.code] = { | ||||||
|         this.testKmItems[item.code] = { |         code: item.code, | ||||||
|           code: item.code, status: 1 |         status: 1, | ||||||
|         } |         // status: projectsCenterObj[item.code]?.isRequired ? 1 : 0
 | ||||||
|       } |       } | ||||||
|     }) |     }) | ||||||
|  | 
 | ||||||
|  |     console.info(judgeTag+'testKmItems',JSON.stringify(this.testKmItems)) | ||||||
|     this.isExamEnd = false; |     this.isExamEnd = false; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
| @ -163,7 +165,7 @@ export default class Judge { | |||||||
|     await fileLog.setExamJudgeData(beginExamInfo) |     await fileLog.setExamJudgeData(beginExamInfo) | ||||||
|     await examJudgeBeginExam(beginExamInfo); |     await examJudgeBeginExam(beginExamInfo); | ||||||
|     console.info(judgeTag, '6.开始考试注册完成') |     console.info(judgeTag, '6.开始考试注册完成') | ||||||
|     avPlayer.playAudio(['voice/ksks.WAV']) |     avPlayer.playAudio([globalThis.singlePlay?'voice/ksks.WAV':'voice/监管成功.mp3']) | ||||||
|     this.judgeUI.draw = true |     this.judgeUI.draw = true | ||||||
|     // 处理轨迹plc信息
 |     // 处理轨迹plc信息
 | ||||||
|     if (isTrajectoryOpen) { |     if (isTrajectoryOpen) { | ||||||
| @ -299,6 +301,7 @@ export default class Judge { | |||||||
|     switch (event) { |     switch (event) { | ||||||
|     //项目开始
 |     //项目开始
 | ||||||
|       case 1: |       case 1: | ||||||
|  |         console.info(judgeTag,'项目开始开始1') | ||||||
|         judgeUI.projectsObj[xmdm].type = '2'; |         judgeUI.projectsObj[xmdm].type = '2'; | ||||||
|         if (isManualProjectIn) { |         if (isManualProjectIn) { | ||||||
|           //手动项目是否在进行中
 |           //手动项目是否在进行中
 | ||||||
| @ -310,6 +313,7 @@ export default class Judge { | |||||||
|         this.judgeUI.currentXmdm = xmdm; |         this.judgeUI.currentXmdm = xmdm; | ||||||
|         const xmmcStr = judgeUI.projectsObj[xmdm].name; |         const xmmcStr = judgeUI.projectsObj[xmdm].name; | ||||||
|         const xmmcCode = judgeUI.projectsObj[xmdm].projectCodeCenter; |         const xmmcCode = judgeUI.projectsObj[xmdm].projectCodeCenter; | ||||||
|  |         console.info(judgeTag,JSON.stringify(judgeUI.projectsObj[xmdm])) | ||||||
|         const xmmcSingleCode = judgeUI.projectsObj[xmdm].projectCode; |         const xmmcSingleCode = judgeUI.projectsObj[xmdm].projectCode; | ||||||
|         this.testKmItems[xmmcCode].status = 2; |         this.testKmItems[xmmcCode].status = 2; | ||||||
|         this.xmmcStr = xmmcStr; |         this.xmmcStr = xmmcStr; | ||||||
| @ -319,19 +323,22 @@ export default class Judge { | |||||||
|         this.xmxh = xmxh; |         this.xmxh = xmxh; | ||||||
|         this.judgeUI.isProjectIn = true |         this.judgeUI.isProjectIn = true | ||||||
|         this.judgeUI.isDeductedPopShow = true |         this.judgeUI.isDeductedPopShow = true | ||||||
|  |         console.info(judgeTag,'项目开始开始2') | ||||||
|         break; |         break; | ||||||
| 
 | 
 | ||||||
|     //项目结束
 |     //项目结束
 | ||||||
|       case 2: |       case 2: { | ||||||
|  |         const xmmcCode = judgeUI.projectsObj[xmdm].projectCodeCenter; | ||||||
|         judgeUI.projectsObj[xmdm].type = (xmjs.xmhg === 0 ? '4' : '3'); |         judgeUI.projectsObj[xmdm].type = (xmjs.xmhg === 0 ? '4' : '3'); | ||||||
|       //计算项目是否全部结束
 |         //计算项目是否全部结束
 | ||||||
|         this.judgeUI.isProjectIn = (Reflect.ownKeys(judgeUI.projectsObj).filter( |         this.judgeUI.isProjectIn = (Reflect.ownKeys(judgeUI.projectsObj).filter( | ||||||
|           projectKey => judgeUI.projectsObj[projectKey].type == '2').length |           projectKey => judgeUI.projectsObj[projectKey].type == '2').length | ||||||
|         ) > 0; |         ) > 0; | ||||||
|         if (isManualProjectIn) { |         if (isManualProjectIn) { | ||||||
|           this.judgeUI.isManualProjectIn = false |           this.judgeUI.isManualProjectIn = false | ||||||
|         } |         } | ||||||
|       //统计必考项目数量
 |         this.testKmItems[xmmcCode].status = 3; | ||||||
|  |         //统计必考项目数量
 | ||||||
|         this.xmmcStr = '无'; |         this.xmmcStr = '无'; | ||||||
|         this.xmmcCode = ''; |         this.xmmcCode = ''; | ||||||
|         this.xmmcSingleCode = 0; |         this.xmmcSingleCode = 0; | ||||||
| @ -339,7 +346,7 @@ export default class Judge { | |||||||
|         this.judgeUI.isDeductedPopShow = false |         this.judgeUI.isDeductedPopShow = false | ||||||
|         this.judgeUI.currentXmdm = undefined; |         this.judgeUI.currentXmdm = undefined; | ||||||
|         break; |         break; | ||||||
| 
 |       } | ||||||
|     //扣分
 |     //扣分
 | ||||||
|       case 3: |       case 3: | ||||||
|         const thisKf = getKfStr(`${kf.xmdm}_${kf.kfdm}`) |         const thisKf = getKfStr(`${kf.xmdm}_${kf.kfdm}`) | ||||||
| @ -445,17 +452,13 @@ export default class Judge { | |||||||
|       //项目已考不上传监管信息
 |       //项目已考不上传监管信息
 | ||||||
|         if (!isEnd) { |         if (!isEnd) { | ||||||
|            judgeTask.addTask(async () => { |            judgeTask.addTask(async () => { | ||||||
|             console.info(judgeTag, `项目开始-${xmdm}-${projectsObj[xmdm].name}`) |               console.info(judgeTag, `项目开始-${xmdm}-${projectsObj[xmdm].name}`) | ||||||
|             await beginProject(xmdm) |               await beginProject(xmdm) | ||||||
|           }, { |            },{isDelay: true}) | ||||||
|             isDelay: true |  | ||||||
|           }) |  | ||||||
|            judgeTask.addTask(async () => { |            judgeTask.addTask(async () => { | ||||||
|             console.info(judgeTag, `项目-${xmdm}-上传照片 start`) |             console.info(judgeTag, `项目-${xmdm}-上传照片 start`) | ||||||
|             await uploadProgressPhoto(xmdm) |             await uploadProgressPhoto(xmdm) | ||||||
|           }, { |            },{isDelay: true}) | ||||||
|             isDelay: true |  | ||||||
|           }) |  | ||||||
|           this.judgeUI.projectsObj[xmdm].isUpload = true; |           this.judgeUI.projectsObj[xmdm].isUpload = true; | ||||||
|         } |         } | ||||||
|         break; |         break; | ||||||
| @ -476,11 +479,8 @@ export default class Judge { | |||||||
|             judgeTask.addTask(async () => { |             judgeTask.addTask(async () => { | ||||||
|               console.info(judgeTag, `项目结束-${xmdm}-${projectsObj[xmdm].name}`) |               console.info(judgeTag, `项目结束-${xmdm}-${projectsObj[xmdm].name}`) | ||||||
|               await endProject(xmdm); |               await endProject(xmdm); | ||||||
|             }, { |             }, {isDelay: true}) | ||||||
|               isDelay: true |  | ||||||
|             }) |  | ||||||
|           } |           } | ||||||
| 
 |  | ||||||
|         } |         } | ||||||
|         judgeUI.projectsObj[xmdm].isEnd = true; |         judgeUI.projectsObj[xmdm].isEnd = true; | ||||||
|         break; |         break; | ||||||
| @ -499,9 +499,7 @@ export default class Judge { | |||||||
|           await judgeTask.addTask(async () => { |           await judgeTask.addTask(async () => { | ||||||
|             console.info(judgeTag, `项目扣分-${currentKf.markcatalog}-${currentKf.desc}`) |             console.info(judgeTag, `项目扣分-${currentKf.markcatalog}-${currentKf.desc}`) | ||||||
|             await pointsDedute(currentKf.xmdm, currentKf) |             await pointsDedute(currentKf.xmdm, currentKf) | ||||||
|           }, { |           }, {isDelay: true}) | ||||||
|             isDelay: true |  | ||||||
|           }) |  | ||||||
|         } |         } | ||||||
|         break; |         break; | ||||||
| 
 | 
 | ||||||
| @ -524,13 +522,11 @@ export default class Judge { | |||||||
|     } |     } | ||||||
|     if (event == 2 || event == 3) { |     if (event == 2 || event == 3) { | ||||||
|       setTimeout(() => { |       setTimeout(() => { | ||||||
|         console.info(judgeTag,'滚动开始') |  | ||||||
|         this.judgeUI.kfArrScroller.scrollTo({ |         this.judgeUI.kfArrScroller.scrollTo({ | ||||||
|           yOffset: 999999, xOffset: 0 |           yOffset: 999999, xOffset: 0 | ||||||
|         }) |         }) | ||||||
|         console.info(judgeTag,'滚动结束') |  | ||||||
|       },500) |       },500) | ||||||
|       //科目三统计必考数量
 |       //统计必考项目完成数量
 | ||||||
|       await this.setCountItems(); |       await this.setCountItems(); | ||||||
|       await checkExamIsEnd() |       await checkExamIsEnd() | ||||||
|     } |     } | ||||||
| @ -541,24 +537,27 @@ export default class Judge { | |||||||
|     if(xmdm == 20){ |     if(xmdm == 20){ | ||||||
|       return true |       return true | ||||||
|     } |     } | ||||||
|     const {judgeTask,beginProject,pointsDedute,uploadProgressPhoto,endProject,checkExamIsEnd} = this; |     const {judgeTask,beginProject,pointsDedute,uploadProgressPhoto,endProject,checkExamIsEnd,totalScore} = this; | ||||||
|     const {projectsObj} = this.judgeUI |     const {projectsObj,passingScore:passingGrade} = this.judgeUI | ||||||
|     console.info(judgeTag + ' projectsObj=> ',JSON.stringify(projectsObj)) |  | ||||||
|     const {isUpload} = projectsObj[xmdm]; |     const {isUpload} = projectsObj[xmdm]; | ||||||
|     console.info(judgeTag + ' projectsObj[xmdm] => ',JSON.stringify(projectsObj[xmdm])) |  | ||||||
|     //如果项目没有开始
 |     //如果项目没有开始
 | ||||||
|  |     console.info('surenjun isUpload=>',isUpload) | ||||||
|     if(!isUpload){ |     if(!isUpload){ | ||||||
|       console.info(judgeTag,'项目补传开始') |       console.info(judgeTag,'项目补传开始') | ||||||
|       //项目开始补传
 |       //项目开始补传
 | ||||||
|       judgeTask.addTask(async ()=>{await beginProject(xmdm)},{isDelay:true}) |       judgeTask.addTask(async ()=>{await beginProject(xmdm)},{isDelay:true}) | ||||||
|       judgeTask.addTask(async ()=>{await uploadProgressPhoto(xmdm)},{isDelay:true}) |       judgeTask.addTask(async ()=>{await uploadProgressPhoto(xmdm)},{isDelay:true}) | ||||||
|  |       this.judgeUI.projectsObj[xmdm].isUpload = true; | ||||||
|       //扣分补传
 |       //扣分补传
 | ||||||
|       if(currentType == 2){ |       if(currentType == 2){ | ||||||
|         judgeTask.addTask(async ()=>{await pointsDedute(xmdm,kf)},{isDelay:true}) |         judgeTask.addTask(async ()=>{await pointsDedute(xmdm,kf)},{isDelay:true}) | ||||||
|       } |       } | ||||||
|       judgeTask.addTask(async ()=>{await endProject(xmdm)},{isDelay:true}) |       //扣分补传判断是否合格 不合格补传项目结束
 | ||||||
|       judgeTask.addTask(async ()=>{ |       if(currentType == 1 || (currentType == 2 && totalScore < passingGrade)){ | ||||||
|  |         judgeTask.addTask(async ()=>{await endProject(xmdm)},{isDelay:true}) | ||||||
|         this.judgeUI.projectsObj[xmdm].isEnd = true; |         this.judgeUI.projectsObj[xmdm].isEnd = true; | ||||||
|  |       } | ||||||
|  |       judgeTask.addTask(async ()=>{ | ||||||
|         checkExamIsEnd() |         checkExamIsEnd() | ||||||
|       }) |       }) | ||||||
|       return false; |       return false; | ||||||
| @ -719,7 +718,7 @@ export default class Judge { | |||||||
|     } |     } | ||||||
|     avPlayer.playAudio([`voice/${code}.mp3`], false, () => { |     avPlayer.playAudio([`voice/${code}.mp3`], false, () => { | ||||||
|       if (type == 1) { |       if (type == 1) { | ||||||
|         console.info(judgeTag, '播放结束:' + code) |         // console.info(judgeTag, '播放结束:' + code)
 | ||||||
|         examJudgeSoundEnd({ |         examJudgeSoundEnd({ | ||||||
|           itemno: xmdm, code, type |           itemno: xmdm, code, type | ||||||
|         }) |         }) | ||||||
| @ -832,8 +831,8 @@ export default class Judge { | |||||||
|       try { |       try { | ||||||
|         if (!singlePlay) { |         if (!singlePlay) { | ||||||
|           // TODO 待验证
 |           // TODO 待验证
 | ||||||
|           // const bytes = await this.getMessageHeartbeat(true);
 |           const bytes = await this.getMessageHeartbeat(true); | ||||||
|           // globalThis.judgeUdp.send(bytes)
 |           globalThis.judgeUdp.send(bytes) | ||||||
|         } |         } | ||||||
|         //TODO endExam函数逻辑待验证
 |         //TODO endExam函数逻辑待验证
 | ||||||
|         await endExam() |         await endExam() | ||||||
| @ -857,6 +856,7 @@ export default class Judge { | |||||||
|     await uploadDisConnectData(); |     await uploadDisConnectData(); | ||||||
|     const time = await getCurrentTime(); |     const time = await getCurrentTime(); | ||||||
|     const photoBase64 = await getPhoto(); |     const photoBase64 = await getPhoto(); | ||||||
|  |     const {d1,d2,d3,d4,d5} = ksjs | ||||||
|     const data = { |     const data = { | ||||||
|       xtlb: '17', jkxlh: serialNumber, jkid: '17C56', |       xtlb: '17', jkxlh: serialNumber, jkid: '17C56', | ||||||
|       drvexam: { |       drvexam: { | ||||||
| @ -869,8 +869,8 @@ export default class Judge { | |||||||
|         jssj: time, |         jssj: time, | ||||||
|         kscj: (totalScore * 1) > 0 ? totalScore : 0, |         kscj: (totalScore * 1) > 0 ? totalScore : 0, | ||||||
|         kslc: Math.ceil(((ksjs?.qjjl + ksjs?.dcjl) || 0) / 100), |         kslc: Math.ceil(((ksjs?.qjjl + ksjs?.dcjl) || 0) / 100), | ||||||
|         //TODO
 |         // 1,22;2,560;3,128;4,0;5,0;
 | ||||||
|         dwlc: '', |         dwlc: [d1,d2,d3,d4,d5].map((d,index) => `${index},${Math.floor(d /100)}`).join(';'), | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|     const code = await writeObjectOut(data,filePath); |     const code = await writeObjectOut(data,filePath); | ||||||
| @ -957,8 +957,6 @@ export default class Judge { | |||||||
|   getMessageHeartbeat = async (isEnd?: Boolean) => { |   getMessageHeartbeat = async (isEnd?: Boolean) => { | ||||||
|     const carInfo = globalThis.carInfo; |     const carInfo = globalThis.carInfo; | ||||||
|     const { examSubject,plateNo,ksyh } = carInfo; |     const { examSubject,plateNo,ksyh } = carInfo; | ||||||
|     // const ksyh='0000000000000'
 |  | ||||||
|     // const ksyh=globalThis.ksyh ||'0000000000000'
 |  | ||||||
|     const { |     const { | ||||||
|       judgeUI, |       judgeUI, | ||||||
|       isExam, |       isExam, | ||||||
| @ -974,34 +972,32 @@ export default class Judge { | |||||||
|       getSbxh |       getSbxh | ||||||
|     } = this; |     } = this; | ||||||
|     const {lsh,startHourTime,totalScore} = judgeUI; |     const {lsh,startHourTime,totalScore} = judgeUI; | ||||||
|     const examType = isExam ? examSubject : 0; |     const {fourInOneScreen:{gpsDigit}} = judgeConfig | ||||||
|  |     const examType = examSubject == 2?2:3 | ||||||
|     const {sensor,gps} = tempData; |     const {sensor,gps} = tempData; | ||||||
|     const {zfxd,yfxd,shtd,ygd,jgd,skd,dh1,dh2,lhq,jsc,ssc,fsc,lb,mkg,aqd,ygq,cs,fdjzs} = sensor |     const {zfxd,yfxd,shtd,ygd,jgd,skd,dh1,dh2,lhq,jsc,ssc,fsc,lb,mkg,aqd,ygq,cs,fdjzs,dw} = sensor | ||||||
|     const {jd,wd, hxj,  fyj,  hbg,} = gps |     const {jd,wd, hxj,  fyj,  hbg,} = gps | ||||||
|     const translateProject = getTranslateProject(); |     const translateProject = getTranslateProject(); | ||||||
|     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(lsh);
 |     const asclshArr = stringToASC(fillZero(lsh || 0, 13)); | ||||||
|     const asclshArr = stringToASC(fillZero('0000000000000' || 0, 13)); |  | ||||||
| 
 |  | ||||||
|     //13不足要补0
 |     //13不足要补0
 | ||||||
|     const ascksyhArr = stringToASC(fillZero(ksyh || 0, 13)) |     const ascksyhArr = stringToASC(fillZero(ksyh || 0, 13)) | ||||||
|     const ascsbxhArr = stringToASC(sbxh) |     const ascsbxhArr = stringToASC(sbxh) | ||||||
|     const translateSignals = getTranslateSignals( |     const translateSignals = getTranslateSignals( | ||||||
|       [zfxd, yfxd, shtd, ygd, jgd, skd, dh1, dh2, lhq, jsc, ssc, fsc, lb, mkg, aqd, 0, 0, 0, 0].concat(getCarStatusType(carzt)).concat([ygq, sensor.wd, 0]) |       [zfxd, yfxd, shtd, ygd, jgd, skd, dh1, dh2, lhq, jsc, ssc, fsc, lb, mkg, aqd].concat(getDwStatusType(dw)).concat(getCarStatusType(carzt)).concat([ygq, sensor.wd, 0]) | ||||||
|     ) |     ) | ||||||
| 
 |  | ||||||
|     //@ts-ignore
 |     //@ts-ignore
 | ||||||
|     const translateJd = convertGpsCoord2(wd).toFixed(7) * Math.pow(10, 7); |     const translateJd = convertGpsCoord2(wd).toFixed(gpsDigit) * Math.pow(10, gpsDigit); | ||||||
|     //@ts-ignore
 |     //@ts-ignore
 | ||||||
|     const translateWd = convertGpsCoord2(jd).toFixed(7) * Math.pow(10, 7) |     const translateWd = convertGpsCoord2(jd).toFixed(gpsDigit) * Math.pow(10, gpsDigit) | ||||||
|     //@ts-ignore
 |     //@ts-ignore
 | ||||||
|     const translateProjects = translateProject.map(numStr => string2Bytes(parseInt(numStr, 2), 8)[0]) |     const translateProjects = translateProject.map(numStr => string2Bytes(parseInt(numStr, 2), 8)[0]) | ||||||
| 
 |     // console.info(judgeTag,JSON.stringify(translateProject))
 | ||||||
|     //@ts-ignore
 |     //@ts-ignore
 | ||||||
|     // const translateProjects= translateProject.map(num => string2Bytes(p,8)[0])
 |     // const translateProjects= translateProject.map(num => string2Bytes(p,8)[0])
 | ||||||
|     const arr = [ |     const arr = [ | ||||||
|     //考生号                                         TODO 考试员号
 |       //考生号
 | ||||||
|       asclshArr.map(lsh => string2Bytes(lsh, 8)[0]), |       asclshArr.map(lsh => string2Bytes(lsh, 8)[0]), | ||||||
|       //考试员号
 |       //考试员号
 | ||||||
|       ascksyhArr.map(ksyh => string2Bytes(ksyh, 8)[0]), |       ascksyhArr.map(ksyh => string2Bytes(ksyh, 8)[0]), | ||||||
| @ -1011,15 +1007,15 @@ export default class Judge { | |||||||
|       string2Bytes(isEnd ? 0 : serialIndex, 2 * 8), |       string2Bytes(isEnd ? 0 : serialIndex, 2 * 8), | ||||||
|       /*左向灯 右向灯 双跳灯 远光灯 近光灯 视宽灯 点火1 点火2 离合器 脚刹 手刹 副刹 喇叭 门开关 安全带 档位  车辆状态 雨刮器 雾灯 0*/ |       /*左向灯 右向灯 双跳灯 远光灯 近光灯 视宽灯 点火1 点火2 离合器 脚刹 手刹 副刹 喇叭 门开关 安全带 档位  车辆状态 雨刮器 雾灯 0*/ | ||||||
|       translateSignals, |       translateSignals, | ||||||
|       //速度                  发动机转速                  GPS纬度                         GPS经度                         主天线位置
 |       //速度                                                发动机转速                          GPS纬度                         GPS经度                         主天线位置
 | ||||||
|       //@ts-ignore
 |       //@ts-ignore
 | ||||||
|       string2Bytes(cs, 2 * 8), string2Bytes(fdjzs / 60, 8), string2Bytes(translateJd, 4 * 8), string2Bytes(translateWd, 4 * 8), string2Bytes(1, 8), |       string2Bytes(Math.floor(gps.sd*1.852) , 2 * 8), string2Bytes(fdjzs / 100, 8), string2Bytes(translateJd, 4 * 8), string2Bytes(translateWd, 4 * 8), string2Bytes(1, 8), | ||||||
|       //GPS东向距离
 |       //GPS东向距离
 | ||||||
|       string2Bytes(dxjl < 0 ? (dxjl + 4294967296) : dxjl, 4 * 8), |       string2Bytes(dxjl < 0 ? (dxjl + 4294967296) : dxjl, 4 * 8), | ||||||
|       //GPS北向距离
 |       //GPS北向距离
 | ||||||
|       string2Bytes(bxjl < 0 ? (bxjl + 4294967296) : bxjl, 4 * 8), |       string2Bytes(bxjl < 0 ? (bxjl + 4294967296) : bxjl, 4 * 8), | ||||||
|       //航向角                         俯仰角                   高程(海拔)
 |       //航向角                                俯仰角                   高程(海拔)
 | ||||||
|       string2Bytes((hxj + 90) * 100, 2 * 8), string2Bytes(fyj * 100, 2 * 8), string2Bytes(hbg * 100, 4 * 8), |       string2Bytes((hxj) * 100, 2 * 8), string2Bytes(fyj * 100, 2 * 8), string2Bytes(hbg * 100, 4 * 8), | ||||||
|       //项目状态 parseInt('01010010',2) 二进制转成10进制
 |       //项目状态 parseInt('01010010',2) 二进制转成10进制
 | ||||||
|       translateProjects, |       translateProjects, | ||||||
|       //当前项目编号
 |       //当前项目编号
 | ||||||
| @ -1036,7 +1032,6 @@ export default class Judge { | |||||||
|       //扣分项数量
 |       //扣分项数量
 | ||||||
|       string2Bytes(kfArr.length, 8), |       string2Bytes(kfArr.length, 8), | ||||||
|       //n个扣分序号
 |       //n个扣分序号
 | ||||||
| 
 |  | ||||||
|       kfArr.map(kf => string2Bytes(kf.kfxh, 8)[0]) |       kfArr.map(kf => string2Bytes(kf.kfxh, 8)[0]) | ||||||
|     ] |     ] | ||||||
| 
 | 
 | ||||||
| @ -1076,22 +1071,31 @@ export default class Judge { | |||||||
|   } |   } | ||||||
|   // 中心所有项目转换
 |   // 中心所有项目转换
 | ||||||
|   getTranslateProject = () => { |   getTranslateProject = () => { | ||||||
|     // const {testKmItems} = this;
 |     const {examSubject} = this.judgeUI; | ||||||
|     const tempItems = testKmItems.map(item => { |     const tempItems = (examSubject == 2 ? testKm2Items:testKm3Items).map(item => { | ||||||
|       const current = this.testKmItems[item.code]; |       const current = this.testKmItems[item.code]; | ||||||
|       return { |       return { | ||||||
|         code: item.code, |         code: item.code, | ||||||
|         status: getCenterProjectStatus(current.status) |         status: getCenterProjectStatus(current.status) | ||||||
|       } |       } | ||||||
|     }) |     }) | ||||||
|     const len = Math.floor(tempItems.length / 8); |     // console.info(judgeTag+'TranslateProject',JSON.stringify(tempItems));
 | ||||||
|  | 
 | ||||||
|     const arr = []; |     const arr = []; | ||||||
|     for (let i = 0; i <= len; i++) { |     for (let i = 0; i <= 4; i++) { | ||||||
|       const temp = tempItems.slice(i * 8, (i + 1) * 8); |       const temp = tempItems.slice(i * 4, (i + 1) * 4); | ||||||
|       let tempArr = temp.map(item => item.status) |       let tempArr = temp.map(item => item.status) | ||||||
|       if (i === 4) { |       if (i === 4) { | ||||||
|         tempArr = tempArr.concat(['00', '00']) |         tempArr = examSubject == 2 | ||||||
|  |           //bit36-bit39保留
 | ||||||
|  |           ? tempArr.concat(['00', '00']) | ||||||
|  |           //bit30-bit39保留
 | ||||||
|  |           : tempArr.concat(['00', '00','00']) | ||||||
|       } |       } | ||||||
|  |       // if (i === 3 && examSubject == 3) {
 | ||||||
|  |       //   tempArr = tempArr.concat(['00'])
 | ||||||
|  |       // }
 | ||||||
|  | 
 | ||||||
|       arr.push(tempArr.join('')); |       arr.push(tempArr.join('')); | ||||||
|     } |     } | ||||||
|     return arr.map(numStr => parseInt(numStr, 2)); |     return arr.map(numStr => parseInt(numStr, 2)); | ||||||
| @ -1226,7 +1230,7 @@ export default class Judge { | |||||||
|       usbService.sendUSB(str) |       usbService.sendUSB(str) | ||||||
|     } |     } | ||||||
|     this.judgeUI.isDwztRight = plcData.gps.dwzt == 4; |     this.judgeUI.isDwztRight = plcData.gps.dwzt == 4; | ||||||
|     this.judgeUI.sd = (Math.floor((plcData.gps.sd as number) || 0) * 1.852)  + ''; |     this.judgeUI.sd = (Math.floor(((plcData.gps.sd as number) || 0) * 1.852))  + ''; | ||||||
|     this.judgeUI.dw = (Math.floor(plcData.sensor.dw as number) || 0) + '' |     this.judgeUI.dw = (Math.floor(plcData.sensor.dw as number) || 0) + '' | ||||||
|     await examJudgeRealExam(plcData) |     await examJudgeRealExam(plcData) | ||||||
|     const udpIndex = globalThis.udpIndex; |     const udpIndex = globalThis.udpIndex; | ||||||
| @ -1385,6 +1389,12 @@ export default class Judge { | |||||||
|     qjjl: number, |     qjjl: number, | ||||||
|     // 累计倒车距离
 |     // 累计倒车距离
 | ||||||
|     dcjl: number |     dcjl: number | ||||||
|  |     d1: number | ||||||
|  |     d2: number | ||||||
|  |     d3: number | ||||||
|  |     d4: number | ||||||
|  |     d5: number | ||||||
|  |     d6: number | ||||||
|   } |   } | ||||||
|   private kfArr: { |   private kfArr: { | ||||||
|     //项目名称
 |     //项目名称
 | ||||||
|  | |||||||
| @ -54,11 +54,11 @@ export default class FileModel{ | |||||||
|       const content = fileUtil.getFileContent(`${folderPath}/${fileName}`) |       const content = fileUtil.getFileContent(`${folderPath}/${fileName}`) | ||||||
|       return content; |       return content; | ||||||
|     }catch (e){ |     }catch (e){ | ||||||
|  |       console.info('surenjun',JSON.stringify(e)) | ||||||
|       promptAction.showToast({ |       promptAction.showToast({ | ||||||
|         message:"请检查模型路径是否正确!", |         message:`请检查模型路径${folderPath}/${fileName}是否正确!`, | ||||||
|         duration:4000 |         duration:4000 | ||||||
|       }) |       }) | ||||||
|       router.back() |  | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -38,11 +38,13 @@ export default class FilePhoto{ | |||||||
|       return '' |       return '' | ||||||
|     }else{ |     }else{ | ||||||
|       try { |       try { | ||||||
|  |         console.info('surenjun','拍照开始') | ||||||
|         const res = await takePhoto(params, this.context, 'pz/',2); |         const res = await takePhoto(params, this.context, 'pz/',2); | ||||||
|  |         console.info('surenjun','拍照结束' + JSON.stringify(res)) | ||||||
|         return res.base64 |         return res.base64 | ||||||
|       } catch (e) { |       } catch (e) { | ||||||
|         promptAction.showToast({ |         promptAction.showToast({ | ||||||
|           message: JSON.stringify(e), |           message: '拍照异常' + JSON.stringify(e), | ||||||
|           duration: 2000 |           duration: 2000 | ||||||
|         }); |         }); | ||||||
|         return '' |         return '' | ||||||
|  | |||||||
| @ -1,8 +1,9 @@ | |||||||
| import {string2Bytes,Array2Byte,getCurrentTime} from '../../../common/utils/tools' | import {string2Bytes,Array2Byte,getCurrentTime} from '../../../common/utils/tools' | ||||||
| import {testMarkRules,testRealExam,testKmItems} from '../dataTest/index' | import {testMarkRules,testRealExam} from '../dataTest/index' | ||||||
| 
 | 
 | ||||||
| import promptAction from '@ohos.promptAction' | import promptAction from '@ohos.promptAction' | ||||||
| import systemTime from '@ohos.systemDateTime'; | import systemTime from '@ohos.systemDateTime'; | ||||||
|  | import { expect } from '@ohos/hypium'; | ||||||
| 
 | 
 | ||||||
| //获取本地扣分项
 | //获取本地扣分项
 | ||||||
| export const getTestMarkRules = () =>{ | export const getTestMarkRules = () =>{ | ||||||
| @ -46,6 +47,21 @@ export function getCarStatusType(carzt){ | |||||||
|     case -1:return  [1,0] |     case -1:return  [1,0] | ||||||
|     case 0: return  [0,0] |     case 0: return  [0,0] | ||||||
|     case 1: return  [0,1] |     case 1: return  [0,1] | ||||||
|  |     default :return [0,0] | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // 获取档位信号
 | ||||||
|  | export function getDwStatusType(dw){ | ||||||
|  |   switch (dw){ | ||||||
|  |     case 0:return  [0,0,0,0] | ||||||
|  |     case 1: return  [0,0,0,1] | ||||||
|  |     case 2: return  [0,0,1,0] | ||||||
|  |     case 3: return  [0,0,1,1] | ||||||
|  |     case 4: return  [0,1,0,0] | ||||||
|  |     case 5: return  [0,1,0,1] | ||||||
|  |     case 9: return  [1,0,0,1] | ||||||
|  |     default :return [0,0,0,0] | ||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -53,12 +69,16 @@ export function getCarStatusType(carzt){ | |||||||
| // 中心实时项目状态转换
 | // 中心实时项目状态转换
 | ||||||
| export function getCenterProjectStatus(status){ | export function getCenterProjectStatus(status){ | ||||||
|   switch (status){ |   switch (status){ | ||||||
|   //不考
 |     //不考
 | ||||||
|     case 0:return '00' |     case 0:return '00' | ||||||
|   //未考
 |     //未考
 | ||||||
|     case 1:return '01' |     case 1:return '01' | ||||||
|   //已考
 |     //正在考
 | ||||||
|     case 2:return '10' |     case 2:return '11' | ||||||
|  |     //已考
 | ||||||
|  |     case 3:return '10' | ||||||
|  | 
 | ||||||
|  |     default :return '00' | ||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -4,7 +4,7 @@ export const judgeConfig = { | |||||||
|   //本地目录开关
 |   //本地目录开关
 | ||||||
|   isTrajectoryOpen: false, |   isTrajectoryOpen: false, | ||||||
|   //是否开启拍照
 |   //是否开启拍照
 | ||||||
|   isPhotoOpen: false, |   isPhotoOpen: true, | ||||||
|   //扣分语音是否强制开启
 |   //扣分语音是否强制开启
 | ||||||
|   kfVoiceOpen: true, |   kfVoiceOpen: true, | ||||||
|   // 是否忽略考试前熄火、车门检查
 |   // 是否忽略考试前熄火、车门检查
 | ||||||
| @ -14,7 +14,12 @@ export const judgeConfig = { | |||||||
|   // 本地模型地址
 |   // 本地模型地址
 | ||||||
|   modelPath: 'models/model_enc', |   modelPath: 'models/model_enc', | ||||||
|   // 济南科目三
 |   // 济南科目三
 | ||||||
|   trajectoryPath: 'logs/2024_08_01/9999931199729_210601620482055232_蒲秀_2024_08_01_11_52_27/judge_exam_data.txt', |   trajectoryPath: 'logs/2024_08_07/2024_08_07_11_35_39_0000000000001_342323199501470011_测试学员1/judge_exam_data.txt', | ||||||
|  |   //四合一画面配置
 | ||||||
|  |   fourInOneScreen:{ | ||||||
|  |     //gps位数
 | ||||||
|  |     gpsDigit:6 | ||||||
|  |   }, | ||||||
|   // 杭州科目二
 |   // 杭州科目二
 | ||||||
|   // trajectoryPath: 'logs/2024_07_19/0000000000001_342323199501470011_测试学员1_2024_07_19_06_49_12/judge_exam_data.txt',
 |   // trajectoryPath: 'logs/2024_07_19/0000000000001_342323199501470011_测试学员1_2024_07_19_06_49_12/judge_exam_data.txt',
 | ||||||
|   //TODO 济南临时特殊配置
 |   //TODO 济南临时特殊配置
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user