Compare commits
	
		
			3 Commits
		
	
	
		
			6ede5e69bb
			...
			f604c1c8f2
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | f604c1c8f2 | ||
|  | 0be3e1b970 | ||
|  | ee0b96125c | 
| @ -402,6 +402,7 @@ export interface SYSSET { | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| export interface ProjectRoads { | ||||
|   param_3?: string[] | ||||
|   param_4?: string[] | ||||
| @ -411,7 +412,7 @@ export interface ProjectRoads { | ||||
|   param_12?: string[] | ||||
| } | ||||
| 
 | ||||
| interface MAPPOINT { | ||||
| export interface MAPPOINT { | ||||
|   point_no: number, | ||||
|   gps_e: number, | ||||
|   gps_n: number, | ||||
| @ -425,7 +426,7 @@ interface MAPPOINT { | ||||
|   passed: number | ||||
| } | ||||
| 
 | ||||
| interface MAPITEMPOINTITEM { | ||||
| export interface MAPITEMPOINTITEM { | ||||
|   point_no: number, | ||||
|   itemno: number, | ||||
|   itemno1: number, | ||||
| @ -486,7 +487,7 @@ export interface JudgeUI { | ||||
|   defaultTabIndex: number | ||||
|   isDwztRight: boolean | ||||
|   draw: boolean | ||||
|   lane: JudgeLane | ||||
|   lane: LANE | ||||
|   sd: string | ||||
|   dw: string | ||||
| } | ||||
| @ -708,11 +709,6 @@ export interface JudgeSoundB { | ||||
|   type: 0 | 1 | ||||
| } | ||||
| 
 | ||||
| export interface JudgeLane { | ||||
|   road: string | ||||
|   num: number | ||||
|   count: number | ||||
| } | ||||
| 
 | ||||
| export interface JudgeNonGPS { | ||||
|   type: 0 | 1 | 2 | 3 | 4 | ||||
| @ -780,7 +776,7 @@ export interface JudgeCallBackData { | ||||
|   xmqx: JudgeKSXM | ||||
|   sound: JudgeSound | ||||
|   mndg: string | ||||
|   lane: JudgeLane | ||||
|   lane: LANE | ||||
|   precast: JudgeKSXM | ||||
|   nongps: JudgeNonGPS | ||||
| } | ||||
| @ -833,3 +829,181 @@ export interface ProjectItemType { | ||||
|   code: ProjectDataType | ||||
|   status: string | ||||
| } | ||||
| 
 | ||||
| export interface Project { | ||||
|   //项目名称 | ||||
|   name: string | ||||
|   //项目代码 | ||||
|   projectCode: string | ||||
|   //无锡所项目代码 | ||||
|   projectCodeCenter: string | ||||
|   //项目简写 | ||||
|   abbreviation?: string | ||||
|   //项目状态:未做 正在做 及格 不及格 有扣分 | ||||
|   type?: '1' | '2' | '3' | '4' | '5' | ||||
|   // | ||||
|   isEnd: boolean, | ||||
|   isUpload: boolean | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| export interface KF { | ||||
|   //项目名称 | ||||
|   xmmcStr: string, | ||||
|   xmdm: string | number, | ||||
| 
 | ||||
|   //扣分描述 | ||||
|   desc: string, | ||||
| 
 | ||||
|   //扣分 | ||||
|   score: string | ||||
|   //无锡所扣分代码 | ||||
|   markcatalog: string | ||||
|   markserial: string | ||||
|   kfxh: string | ||||
|   type: 0 | 1 | 2 | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| export interface SYSTEMPARMARROBJ { | ||||
|   'no1': number, | ||||
|   'no2': number, | ||||
|   'no3': number, | ||||
|   'txt1': string, | ||||
|   'txt2': string, | ||||
|   'txt3': string, | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| export interface EXAMDATA { | ||||
|   //1:项目开始 2:项目结束 3:扣分 4:考车状态 5:考试结束 6:项目取消 7:语音播放和提示 8:模拟灯光事件 9:车道信息事件 10:预进项目事件 11:差分事件 | ||||
|   event: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | ||||
|   //时间 | ||||
|   sj: number | ||||
|   //考车状态 -1:后退 0:停车 1:前进 | ||||
|   carzt: -1 | 0 | 1 | ||||
|   //项目开始 | ||||
|   xmks: xmksType | ||||
|   //项目结束 | ||||
|   xmjs: xmjsType | ||||
|   //扣分 | ||||
|   kf: kfType | ||||
|   //考试结束 | ||||
|   ksjs: ksjxType | ||||
|   //项目取消 | ||||
|   xmqx: xmqxType | ||||
|   sound: soundType | ||||
|   //模拟灯光 | ||||
|   mndg: string | ||||
|   lane: LANE | ||||
|   type: number | ||||
|   //预进项目 | ||||
|   precast: precastType | ||||
|   nongps: nongpsType | ||||
| } | ||||
| 
 | ||||
| interface xmksType { | ||||
|   //项目代码     项目子序号 | ||||
|   xmdm: number, | ||||
|   xmxh: string | ||||
| } | ||||
| 
 | ||||
| interface xmjsType { | ||||
|   //项目代码    项目子序号       项目是否合格 | ||||
|   xmdm: number, | ||||
|   xmxh: string, | ||||
|   xmhg: 1 | 0 | ||||
| } | ||||
| 
 | ||||
| interface kfType { | ||||
|   //项目代码 | ||||
|   xmdm: number, | ||||
| 
 | ||||
|   //扣分代码 | ||||
|   kfdm: string, | ||||
| 
 | ||||
|   //无锡所扣分代码 | ||||
|   markcatalog: string | ||||
|   // 0:评判自动扣分 1:本地人工扣分 2:远程人工扣分 | ||||
|   type: 0 | 1 | 2 | ||||
| } | ||||
| 
 | ||||
| interface ksjxType { | ||||
|   //前进距离 | ||||
|   qjjl: number, | ||||
| 
 | ||||
|   //倒车距离 | ||||
|   dcjl: number, | ||||
|   d1: number | ||||
|   d2: number | ||||
|   d3: number | ||||
|   d4: number | ||||
|   d5: number | ||||
|   d6: number | ||||
| } | ||||
| 
 | ||||
| interface xmqxType { | ||||
|   //项目代码     项目子序号 | ||||
|   xmdm: number, | ||||
|   xmxh: string | ||||
| } | ||||
| 
 | ||||
| interface soundType { | ||||
|   xmdm: number, | ||||
| 
 | ||||
|   //语音播放文件代码 | ||||
|   code: string, | ||||
|   type: number | ||||
| } | ||||
| 
 | ||||
| interface precastType { | ||||
|   xmdm: number, | ||||
|   xmxh: string | ||||
| } | ||||
| 
 | ||||
| interface nongpsType { | ||||
|   type: 0 | 1 | 2 | 3 | 4 | ||||
| } | ||||
| 
 | ||||
| export interface KSJS { | ||||
|   //0:自动结束,1:手动结束 | ||||
|   type: 0 | 1 | ||||
|   qjjl: number, | ||||
|   dcjl: number, | ||||
|   d1: number, | ||||
|   d2: number, | ||||
|   d3: number, | ||||
|   d4: number, | ||||
|   d5: number, | ||||
|   d6: number, | ||||
| } | ||||
| 
 | ||||
| export interface MAPPOINTITEM {} | ||||
| 
 | ||||
| 
 | ||||
| export interface SOUND { | ||||
|   //项目代码 | ||||
|   xmdm: number | ||||
|   //语音播放提示代码 | ||||
|   code: string, | ||||
| 
 | ||||
|   //0:普通,1:模拟灯光 | ||||
|   type: number | ||||
| } | ||||
| 
 | ||||
| export interface LANE { | ||||
|   //当前路段号   如果road为空字符串””,说明当前在未测绘得道路上或者不在差分状态 | ||||
|   road: string | ||||
|   /*当前基准天线所在车道号 | ||||
|       num等于0或者count等于0说明当前未在测绘路段,或者不在差分状态。 | ||||
|       num等于1的时候表示在最右侧车道 | ||||
|       num等于count的时候的表示在最左侧车道 | ||||
|   */ | ||||
|   num: number | ||||
|   //当前基准天线共有几股车道 | ||||
|   count: number | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -10,14 +10,13 @@ import { defaultJudgeConfigObj } from './judgeSDK/utils//judgeCommon'; | ||||
| import { uploadExamMileage } from '../api/judge'; | ||||
| import DwztErrorPopup from './compontents/judge/DwztErrorPopup'; | ||||
| import MsgPopup from './compontents/judge/MsgPopup'; | ||||
| import { CARINFO, CDSBInfo, LANE, MAPITEMPOINTITEM, MAPPOINT, Project, SYSTEMPARMARR } from './judgeSDK/api/judgeSDK.d'; | ||||
| 
 | ||||
| import { JudgeConfig } from '../config'; | ||||
| 
 | ||||
| import SignDisplayCom from './compontents/SignDisplayCom'; | ||||
| import { | ||||
|   AmplifyItem, | ||||
|   CARINFO, | ||||
|   CarInfoType, | ||||
|   CDSBInfo, | ||||
|   CDSBInfos, | ||||
|   DefaultJudgeConfigObj, | ||||
|   ES_CARINFOType, | ||||
| @ -25,20 +24,25 @@ import { | ||||
|   JudgeBeginObj, | ||||
|   JudgeCallBacData, | ||||
|   JudgeInitObj, | ||||
|   LANE, | ||||
|   MA_CDSBINFOType, | ||||
|   MA_ITEMINFOType, | ||||
|   MA_MAP_POINT_ITEMType, | ||||
|   MA_MAP_POINTType, | ||||
|   MA_SYSTEMPARMType, | ||||
|   MAPITEMPOINTITEM, | ||||
|   MAPPOINT, | ||||
|   MarkRule, | ||||
|   MarkRules, | ||||
|   MASYSSETTableType, | ||||
|   Project, | ||||
|   ProjectInfo, | ||||
|   ProjectInfos, | ||||
|   ProjectRoads, | ||||
|   RouteParamsType, | ||||
|   SYSSET, | ||||
|   SyssetConfig, | ||||
|   SYSTEMPARMARR, | ||||
|   User | ||||
| } from '../model'; | ||||
| import { GetSyncData } from '../utils/table/Operation'; | ||||
| @ -60,8 +64,6 @@ struct Index { | ||||
|   @State endPopupVisible: boolean = false | ||||
|   //等待弹窗(考试及格,考试不及格使用) | ||||
|   @State loadingPopupVisible: boolean = false | ||||
|   //实时轨迹弹窗 | ||||
|   @State signDisplayComVisible: boolean = false | ||||
|   @State isDdxk: boolean = false; | ||||
|   @State time: string = '' | ||||
|   //考试用时 | ||||
| @ -449,12 +451,12 @@ struct Index { | ||||
|       } | ||||
| 
 | ||||
|       this.systemparmArr.push({ | ||||
|         'NO1': Number(systemParm.no1), | ||||
|         'NO2': Number(systemParm.no2), | ||||
|         'NO3': Number(systemParm.no3), | ||||
|         'TXT1': decodeURIComponent(systemParm.txt1 || ""), | ||||
|         'TXT2': decodeURIComponent(systemParm.txt2 || ""), | ||||
|         'TXT3': decodeURIComponent(systemParm.txt3 || ""), | ||||
|         NO1: Number(systemParm.no1), | ||||
|         NO2: Number(systemParm.no2), | ||||
|         NO3: Number(systemParm.no3), | ||||
|         TXT1: decodeURIComponent(systemParm.txt1 || ""), | ||||
|         TXT2: decodeURIComponent(systemParm.txt2 || ""), | ||||
|         TXT3: decodeURIComponent(systemParm.txt3 || ""), | ||||
|       }) | ||||
|     }) | ||||
|     const projects = this.projects; | ||||
| @ -946,7 +948,6 @@ struct Index { | ||||
|               //   type: 1, | ||||
|               //   name: 'button_media.wav' | ||||
|               // }) | ||||
|               // this.signDisplayComVisible = true | ||||
|               this.signalTrajectoryDialog.open() | ||||
|             }) | ||||
| 
 | ||||
| @ -1049,7 +1050,6 @@ struct Index { | ||||
| 
 | ||||
|       //科目三人工扣分弹窗 | ||||
|       if (this.isDeductedPopShow && this.examSubject == '3' && Reflect.get(this.judgeConfigObj, '342') == '0') { | ||||
| 
 | ||||
|         DeductedPopup({ | ||||
|           defaultTabIndex: this.defaultTabIndex, | ||||
|           // currentItems: Reflect.ownKeys(this.projectsObj).map(projectKey => { | ||||
| @ -1076,31 +1076,6 @@ struct Index { | ||||
|         }) | ||||
|       } | ||||
| 
 | ||||
|       if (this.signDisplayComVisible) { | ||||
|         Column() { | ||||
|           SignDisplayCom({ | ||||
|             showBack: false, | ||||
|             scaleNum: 1.8, | ||||
|             msgStr: this.judge.plcStr || '', | ||||
|             showTrajectory: this.singlePlay ? true : (this.syssetParam623), | ||||
|           }).margin({ top: 100 }) | ||||
| 
 | ||||
|           Row() { | ||||
|           } | ||||
|           .width(240) | ||||
|           .height(240) | ||||
|           .position({ x: '81%', y: 80 }) | ||||
|           .backgroundImage($rawfile('judge/close.png'), ImageRepeat.NoRepeat) | ||||
|           .backgroundImageSize({ width: '33.33%', height: '33.33%' }) | ||||
|           .onClick(() => { | ||||
|             // this.vocObj.playAudio({ | ||||
|             //   type: 1, | ||||
|             //   name: 'button_media.wav' | ||||
|             // }) | ||||
|             this.signDisplayComVisible = false | ||||
|           }) | ||||
|         }.width('100%').height('100%').position({ y: 0 }).backgroundColor('rgba(0,0,0,0.6)') | ||||
|       } | ||||
| 
 | ||||
|       //科目三人工项目确认框 | ||||
|       if (this.isAmplifyPopShow && this.examSubject == '3') { | ||||
| @ -1204,19 +1179,14 @@ struct Index { | ||||
|     switch (type) { | ||||
|       case '1': | ||||
|         return '#E6DECF'; | ||||
|         break; | ||||
|       case '2': | ||||
|         return '#FFAD33'; | ||||
|         break; | ||||
|       case '3': | ||||
|         return '#ff109d0a'; | ||||
|         break; | ||||
|       case '4': | ||||
|         return '#FF7566'; | ||||
|         break; | ||||
|       default: | ||||
|         return '#E6DECF'; | ||||
|         break; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| import libJudgeSdk from 'libjudgesdk.so'; | ||||
| import { JudgeBeginObj, JudgeInitObj, Plc } from '../../../model'; | ||||
| import { JudgeBeginObj, JudgeInitObj, Plc } from '../../model'; | ||||
| 
 | ||||
| /** | ||||
|  * 苏仁君 | ||||
| @ -1,15 +1,44 @@ | ||||
| import SignalDisplayComponent from '../compontents/SignalDisplay' | ||||
| import TabComponent from '../compontents/Tab' | ||||
| 
 | ||||
| @CustomDialog | ||||
| export default struct SignalTrajectoryDialog { | ||||
|   @State active: number = 0 | ||||
|   private controller?: CustomDialogController | ||||
| 
 | ||||
|   build() { | ||||
|     Row() { | ||||
|       SignalDisplayComponent() | ||||
|     }.width(1200).height(1200).border({ | ||||
|       width: 1, | ||||
|       color: "red" | ||||
|     }) | ||||
|     // Scroll() { | ||||
| 
 | ||||
|     Column() { | ||||
|       Flex( | ||||
|         { | ||||
|           justifyContent: FlexAlign.SpaceBetween, | ||||
|           alignItems: ItemAlign.Center | ||||
|         } | ||||
|       ) { | ||||
|         TabComponent({ | ||||
|           isShowTrajectory: true, | ||||
|           activeIndex: this.active, | ||||
|           onchange: (index: number) => { | ||||
|             this.active = index | ||||
|           } | ||||
|         }) | ||||
|         //   关闭按钮 | ||||
|         Image($rawfile('judge/close.png')).height(50).onClick(() => { | ||||
|           this.controller?.close() | ||||
|         }) | ||||
|       } | ||||
| 
 | ||||
|       Scroll() { | ||||
|         Column() { | ||||
|           SignalDisplayComponent({ | ||||
|             active: this.active | ||||
|           }) | ||||
|         }.height(890) | ||||
|       }.width("100%") | ||||
|       .height(700) | ||||
|     }.width(1500) | ||||
| 
 | ||||
|     // }.width(1200).height(900) | ||||
|   } | ||||
| } | ||||
| @ -25,7 +25,6 @@ struct SignDisplayPage { | ||||
|             right: 10 | ||||
|           }) | ||||
|           TabComponent({ | ||||
|             isShowTrajectory: true, | ||||
|             activeIndex: this.active, | ||||
|             onchange: (index: number) => { | ||||
|               this.active = index | ||||
| @ -42,8 +41,7 @@ struct SignDisplayPage { | ||||
|       }.width("100%").height(100) | ||||
| 
 | ||||
|       SignalDisplayComponent({ | ||||
|         active: this.active, | ||||
|         isShowTrajectory: true | ||||
|         active: this.active | ||||
|       }) | ||||
|     } | ||||
|     .width('100%') | ||||
|  | ||||
| @ -1,8 +1,9 @@ | ||||
| import { GPSData, InitialPerLane, SignalData } from '../../mock' | ||||
| import { EnvironmentConfigurationType, PerLane, RoadDataType, SignalDataType, WorkerBackMessage } from '../../model' | ||||
| import apiJudgeSdk from 'libJudgeSdk.so' | ||||
| import { examJudgeMapSetScaling } from '../judgeSDK/api' | ||||
| 
 | ||||
| import { DifferentialAndSignal } from '../../utils/business/DifferentialAndSignalWorker' | ||||
| import { examJudgeMapSetScaling } from '../Judge/JudgeUtils' | ||||
| 
 | ||||
| 
 | ||||
| @Component | ||||
| @ -19,8 +20,6 @@ export default struct SignalDisplayComponent { | ||||
|   @State rawData: string = "$GPS,,,,,,,,,,,,,,,,,,,,,,,,,,,,," | ||||
|   // 车道信息 | ||||
|   @State laneSignal: PerLane = InitialPerLane | ||||
|   // 是否现实轨迹 | ||||
|   @State isShowTrajectory: boolean = false | ||||
| 
 | ||||
|   aboutToAppear(): void { | ||||
|     DifferentialAndSignal.onMsg((data: string) => { | ||||
| @ -111,29 +110,27 @@ export default struct SignalDisplayComponent { | ||||
|             Text(this.rawData).fontSize(20).fontColor("#fff") | ||||
|           }.backgroundColor("#282828").width("100%").height("100%") | ||||
|         } else { | ||||
|           if (this.isShowTrajectory) { | ||||
|             // 轨迹查看 | ||||
|             Flex() { | ||||
|               Column() { | ||||
|                 CoordinateComponent({ | ||||
|                   isItHorizontal: false, | ||||
|                   heightNum: 40, | ||||
|                   data: this.GPSColum | ||||
|                 }) | ||||
|               }.width("20%") | ||||
|           // 轨迹查看 | ||||
|           Flex() { | ||||
|             Column() { | ||||
|               CoordinateComponent({ | ||||
|                 isItHorizontal: false, | ||||
|                 heightNum: 40, | ||||
|                 data: this.GPSColum | ||||
|               }) | ||||
|             }.width("20%") | ||||
| 
 | ||||
|               Column() { | ||||
|                 LaneComponent({ | ||||
|                   laneSignal: this.laneSignal | ||||
|                 }) | ||||
|               }.width("20%") | ||||
|             Column() { | ||||
|               LaneComponent({ | ||||
|                 laneSignal: this.laneSignal | ||||
|               }) | ||||
|             }.width("20%") | ||||
| 
 | ||||
|               Column() { | ||||
|                 trajectoryComponent() | ||||
|               }.height("100%").width("60%") | ||||
|             Column() { | ||||
|               trajectoryComponent() | ||||
|             }.height("100%").width("60%") | ||||
| 
 | ||||
|             }.backgroundColor("#282828").width("100%").height("100%") | ||||
|           } | ||||
|           }.backgroundColor("#282828").width("100%").height("100%") | ||||
|         } | ||||
|       } | ||||
|       .width("100%") | ||||
|  | ||||
| @ -50,6 +50,7 @@ struct TabItemComponent { | ||||
|       topLeft: 20, | ||||
|       topRight: 20, | ||||
|     }) | ||||
|     .backgroundColor("#262420") | ||||
|     .border({ | ||||
|       width: { top: 1, left: 1, right: 1 }, | ||||
|       color: this.active ? "#ECAD5C" : "#DDCBAC" | ||||
|  | ||||
							
								
								
									
										232
									
								
								entry/src/main/ets/pages/judgeSDK/api/judgeSDK.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										232
									
								
								entry/src/main/ets/pages/judgeSDK/api/judgeSDK.d.ts
									
									
									
									
										vendored
									
									
								
							| @ -1,232 +0,0 @@ | ||||
| export interface Project { | ||||
|   //项目名称
 | ||||
|   name: string | ||||
|   //项目代码
 | ||||
|   projectCode: string | ||||
|   //无锡所项目代码
 | ||||
|   projectCodeCenter: string | ||||
|   //项目简写
 | ||||
|   abbreviation?: string | ||||
|   //项目状态:未做 正在做 及格 不及格 有扣分
 | ||||
|   type?: '1' | '2' | '3' | '4' | '5' | ||||
|   //
 | ||||
|   isEnd: boolean, | ||||
|   isUpload: boolean | ||||
| } | ||||
| 
 | ||||
| export interface MarkRule { | ||||
|   itemno?: number | ||||
|   markcatalog?: string | ||||
|   markshow?: string | ||||
|   markserial?: string | ||||
|   markstandard?: number, | ||||
|   markreal?: number | ||||
|   kfxh?: string | ||||
|   onlyoneid?: number | ||||
|   OnlyOneKind?: number | ||||
|   nocancelid?: number | ||||
|   NoCancelId?: number | ||||
|   gps_sid?: number, | ||||
|   GPS_SID?: boolean | ||||
|   score?: number | ||||
|   xmmcStr?: string | ||||
|   desc?: string | ||||
|   xmdm?: number | ||||
|   type?: 0 | 1 | 2 | ||||
| } | ||||
| 
 | ||||
| export interface KF { | ||||
|   //项目名称
 | ||||
|   xmmcStr: string, | ||||
|   xmdm: string | number, | ||||
| 
 | ||||
|   //扣分描述
 | ||||
|   desc: string, | ||||
| 
 | ||||
|   //扣分
 | ||||
|   score: string | ||||
|   //无锡所扣分代码
 | ||||
|   markcatalog: string | ||||
|   markserial: string | ||||
|   kfxh: string | ||||
|   type: 0 | 1 | 2 | ||||
| } | ||||
| 
 | ||||
| export interface SYSTEMPARMARR { | ||||
|   'NO1': number, | ||||
|   'NO2': number, | ||||
|   'NO3': number, | ||||
|   'TXT1': string, | ||||
|   'TXT2': string, | ||||
|   'TXT3': string, | ||||
| } | ||||
| 
 | ||||
| export interface SYSTEMPARMARROBJ { | ||||
|   'no1': number, | ||||
|   'no2': number, | ||||
|   'no3': number, | ||||
|   'txt1': string, | ||||
|   'txt2': string, | ||||
|   'txt3': string, | ||||
| 
 | ||||
|   [k: string]: string | number | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| export interface CARINFO { | ||||
|   CARID: string, | ||||
|   IPADDR: string, | ||||
|   CARCLASS: string, | ||||
|   KSCX: string, | ||||
|   CARNAME: string, | ||||
|   FLAG: string, | ||||
|   BK1: string, | ||||
|   BK2: string | ||||
| } | ||||
| 
 | ||||
| export interface MAPPOINT { | ||||
|   point_no: number, | ||||
|   gps_e: number, | ||||
|   gps_n: number, | ||||
|   point_no_f: number, | ||||
|   point_type: number, | ||||
|   road_code: string, | ||||
|   gps_e_Location: number | ||||
|   gps_n_Location: number | ||||
|   f_gps_e: number, | ||||
|   f_gps_n: number, | ||||
|   passed: number | ||||
| } | ||||
| 
 | ||||
| export interface MAPITEMPOINTITEM { | ||||
|   point_no: number, | ||||
|   itemno: number, | ||||
|   itemno1: number, | ||||
|   subname: string | ||||
| } | ||||
| 
 | ||||
| export interface EXAMDATA { | ||||
|   //1:项目开始 2:项目结束 3:扣分 4:考车状态 5:考试结束 6:项目取消 7:语音播放和提示 8:模拟灯光事件 9:车道信息事件 10:预进项目事件 11:差分事件
 | ||||
|   event: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | ||||
|   //时间
 | ||||
|   sj: number | ||||
|   //考车状态 -1:后退 0:停车 1:前进
 | ||||
|   carzt: -1 | 0 | 1 | ||||
|   //项目开始
 | ||||
|   xmks: { | ||||
|     //项目代码     项目子序号
 | ||||
|     xmdm: number, | ||||
|     xmxh: string | ||||
|   } | ||||
|   //项目结束
 | ||||
|   xmjs: { | ||||
|     //项目代码    项目子序号       项目是否合格
 | ||||
|     xmdm: number, | ||||
|     xmxh: string, | ||||
|     xmhg: 1 | 0 | ||||
|   }, | ||||
| 
 | ||||
|   //扣分
 | ||||
|   kf: { | ||||
|     //项目代码
 | ||||
|     xmdm: number, | ||||
|     //扣分代码
 | ||||
|     kfdm: string, | ||||
|     //无锡所扣分代码
 | ||||
|     markcatalog: string | ||||
|     // 0:评判自动扣分 1:本地人工扣分 2:远程人工扣分
 | ||||
|     type: 0 | 1 | 2 | ||||
|   }, | ||||
| 
 | ||||
|   //考试结束
 | ||||
|   ksjs: { | ||||
|     //前进距离
 | ||||
|     qjjl: number, | ||||
|     //倒车距离
 | ||||
|     dcjl: number, | ||||
|     d1: number | ||||
|     d2: number | ||||
|     d3: number | ||||
|     d4: number | ||||
|     d5: number | ||||
|     d6: number | ||||
|   }, | ||||
| 
 | ||||
|   //项目取消
 | ||||
|   xmqx: { | ||||
|     //项目代码     项目子序号
 | ||||
|     xmdm: number, | ||||
|     xmxh: string | ||||
|   }, | ||||
|   sound: { | ||||
|     xmdm: number, | ||||
|     //语音播放文件代码
 | ||||
|     code: string, | ||||
|     type: number | ||||
|   }, | ||||
| 
 | ||||
|   //模拟灯光
 | ||||
|   mndg: string, | ||||
|   lane: LANE, | ||||
|   type: number | ||||
|   //预进项目
 | ||||
|   precast: { | ||||
|     xmdm: number, | ||||
|     xmxh: string | ||||
|   } | ||||
|   nongps: { | ||||
|     type: 0 | 1 | 2 | 3 | 4 | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| export interface KSJS { | ||||
|   //0:自动结束,1:手动结束
 | ||||
|   type: 0 | 1 | ||||
|   qjjl: number, | ||||
|   dcjl: number, | ||||
|   d1: number, | ||||
|   d2: number, | ||||
|   d3: number, | ||||
|   d4: number, | ||||
|   d5: number, | ||||
|   d6: number, | ||||
| } | ||||
| 
 | ||||
| export interface MAPPOINTITEM {} | ||||
| 
 | ||||
| export interface CDSBInfo {} | ||||
| 
 | ||||
| export interface SOUND { | ||||
|   //项目代码
 | ||||
|   xmdm: number | ||||
|   //语音播放提示代码
 | ||||
|   code: string, | ||||
| 
 | ||||
|   //0:普通,1:模拟灯光
 | ||||
|   type: number | ||||
| } | ||||
| 
 | ||||
| export interface SYSSET { | ||||
|   v_no: string, | ||||
|   v_name: string, | ||||
|   v_value: string | ||||
| } | ||||
| 
 | ||||
| export interface LANE { | ||||
|   //当前路段号   如果road为空字符串””,说明当前在未测绘得道路上或者不在差分状态
 | ||||
|   road: string | ||||
|   /*当前基准天线所在车道号 | ||||
|       num等于0或者count等于0说明当前未在测绘路段,或者不在差分状态。 | ||||
|       num等于1的时候表示在最右侧车道 | ||||
|       num等于count的时候的表示在最左侧车道 | ||||
|   */ | ||||
|   num: number | ||||
|   //当前基准天线共有几股车道
 | ||||
|   count: number | ||||
| } | ||||
| 
 | ||||
| export interface ProjectObj { | ||||
|   [k: string]: Project | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| @ -3,33 +3,17 @@ import router from '@ohos.router'; | ||||
| import util from '@ohos.util'; | ||||
| import buffer from '@ohos.buffer'; | ||||
| import { testKm2Items, testKm3Items } from './dataTest/index'; | ||||
| import { KSJS } from './api/judgeSDK'; | ||||
| 
 | ||||
| import VoiceAnnounce from './utils/voiceAnnouncements'; | ||||
| import FileModel from './utils/fileModel'; | ||||
| import FilePhoto from './utils/filePhoto'; | ||||
| import FileLog from './utils/fileLog'; | ||||
| import JudgeTask from './utils/judgeTask'; | ||||
| import { JudgeConfig } from '../../config'; | ||||
| import { LANE } from '../judgeSDK/api/judgeSDK.d'; | ||||
| import { GetSyncData, SqlInsertTable } from '../../utils/table/Operation'; | ||||
| 
 | ||||
| import { getCarStatus, getCenterProjectStatus, plcStrToJson, plcStrToWXJson, promptWxCode } from './utils/judgeCommon'; | ||||
| 
 | ||||
| import { | ||||
|   examCalcGpsDistance, | ||||
|   examJudgeArtificialItem, | ||||
|   examJudgeArtificialMark, | ||||
|   examJudgeBeginExam, | ||||
|   examJudgeEndExam, | ||||
|   examJudgeInit, | ||||
|   examJudgeRealExam, | ||||
|   examJudgeSetLogCallback, | ||||
|   examJudgeSetPerformCallback, | ||||
|   examJudgeSetRealExamCallback, | ||||
|   examJudgeSoundEnd, | ||||
|   examJudgeVersion | ||||
| } from './api/index'; | ||||
| 
 | ||||
| import { uploadExamProgressData, writeObjectOut } from '../../api/judge'; | ||||
| import { endRecordVideo, saveStartRecordVideo } from '../../utils/Video'; | ||||
| import common from '@ohos.app.ability.common'; | ||||
| @ -59,6 +43,7 @@ import { | ||||
|   JudgeXMJS, | ||||
|   Km3JudgeInitConfig, | ||||
|   KmItem, | ||||
|   LANE, | ||||
|   MarkRule, | ||||
|   Plc, | ||||
|   ProjectInfo, | ||||
| @ -70,6 +55,20 @@ import { | ||||
|   WR | ||||
| } from '../../model'; | ||||
| import { DrivingDataStorage } from '../../utils/business/DrivingDataStorage'; | ||||
| import { | ||||
|   examCalcGpsDistance, | ||||
|   examJudgeArtificialItem, | ||||
|   examJudgeArtificialMark, | ||||
|   examJudgeBeginExam, | ||||
|   examJudgeEndExam, | ||||
|   examJudgeInit, | ||||
|   examJudgeRealExam, | ||||
|   examJudgeSetLogCallback, | ||||
|   examJudgeSetPerformCallback, | ||||
|   examJudgeSetRealExamCallback, | ||||
|   examJudgeSoundEnd, | ||||
|   examJudgeVersion | ||||
| } from '../Judge/JudgeUtils'; | ||||
| 
 | ||||
| const judgeTag = 'SURENJUN_JUDGE' | ||||
| 
 | ||||
| @ -1192,7 +1191,7 @@ export default class Judge { | ||||
|           judgeTask.addTask(async () => { | ||||
|             console.info(judgeTag, '考试结束 start') | ||||
|             AppStorage.setOrCreate('isJudge', false) | ||||
|             await handEndExam(ksjs) | ||||
|             await handEndExam() | ||||
|           }) | ||||
|         // TODO待修改 | ||||
|         // clearInterval(globalThis.judgeTimer) | ||||
| @ -1318,7 +1317,7 @@ export default class Judge { | ||||
|     } | ||||
|   } | ||||
|   // 处理考试结束 | ||||
|   public handEndExam = async (ksjs: KSJS) => { | ||||
|   public handEndExam = async () => { | ||||
|     this.judgeUI.loadingPopupVisible = true; | ||||
|     this.judgeUI.endPopupVisible = false; | ||||
|     this.judgeUI.isDeductedPopShow = false; | ||||
|  | ||||
| @ -4,7 +4,7 @@ import { ArrayToByteArray, NumberToByteArray } from '../../../utils/Common'; | ||||
| import systemTime from '@ohos.systemDateTime'; | ||||
| 
 | ||||
| import { CarInfoType } from '../../../model'; | ||||
| import { DefaultJudgeConfigObj, Gps, JudgeLane, Plc, Radar, Vision } from '../../../model/Judge'; | ||||
| import { DefaultJudgeConfigObj, Gps, LANE, Plc, Radar, Vision } from '../../../model/Judge'; | ||||
| 
 | ||||
| interface Extend {} | ||||
| 
 | ||||
| @ -98,7 +98,7 @@ export function getKmProjectVoice( | ||||
|   // 1:项目开始 2:项目结束 | ||||
|   type: 1 | 2, | ||||
|   judgeConfig: object, | ||||
|   lane: JudgeLane, | ||||
|   lane: LANE, | ||||
|   xmxh: string | ||||
| ) { | ||||
|   const carInfo = AppStorage.get<CarInfoType>('carInfo')!; | ||||
| @ -110,9 +110,8 @@ export function getKmProjectVoice( | ||||
| 
 | ||||
|   console.info('surenjun => param544Str.length', param544Str.length) | ||||
| 
 | ||||
|   const num = lane.num | ||||
|   const count = lane.count | ||||
|   const road = lane.road | ||||
|   const num: number = lane?.num | ||||
|   const count: number = lane?.count | ||||
|   if (examSubject == '2') { | ||||
|     return projectCode | ||||
|   } | ||||
|  | ||||
| @ -1,43 +0,0 @@ | ||||
| import FileUtils from '../../../utils/FileUtils'; | ||||
| import { examJudgeMapSetParam, examJudgeMapSetScaling } from '../api/index'; | ||||
| 
 | ||||
| import FileModel from './fileModel'; | ||||
| 
 | ||||
| const judgeTag = 'SURENJUN_JUDGE' | ||||
| 
 | ||||
| export default class JudgeImg { | ||||
|   private judgeUI | ||||
|   private modelPath: string | ||||
|   private fileModel: FileModel | ||||
|   private fileUtil: FileUtils | ||||
| 
 | ||||
|   // private plcData: any | ||||
| 
 | ||||
|   constructor(judgeUI) { | ||||
|     this.modelPath = 'models/model_enc' | ||||
|     this.judgeUI = judgeUI | ||||
|     this.fileUtil = new FileUtils(judgeUI.context) | ||||
|     this.fileModel = new FileModel(judgeUI.context) | ||||
|     this.init() | ||||
|   } | ||||
| 
 | ||||
|   async init() { | ||||
|     const isJudgeInitBool = AppStorage.get<boolean>('isJudgeInitBool'); | ||||
|     const { judgeUI } = this; | ||||
| 
 | ||||
|     //TODO 临时处理 | ||||
|     setTimeout(async () => { | ||||
|       console.info(judgeTag, '1.进入评判入口') | ||||
|       await examJudgeMapSetParam(640, 480); //设置参数宽、高 | ||||
|       await examJudgeMapSetScaling(100); //设置缩放比例,一般默认填100(就是100%的意思) ,数字越大视野越大,数字越小视野越小,不能为0 | ||||
|     }) | ||||
| 
 | ||||
|     judgeUI.draw = true | ||||
| 
 | ||||
|   } | ||||
| 
 | ||||
|   //获取评判初始化数据 | ||||
|   getInitInfo = () => { | ||||
| 
 | ||||
|   } | ||||
| } | ||||
| @ -3,6 +3,9 @@ import HiSerialSDK from '@ohos.hiserialsdk'; | ||||
| import { SerialPortTag } from '../config'; | ||||
| 
 | ||||
| // 打开串口工具 | ||||
| /* | ||||
|   * @param serialPort 串口名称 | ||||
|  */ | ||||
| export const OpenSerialPort = (serialPort: string) => { | ||||
|   return new Promise<number>((resolve, reject) => { | ||||
|     testNapi.SerialOpenAsync(serialPort, (value: number) => { | ||||
| @ -17,6 +20,11 @@ export const OpenSerialPort = (serialPort: string) => { | ||||
| } | ||||
| 
 | ||||
| //初始化串口数据 | ||||
| /* | ||||
|   * @param fd 串口文件描述符 | ||||
|   * @param speed 波特率 | ||||
|   * @returns Promise<boolean> 成功返回true,失败返回false | ||||
|  */ | ||||
| export const InitSerialPortData = | ||||
|   async (fd: number, speed: number) => { | ||||
|     return new Promise<boolean>((resolve, reject) => { | ||||
| @ -35,6 +43,11 @@ export const InitSerialPortData = | ||||
|   } | ||||
| 
 | ||||
| //发送数据 | ||||
| /* | ||||
|   * @param fd 串口文件描述符 | ||||
|   * @param data 要发送的数据数组 | ||||
|   * @returns Promise<number> 成功返回发送的字节数,失败返回-1 | ||||
|  */ | ||||
| export const SendSerialPortData = (fd: number, data: number[]) => { | ||||
|   console.log(SerialPortTag, "wzj-----发送数据") | ||||
|   return new Promise<number>((resolve, reject) => { | ||||
| @ -49,6 +62,11 @@ export const SendSerialPortData = (fd: number, data: number[]) => { | ||||
| } | ||||
| 
 | ||||
| // 接受数据 | ||||
| /* | ||||
|   * @param fd 串口文件描述符 | ||||
|   * @param timeout 超时时间,单位毫秒 | ||||
|   * @returns Promise<HiSerialSDK.receiveInfo> 成功返回接收到的数据,失败返回-1 | ||||
|  */ | ||||
| export const ReceiveSerialPortData = (fd: number, timeout: number,) => { | ||||
|   console.log(SerialPortTag, "wzj-----接受数据") | ||||
|   return new Promise<HiSerialSDK.receiveInfo>((resolve) => { | ||||
|  | ||||
| @ -16,8 +16,8 @@ import UdpClient from '../UdpUtils'; | ||||
| import { CenterUDPBusinessInstance } from './CenterUdpBusiness'; | ||||
| import { ObtainUdpBusinessInstance } from './ObtainUdpBusiness'; | ||||
| import systemTime from '@ohos.systemDateTime'; | ||||
| import { examCalcGpsDistance } from '../../pages/judgeSDK/api'; | ||||
| import { SerialNumberInstance } from '../SerialNumber'; | ||||
| import { examCalcGpsDistance } from '../../pages/Judge/JudgeUtils'; | ||||
| 
 | ||||
| 
 | ||||
| class JudgeUdpBusiness { | ||||
|  | ||||
							
								
								
									
										72
									
								
								entry/src/main/ets/utils/business/SerialPortService.ets
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								entry/src/main/ets/utils/business/SerialPortService.ets
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,72 @@ | ||||
| // 串口业务逻辑 | ||||
| 
 | ||||
| import { | ||||
|   CancelReceiveSerialPortData, | ||||
|   InitSerialPortData, | ||||
|   OpenSerialPort, | ||||
|   ReceiveSerialPortDataBySelf | ||||
| } from '../SerialPort'; | ||||
| import Prompt from '@system.prompt'; | ||||
| import { SerialPortTag } from '../../config'; | ||||
| 
 | ||||
| class serialPortService { | ||||
|   private fd: number = -1 | ||||
|   private serialPort: string = "/dev/ttyS3" | ||||
|   // 波特率 | ||||
|   private baudRate: string = "115200" | ||||
|   private events: Array<Function> = [] | ||||
|   // 尝试次数 | ||||
|   private tryCount: number = 0 | ||||
| 
 | ||||
|   async init() { | ||||
|     const res = await OpenSerialPort(this.serialPort) | ||||
|     if (res === -1) { | ||||
|       Prompt.showToast({ | ||||
|         message: "串口打开失败" | ||||
|       }) | ||||
|       //   失败了重试,最大次数为5次 | ||||
|       this.tryCount++; | ||||
|       if (this.tryCount < 5) { | ||||
|         console.log(SerialPortTag, "串口打开失败,尝试第", this.tryCount, "次重试") | ||||
|         setTimeout(() => { | ||||
|           this.init(); | ||||
|         }, 1000); | ||||
|         return; | ||||
|       } else { | ||||
|         console.error(SerialPortTag, "串口打开失败,重试次数已达上限") | ||||
|         return; | ||||
|       } | ||||
|     } else { | ||||
|       this.fd = res; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   async canInit() { | ||||
|     if (this.fd !== -1) { | ||||
|       await InitSerialPortData(this.fd, Number(this.baudRate)) | ||||
|       ReceiveSerialPortDataBySelf(this.fd, (res1: number, res2: number, res3: number[]) => { | ||||
|         this.events.forEach((callback) => { | ||||
|           callback(res3); | ||||
|         }); | ||||
|       }) | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   onMsg(callback: Function) { | ||||
|     if (this.events.indexOf(callback) === -1) { | ||||
|       this.events.push(callback); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   async closed() { | ||||
|     const res = await CancelReceiveSerialPortData(this.fd); | ||||
|     this.events = []; | ||||
|     if (res) { | ||||
|       console.log(SerialPortTag, "串口关闭成功") | ||||
|     } else { | ||||
|       console.error(SerialPortTag, "串口关闭失败") | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| export const SerialPortService = new serialPortService(); | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user