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,7 +110,6 @@ export default struct SignalDisplayComponent {
|
||||
Text(this.rawData).fontSize(20).fontColor("#fff")
|
||||
}.backgroundColor("#282828").width("100%").height("100%")
|
||||
} else {
|
||||
if (this.isShowTrajectory) {
|
||||
// 轨迹查看
|
||||
Flex() {
|
||||
Column() {
|
||||
@ -135,7 +133,6 @@ export default struct SignalDisplayComponent {
|
||||
}.backgroundColor("#282828").width("100%").height("100%")
|
||||
}
|
||||
}
|
||||
}
|
||||
.width("100%")
|
||||
.height("100%")
|
||||
.backgroundColor("#fff")
|
||||
|
||||
@ -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