diff --git a/entry/src/main/ets/mock/Judge.ets b/entry/src/main/ets/mock/Judge.ets index a129025..393813e 100644 --- a/entry/src/main/ets/mock/Judge.ets +++ b/entry/src/main/ets/mock/Judge.ets @@ -1,4 +1,4 @@ -import { AmplifyItem } from '../model' +import { AmplifyItem, PerLane } from '../model'; export const AmplifyArr: AmplifyItem[] = [ { name: '直线', projectCode: '3', projectCodeCenter: '40300' }, @@ -16,4 +16,33 @@ export const AmplifyImages = [ 'km_ccB.png', 'km_dtB.png', 'km_tcB.png', -] \ No newline at end of file +] + +export const InitialPerLane: PerLane = { + MapRoad_Code_No: "", + MapRoad_Name: "", + TouchLineType: 0, + TouchDir: 0, + TouchLineTypeCS: 0, + TouchLineDirCS: 0, + BasePointInLaneNo: 0, + BaseLaneCount: 0, + FrontPointLaneNo: 0, + FrontPointLaneCount: 0, + Body_LF_ToLeftEdge: 0, + Body_LB_ToLeftEdge: 0, + Body_RF_ToRightEdge: 0, + Body_RB_ToRightEdge: 0, + Wheel_RF_ToRightEdge: 0, + Wheel_RB_ToRightEdge: 0, + Wheel_RF_ToBaseLine: 0, + Wheel_LF_ToRightEdge: 0, + Wheel_LB_ToRightEdge: 0, + Wheel_LF_ToBaseLine: 0, + Wheel_LB_ToBaseLine: 0, + BasePointInLaneDir: "", + CrossLineAttr: 0, + InShapeAttr: 0, + ShapeNo: 0, + CrossPointNo: 0 +}; \ No newline at end of file diff --git a/entry/src/main/ets/model/Judge.ets b/entry/src/main/ets/model/Judge.ets index 00f7a26..0c59bf7 100644 --- a/entry/src/main/ets/model/Judge.ets +++ b/entry/src/main/ets/model/Judge.ets @@ -742,7 +742,7 @@ export interface JudgePerformInfo { lane: PerLane } -interface PerLane { +export interface PerLane { MapRoad_Code_No: string MapRoad_Name: string TouchLineType: number diff --git a/entry/src/main/ets/pages/compontents/SignalDisplay.ets b/entry/src/main/ets/pages/compontents/SignalDisplay.ets index 7c6f249..97c42ea 100644 --- a/entry/src/main/ets/pages/compontents/SignalDisplay.ets +++ b/entry/src/main/ets/pages/compontents/SignalDisplay.ets @@ -1,19 +1,36 @@ import router from '@ohos.router' -import { GPSData, SignalData } from '../../mock' -import { EnvironmentConfigurationType, SignalDataType, WorkerBackMessage } from '../../model' +import { GPSData, InitialPerLane, SignalData } from '../../mock' +import { EnvironmentConfigurationType, PerLane, RoadDataType, SignalDataType, WorkerBackMessage } from '../../model' import { DifferentialAndSignal } from '../../utils/business/DifferentialAndSignal' +import apiJudgeSdk from 'libJudgeSdk.so' +import { examJudgeMapSetScaling } from '../judgeSDK/api' + @Component export default struct SignalDisplayComponent { - @State sjxhColum: Array = SignalData + // 车载信号 + @State vehicleSignal: Array = SignalData + // 信号数组 @State signArr: Array = [] + // GPS信号 @State GPSColum: Array = GPSData + // tab选中 + @State active: number = 0 + // 原始数据 + @State rawData: string = "$GPS,,,,,,,,,,,,,,,,,,,,,,,,,,,,," + // 车道信息 + @State laneSignal: PerLane = InitialPerLane + // 是否显示返回 + @State isShowBack: boolean = true + onBackPress: () => void = () => { + } aboutToAppear(): void { DifferentialAndSignal.onMsg((data: string) => { const result: WorkerBackMessage = JSON.parse(data) if (result.type === "centerUdpData") { this.getSignal(result.data as string) + this.rawData = result.data as string } }) } @@ -26,32 +43,32 @@ export default struct SignalDisplayComponent { this.signArr = strachArr for (let i = 0; i <= 12; i++) { - this.sjxhColum[i].value = this.signArr[i+2] + this.vehicleSignal[i].value = this.signArr[i+2] } - this.sjxhColum[13].value = this.signArr[17] - this.sjxhColum[14].value = this.signArr[18] - this.sjxhColum[15].value = this.signArr[19] - this.sjxhColum[16].value = this.signArr[20] - this.sjxhColum[17].value = this.signArr[23] //车速 - this.sjxhColum[18].value = this.signArr[28] - this.sjxhColum[19].value = this.signArr[29] - this.sjxhColum[20].value = this.signArr[30] - this.sjxhColum[21].value = this.signArr[15] //NC - this.sjxhColum[22].value = this.signArr[16] //SA15 - this.sjxhColum[23].value = this.signArr[21] - this.sjxhColum[24].value = this.signArr[22] - this.sjxhColum[25].value = this.signArr[24] - this.sjxhColum[26].value = this.signArr[26] - this.sjxhColum[27].value = this.signArr[25] - this.sjxhColum[28].value = this.signArr[27] - this.sjxhColum[29].value = this.signArr[31] - this.sjxhColum[30].value = this.signArr[32] - this.sjxhColum[31].value = this.signArr[33] - this.sjxhColum[32].value = this.signArr[34] - this.sjxhColum[33].value = this.signArr[35] + this.vehicleSignal[13].value = this.signArr[17] + this.vehicleSignal[14].value = this.signArr[18] + this.vehicleSignal[15].value = this.signArr[19] + this.vehicleSignal[16].value = this.signArr[20] + this.vehicleSignal[17].value = this.signArr[23] //车速 + this.vehicleSignal[18].value = this.signArr[28] + this.vehicleSignal[19].value = this.signArr[29] + this.vehicleSignal[20].value = this.signArr[30] + this.vehicleSignal[21].value = this.signArr[15] //NC + this.vehicleSignal[22].value = this.signArr[16] //SA15 + this.vehicleSignal[23].value = this.signArr[21] + this.vehicleSignal[24].value = this.signArr[22] + this.vehicleSignal[25].value = this.signArr[24] + this.vehicleSignal[26].value = this.signArr[26] + this.vehicleSignal[27].value = this.signArr[25] + this.vehicleSignal[28].value = this.signArr[27] + this.vehicleSignal[29].value = this.signArr[31] + this.vehicleSignal[30].value = this.signArr[32] + this.vehicleSignal[31].value = this.signArr[33] + this.vehicleSignal[32].value = this.signArr[34] + this.vehicleSignal[33].value = this.signArr[35] for (let i = 34; i <= 46; i++) { - this.sjxhColum[i].value = this.signArr[i+2] + this.vehicleSignal[i].value = this.signArr[i+2] } let t = 0 for (let i = 83; i <= 97; i++) { @@ -66,7 +83,7 @@ export default struct SignalDisplayComponent { this.GPSColum[10].value = this.signArr[93] // this.signArr[53]=192.168.7.170' - this.sjxhColum = JSON.parse(JSON.stringify((this.sjxhColum))) + this.vehicleSignal = JSON.parse(JSON.stringify((this.vehicleSignal))) this.signArr = JSON.parse(JSON.stringify((this.signArr))) this.GPSColum = JSON.parse(JSON.stringify((this.GPSColum))) } @@ -81,46 +98,261 @@ export default struct SignalDisplayComponent { Row() { // 短logo Image($r('app.media.shortLogo')).height(100).width(150).objectFit(ImageFit.Contain).margin({ - left: 10 + left: 10, + right: 10 + }) + TabComponent({ + activeIndex: this.active, + onchange: (index: number) => { + this.active = index + } }) } Row() { - // 返回按钮 - Image($r('app.media.topB_back')).height(100).onClick(() => { - router.back() - }) + if (this.isShowBack) { + // 返回按钮 + Image($r('app.media.topB_back')).height(100).onClick(() => { + router.back() + }) + } else { + Image($rawfile('judge/close.png')).height(100).onClick(() => { + this.onBackPress() + }) + } + } }.width("100%").height(100) Column() { - // GPS信号展示 - GPSComponent({ - data: this.signArr - }) - // 车载信号以及车载坐标 - Column() { - CarComponent({ - data: this.sjxhColum + // 信号查看 + if (this.active === 0) { + // GPS信号展示 + GPSComponent({ + data: this.signArr }) - CoordinateComponent({ - data: this.GPSColum - }) - }.margin({ - top: 5 - }).backgroundColor("#282828") + // 车载信号以及车载坐标 + Column() { + CarComponent({ + data: this.vehicleSignal + }) + CoordinateComponent({ + data: this.GPSColum + }) + }.margin({ + top: 5 + }).backgroundColor("#282828") + } else if (this.active === 1) { + // 原始数据 + Column() { + Text(this.rawData).fontSize(20).fontColor("#fff") + }.backgroundColor("#282828").width("100%").height("100%") + } else { + // 轨迹查看 + Flex() { + Column() { + CoordinateComponent({ + isItHorizontal: false, + heightNum: 40, + }) + }.width("20%") + Column() { + LaneComponent({ + laneSignal: this.laneSignal + }) + }.width("20%") + + Column() { + trajectoryComponent() + }.height("100%").width("60%") + + }.backgroundColor("#282828").width("100%").height("100%") + } } .width("100%") .height("100%") .backgroundColor("#fff") .borderRadius(20) .padding(20) - .margin(20) }.width("100%").height("100%").backgroundColor("#222222") } } +@Component +struct trajectoryComponent { + @State scaleNum: number = 100 + scaleFn = async (num: number) => { + const scaleNum = this.scaleNum + if (scaleNum > 0 && scaleNum < 5000) { + this.scaleNum += num; + } + if (scaleNum === 0 && num > 0) { + this.scaleNum += num; + } + if (scaleNum > 5000 && num < 0) { + this.scaleNum += num; + } + await examJudgeMapSetScaling(this.scaleNum); + } + getScaleNum = (): number => { + const scaleNum = this.scaleNum; + if (scaleNum < 200) return 10; + if (scaleNum < 400) return 30; + if (scaleNum < 600) return 50; + if (scaleNum < 800) return 70; + if (scaleNum < 1000) return 100; + if (scaleNum < 2000) return 500; + return 1000; + } + + build() { + Stack({ + alignContent: Alignment.TopStart + }) { + XComponent({ + id: 'duolun_plugin_id_draw', //显示轨迹窗口id名称,注意这个ID要和C++侧一致,不能变 + type: 'surface', + libraryname: 'JudgeSdk' + // libraryname: 'judgesdk' + }) + .width("100%") + .height("100%") + .onLoad(() => { + apiJudgeSdk.examJudgeMapSetDrawing(true); //停止绘制地图轨迹,false:表示结束绘制 + }) + .onDestroy(() => { + apiJudgeSdk.examJudgeMapSetDrawing(false); //停止绘制地图轨迹,false:表示结束绘制 + // clearInterval(globalThis.realTimer) + }) + Row() { + Image($rawfile('judge/big.png')).width(60).onClick(() => { + this.scaleFn(this.getScaleNum() - 1) + }) + Image($rawfile('judge/small.png')).width(60).onClick(() => { + this.scaleFn(this.getScaleNum()) + }).margin({ left: 20 }) + }.align(Alignment.TopEnd) + }.width("100%").height("100%") + } +} + +@Component +struct TabComponent { + @State activeIndex: number = 0 + onchange: (index: number) => void = () => { + } + + build() { + Row() { + TabItemComponent({ + active: this.activeIndex === 0, + }).onClick(() => { + this.activeIndex = 0 + this.onchange(0) + }) + TabItemComponent({ + label: "原始数据", + active: this.activeIndex === 1, + }).onClick(() => { + this.activeIndex = 1 + this.onchange(1) + }) + TabItemComponent({ + label: "轨迹查看", + active: this.activeIndex === 2, + }).onClick(() => { + console.log("轨迹查看") + this.activeIndex = 2 + this.onchange(2) + }) + } + } +} + +@Component +struct LaneComponent { + @Prop laneSignal: PerLane + private RoadData: Array = [ + { name: '路段组号', key: 'MapRoad_Code_No' }, + { name: '路段编码', key: 'MapRoad_Name' }, + { name: '车轮压线', key: ['TouchLineType', 'TouchDir'] }, + { name: '车身碰线', key: ['TouchLineTypeCS', 'TouchLineDirCS'] }, + { name: '基准车道', key: ['BasePointInLaneNo', 'BaseLaneCount'] }, + { name: '前点车道', key: ['FrontPointLaneNo', 'FrontPointLaneCount'] }, + { name: '后车点道', key: ['BackPointLaneNo', 'BackPointLaneCount'] }, + { name: '左前/后车身距离', key: ['Body_LF_ToLeftEdge', 'Body_LB_ToLeftEdge'] }, + { name: '右前/后车身距离', key: ['Body_RF_ToRightEdge', 'Body_RB_ToRightEdge'] }, + { name: '右前/后车身边线', key: ['Body_RF_ToBaseLine', 'Body_RB_ToBaseLine'] }, + { name: '右前/后轮距离', key: ['Wheel_RF_ToRightEdge', 'Wheel_RB_ToRightEdge'] }, + { name: '右前/后轮边线', key: ['Wheel_RF_ToBaseLine', 'Wheel_RB_ToBaseLine'] }, + { name: '左前/后轮距离', key: ['Wheel_LF_ToRightEdge', 'Wheel_LB_ToRightEdge'] }, + { name: '左前/后轮边线', key: ['Wheel_LF_ToBaseLine', 'Wheel_LB_ToBaseLine'] }, + { name: '车道属性', key: ['BasePointInLaneDir', 'CrossLineAttr', 'DirInverse'] }, + { name: '形状', key: ['InShapeAttr', 'ShapeNo', 'ShapeNoWheel'] }, + { name: '路段点', key: ['CrossPointNo'] }, + ] + + getValues(roadColumn: RoadDataType) { + let key = roadColumn.key; + let str = '' + if (Array.isArray(key)) { + key.forEach((k, index) => { + str += (Reflect.get(this.laneSignal, k) === undefined ? '' : Reflect.get(this.laneSignal, k)) + (index == key.length - 1 ? '' : '/') + }) + } else { + str = Reflect.get(this.laneSignal, key) === undefined ? '' : Reflect.get(this.laneSignal, key) + } + return str + } + + build() { + Column() { + Text("车道信息").fontSize(20).fontColor("#FFB433").margin({ + top: 20 + }) + ForEach(this.RoadData, (item: RoadDataType) => { + blockComponent({ + color: "#FFB433", + heightNum: 40, + label: item.name, + value: this.getValues(item) + }) + }) + }.width("100%") + } +} + +@Component +struct TabItemComponent { + @State label: string = "信号查看" + @Prop active: boolean = false + + build() { + Row() { + Text(this.label).fontColor(this.active ? "#ECAD5C" : "#DDCBAC").fontSize(20).fontWeight(FontWeight.Bold) + } + .width(180) + .height(80) + .borderRadius({ + topLeft: 20, + topRight: 20, + }) + .border({ + width: { top: 1, left: 1, right: 1 }, + color: this.active ? "#ECAD5C" : "#DDCBAC" + }) + .justifyContent(FlexAlign.Center) + .alignItems(VerticalAlign.Center) + .margin({ + left: 10 + }) + .shadow({ + radius: 10, + color: this.active ? "#ECAD5C" : "", + }) + } +} @Component struct GPSComponent { @@ -136,7 +368,7 @@ struct GPSComponent { tcpOppositeIp: "", tcpOppositePort: "" } - this.ip = config.tcplocalIp + this.ip = config.tcplocalIp || "" } build() { @@ -224,6 +456,8 @@ struct CarComponent { @Component struct CoordinateComponent { @State data: Array = GPSData + @State isItHorizontal: boolean = true + @State heightNum: number = 65 build() { Column() { @@ -231,17 +465,23 @@ struct CoordinateComponent { top: 20 }) Flex({ - wrap: FlexWrap.Wrap + wrap: FlexWrap.Wrap, + direction: this.isItHorizontal ? FlexDirection.Row : FlexDirection.Column }) { ForEach(this.data, (item: SignalDataType) => { blockComponent({ + heightNum: this.heightNum, color: "#FFB433", label: item.key, value: item.value }) }) - } - }.width("100%").backgroundColor("#1A1A1A").justifyContent(FlexAlign.Center) + }.height("100%").width("100%") + } + .width("100%") + .height("100%") + .backgroundColor("#1A1A1A") + .justifyContent(FlexAlign.Center) } } @@ -250,6 +490,7 @@ struct blockComponent { @State label: string = "发送次数" @State value: string = "1" @State widthNum: number = 130 + @State heightNum: number = 65 @State color: string = "#FDF5E7" build() { @@ -263,6 +504,6 @@ struct blockComponent { }.width(80).justifyContent(FlexAlign.Start).margin({ left: 20 }) - }.height(65).justifyContent(FlexAlign.Center).alignItems(VerticalAlign.Center) + }.height(this.heightNum).justifyContent(FlexAlign.Center).alignItems(VerticalAlign.Center) } } \ No newline at end of file diff --git a/entry/src/main/ets/pages/compontents/judge/RealTime.ets b/entry/src/main/ets/pages/compontents/judge/RealTime.ets index 44c7961..639e907 100644 --- a/entry/src/main/ets/pages/compontents/judge/RealTime.ets +++ b/entry/src/main/ets/pages/compontents/judge/RealTime.ets @@ -1,207 +1,161 @@ -// import apiJudgeSdk from 'libJudgeSdk.so'; -// import Judge from '../../judgeSDK/utils/judgeReal'; -// import { MarkRule, Project, ProjectObj } from '../../judgeSDK/api/judgeSDK.d'; -// import common from '@ohos.app.ability.common'; -// import { -// examJudgeMapSetScaling -// } from '../../judgeSDK/api' -// -// interface RoadDataType { -// name: string, -// key: string | string[] -// } +import apiJudgeSdk from 'libJudgeSdk.so'; +import { examJudgeMapSetScaling } from '../../judgeSDK/api'; +import { PerLane } from '../../../model'; +import { InitialPerLane } from '../../../mock'; + +interface RoadDataType { + name: string, + key: string | string[] +} + @Component export default struct RealTime { + @State message: string = '开始绘制' + // 控制XComponent组件的创建和销毁 + @State draw: boolean = false + //模拟考试项目 + @State scaleNum: number = 100 + @State gpsActive: number = 1 + @State ratio: number = 1 + @State lane: PerLane = InitialPerLane + scaleFn = async (num: number) => { + const scaleNum = this.scaleNum + if (scaleNum > 0 && scaleNum < 5000) { + this.scaleNum += num; + } + if (scaleNum === 0 && num > 0) { + this.scaleNum += num; + } + if (scaleNum > 5000 && num < 0) { + this.scaleNum += num; + } + await examJudgeMapSetScaling(this.scaleNum); + } private widthNumber: string | number | Resource = 0 private heightNumber: string | number | Resource = 0 + private RoadData: Array = [ + { name: '路段组号', key: 'MapRoad_Code_No' }, + { name: '路段编码', key: 'MapRoad_Name' }, + { name: '车轮压线', key: ['TouchLineType', 'TouchDir'] }, + { name: '车身碰线', key: ['TouchLineTypeCS', 'TouchLineDirCS'] }, + { name: '基准车道', key: ['BasePointInLaneNo', 'BaseLaneCount'] }, + { name: '前点车道', key: ['FrontPointLaneNo', 'FrontPointLaneCount'] }, + { name: '后车点道', key: ['BackPointLaneNo', 'BackPointLaneCount'] }, + { name: '左前/后车身距离', key: ['Body_LF_ToLeftEdge', 'Body_LB_ToLeftEdge'] }, + { name: '右前/后车身距离', key: ['Body_RF_ToRightEdge', 'Body_RB_ToRightEdge'] }, + { name: '右前/后车身边线', key: ['Body_RF_ToBaseLine', 'Body_RB_ToBaseLine'] }, + { name: '右前/后轮距离', key: ['Wheel_RF_ToRightEdge', 'Wheel_RB_ToRightEdge'] }, + { name: '右前/后轮边线', key: ['Wheel_RF_ToBaseLine', 'Wheel_RB_ToBaseLine'] }, + { name: '左前/后轮距离', key: ['Wheel_LF_ToRightEdge', 'Wheel_LB_ToRightEdge'] }, + { name: '左前/后轮边线', key: ['Wheel_LF_ToBaseLine', 'Wheel_LB_ToBaseLine'] }, + { name: '车道属性', key: ['BasePointInLaneDir', 'CrossLineAttr', 'DirInverse'] }, + { name: '形状', key: ['InShapeAttr', 'ShapeNo', 'ShapeNoWheel'] }, + { name: '路段点', key: ['CrossPointNo'] }, + ] + + async aboutToDisappear() { + // clearInterval(this.timer) + } + + async aboutToAppear() { + // const judge = new Judge(this) + // let timer = setInterval(() => { + // this.lane = globalThis.laneData; + // }, 1000) + // this.timer = timer + } + + getScaleNum = (): number => { + const scaleNum = this.scaleNum; + if (scaleNum < 200) return 10; + if (scaleNum < 400) return 30; + if (scaleNum < 600) return 50; + if (scaleNum < 800) return 70; + if (scaleNum < 1000) return 100; + if (scaleNum < 2000) return 500; + return 1000; + } + + getValues(roadColumn: RoadDataType) { + const lane = this.lane; + let key = roadColumn.key; + let str = '' + if (Array.isArray(key)) { + key.forEach((k, index) => { + str += (Reflect.get(lane, k) === undefined ? '' : Reflect.get(lane, k)) + (index == key.length - 1 ? '' : '/') + }) + } else { + str = Reflect.get(lane, key) === undefined ? '' : Reflect.get(lane, key) + } + return str + } build() { + Row() { + Column() { + Row() { + Text('车道信息').fontColor(this.gpsActive == 0 ? '#2D3C5A' : '#fff').fontSize(20) + } + .width('100%') + .height(37) + .backgroundColor(this.gpsActive == 0 ? '#fff' : '#1A1A1A') + .margin({ top: 10 * this.ratio, right: 10 }) + .justifyContent(FlexAlign.Center) + + Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Start }) { + ForEach(this.RoadData, (item: RoadDataType) => { + Column() { + Text(`${item.name}:${this.getValues(item)}`) + .fontSize(20) + .lineHeight(30) + .fontColor('#fff') + }.height(30).justifyContent(FlexAlign.Start).width('100%') + }) + }.margin({ top: 5 }) + + }.width(168 * 1.5) + .height(this.heightNumber) + .backgroundColor('#282828') + .margin({ top: 6 * this.ratio, }) + + Column() { + if (this.draw) { + XComponent({ + id: 'duolun_plugin_id_draw', //显示轨迹窗口id名称,注意这个ID要和C++侧一致,不能变 + type: 'surface', + libraryname: 'JudgeSdk' + // libraryname: 'judgesdk' + }) + .width(this.widthNumber) + .height(this.heightNumber) + .onLoad(() => { + apiJudgeSdk.examJudgeMapSetDrawing(true); //停止绘制地图轨迹,false:表示结束绘制 + }) + .onDestroy(() => { + apiJudgeSdk.examJudgeMapSetDrawing(false); //停止绘制地图轨迹,false:表示结束绘制 + this.draw = false; + // clearInterval(globalThis.realTimer) + }) + } else { + Column() { + } + .width(this.widthNumber) + .height(this.heightNumber) + } + } + .width('100%') + .backgroundColor('#fff') + + Row() { + Image($rawfile('judge/big.png')).width(60).onClick(() => { + this.scaleFn(this.getScaleNum() - 1) + }) + Image($rawfile('judge/small.png')).width(60).onClick(() => { + this.scaleFn(this.getScaleNum()) + }).margin({ left: 20 }) + }.position({ x: '32%', y: 60 }) + } + .height('100%') } } -// -// @Component -// export default struct RealTime { -// @State message: string = '开始绘制' -// // 控制XComponent组件的创建和销毁 -// @State draw: boolean = false -// //监管接口序列号 -// @State serialNumber: number = 0 -// //模拟考试项目 -// @State projects: Project[] = [] -// @State projectsObj: ProjectObj = {} -// @State markRuleListObj: MarkRule = {} -// @State scaleNum: number = 100 -// @State gpsActive: number = 1 -// private widthNumber: string | number | Resource = 0 -// private heightNumber: string | number | Resource = 0 -// private context = getContext(this) as common.UIAbilityContext; -// @State ratio: number = 1 -// @State lane: Object = {} -// @State timer:number = 0 -// -// constructor() { -// super() -// } -// -// // xcomponentController: XComponentController = new XComponentController() -// -// build() { -// Row() { -// Column() { -// Row() { -// Text('车道信息').fontColor(this.gpsActive == 0 ? '#2D3C5A' : '#fff').fontSize(20) -// } -// .width('100%') -// .height(37) -// .backgroundColor(this.gpsActive == 0 ? '#fff' : '#1A1A1A') -// .margin({ top: 10 * this.ratio, right: 10 }) -// .justifyContent(FlexAlign.Center) -// -// Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Start }) { -// ForEach(this.RoadData, (item) => { -// Column() { -// Text(`${item.name}:${this.getValues(item)}`) -// .fontSize(20) -// .lineHeight(30) -// .fontColor('#fff') -// }.height(30).justifyContent(FlexAlign.Start).width('100%') -// }) -// }.margin({top:5}) -// -// }.width(168 * 1.5) -// .height(this.heightNumber) -// .backgroundColor('#282828') -// .margin({ top: 6 * this.ratio, }) -// -// Column() { -// if (this.draw) { -// XComponent({ -// id: 'duolun_plugin_id_draw', //显示轨迹窗口id名称,注意这个ID要和C++侧一致,不能变 -// type: 'surface', -// libraryname: 'JudgeSdk' -// // libraryname: 'judgesdk' -// }) -// .width(this.widthNumber) -// .height(this.heightNumber) -// .onLoad(() => { -// apiJudgeSdk.examJudgeMapSetDrawing(true); //停止绘制地图轨迹,false:表示结束绘制 -// }) -// .onDestroy(() => { -// apiJudgeSdk.examJudgeMapSetDrawing(false); //停止绘制地图轨迹,false:表示结束绘制 -// this.draw = false; -// }) -// } else { -// Column() { -// } -// .width(this.widthNumber) -// .height(this.heightNumber) -// } -// } -// .width('100%') -// .backgroundColor('#fff') -// -// Row(){ -// Image($rawfile('judge/big.png')).width(60).onClick(()=>{ -// this.scaleFn( -this.getScaleNum() ) -// }) -// Image($rawfile('judge/small.png')).width(60).onClick(()=>{ -// this.scaleFn( this.getScaleNum() ) -// }).margin({left:20}) -// }.position({x:'32%',y:60}) -// } -// .height('100%') -// } -// -// async aboutToDisappear() { -// clearInterval(this.timer) -// } -// async aboutToAppear() { -// const judge = new Judge(this) -// let timer = setInterval(()=>{ -// this.lane = AppStorage.get('laneData'); -// },1000) -// this.timer = timer -// } -// -// getScaleNum = ()=>{ -// const scaleNum = this.scaleNum; -// if(scaleNum < 200){ -// return 10 -// } -// if(scaleNum >= 200 && scaleNum < 400){ -// return 30 -// } -// -// if(scaleNum >= 400 && scaleNum < 600){ -// return 50 -// } -// -// if(scaleNum >= 600 && scaleNum < 800){ -// return 70 -// } -// -// if(scaleNum >= 800 && scaleNum < 1000){ -// return 100 -// } -// -// if(scaleNum >= 1000 && scaleNum < 2000){ -// return 500 -// } -// if(scaleNum >= 2000 && scaleNum <= 5000){ -// return 1000 -// } -// -// return 1000 -// } -// -// getValues(roadColumn) { -// const lane = this.lane || {}; -// let key = roadColumn.key; -// let str = '' -// if (Array.isArray(key)) { -// key.forEach((k, index) => { -// str += (lane[k] === undefined ? '' : lane[k]) + (index == key.length - 1 ? '' : '/') -// }) -// } else { -// str = lane[key] === undefined ? '' : lane[key] -// } -// return str -// } -// -// private RoadData: Array = [ -// { name: '路段组号', key: 'MapRoad_Code_No' }, -// { name: '路段编码', key: 'MapRoad_Name' }, -// { name: '车轮压线', key: ['TouchLineType', 'TouchDir'] }, -// { name: '车身碰线', key: ['TouchLineTypeCS', 'TouchLineDirCS'] }, -// { name: '基准车道', key: ['BasePointInLaneNo', 'BaseLaneCount'] }, -// { name: '前点车道', key: ['FrontPointLaneNo', 'FrontPointLaneCount'] }, -// { name: '后车点道', key: ['BackPointLaneNo','BackPointLaneCount'] }, -// { name: '左前/后车身距离', key: ['Body_LF_ToLeftEdge', 'Body_LB_ToLeftEdge'] }, -// { name: '右前/后车身距离', key: ['Body_RF_ToRightEdge', 'Body_RB_ToRightEdge'] }, -// { name: '右前/后车身边线', key: ['Body_RF_ToBaseLine','Body_RB_ToBaseLine'] }, -// { name: '右前/后轮距离', key: ['Wheel_RF_ToRightEdge', 'Wheel_RB_ToRightEdge'] }, -// { name: '右前/后轮边线', key: ['Wheel_RF_ToBaseLine', 'Wheel_RB_ToBaseLine'] }, -// { name: '左前/后轮距离', key: ['Wheel_LF_ToRightEdge', 'Wheel_LB_ToRightEdge'] }, -// { name: '左前/后轮边线', key: ['Wheel_LF_ToBaseLine', 'Wheel_LB_ToBaseLine'] }, -// { name: '车道属性', key: ['BasePointInLaneDir', 'CrossLineAttr','DirInverse'] }, -// { name: '形状', key: ['InShapeAttr', 'ShapeNo','ShapeNoWheel'] }, -// { name: '路段点', key: ['CrossPointNo'] }, -// ] -// -// scaleFn = async (num)=>{ -// const scaleNum = this.scaleNum -// if(scaleNum >0 && scaleNum < 5000){ -// this.scaleNum += num; -// } -// if(scaleNum === 0 && num > 0){ -// this.scaleNum += num; -// } -// if(scaleNum > 5000 && num < 0){ -// this.scaleNum += num; -// } -// await examJudgeMapSetScaling(this.scaleNum); -// } -// -// } -// diff --git a/entry/src/main/ets/pages/judgeSDK/api/judgeSDK.d.ts b/entry/src/main/ets/pages/judgeSDK/api/judgeSDK.d.ts index 0333dff..ec234b3 100644 --- a/entry/src/main/ets/pages/judgeSDK/api/judgeSDK.d.ts +++ b/entry/src/main/ets/pages/judgeSDK/api/judgeSDK.d.ts @@ -10,44 +10,46 @@ export interface Project { //项目状态:未做 正在做 及格 不及格 有扣分 type?: '1' | '2' | '3' | '4' | '5' // - isEnd:boolean, - isUpload:boolean + 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 + 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{ +export interface KF { //项目名称 xmmcStr: string, xmdm: string | number, + //扣分描述 desc: string, + //扣分 score: string //无锡所扣分代码 markcatalog: string markserial: string kfxh: string - type: 0| 1 | 2 + type: 0 | 1 | 2 } export interface SYSTEMPARMARR { @@ -123,6 +125,7 @@ export interface EXAMDATA { xmxh: string, xmhg: 1 | 0 }, + //扣分 kf: { //项目代码 @@ -161,18 +164,18 @@ export interface EXAMDATA { code: string, type: number }, + //模拟灯光 mndg: string, lane: LANE, type: number - //预进项目 - precast:{ - xmdm:number, - xmxh:string + precast: { + xmdm: number, + xmxh: string } - nongps:{ - type:0|1|2|3|4 + nongps: { + type: 0 | 1 | 2 | 3 | 4 } }