Merge branch 'main' into lv
# Conflicts: # entry/src/main/ets/pages/Index.ets # entry/src/main/ets/pages/UserInfo.ets
This commit is contained in:
commit
009bd53f46
1
entry/.gitignore
vendored
1
entry/.gitignore
vendored
@ -3,3 +3,4 @@
|
||||
/build
|
||||
/.cxx
|
||||
/.idea
|
||||
/oh_modules
|
||||
120
entry/src/main/ets/common/service/usbService.ts
Normal file
120
entry/src/main/ets/common/service/usbService.ts
Normal file
@ -0,0 +1,120 @@
|
||||
// 导入USB接口api包。
|
||||
import usb from '@ohos.usbManager';
|
||||
const LOGTAG = 'USBSERVICES'
|
||||
|
||||
|
||||
//字符串转字节
|
||||
function stringToArr(str){
|
||||
var arr = [];
|
||||
for (var i = 0, j = str.length; i < j; ++i) {
|
||||
arr.push(str.charCodeAt(i));
|
||||
}
|
||||
return arr
|
||||
}
|
||||
|
||||
//plc数据转成无锡科研所usb字节数据
|
||||
function plcStrToWXCodeArr(wuXiDataStr){
|
||||
const arr = stringToArr(wuXiDataStr);
|
||||
//数据包总长度 有效长度
|
||||
let packetSize = 65,maxDataSize = 63;
|
||||
let packetArr = []
|
||||
const loop = Math.ceil(arr.length / maxDataSize)
|
||||
for(let i = 0; i< loop; i++){
|
||||
const thisPacket = arr.slice(i * maxDataSize,(i + 1) * maxDataSize)
|
||||
const oSize = maxDataSize - thisPacket.length;
|
||||
//补齐0x00
|
||||
if(oSize > 0){
|
||||
let oSizeArr = []
|
||||
for(let j = 0;j < oSize;j++){oSizeArr.push(0x00)}
|
||||
packetArr.push([thisPacket.length].concat(thisPacket).concat(oSizeArr));
|
||||
}else{
|
||||
packetArr.push([thisPacket.length].concat(thisPacket));
|
||||
}
|
||||
}
|
||||
return packetArr
|
||||
}
|
||||
|
||||
export default class UsbService{
|
||||
private devicepipe : usb.USBDevicePipe
|
||||
private outEndpoint: usb.USBEndpoint
|
||||
public isWXUSBDevice:Boolean
|
||||
|
||||
constructor() {
|
||||
//是否是无锡检测设备
|
||||
this.isWXUSBDevice = false
|
||||
this.devicepipe
|
||||
this.init()
|
||||
}
|
||||
|
||||
init = async()=>{
|
||||
// 获取设备列表。
|
||||
let deviceList : Array<usb.USBDevice> = usb.getDevices();
|
||||
|
||||
deviceList.forEach(async (device:usb.USBDevice) => {
|
||||
const {vendorId,productId} = device;
|
||||
console.log(LOGTAG,JSON.stringify(device));
|
||||
//无锡所检测设备接入
|
||||
if(vendorId === 6790 && productId === 58409){
|
||||
// if(vendorId === 2385 && productId === 5734){
|
||||
// 申请操作指定的device的操作权限。
|
||||
try {
|
||||
let bool = usb.hasRight(device.name);
|
||||
console.info(LOGTAG,'bool =>' + bool)
|
||||
const isExit = await usb.requestRight(device.name);
|
||||
console.info(LOGTAG,'isExit =>' + isExit)
|
||||
if(isExit){
|
||||
let devicepipe : usb.USBDevicePipe = usb.connectDevice(device);
|
||||
let interfaces = device.configs[0].interfaces[0];
|
||||
let ret = usb.claimInterface(devicepipe, interfaces,true);
|
||||
console.info(LOGTAG,'ret =>' + ret);
|
||||
|
||||
if(ret === 0 ){
|
||||
let outEndpoint : usb.USBEndpoint = interfaces.endpoints[1];
|
||||
let inEndpoint : usb.USBEndpoint = interfaces.endpoints[0];
|
||||
this.isWXUSBDevice = true;
|
||||
this.devicepipe = devicepipe
|
||||
this.outEndpoint = outEndpoint
|
||||
|
||||
}else{
|
||||
console.info(LOGTAG,'usb claimInterface failed')
|
||||
}
|
||||
|
||||
}else{
|
||||
console.info(LOGTAG,'isExit =>' +'false')
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
console.info(LOGTAG,'e=>' + JSON.stringify(e))
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
sendUSB =async (wuXiDataStr) => {
|
||||
console.info(LOGTAG,'正在发送数据')
|
||||
const {devicepipe,isWXUSBDevice,outEndpoint} = this;
|
||||
console.info(LOGTAG,'正在发送数据')
|
||||
if(isWXUSBDevice){
|
||||
console.info(LOGTAG,wuXiDataStr)
|
||||
const codeArr = plcStrToWXCodeArr(wuXiDataStr);
|
||||
for(let i = 0; i < codeArr.length;i++){
|
||||
try {
|
||||
console.info(LOGTAG,'正在发送数据')
|
||||
const f = await usb.bulkTransfer(devicepipe, outEndpoint, new Uint8Array(codeArr[i]))
|
||||
console.info(LOGTAG,'发送成功数据长度为:' + f)
|
||||
} catch (e) {
|
||||
console.info(LOGTAG,JSON.stringify(e))
|
||||
}
|
||||
}
|
||||
}else{
|
||||
console.info(LOGTAG,'usb设备初始化失败')
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// export default initUsbServicesFn
|
||||
@ -1,7 +1,7 @@
|
||||
import systemTime from '@ohos.systemDateTime';
|
||||
import { Array2Byte, fillZero, string2Bytes, stringToASC } from '../../common/utils/tools';
|
||||
import { testKmItems } from '../../pages/judgeSDK/dataTest/index';
|
||||
import { setJudgeUdp, setTopLineUdp } from './GlobleUdp';
|
||||
import { setJudgeUdp, setTopLineUdp } from './GlobalUdp';
|
||||
import { convertGpsCoord2 } from '../utils/tools';
|
||||
|
||||
|
||||
|
||||
165
entry/src/main/ets/mock/CarCheck.ets
Normal file
165
entry/src/main/ets/mock/CarCheck.ets
Normal file
@ -0,0 +1,165 @@
|
||||
export const WarnFlagData = {
|
||||
1: '0',
|
||||
2: '0',
|
||||
3: '0',
|
||||
4: '0',
|
||||
5: '0',
|
||||
6: '0',
|
||||
7: '0',
|
||||
8: '0',
|
||||
9: '0',
|
||||
10: '0',
|
||||
11: '0',
|
||||
12: '0',
|
||||
13: '0',
|
||||
14: '0',
|
||||
15: '0',
|
||||
16: '0',
|
||||
17: '0',
|
||||
18: '0',
|
||||
19: '0',
|
||||
20: '0',
|
||||
21: '0',
|
||||
22: '0',
|
||||
23: '0',
|
||||
24: '0',
|
||||
25: '0',
|
||||
26: '0',
|
||||
27: '0',
|
||||
28: '0',
|
||||
29: '0',
|
||||
}
|
||||
|
||||
export const PassData = {
|
||||
1: false,
|
||||
2: false,
|
||||
3: false,
|
||||
4: false,
|
||||
5: false,
|
||||
6: false,
|
||||
7: false,
|
||||
8: false,
|
||||
9: false,
|
||||
10: false,
|
||||
11: false,
|
||||
12: false,
|
||||
13: false,
|
||||
14: false,
|
||||
15: false,
|
||||
16: false,
|
||||
17: false,
|
||||
18: false,
|
||||
19: false,
|
||||
20: false,
|
||||
21: false,
|
||||
22: false,
|
||||
23: false,
|
||||
24: false,
|
||||
25: false,
|
||||
26: false,
|
||||
27: false,
|
||||
28: false,
|
||||
29: false,
|
||||
}
|
||||
|
||||
export const StackValueData = {
|
||||
1: '',
|
||||
2: "",
|
||||
3: "",
|
||||
4: "",
|
||||
5: "",
|
||||
6: "",
|
||||
7: "",
|
||||
8: "",
|
||||
9: "",
|
||||
10: "",
|
||||
11: "",
|
||||
12: "",
|
||||
13: "",
|
||||
14: "",
|
||||
15: "",
|
||||
16: "",
|
||||
17: "",
|
||||
18: "",
|
||||
19: "",
|
||||
20: "",
|
||||
21: "",
|
||||
22: "",
|
||||
23: "",
|
||||
24: "",
|
||||
25: "",
|
||||
26: "",
|
||||
27: "",
|
||||
28: "",
|
||||
29: "",
|
||||
}
|
||||
|
||||
export const WarnFlagTipData = {
|
||||
0: [],
|
||||
1: [],
|
||||
2: [],
|
||||
3: ['check1.wav', 'check2.wav'],
|
||||
4: ['check3.wav', 'check4.wav'],
|
||||
5: ['check5.wav', 'check6.wav'],
|
||||
6: ['check7.wav', 'check8.wav'],
|
||||
7: ['check9.wav', 'check10.wav'],
|
||||
8: ['check26.wav', 'check27.wav'],
|
||||
9: ['dianhuoVideo.wav', 'xihuoVideo.wav'],
|
||||
10: ['check31.wav'],
|
||||
11: ['check30.wav'],
|
||||
12: ['check28.wav'],
|
||||
13: ['check29.wav'],
|
||||
14: ['check11.wav'],
|
||||
15: ['check12.wav'],
|
||||
16: ['check13.wav'],
|
||||
17: ['check14.wav'],
|
||||
18: ['check15.wav'],
|
||||
19: ['check16.wav'],
|
||||
20: ['check17.wav'],
|
||||
21: ['check18.wav'],
|
||||
22: ['check19.wav'],
|
||||
23: ['check22.wav'],
|
||||
24: ['check23.wav'],
|
||||
25: ['check20.wav', 'check21.wav'],
|
||||
26: ['check24.wav'],
|
||||
// 27:[],
|
||||
// 28:[],
|
||||
// 29:[],
|
||||
}
|
||||
|
||||
export const RealNumData = {
|
||||
3: 19,
|
||||
4: 17,
|
||||
5: 13,
|
||||
6: 12,
|
||||
7: 14,
|
||||
8: 18,
|
||||
9: 5,
|
||||
10: 29,
|
||||
11: 30,
|
||||
12: 31,
|
||||
13: 32,
|
||||
14: 28,
|
||||
15: 28,
|
||||
16: 28,
|
||||
17: 28,
|
||||
18: 28,
|
||||
19: 28,
|
||||
20: 28,
|
||||
21: 2, //左方向灯,
|
||||
22: 3,
|
||||
23: 7,
|
||||
24: 8,
|
||||
25: 20,
|
||||
26: ''
|
||||
}
|
||||
|
||||
export const DwMapData={
|
||||
14: '1',
|
||||
15: '2',
|
||||
16: '3',
|
||||
17: '4',
|
||||
18: '5',
|
||||
19: '9',
|
||||
20: '0'
|
||||
}
|
||||
17
entry/src/main/ets/mock/Judge.ets
Normal file
17
entry/src/main/ets/mock/Judge.ets
Normal file
@ -0,0 +1,17 @@
|
||||
export const AmplifyArr = [
|
||||
{ name: '直线', projectCode: '3', projectCodeCenter: '40300' },
|
||||
{ name: '会车', projectCode: '9', projectCodeCenter: '41300' },
|
||||
{ name: '变道', projectCode: '4', projectCodeCenter: '40500' },
|
||||
{ name: '超车', projectCode: '10', projectCodeCenter: '41400' },
|
||||
{ name: '掉头', projectCode: '12', projectCodeCenter: '41500' },
|
||||
{ name: '停车', projectCode: '11', projectCodeCenter: '40600' },
|
||||
]
|
||||
|
||||
export const AmplifyImages = [
|
||||
'km_zxB.png',
|
||||
'km_hcB.png',
|
||||
'km_bdB.png',
|
||||
'km_ccB.png',
|
||||
'km_dtB.png',
|
||||
'km_tcB.png',
|
||||
]
|
||||
67
entry/src/main/ets/mock/SignDisplay.ets
Normal file
67
entry/src/main/ets/mock/SignDisplay.ets
Normal file
@ -0,0 +1,67 @@
|
||||
export const SignalData = [
|
||||
{ key: '左方向灯', value: '0' },
|
||||
{ key: '右方向灯', value: '0' },
|
||||
{ key: '喇叭', value: '0' },
|
||||
{ key: '点火1', value: '0' },
|
||||
{ key: '点火2', value: '0' },
|
||||
{ key: '近光灯', value: '0' },
|
||||
{ key: '远光灯', value: '0' },
|
||||
{ key: '示廓灯', value: '0' },
|
||||
{ key: '雾灯', value: '0' },
|
||||
{ key: '雨刮器', value: '0' },
|
||||
{ key: '脚刹', value: '0' },
|
||||
{ key: '手刹', value: '0' },
|
||||
{ key: '主驾驶门', value: '0' },
|
||||
{ key: '离合', value: '0' },
|
||||
{ key: '副刹车', value: '0' },
|
||||
{ key: '安全带', value: '0' },
|
||||
{ key: '双跳灯', value: '0' },
|
||||
{ key: '车速', value: '0' },
|
||||
{ key: '档位', value: '0' },
|
||||
{ key: '超声波1', value: '0' },
|
||||
{ key: '超声波2', value: '0' },
|
||||
{ key: 'NC', value: '0' },
|
||||
{ key: 'SA15', value: '0' },
|
||||
{ key: '其他门', value: '0' },
|
||||
{ key: '转速过高', value: '0' },
|
||||
{ key: '累计脉冲', value: '0' },
|
||||
{ key: '熄火次数', value: '0' },
|
||||
{ key: '发动机转速', value: '0' },
|
||||
{ key: '方向盘角度', value: '0' },
|
||||
{ key: '超声波3', value: '0' },
|
||||
{ key: '超声波4', value: '0' },
|
||||
{ key: '触摸1', value: '0' },
|
||||
{ key: '触摸2', value: '0' },
|
||||
{ key: '触摸3', value: '0' },
|
||||
{ key: 'SCIO', value: '0' },
|
||||
{ key: 'SC1A_C', value: '0' },
|
||||
{ key: 'SC1B_C', value: '0' },
|
||||
{ key: 'SC2A_C', value: '0' },
|
||||
{ key: 'SC2B_C', value: '0' },
|
||||
{ key: 'SC3A_C', value: '0' },
|
||||
{ key: 'SC3B_C', value: '0' },
|
||||
{ key: 'SC4A_C', value: '0' },
|
||||
{ key: 'SC4B_C', value: '0' },
|
||||
{ key: 'SC5A_C', value: '0' },
|
||||
{ key: 'SC5B_C', value: '0' },
|
||||
{ key: 'SC6A_C', value: '0' },
|
||||
{ key: 'SC6B_C', value: '0' }
|
||||
]
|
||||
|
||||
export const GPSData = [
|
||||
{ key: '状态', value: '0' },
|
||||
{ key: '收星数', value: '0' },
|
||||
{ key: '海拔高', value: '0' },
|
||||
{ key: '高度差', value: '0' },
|
||||
{ key: '龄期', value: '0' },
|
||||
{ key: '维度因子', value: '0' },
|
||||
{ key: '经度因子', value: '0' },
|
||||
{ key: '航向角', value: '0' },
|
||||
{ key: '俯仰角', value: '0' },
|
||||
{ key: '航向角状态-收星数', value: '0' },
|
||||
{ key: '年月日', value: '0' },
|
||||
{ key: '时分秒', value: '0' },
|
||||
{ key: '经度', value: '0' },
|
||||
{ key: '纬度', value: '0' },
|
||||
{ key: '速度', value: '0' },
|
||||
]
|
||||
@ -1,3 +1,9 @@
|
||||
export * from "./CandidateData"
|
||||
|
||||
export * from "./VideoData"
|
||||
|
||||
export * from "./Judge"
|
||||
|
||||
export * from "./SignDisplay"
|
||||
|
||||
export * from "./CarCheck"
|
||||
4
entry/src/main/ets/model/SignDisplay.ets
Normal file
4
entry/src/main/ets/model/SignDisplay.ets
Normal file
@ -0,0 +1,4 @@
|
||||
export type SignalDataType = {
|
||||
key: string;
|
||||
value: string;
|
||||
};
|
||||
1
entry/src/main/ets/model/index.ets
Normal file
1
entry/src/main/ets/model/index.ets
Normal file
@ -0,0 +1 @@
|
||||
export * from "./SignDisplay"
|
||||
@ -4,6 +4,7 @@ import { carConfigurationInfo, uploadExamCarCheckResult } from '../api/checkCar'
|
||||
import TopLogo from './compontents/TopLogo';
|
||||
import testNapi from '@ohos.hiserialsdk';
|
||||
import { dateFormat } from '../common/utils/tools';
|
||||
import { DwMapData, PassData, RealNumData, StackValueData, WarnFlagData, WarnFlagTipData } from '../mock';
|
||||
|
||||
@Entry
|
||||
@Component
|
||||
@ -24,167 +25,13 @@ export default struct Index {
|
||||
@State subFlag: boolean = true
|
||||
@State signArr: Array<any> = []
|
||||
@State checkListCopy: Array<any> = []
|
||||
@State warnFlag: object = {
|
||||
1: '0',
|
||||
2: '0',
|
||||
3: '0',
|
||||
4: '0',
|
||||
5: '0',
|
||||
6: '0',
|
||||
7: '0',
|
||||
8: '0',
|
||||
9: '0',
|
||||
10: '0',
|
||||
11: '0',
|
||||
12: '0',
|
||||
13: '0',
|
||||
14: '0',
|
||||
15: '0',
|
||||
16: '0',
|
||||
17: '0',
|
||||
18: '0',
|
||||
19: '0',
|
||||
20: '0',
|
||||
21: '0',
|
||||
22: '0',
|
||||
23: '0',
|
||||
24: '0',
|
||||
25: '0',
|
||||
26: '0',
|
||||
27: '0',
|
||||
28: '0',
|
||||
29: '0',
|
||||
}
|
||||
@State warnFlag: object = WarnFlagData
|
||||
@State @Watch('outClick') outFlag: boolean = false;
|
||||
@State passArray: object = {
|
||||
1: false,
|
||||
2: false,
|
||||
3: false,
|
||||
4: false,
|
||||
5: false,
|
||||
6: false,
|
||||
7: false,
|
||||
8: false,
|
||||
9: false,
|
||||
10: false,
|
||||
11: false,
|
||||
12: false,
|
||||
13: false,
|
||||
14: false,
|
||||
15: false,
|
||||
16: false,
|
||||
17: false,
|
||||
18: false,
|
||||
19: false,
|
||||
20: false,
|
||||
21: false,
|
||||
22: false,
|
||||
23: false,
|
||||
24: false,
|
||||
25: false,
|
||||
26: false,
|
||||
27: false,
|
||||
28: false,
|
||||
29: false,
|
||||
}
|
||||
@State stachValue: object = {
|
||||
1: '',
|
||||
2: "",
|
||||
3: "",
|
||||
4: "",
|
||||
5: "",
|
||||
6: "",
|
||||
7: "",
|
||||
8: "",
|
||||
9: "",
|
||||
10: "",
|
||||
11: "",
|
||||
12: "",
|
||||
13: "",
|
||||
14: "",
|
||||
15: "",
|
||||
16: "",
|
||||
17: "",
|
||||
18: "",
|
||||
19: "",
|
||||
20: "",
|
||||
21: "",
|
||||
22: "",
|
||||
23: "",
|
||||
24: "",
|
||||
25: "",
|
||||
26: "",
|
||||
27: "",
|
||||
28: "",
|
||||
29: "",
|
||||
}
|
||||
@State warnFlagTip: object = {
|
||||
0: [],
|
||||
1: [],
|
||||
2: [],
|
||||
3: ['check1.wav', 'check2.wav'],
|
||||
4: ['check3.wav', 'check4.wav'],
|
||||
5: ['check5.wav', 'check6.wav'],
|
||||
6: ['check7.wav', 'check8.wav'],
|
||||
7: ['check9.wav', 'check10.wav'],
|
||||
8: ['check26.wav', 'check27.wav'],
|
||||
9: ['dianhuoVideo.wav', 'xihuoVideo.wav'],
|
||||
10: ['check31.wav'],
|
||||
11: ['check30.wav'],
|
||||
12: ['check28.wav'],
|
||||
13: ['check29.wav'],
|
||||
14: ['check11.wav'],
|
||||
15: ['check12.wav'],
|
||||
16: ['check13.wav'],
|
||||
17: ['check14.wav'],
|
||||
18: ['check15.wav'],
|
||||
19: ['check16.wav'],
|
||||
20: ['check17.wav'],
|
||||
21: ['check18.wav'],
|
||||
22: ['check19.wav'],
|
||||
23: ['check22.wav'],
|
||||
24: ['check23.wav'],
|
||||
25: ['check20.wav', 'check21.wav'],
|
||||
26: ['check24.wav'],
|
||||
// 27:[],
|
||||
// 28:[],
|
||||
// 29:[],
|
||||
}
|
||||
@State realNum: object = {
|
||||
3: 19,
|
||||
4: 17,
|
||||
5: 13,
|
||||
6: 12,
|
||||
7: 14,
|
||||
8: 18,
|
||||
9: 5,
|
||||
10: 29,
|
||||
11: 30,
|
||||
12: 31,
|
||||
13: 32,
|
||||
14: 28,
|
||||
15: 28,
|
||||
16: 28,
|
||||
17: 28,
|
||||
18: 28,
|
||||
19: 28,
|
||||
20: 28,
|
||||
21: 2, //左方向灯,
|
||||
22: 3,
|
||||
23: 7,
|
||||
24: 8,
|
||||
25: 20,
|
||||
26: ''
|
||||
}
|
||||
@State dwMap: object = {
|
||||
14: '1',
|
||||
15: '2',
|
||||
16: '3',
|
||||
17: '4',
|
||||
18: '5',
|
||||
19: '9',
|
||||
20: '0'
|
||||
}
|
||||
@State passArray: object = PassData
|
||||
@State stachValue: object = StackValueData
|
||||
@State warnFlagTip: object = WarnFlagTipData
|
||||
@State realNum: object = RealNumData
|
||||
@State dwMap: object = DwMapData
|
||||
@State fd: number = -1;
|
||||
@State devPath: string = "/dev/ttyS3"
|
||||
@State stopFlag: boolean = false
|
||||
@ -262,143 +109,53 @@ export default struct Index {
|
||||
|
||||
//
|
||||
carConfigurationInfoFn() {
|
||||
if (globalThis.singlePlay) {
|
||||
//
|
||||
const str = "1:5;2:5;3:5;4:5;5:5;6:5;7:5;8:5;9:5;10:5;11:5;12:5;13:5;14:5;15:5;16:5;17:5;18:5;19:5;20:5;21:5;22:2;23:5;24:5;25:5;"
|
||||
const data = str.split(';')
|
||||
this.checkList = []
|
||||
const list = data
|
||||
list.map(res => {
|
||||
const arr = res.split(':')
|
||||
this.checkList.push({
|
||||
'key': parseInt(arr[0]) + 2, 'time': arr[1]
|
||||
if (globalThis.singlePlay) {
|
||||
//
|
||||
const str = "1:5;2:5;3:5;4:5;5:5;6:5;7:5;8:5;9:5;10:5;11:5;12:5;13:5;14:5;15:5;16:5;17:5;18:5;19:5;20:5;21:5;22:2;23:5;24:5;25:5;"
|
||||
const data = str.split(';')
|
||||
this.checkList = []
|
||||
const list = data
|
||||
list.map(res => {
|
||||
const arr = res.split(':')
|
||||
this.checkList.push({
|
||||
'key': parseInt(arr[0]) + 2, 'time': arr[1]
|
||||
})
|
||||
})
|
||||
})
|
||||
this.checkListCopy = JSON.parse(JSON.stringify(this.checkList))
|
||||
return
|
||||
}
|
||||
//模拟真实数据
|
||||
const param = {
|
||||
"body":
|
||||
{
|
||||
"carIdString": globalThis.carInfo.carId, //考车ID
|
||||
"deviceNo": globalThis.deviceNo
|
||||
this.checkListCopy = JSON.parse(JSON.stringify(this.checkList))
|
||||
return
|
||||
}
|
||||
//模拟真实数据
|
||||
const param = {
|
||||
"body":
|
||||
{
|
||||
"carIdString": globalThis.carInfo.carId, //考车ID
|
||||
"deviceNo": globalThis.deviceNo
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
carConfigurationInfo(param).then(res => {
|
||||
const data = res.body.ES_CHECK_CAR_ITEM[0].ITEMS.split(';')
|
||||
this.checkList = []
|
||||
const list = data
|
||||
list.map(res => {
|
||||
const arr = res.split(':')
|
||||
this.checkList.push({
|
||||
'key': parseInt(arr[0]) + 2, 'time': arr[1]
|
||||
carConfigurationInfo(param).then(res => {
|
||||
const data = res.body.ES_CHECK_CAR_ITEM[0].ITEMS.split(';')
|
||||
this.checkList = []
|
||||
const list = data
|
||||
list.map(res => {
|
||||
const arr = res.split(':')
|
||||
this.checkList.push({
|
||||
'key': parseInt(arr[0]) + 2, 'time': arr[1]
|
||||
})
|
||||
})
|
||||
this.checkListCopy = JSON.parse(JSON.stringify(this.checkList))
|
||||
// this.checkList = JSON.parse(res).body.ES_CHECK_CAR_ITEM[0].split(';')
|
||||
console.log('this.checkList' + this.checkList)
|
||||
}).catch((error) => {
|
||||
console.log('error12error' + error)
|
||||
})
|
||||
this.checkListCopy = JSON.parse(JSON.stringify(this.checkList))
|
||||
// this.checkList = JSON.parse(res).body.ES_CHECK_CAR_ITEM[0].split(';')
|
||||
console.log('this.checkList' + this.checkList)
|
||||
}).catch((error) => {
|
||||
console.log('error12error' + error)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
async kszj() {
|
||||
this.breakFlag = true
|
||||
this.stachValue = {
|
||||
1: '',
|
||||
2: "",
|
||||
3: "",
|
||||
4: "",
|
||||
5: "",
|
||||
6: "",
|
||||
7: "",
|
||||
8: "",
|
||||
9: "",
|
||||
10: "",
|
||||
11: "",
|
||||
12: "",
|
||||
13: "",
|
||||
14: "",
|
||||
15: "",
|
||||
16: "",
|
||||
17: "",
|
||||
18: "",
|
||||
19: "",
|
||||
20: "",
|
||||
21: "",
|
||||
22: "",
|
||||
23: "",
|
||||
24: "",
|
||||
25: "",
|
||||
26: "",
|
||||
27: "",
|
||||
28: "",
|
||||
29: "",
|
||||
}
|
||||
this.warnFlag = {
|
||||
1: 0,
|
||||
2: 0,
|
||||
3: 0,
|
||||
4: 0,
|
||||
5: 0,
|
||||
6: 0,
|
||||
7: 0,
|
||||
8: 0,
|
||||
9: 0,
|
||||
10: 0,
|
||||
11: 0,
|
||||
12: 0,
|
||||
13: 0,
|
||||
14: 0,
|
||||
15: 0,
|
||||
16: 0,
|
||||
17: 0,
|
||||
18: 0,
|
||||
19: 0,
|
||||
20: 0,
|
||||
21: 0,
|
||||
22: 0,
|
||||
23: 0,
|
||||
24: 0,
|
||||
25: 0,
|
||||
26: 0,
|
||||
27: 0,
|
||||
28: 0,
|
||||
29: 0,
|
||||
}
|
||||
this.passArray = {
|
||||
1: false,
|
||||
2: false,
|
||||
3: false,
|
||||
4: false,
|
||||
5: false,
|
||||
6: false,
|
||||
7: false,
|
||||
8: false,
|
||||
9: false,
|
||||
10: false,
|
||||
11: false,
|
||||
12: false,
|
||||
13: false,
|
||||
14: false,
|
||||
15: false,
|
||||
16: false,
|
||||
17: false,
|
||||
18: false,
|
||||
19: false,
|
||||
20: false,
|
||||
21: false,
|
||||
22: false,
|
||||
23: false,
|
||||
24: false,
|
||||
25: false,
|
||||
26: false,
|
||||
27: false,
|
||||
28: false,
|
||||
29: false,
|
||||
}
|
||||
this.stachValue = StackValueData
|
||||
this.warnFlag = WarnFlagData
|
||||
this.passArray = PassData
|
||||
this.checkListCopy = JSON.parse(JSON.stringify(this.checkList))
|
||||
this.index = this.checkListCopy[0].key
|
||||
this.vocObj.playAudio({
|
||||
|
||||
@ -1,75 +1,40 @@
|
||||
// @ts-nocheck
|
||||
import promptAction from '@ohos.promptAction'
|
||||
import { VideoConfig } from './interfaces'
|
||||
import common from '@ohos.app.ability.common';
|
||||
import router from '@ohos.router'
|
||||
import { getDeviceInfo ,getCarInfo} from '../common/service/terminalService'
|
||||
import { setCurrentTime } from '../common/service/timeService'
|
||||
import {string2Bytes} from '../common/utils/tools'
|
||||
import router from '@ohos.router';
|
||||
import { getCarInfo, getDeviceInfo } from '../common/service/terminalService';
|
||||
import { setCurrentTime } from '../common/service/timeService';
|
||||
import { string2Bytes } from '../common/utils/tools';
|
||||
import { FileHelper } from '../common/service/FileHelper';
|
||||
import {
|
||||
getEsCarModel,
|
||||
} from '../common/service/initable'
|
||||
import FileUtil from '../common/utils/File'
|
||||
import { getUDP, getUDP2 } from '../common/utils/GlobleUdp'
|
||||
import {initJudgeUdp} from '../common/utils/UdpJudge'
|
||||
import { getTCP } from '../common/utils/GlobleTcp'
|
||||
import TcpClient from '../common/utils/TcpClient';
|
||||
import testNapi from '@ohos.hiserialsdk'
|
||||
import {setliushuiNum,getliushuiNum,getSingleCenterTable,getDoubleCeneterTable,takePhotoFn} from '../common/service/indexService'
|
||||
import { getEsCarModel, } from '../common/service/initable';
|
||||
import FileUtil from '../common/utils/File';
|
||||
import { getUDP, getUDP2 } from '../common/utils/GlobalUdp';
|
||||
import { initJudgeUdp } from '../common/utils/UdpJudge';
|
||||
import { getTCP } from '../common/utils/GlobalTcp';
|
||||
import { getliushuiNum, setliushuiNum } from '../common/service/indexService';
|
||||
import abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl';
|
||||
import worker, { MessageEvents } from '@ohos.worker';
|
||||
|
||||
@Entry
|
||||
@Component
|
||||
struct Index {
|
||||
private fileUtil: FileUtil
|
||||
@State carNum: string = ''
|
||||
@State version: string = ''
|
||||
@State url: string = ''
|
||||
@State hasAuth: boolean = false;
|
||||
@State isSingle: boolean = false;
|
||||
@State deviceId: string = '';
|
||||
private interval = null;
|
||||
private workerInstance = null;
|
||||
@State angle: number = 0
|
||||
@State ratio: number = 1700 / 960
|
||||
@State loading: boolean = true
|
||||
@State fd: number = -1;
|
||||
@State param: VideoConfig = VideoConfigData
|
||||
fileHelper = null;
|
||||
private fileUtil: FileUtil
|
||||
private interval = null;
|
||||
private workerInstance = null;
|
||||
private context = getContext(this) as common.UIAbilityContext;
|
||||
@State param: VideoConfig = {
|
||||
videoNum:'1',
|
||||
spls: '1',
|
||||
wz: '0,0',
|
||||
faceFlag: false,
|
||||
shuiying: true,
|
||||
pztd: '2',
|
||||
ljlx: '',
|
||||
ip: '192.168.36.94',
|
||||
port: '554',
|
||||
userName: 'admin',
|
||||
pwd: '12345qwe',
|
||||
td1: '1',
|
||||
td2: '2',
|
||||
td3: '3',
|
||||
td4: '4',
|
||||
videoRecord1: false,
|
||||
videoRecord2: true,
|
||||
videoRecord3: false,
|
||||
videoRecord4: false,
|
||||
text1: '',
|
||||
text2: '',
|
||||
text3: '',
|
||||
dolt: '',
|
||||
fontSize: '',
|
||||
rlls: '1',
|
||||
spzd4:false,
|
||||
spzd3:false,
|
||||
spzd2:false,
|
||||
spzd1:false,
|
||||
zdyz:'5',
|
||||
}
|
||||
fileHelper =null;
|
||||
|
||||
build() {
|
||||
Column() {
|
||||
Column() {
|
||||
@ -119,7 +84,7 @@ struct Index {
|
||||
Column() {
|
||||
Row() {
|
||||
if (!this.isSingle) {
|
||||
Image($r('app.media.index_lw')).width('30.5%').height('74%').onClick(async() => {
|
||||
Image($r('app.media.index_lw')).width('30.5%').height('74%').onClick(async () => {
|
||||
if (this.loading) {
|
||||
return
|
||||
}
|
||||
@ -133,7 +98,7 @@ struct Index {
|
||||
message: `网络连接失败`,
|
||||
duration: 3000
|
||||
});
|
||||
this.loading=false
|
||||
this.loading = false
|
||||
}
|
||||
this.testXMLToJSONInWorker()
|
||||
|
||||
@ -193,39 +158,46 @@ struct Index {
|
||||
)
|
||||
)
|
||||
|
||||
Text('考车号:' + globalThis.deviceNo).fontColor('#CCAE7A').fontSize(22 * globalThis.ratio).margin({ right: 24 })
|
||||
Text('考车号:' + globalThis.deviceNo)
|
||||
.fontColor('#CCAE7A')
|
||||
.fontSize(22 * globalThis.ratio)
|
||||
.margin({ right: 24 })
|
||||
}
|
||||
.width('100%')
|
||||
.justifyContent(FlexAlign.SpaceBetween)
|
||||
.margin({ bottom: 10 })
|
||||
}
|
||||
|
||||
//
|
||||
if (this.loading) {
|
||||
Column() {
|
||||
Image($r('app.media.open_loading'))
|
||||
.width(200 * globalThis.ratio)
|
||||
.rotate({ angle: this.angle })
|
||||
.height(200 * globalThis.ratio)
|
||||
.animation({
|
||||
duration: 5000, // 动画时长
|
||||
curve: Curve.EaseOut, // 动画曲线
|
||||
delay: 500, // 动画延迟
|
||||
iterations: -1, // 播放次数
|
||||
playMode: PlayMode.Normal, // 动画模式
|
||||
})
|
||||
.margin({ top: 30 * globalThis.ratio })
|
||||
Image($r('app.media.car'))
|
||||
.width(80 * globalThis.ratio)
|
||||
.height(80 * globalThis.ratio)
|
||||
.position({ x: 288 * globalThis.ratio, y: 89 * globalThis.ratio })
|
||||
Text('获取考车信息,请稍候……').fontSize(24 * globalThis.ratio).margin({ top: 20 * globalThis.ratio }).fontWeight(400)
|
||||
}
|
||||
.visibility(this.loading ? Visibility.Visible: Visibility.Hidden)
|
||||
.width(660 * globalThis.ratio)
|
||||
.height(360 * globalThis.ratio)
|
||||
.position({ x: 150 * globalThis.ratio, y: 98 * globalThis.ratio })
|
||||
.backgroundColor('#E6E3DF')
|
||||
.borderRadius(19 * globalThis.ratio)
|
||||
Column() {
|
||||
Image($r('app.media.open_loading'))
|
||||
.width(200 * globalThis.ratio)
|
||||
.rotate({ angle: this.angle })
|
||||
.height(200 * globalThis.ratio)
|
||||
.animation({
|
||||
duration: 5000, // 动画时长
|
||||
curve: Curve.EaseOut, // 动画曲线
|
||||
delay: 500, // 动画延迟
|
||||
iterations: -1, // 播放次数
|
||||
playMode: PlayMode.Normal, // 动画模式
|
||||
})
|
||||
.margin({ top: 30 * globalThis.ratio })
|
||||
Image($r('app.media.car'))
|
||||
.width(80 * globalThis.ratio)
|
||||
.height(80 * globalThis.ratio)
|
||||
.position({ x: 288 * globalThis.ratio, y: 89 * globalThis.ratio })
|
||||
Text('获取考车信息,请稍候……')
|
||||
.fontSize(24 * globalThis.ratio)
|
||||
.margin({ top: 20 * globalThis.ratio })
|
||||
.fontWeight(400)
|
||||
}
|
||||
.visibility(this.loading ? Visibility.Visible : Visibility.Hidden)
|
||||
.width(660 * globalThis.ratio)
|
||||
.height(360 * globalThis.ratio)
|
||||
.position({ x: 150 * globalThis.ratio, y: 98 * globalThis.ratio })
|
||||
.backgroundColor('#E6E3DF')
|
||||
.borderRadius(19 * globalThis.ratio)
|
||||
}
|
||||
}
|
||||
.width('100%')
|
||||
@ -237,27 +209,28 @@ struct Index {
|
||||
}
|
||||
|
||||
aboutToAppear() {
|
||||
globalThis.ratio= 1700 / 960
|
||||
globalThis.ratio = 1700 / 960
|
||||
this.angle = 0
|
||||
this.loading = false
|
||||
}
|
||||
async testXMLToJSONInWorker(){
|
||||
|
||||
async testXMLToJSONInWorker() {
|
||||
let workerInstance = new worker.ThreadWorker('entry/ets/workers/worker.ts', {
|
||||
name: 'FriendsMoments Worker'
|
||||
});
|
||||
const param={
|
||||
carId:globalThis.carInfo?.carId,
|
||||
examinationRoomId:globalThis.carInfo?.examinationRoomId,
|
||||
judgeVersion:globalThis.judgeVersion,
|
||||
shellVersion:globalThis.version,
|
||||
paraKdid:globalThis.timeInfo?.paraKdid,
|
||||
const param = {
|
||||
carId: globalThis.carInfo?.carId,
|
||||
examinationRoomId: globalThis.carInfo?.examinationRoomId,
|
||||
judgeVersion: globalThis.judgeVersion,
|
||||
shellVersion: globalThis.version,
|
||||
paraKdid: globalThis.timeInfo?.paraKdid,
|
||||
mode: globalThis.timeInfo?.mode,
|
||||
context:this.context
|
||||
context: this.context
|
||||
}
|
||||
workerInstance.postMessage(param);
|
||||
workerInstance.onmessage = (e: MessageEvents): void => {
|
||||
console.log("baoyihu after postMessage :",JSON.stringify(e.data));
|
||||
if(e.data.isComplete){
|
||||
console.log("baoyihu after postMessage :", JSON.stringify(e.data));
|
||||
if (e.data.isComplete) {
|
||||
router.pushUrl({
|
||||
url: 'pages/ExaminerLogin',
|
||||
}, router.RouterMode.Single)
|
||||
@ -265,18 +238,24 @@ struct Index {
|
||||
this.loading=false
|
||||
}
|
||||
}
|
||||
|
||||
async heartMsg() {
|
||||
const arr = [globalThis.signNum||0, globalThis.statue||1]
|
||||
const arr = [globalThis.signNum || 0, globalThis.statue || 1]
|
||||
let tmpList = [];
|
||||
tmpList.push(string2Bytes(arr[0], 1 * 8)[0])
|
||||
tmpList.push(string2Bytes(arr[1], 1 * 8)[0])
|
||||
const str =globalThis.lsh|| '0000000000000'
|
||||
for (let i = 0;i < str.length; i++) {
|
||||
const str = globalThis.lsh || '0000000000000'
|
||||
for (let i = 0; i < str.length; i++) {
|
||||
tmpList.push(string2Bytes(str.charCodeAt(i), 1 * 8)[0])
|
||||
}
|
||||
console.log('globalThis.carInfo',JSON.stringify(globalThis.carInfo))
|
||||
console.log('globalThis.carInfo', JSON.stringify(globalThis.carInfo))
|
||||
|
||||
const param= {id: 31,list:tmpList,carNo: globalThis.carInfo.carNo,placeId: globalThis.carInfo.examinationRoomId}
|
||||
const param = {
|
||||
id: 31,
|
||||
list: tmpList,
|
||||
carNo: globalThis.carInfo.carNo,
|
||||
placeId: globalThis.carInfo.examinationRoomId
|
||||
}
|
||||
// globalThis.udpClient2.initHeartSendMsg(param,this.context)
|
||||
if(!globalThis.closeHeartSocket){
|
||||
globalThis.udpClient2.sendMsg(param, this.context)
|
||||
@ -290,7 +269,7 @@ struct Index {
|
||||
getUDP()
|
||||
getUDP2()
|
||||
clearInterval(this.interval)
|
||||
this.interval=setInterval(() => {
|
||||
this.interval = setInterval(() => {
|
||||
setliushuiNum(this.context)
|
||||
getliushuiNum(this.context)
|
||||
this.heartMsg()
|
||||
@ -339,8 +318,9 @@ struct Index {
|
||||
console.error(`Failed to request permissions from user. Code is ${err.code}, message is ${err.message}`);
|
||||
})
|
||||
}
|
||||
|
||||
async initParams() {
|
||||
this.loading=false
|
||||
this.loading = false
|
||||
await getDeviceInfo()
|
||||
getCarInfo()
|
||||
await setCurrentTime();
|
||||
@ -352,8 +332,8 @@ struct Index {
|
||||
// await this.getModel()
|
||||
// const arr = [0x55, 0xaa, 0x01, 0x00, 0x02, 0x01, 0x03, 0x00]
|
||||
// globalThis.udpClientByTopLine.sendMsg(Array2Byte(arr).buffer)
|
||||
console.info(testNapi)
|
||||
}
|
||||
|
||||
async getModel() {
|
||||
const context = this.context;
|
||||
//下载模型
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,145 +0,0 @@
|
||||
import hilog from '@ohos.hilog';
|
||||
import apiJudgeSdk from 'libJudgeSdk.so';
|
||||
import Judge from './judgeSDK/utils/judge-real';
|
||||
import { MarkRule, Project, ProjectObj } from './judgeSDK/api/judgeSDK.d';
|
||||
import AccountTable from '../common/database/tables/AccountTable';
|
||||
import MA_SYSSET from '../common//constants/MA_SYSSET';
|
||||
import common from '@ohos.app.ability.common';
|
||||
import { getSyncData } from '../common/service/initable';
|
||||
|
||||
@Entry
|
||||
@Component
|
||||
export default struct Index {
|
||||
@State message: string = '开始绘制'
|
||||
// 控制XComponent组件的创建和销毁
|
||||
@State draw: boolean = false
|
||||
//监管接口序列号
|
||||
@State serialNumber: number = 0
|
||||
//模拟考试项目
|
||||
@State projects: Project[] = []
|
||||
@State projectsObj: ProjectObj = {}
|
||||
@State markRuleListObj: MarkRule = {}
|
||||
private context = getContext(this) as common.UIAbilityContext;
|
||||
|
||||
// xcomponentController: XComponentController = new XComponentController()
|
||||
|
||||
build() {
|
||||
Row() {
|
||||
Column() {
|
||||
if (this.draw) {
|
||||
XComponent({
|
||||
id: 'duolun_plugin_id_draw', //显示轨迹窗口id名称,注意这个ID要和C++侧一致,不能变
|
||||
type: 'surface',
|
||||
libraryname: 'JudgeSdk'
|
||||
})
|
||||
.width(640)
|
||||
.height(480)
|
||||
.onLoad(() => {
|
||||
apiJudgeSdk.examJudgeMapSetDrawing(true); //停止绘制地图轨迹,false:表示结束绘制
|
||||
hilog.info(0x0000, 'sdk-tag-ets', 'onLoad');
|
||||
|
||||
})
|
||||
.onDestroy(() => {
|
||||
hilog.info(0x0000, 'sdk-tag-ets', 'onDestroy');
|
||||
apiJudgeSdk.examJudgeMapSetDrawing(false); //停止绘制地图轨迹,false:表示结束绘制
|
||||
})
|
||||
} else {
|
||||
Column() {
|
||||
}
|
||||
.width(640 / 2)
|
||||
.height(480 / 2)
|
||||
}
|
||||
|
||||
Text(this.message)
|
||||
.fontSize(50)
|
||||
.fontWeight(FontWeight.Bold)
|
||||
.fontColor('rgba(255,255,255,0)')
|
||||
.onClick(() => {
|
||||
hilog.info(0x0000, 'sdk-tag-ets', 'start render');
|
||||
// 控制XComponent组件的创建和销毁,创建XComponent组件时,会调用libentry.so中的模块注册函数(Init)。
|
||||
this.draw = !this.draw;
|
||||
clearInterval(globalThis.realTimer)
|
||||
})
|
||||
}
|
||||
.width('100%')
|
||||
.backgroundColor('#777777')
|
||||
}
|
||||
.height('100%')
|
||||
}
|
||||
|
||||
async aboutToAppear() {
|
||||
|
||||
await this.initMarkRules();
|
||||
//初始化项目
|
||||
await this.initProjectInfo();
|
||||
//初始化sysset表
|
||||
await this.initSysset()
|
||||
|
||||
const judge = new Judge(this)
|
||||
|
||||
}
|
||||
|
||||
//获取项目信息
|
||||
async initProjectInfo() {
|
||||
const that = this;
|
||||
const systemParamsArr = await getSyncData('MA_SYSTEMPARM')
|
||||
const itemInfoArr = await getSyncData('MA_ITEMINFO')
|
||||
//@ts-ignore
|
||||
const filterProjectsArr = systemParamsArr.filter(item => item.no1 == 6)
|
||||
|
||||
that.projects = filterProjectsArr.map(project => {
|
||||
|
||||
//TODO 临时代码
|
||||
const testType = {
|
||||
0: 1,
|
||||
2: 4,
|
||||
3: 3,
|
||||
5: 5,
|
||||
6: 2
|
||||
}
|
||||
const currentProject = {
|
||||
name: decodeURI(project.txt1),
|
||||
abbreviation: decodeURI(project.txt3),
|
||||
projectCode: decodeURI(project.no2),
|
||||
projectCodeCenter: decodeURI(project.txt2),
|
||||
//@ts-ignore
|
||||
type: testType[decodeURI(project.no2)*1]
|
||||
// type:'0' + (project.type || '1')
|
||||
}
|
||||
that.projectsObj[project.no2] = currentProject
|
||||
return currentProject
|
||||
});
|
||||
}
|
||||
|
||||
//获取扣分代码信息
|
||||
async initMarkRules() {
|
||||
const that = this;
|
||||
const markRuleParams = await getSyncData('MA_MARKRULE')
|
||||
//@ts-ignore
|
||||
markRuleParams.forEach(mark => {
|
||||
that.markRuleListObj[`${mark.itemno}_${mark.markserial}`] = {
|
||||
itemno: mark.itemno * 1,
|
||||
markcatalog: mark.markcatalog,
|
||||
markshow: decodeURI(mark.markshow),
|
||||
markreal: mark.markreal * 1,
|
||||
markserial: mark.markserial
|
||||
};
|
||||
})
|
||||
}
|
||||
|
||||
// 获取sysset表信息
|
||||
async initSysset() {
|
||||
const that = this;
|
||||
const db = new AccountTable(() => {
|
||||
}, MA_SYSSET);
|
||||
const syssetParams = await getSyncData('MA_SYSSET')
|
||||
//@ts-ignore
|
||||
const serialNumberArr = syssetParams.filter(sys => sys.v_no === '901');
|
||||
that.serialNumber = serialNumberArr || '1234567'
|
||||
}
|
||||
|
||||
aboutToDisappear() {
|
||||
//apiJudgeSdk.stopRender();
|
||||
|
||||
}
|
||||
}
|
||||
@ -1,75 +1,13 @@
|
||||
import { GPSData, SignalData } from '../mock';
|
||||
import { SignalDataType } from '../model';
|
||||
import signDisplayCom from './compontents/signDisplayCom';
|
||||
|
||||
@Entry
|
||||
@Component
|
||||
export default struct Index {
|
||||
@State signArr: Array<any> = []
|
||||
@State sjxhColum: Array<any> = [
|
||||
{ key: '左方向灯', value: '0' },
|
||||
{ key: '右方向灯', value: '0' },
|
||||
{ key: '喇叭', value: '0' },
|
||||
{ key: '点火1', value: '0' },
|
||||
{ key: '点火2', value: '0' },
|
||||
{ key: '近光灯', value: '0' },
|
||||
{ key: '远光灯', value: '0' },
|
||||
{ key: '示廓灯', value: '0' },
|
||||
{ key: '雾灯', value: '0' },
|
||||
{ key: '雨刮器', value: '0' },
|
||||
{ key: '脚刹', value: '0' },
|
||||
{ key: '手刹', value: '0' },
|
||||
{ key: '主驾驶门', value: '0' },
|
||||
{ key: '离合', value: '0' },
|
||||
{ key: '副刹车', value: '0' },
|
||||
{ key: '安全带', value: '0' },
|
||||
{ key: '双跳灯', value: '0' },
|
||||
{ key: '车速', value: '0' },
|
||||
{ key: '档位', value: '0' },
|
||||
{ key: '超声波1', value: '0' },
|
||||
{ key: '超声波2', value: '0' },
|
||||
{ key: 'NC', value: '0' },
|
||||
{ key: 'SA15', value: '0' },
|
||||
{ key: '其他门', value: '0' },
|
||||
{ key: '转速过高', value: '0' },
|
||||
{ key: '累计脉冲', value: '0' },
|
||||
{ key: '熄火次数', value: '0' },
|
||||
{ key: '发动机转速', value: '0' },
|
||||
{ key: '方向盘角度', value: '0' },
|
||||
{ key: '超声波3', value: '0' },
|
||||
{ key: '超声波4', value: '0' },
|
||||
{ key: '触摸1', value: '0' },
|
||||
{ key: '触摸2', value: '0' },
|
||||
{ key: '触摸3', value: '0' },
|
||||
{ key: 'SCIO', value: '0' },
|
||||
{ key: 'SC1A_C', value: '0' },
|
||||
{ key: 'SC1B_C', value: '0' },
|
||||
{ key: 'SC2A_C', value: '0' },
|
||||
{ key: 'SC2B_C', value: '0' },
|
||||
{ key: 'SC3A_C', value: '0' },
|
||||
{ key: 'SC3B_C', value: '0' },
|
||||
{ key: 'SC4A_C', value: '0' },
|
||||
{ key: 'SC4B_C', value: '0' },
|
||||
{ key: 'SC5A_C', value: '0' },
|
||||
{ key: 'SC5B_C', value: '0' },
|
||||
{ key: 'SC6A_C', value: '0' },
|
||||
{ key: 'SC6B_C', value: '0' }
|
||||
];
|
||||
@State GPSColum: Array<any> = [
|
||||
{ key: '状态', value: '0' },
|
||||
{ key: '收星数', value: '0' },
|
||||
{ key: '海拔高', value: '0' },
|
||||
{ key: '高度差', value: '0' },
|
||||
{ key: '龄期', value: '0' },
|
||||
{ key: '维度因子', value: '0' },
|
||||
{ key: '经度因子', value: '0' },
|
||||
{ key: '航向角', value: '0' },
|
||||
{ key: '俯仰角', value: '0' },
|
||||
{ key: '航向角状态-收星数', value: '0' },
|
||||
{ key: '年月日', value: '0' },
|
||||
{ key: '时分秒', value: '0' },
|
||||
{ key: '经度', value: '0' },
|
||||
{ key: '纬度', value: '0' },
|
||||
{ key: '速度', value: '0' },
|
||||
]
|
||||
@State sjxhColum: Array<SignalDataType> =SignalData;
|
||||
@State GPSColum: Array<SignalDataType> = GPSData
|
||||
@State ratio: number = 850 / 960
|
||||
@State gpsActive: number = 1
|
||||
@State active: number = 0
|
||||
|
||||
@ -88,6 +88,7 @@ struct Index {
|
||||
gateway: this.inputTextList1[5],//value.gateway网关
|
||||
netMask: this.inputTextList1[4],//value.netMask网络掩码
|
||||
dnsServers: this.inputTextList1[6],
|
||||
// @ts-ignore
|
||||
domain: ""
|
||||
}, (error) => {
|
||||
if (error) {
|
||||
|
||||
@ -1,22 +1,21 @@
|
||||
import { getExaminationItem, getExaminationStudentInfo, examinationStuAbsent, getPhotosForOther } from '../api/userInfo'
|
||||
import router from '@ohos.router'
|
||||
import TopLogo from './compontents/TopLogo'
|
||||
import { examinationStuAbsent, getExaminationItem, getExaminationStudentInfo } from '../api/userInfo';
|
||||
import router from '@ohos.router';
|
||||
import TopLogo from './compontents/TopLogo';
|
||||
import Md5 from '../common/utils/md5';
|
||||
import AccountTable from '../common/database/tables/AccountTable';
|
||||
import USER from '../common/constants/USER';
|
||||
import { dateFormat, getCurrentTime } from '../common/utils/tools';
|
||||
import { dateFormat, getCurrentTime, string2Bytes } from '../common/utils/tools';
|
||||
import MA_SYSSET from '../common//constants/MA_SYSSET';
|
||||
import FaceCompare from './compontents/FaceCompare'
|
||||
import FaceCompare from './compontents/FaceCompare';
|
||||
// import { initJudgeUdp } from '../common/utils/UdpJudge'
|
||||
import { writeObjectOut } from '../api/judge'
|
||||
import testNapi from "@ohos.idcard";
|
||||
import { writeObjectOut } from '../api/judge';
|
||||
import testNapi from '@ohos.idcard';
|
||||
import common from '@ohos.app.ability.common';
|
||||
import { User } from './interfaces'
|
||||
import WebRTCVoice from './webRTC/'
|
||||
import promptAction from '@ohos.promptAction'
|
||||
import { CandidateData, EmptyCandidateObject } from "../mock/CandidateData"
|
||||
import {string2Bytes} from '../common/utils/tools'
|
||||
import { getSyncData } from '../common/service/initable'
|
||||
import { User } from './interfaces';
|
||||
import WebRTCVoice from './webRTC/';
|
||||
import promptAction from '@ohos.promptAction';
|
||||
import { CandidateData, EmptyCandidateObject } from '../mock/CandidateData';
|
||||
|
||||
@Entry
|
||||
@Component
|
||||
struct UserInfo {
|
||||
@ -38,9 +37,6 @@ struct UserInfo {
|
||||
@State currentUser: User = EmptyCandidateObject
|
||||
@State dataList: Array<User> = []
|
||||
@State list: Array<User> = []
|
||||
private AccountTable = new AccountTable(() => {
|
||||
}, USER);
|
||||
private context = getContext(this) as common.UIAbilityContext;
|
||||
@State name: string = 'initName';
|
||||
@State sex: string = '';
|
||||
@State callBackFlag: boolean = false;
|
||||
@ -57,9 +53,20 @@ struct UserInfo {
|
||||
@State signNum: number = 0;
|
||||
@State isCanClick: boolean = true;
|
||||
@State faceFlag: string = '0';
|
||||
@State FaceOpenStatue: string = '0';//是否开启人脸识别
|
||||
@State FaceOpenStatue: string = '0'; //是否开启人脸识别
|
||||
subscriber;
|
||||
@State faceCatchImg: string = ''
|
||||
private AccountTable = new AccountTable(() => {
|
||||
}, USER);
|
||||
private context = getContext(this) as common.UIAbilityContext;
|
||||
private labelBlocks = [
|
||||
{ label: '考生姓名', key: 'xm' },
|
||||
{ label: '身份证号', key: 'sfzmhm' },
|
||||
{ label: ' 流 水 号 ', key: 'lsh' },
|
||||
{ label: '考试路线', key: 'kslx' },
|
||||
{ label: '待考次数', key: 'kssycs' },
|
||||
{ label: '考官姓名', key: 'ksy1' },
|
||||
]
|
||||
|
||||
async onPageShow() {
|
||||
//语音功能
|
||||
@ -75,8 +82,9 @@ struct UserInfo {
|
||||
this.heartMsg()
|
||||
|
||||
}
|
||||
|
||||
//身份证读卡器初始化
|
||||
openDeviceByIDCard(){
|
||||
openDeviceByIDCard() {
|
||||
globalThis.indexComponent = this;
|
||||
// 应用启动时打开读卡设备
|
||||
let ret = testNapi.OpenDevice();
|
||||
@ -86,11 +94,13 @@ struct UserInfo {
|
||||
console.error("zzctest Failed to Open Device");
|
||||
}
|
||||
}
|
||||
stopDeviceById(){
|
||||
if(this.faceFlag=='1'){
|
||||
testNapi&&testNapi.StopReadCard()
|
||||
|
||||
stopDeviceById() {
|
||||
if (this.faceFlag == '1') {
|
||||
testNapi && testNapi.StopReadCard()
|
||||
}
|
||||
}
|
||||
|
||||
// 通过身份证获取当前学员
|
||||
getCurrentStudent(id) {
|
||||
let flag = false
|
||||
@ -126,6 +136,7 @@ struct UserInfo {
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
onReadCard(ret) {
|
||||
console.info(`zzctest xx Read Card ret =${ret.status}`)
|
||||
let thisVar = globalThis.indexComponent;
|
||||
@ -182,7 +193,8 @@ struct UserInfo {
|
||||
changeQkfn() {
|
||||
this.qkFn()
|
||||
}
|
||||
initData(){
|
||||
|
||||
initData() {
|
||||
this.stepFlag = false
|
||||
this.faceCompareSucess = 0
|
||||
this.showFaceCompare = false
|
||||
@ -207,21 +219,22 @@ struct UserInfo {
|
||||
}
|
||||
|
||||
async heartMsg() {
|
||||
globalThis.udpClient2&globalThis.udpClient2.setMsgCallBack((val)=>{
|
||||
if(val.id=='32'){
|
||||
globalThis.signNum=val.body[1]
|
||||
if(val.body[0]=='7'){
|
||||
globalThis.udpClient2 & globalThis.udpClient2.setMsgCallBack((val) => {
|
||||
if (val.id == '32') {
|
||||
globalThis.signNum = val.body[1]
|
||||
if (val.body[0] == '7') {
|
||||
//缺考处理
|
||||
this.getqkFn()
|
||||
this.signNum=val.body[1]
|
||||
this.signNum = val.body[1]
|
||||
}
|
||||
}else if(val.id=='42'){
|
||||
} else if (val.id == '42') {
|
||||
//收到中心缺考确认消息
|
||||
console.log('qkfnqkfn',val.body[0])
|
||||
console.log('qkfnqkfn', val.body[0])
|
||||
this.qkFn()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
//考点端查询缺考指令内容消息请求
|
||||
getqkFn() {
|
||||
let tmpList = [];
|
||||
@ -236,8 +249,6 @@ struct UserInfo {
|
||||
globalThis.udpClient2.sendMsg(param, this.context)
|
||||
}
|
||||
|
||||
|
||||
|
||||
async initSysset() {
|
||||
const that = this;
|
||||
const db = new AccountTable(() => {
|
||||
@ -251,15 +262,15 @@ struct UserInfo {
|
||||
const studentRefreshParam = syssetParams.filter(sys => sys.v_no === '452')
|
||||
that.studentRefreshStatue = studentRefreshParam?.[0]?.v_value || '0'
|
||||
const faceParam = syssetParams.filter(sys => sys.v_no === '2313')
|
||||
that.FaceOpenStatue =faceParam?.[0]?.v_value=='3'? '1':'0'
|
||||
that.FaceOpenStatue = faceParam?.[0]?.v_value == '3' ? '1' : '0'
|
||||
that.FaceOpenStatue = '0'
|
||||
console.log('that.FaceOpenStatue', that.FaceOpenStatue)
|
||||
// faceParam?.[0]?.v_value ||
|
||||
// 1身份证读卡器 2指纹 3人脸
|
||||
this.faceFlag=faceParam?.[0]?.v_value ||'0'
|
||||
if(faceParam?.[0]?.v_value=='1'){
|
||||
this.faceFlag = faceParam?.[0]?.v_value || '0'
|
||||
if (faceParam?.[0]?.v_value == '1') {
|
||||
that.openDeviceByIDCard()
|
||||
}
|
||||
console.log('studentRefreshStatue',this.studentRefreshStatue)
|
||||
//0不自动更新 1自动更新(不限次数) 2没有考生更新2次
|
||||
if (that.studentRefreshStatue == '2') {
|
||||
clearInterval(that.interval)
|
||||
@ -276,18 +287,19 @@ struct UserInfo {
|
||||
that.getExaminationStudentInfoFn()
|
||||
}
|
||||
}, 5000)
|
||||
}else{
|
||||
} else {
|
||||
this.getExaminationItemFn()
|
||||
}
|
||||
|
||||
})
|
||||
})
|
||||
}
|
||||
//人脸比对窗口关闭
|
||||
|
||||
//人脸比对窗口关闭
|
||||
changeFaceCompareSuccess() {
|
||||
console.log('this.faceCompareSuces', this.faceCompareSucess, JSON.stringify(this.currentUser))
|
||||
if (this.faceCompareSucess > 0) {
|
||||
//人脸比对通过
|
||||
//人脸比对通过
|
||||
this.sfbdinterfaceFn()
|
||||
}
|
||||
}
|
||||
@ -307,7 +319,8 @@ struct UserInfo {
|
||||
this.pageIndex--;
|
||||
this.dataList = this.list.slice(this.pageIndex * 4, this.pageIndex * 4 + 4)
|
||||
}
|
||||
//获取下载考生
|
||||
|
||||
//获取下载考生
|
||||
getExaminationStudentInfoFn() {
|
||||
if (globalThis.singlePlay) {
|
||||
return
|
||||
@ -360,6 +373,7 @@ struct UserInfo {
|
||||
console.log('error12error' + error)
|
||||
})
|
||||
}
|
||||
|
||||
qkFn() {
|
||||
this.faceCompareSucess = 0
|
||||
if (globalThis.singlePlay) {
|
||||
@ -396,9 +410,10 @@ struct UserInfo {
|
||||
})
|
||||
|
||||
}
|
||||
async getExaminationItemFn(){
|
||||
|
||||
async getExaminationItemFn() {
|
||||
console.info('surenjun', this.currentUser.lsh)
|
||||
if(!this.currentUser.lsh||globalThis.singlePlay){
|
||||
if (!this.currentUser.lsh || globalThis.singlePlay) {
|
||||
return
|
||||
}
|
||||
const carInfo = globalThis.carInfo;
|
||||
@ -409,14 +424,15 @@ struct UserInfo {
|
||||
lsh: this.currentUser.lsh || '',
|
||||
examinationRoomId
|
||||
});
|
||||
if(examItems?.getExaminationItemRsp?.body?.kssycs!=0){
|
||||
if (examItems?.getExaminationItemRsp?.body?.kssycs != 0) {
|
||||
this.getExaminationStudentInfoFn()
|
||||
}else{
|
||||
this.dataList=[]
|
||||
} else {
|
||||
this.dataList = []
|
||||
this.currentUser = EmptyCandidateObject
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//身份比对
|
||||
async sfbdinterfaceFn() {
|
||||
this.stepFlag = true
|
||||
@ -441,7 +457,7 @@ struct UserInfo {
|
||||
ksxtbh: this.ksxtbh || '222',
|
||||
sfzmhm: this.currentUser.sfzmhm || '',
|
||||
ksysfzmhm: this.currentUser.ksy1sfzmhm || '',
|
||||
zp: encodeURIComponent((this.faceCatchImg||this.currentUser.kszp.substr(22)) || ''),
|
||||
zp: encodeURIComponent((this.faceCatchImg || this.currentUser.kszp.substr(22)) || ''),
|
||||
kssj: dateFormat(date) || '',
|
||||
kchp: decodeURI(plateNo),
|
||||
Ksy2sfzmhm: this.currentUser.ksy2sfzmhm || ''
|
||||
@ -491,14 +507,18 @@ struct UserInfo {
|
||||
this.stepFlag = false
|
||||
}
|
||||
}
|
||||
|
||||
aboutToDisappear() {
|
||||
this.outClick()
|
||||
}
|
||||
|
||||
outClick() {
|
||||
clearInterval(this.interval)
|
||||
this.stopDeviceById()
|
||||
globalThis.udpClient2&&globalThis.udpClient2?.setMsgCallBack(()=>{})
|
||||
globalThis.udpClient2 && globalThis.udpClient2?.setMsgCallBack(() => {
|
||||
})
|
||||
}
|
||||
|
||||
// 几个按钮公共样式
|
||||
@Styles
|
||||
commStyle(){
|
||||
@ -509,15 +529,6 @@ struct UserInfo {
|
||||
.margin({ bottom: 12 * this.ratio })
|
||||
}
|
||||
|
||||
private labelBlocks = [
|
||||
{ label: '考生姓名', key: 'xm' },
|
||||
{ label: '身份证号', key: 'sfzmhm' },
|
||||
{ label: ' 流 水 号 ', key: 'lsh' },
|
||||
{ label: '考试路线', key: 'kslx' },
|
||||
{ label: '待考次数', key: 'kssycs' },
|
||||
{ label: '考官姓名', key: 'ksy1' },
|
||||
]
|
||||
|
||||
build() {
|
||||
Column() {
|
||||
TopLogo({ outFlag: $outFlag }).margin({ bottom: 10 })
|
||||
@ -656,9 +667,9 @@ struct UserInfo {
|
||||
})
|
||||
return
|
||||
}
|
||||
if(this.FaceOpenStatue!='0'){
|
||||
if (this.FaceOpenStatue != '0') {
|
||||
this.showFaceCompare = true
|
||||
}else{
|
||||
} else {
|
||||
this.sfbdinterfaceFn()
|
||||
}
|
||||
})
|
||||
|
||||
@ -1,23 +1,16 @@
|
||||
//@ts-ignore
|
||||
|
||||
import util from '@ohos.util';
|
||||
|
||||
import { voiceService } from '../../common/service/voiceService'
|
||||
import { faceCompare } from '../../api/userInfo'
|
||||
import FileUtil from '../../common/utils/File'
|
||||
import { VideoConfig } from '../interfaces'
|
||||
import { voiceService } from '../../common/service/voiceService';
|
||||
import { faceCompare } from '../../api/userInfo';
|
||||
import FileUtil from '../../common/utils/File';
|
||||
import { VideoConfig } from '../interfaces';
|
||||
import common from '@ohos.app.ability.common';
|
||||
|
||||
import { string2Bytes } from '../../common/utils/tools'
|
||||
import { takePhoto } from '../../common/service/videoService'
|
||||
import { GlobalConfig } from '../../config/index'
|
||||
import { string2Bytes } from '../../common/utils/tools';
|
||||
import { takePhoto } from '../../common/service/videoService';
|
||||
import { GlobalConfig } from '../../config/index';
|
||||
import { VideoConfigData } from '../../mock';
|
||||
|
||||
@Component
|
||||
export default struct FaceCompare {
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
|
||||
@State imageBase64: string = 'data:image/jpeg;base64,'
|
||||
@Prop sfzh: string;
|
||||
@Prop lsh: string;
|
||||
@ -27,46 +20,26 @@ export default struct FaceCompare {
|
||||
@Link getqkFlag: boolean;
|
||||
@Link faceCatchImg: string;
|
||||
@State imageThumbnail: string = '';
|
||||
private times = 1; //人脸比对失败次数, 超过3次将不会自动比对,需要点击重新打开重新触发
|
||||
private vocObj = null;
|
||||
@State callBackFlag: boolean = false;
|
||||
@State @Watch('clearIntervalFn') showFaceCompareFlag: Boolean = false;
|
||||
@State video_url: string = 'rtsp://admin:12345qwe@192.168.5.41:8000/h264/ch2/main/av_stream'
|
||||
@State previewUri: Resource = $r('app.media.2_nor')
|
||||
@State curRate: PlaybackSpeed = PlaybackSpeed.Speed_Forward_1_00_X
|
||||
@State showControls: boolean = false
|
||||
private controller: VideoController = new VideoController()
|
||||
@State isAutoPlay: boolean = true
|
||||
@State signNum: number = 0;
|
||||
@State param: VideoConfig = VideoConfigData
|
||||
private times = 1; //人脸比对失败次数, 超过3次将不会自动比对,需要点击重新打开重新触发
|
||||
private vocObj = null;
|
||||
private controller: VideoController = new VideoController()
|
||||
private fileUtil: FileUtil
|
||||
private interval: any
|
||||
@State param: VideoConfig = {
|
||||
spls: '',
|
||||
videoNum: '1',
|
||||
faceFlag: false,
|
||||
pztd: '1',
|
||||
ljlx: '',
|
||||
ip: '192.168.7.112',
|
||||
port: '554',
|
||||
userName: 'admin',
|
||||
pwd: '12345qwe',
|
||||
td1: '1',
|
||||
td2: '2',
|
||||
td3: '3',
|
||||
td4: '4',
|
||||
videoRecord1: false,
|
||||
videoRecord2: false,
|
||||
videoRecord3: false,
|
||||
videoRecord4: false,
|
||||
rlls: '1',
|
||||
spzd4:false,
|
||||
spzd3:false,
|
||||
spzd2:false,
|
||||
spzd1:false,
|
||||
zdyz:'500',
|
||||
}
|
||||
private context = getContext(this) as common.UIAbilityContext;
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
|
||||
build() {
|
||||
Column() {
|
||||
Column() {
|
||||
@ -162,7 +135,7 @@ export default struct FaceCompare {
|
||||
this.controller.stop()
|
||||
this.vocObj && this.vocObj.releasePlayer()
|
||||
this.showFaceCompare = !this.showFaceCompare
|
||||
this.showFaceCompareFlag=!this.showFaceCompareFlag
|
||||
this.showFaceCompareFlag = !this.showFaceCompareFlag
|
||||
this.faceCompareSucess = -1
|
||||
globalThis.statue = 2
|
||||
|
||||
@ -203,9 +176,9 @@ export default struct FaceCompare {
|
||||
}
|
||||
|
||||
async faceComparFn() {
|
||||
console.log('mmmmm0',1)
|
||||
console.log('mmmmm0', 1)
|
||||
|
||||
takePhoto(this.param, this.context, 'jt/',0,({base64})=>{
|
||||
takePhoto(this.param, this.context, 'jt/', 0, ({base64}) => {
|
||||
faceCompare({
|
||||
sfzh: this.sfzh,
|
||||
firstImage: this.firstImage.substr(22),
|
||||
@ -213,12 +186,12 @@ export default struct FaceCompare {
|
||||
type: 2,
|
||||
verifyType: 1
|
||||
}).then(res => {
|
||||
console.log('mmmmm8',res)
|
||||
console.log('mmmmm8', res)
|
||||
|
||||
if (res) {
|
||||
this.controller.stop()
|
||||
this.showFaceCompare = !this.showFaceCompare
|
||||
this.showFaceCompareFlag=!this.showFaceCompareFlag
|
||||
this.showFaceCompareFlag = !this.showFaceCompareFlag
|
||||
this.faceCompareSucess = 1;
|
||||
// this.faceCatchImg = result
|
||||
this.vocObj.playAudio({
|
||||
@ -236,9 +209,7 @@ export default struct FaceCompare {
|
||||
}
|
||||
})
|
||||
})
|
||||
console.log('mmmmm8',9)
|
||||
|
||||
|
||||
console.log('mmmmm8', 9)
|
||||
|
||||
|
||||
}
|
||||
@ -246,7 +217,7 @@ export default struct FaceCompare {
|
||||
async heartMsg(context) {
|
||||
let tmpList = []
|
||||
const str = this.lsh
|
||||
for (let i = 0;i < str.length; i++) {
|
||||
for (let i = 0; i < str.length; i++) {
|
||||
tmpList.push(string2Bytes(str.charCodeAt(i), 1 * 8)[0])
|
||||
}
|
||||
const param = {
|
||||
@ -274,7 +245,7 @@ export default struct FaceCompare {
|
||||
globalThis.udpClient2.setMsgCallBack((val) => {
|
||||
if (val.id == '48') {
|
||||
if (val.body[13] == '1') {
|
||||
this.showFaceCompareFlag=!this.showFaceCompareFlag
|
||||
this.showFaceCompareFlag = !this.showFaceCompareFlag
|
||||
this.showFaceCompare = !this.showFaceCompare
|
||||
this.vocObj && this.vocObj.releasePlayer()
|
||||
this.faceCompareSucess = 1
|
||||
@ -311,7 +282,7 @@ export default struct FaceCompare {
|
||||
}
|
||||
} else if (val == 'yzcg.wav') {
|
||||
this.showFaceCompare = !this.showFaceCompare
|
||||
this.showFaceCompareFlag=!this.showFaceCompareFlag
|
||||
this.showFaceCompareFlag = !this.showFaceCompareFlag
|
||||
globalThis.statue = 4
|
||||
this.faceCompareSucess = 1;
|
||||
this.vocObj && this.vocObj.releasePlayer()
|
||||
@ -320,13 +291,13 @@ export default struct FaceCompare {
|
||||
this.vocObj && this.vocObj.releasePlayer()
|
||||
this.faceCompareSucess = -1
|
||||
this.showFaceCompare = !this.showFaceCompare
|
||||
this.showFaceCompareFlag=!this.showFaceCompareFlag
|
||||
this.showFaceCompareFlag = !this.showFaceCompareFlag
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
const data = await this.fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/config3.txt');
|
||||
console.log('faceEnterIn,data',data)
|
||||
console.log('faceEnterIn,data', data)
|
||||
|
||||
setTimeout(() => {
|
||||
this.vocObj && this.vocObj.playAudio({
|
||||
@ -343,8 +314,6 @@ export default struct FaceCompare {
|
||||
this.controller.start()
|
||||
}
|
||||
|
||||
|
||||
|
||||
async aboutToDisappear() {
|
||||
|
||||
}
|
||||
|
||||
@ -1,95 +1,36 @@
|
||||
import router from '@ohos.router'
|
||||
import router from '@ohos.router';
|
||||
import UdpClient from '../../common/utils/UdpClient';
|
||||
import FileLog from '../judgeSDK/utils/file-log'
|
||||
import { voiceService } from '../../common/service/voiceService'
|
||||
import prompt from '@ohos.prompt'
|
||||
import RealTime from '../compontents/judge/real-time'
|
||||
import FileLog from '../judgeSDK/utils/file-log';
|
||||
import RealTime from '../compontents/judge/RealTime';
|
||||
import { GPSData, SignalData } from '../../mock';
|
||||
import { SignalDataType } from '../../model';
|
||||
|
||||
@Component
|
||||
export default struct SignDisplayCom {
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
|
||||
@State showBack: boolean = false
|
||||
@State scaleNum: number = 1
|
||||
@State msg: string = ''
|
||||
@State signArr: Array<any> = []
|
||||
@State sjxhColum: Array<any> = [
|
||||
{ key: '左方向灯', value: '0' }, { key: '右方向灯', value: '0' }, {
|
||||
key: '喇叭',
|
||||
value: '0'
|
||||
}, { key: '点火1', value: '0' }, { key: '点火2', value: '0' }, { key: '近光灯', value: '0' }, {
|
||||
key: '远光灯',
|
||||
value: '0'
|
||||
}, { key: '示廓灯', value: '0' }, { key: '雾灯', value: '0' }, { key: '雨刮器', value: '0' }, {
|
||||
key: '脚刹',
|
||||
value: '0'
|
||||
}, { key: '手刹', value: '0' }, { key: '主驾驶门', value: '0' }, { key: '离合', value: '0' }, {
|
||||
key: '副刹车',
|
||||
value: '0'
|
||||
}, {
|
||||
key: '安全带',
|
||||
value: '0'
|
||||
}, { key: '双跳灯', value: '0' }, { key: '车速', value: '0' }, { key: '档位', value: '0' }, {
|
||||
key: '超声波1',
|
||||
value: '0'
|
||||
}, {
|
||||
key: '超声波2',
|
||||
value: '0'
|
||||
}, {
|
||||
key: 'NC',
|
||||
value: '0'
|
||||
}, { key: 'SA15', value: '0' }, { key: '其他门', value: '0' }, { key: '转速过高', value: '0' }, {
|
||||
key: '累计脉冲',
|
||||
value: '0'
|
||||
}, { key: '熄火次数', value: '0' }, { key: '发动机转速', value: '0' }, { key: '方向盘角度', value: '0' }, {
|
||||
key: '超声波3',
|
||||
value: '0'
|
||||
}, { key: '超声波4', value: '0' }, { key: '触摸1', value: '0' }, { key: '触摸2', value: '0' }, {
|
||||
key: '触摸3',
|
||||
value: '0'
|
||||
}, { key: 'SCIO', value: '0' }
|
||||
, { key: 'SC1A_C', value: '0' }, { key: 'SC1B_C', value: '0' }, { key: 'SC2A_C', value: '0' }, {
|
||||
key: 'SC2B_C',
|
||||
value: '0'
|
||||
}, { key: 'SC3A_C', value: '0' }, { key: 'SC3B_C', value: '0' }, { key: 'SC4A_C', value: '0' }, {
|
||||
key: 'SC4B_C',
|
||||
value: '0'
|
||||
}, { key: 'SC5A_C', value: '0' }, { key: 'SC5B_C', value: '0' }, { key: 'SC6A_C', value: '0' }, {
|
||||
key: 'SC6B_C',
|
||||
value: '0'
|
||||
}]
|
||||
@State GPSColum:Array<any>=[
|
||||
{ key: '状态', value: '0' },
|
||||
{ key: '收星数', value: '0' },
|
||||
{ key: '海拔高', value: '0' },
|
||||
{ key: '高度差', value: '0' },
|
||||
{ key: '龄期', value: '0' },
|
||||
{ key: '维度因子', value: '0' },
|
||||
{ key: '经度因子', value: '0' },
|
||||
{ key: '航向角', value: '0' },
|
||||
{ key: '俯仰角', value: '0' },
|
||||
{ key: '航向角状态-收星数', value: '0' },
|
||||
{ key: '年月日', value: '0' },
|
||||
{ key: '时分秒', value: '0' },
|
||||
{ key: '经度', value: '0' },
|
||||
{ key: '纬度', value: '0' },
|
||||
{ key: '速度', value: '0' },
|
||||
]
|
||||
@State sjxhColum: Array<SignalDataType> = SignalData
|
||||
@State GPSColum: Array<SignalDataType> = GPSData
|
||||
@State ratio: number = 850 / 960
|
||||
@State gpsActive: number = 1
|
||||
@Prop active: number = 0
|
||||
@State msgStr: string = ''
|
||||
@State interval: any=''
|
||||
|
||||
@State interval: number = 0
|
||||
@State @Watch('outClick') outFlag: boolean = false;
|
||||
@State url: string = ''
|
||||
private timer = null
|
||||
private udpClient: UdpClient = null
|
||||
private FileLog: FileLog
|
||||
private vocObj = null;
|
||||
@State url: string = ''
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
|
||||
build() {
|
||||
Column(){
|
||||
Column() {
|
||||
Column() {
|
||||
Flex({ justifyContent: FlexAlign.SpaceBetween }) {
|
||||
Row() {
|
||||
@ -137,7 +78,7 @@ export default struct SignDisplayCom {
|
||||
}
|
||||
|
||||
Row() {
|
||||
if(this.showBack){
|
||||
if (this.showBack) {
|
||||
Image($r('app.media.topB_back')).height('12.2%')
|
||||
.onClick(() => {
|
||||
router.back()
|
||||
@ -259,8 +200,14 @@ export default struct SignDisplayCom {
|
||||
Text('海拔高:' + this.signArr[85]).fontColor('#FFB433').fontSize(14 * this.ratio).height(18 * this.ratio)
|
||||
Text('高度差:' + this.signArr[86]).fontColor('#FFB433').fontSize(14 * this.ratio).height(18 * this.ratio)
|
||||
Text('龄期:' + this.signArr[87]).fontColor('#FFB433').fontSize(14 * this.ratio).height(18 * this.ratio)
|
||||
Text('维度因子:' + this.signArr[88]).fontColor('#FFB433').fontSize(14 * this.ratio).height(18 * this.ratio)
|
||||
Text('经度因子:' + this.signArr[89]).fontColor('#FFB433').fontSize(14 * this.ratio).height(18 * this.ratio)
|
||||
Text('维度因子:' + this.signArr[88])
|
||||
.fontColor('#FFB433')
|
||||
.fontSize(14 * this.ratio)
|
||||
.height(18 * this.ratio)
|
||||
Text('经度因子:' + this.signArr[89])
|
||||
.fontColor('#FFB433')
|
||||
.fontSize(14 * this.ratio)
|
||||
.height(18 * this.ratio)
|
||||
Text('航向角:' + this.signArr[90]).fontColor('#FFB433').fontSize(14 * this.ratio).height(18 * this.ratio)
|
||||
Text('俯仰角:' + this.signArr[91]).fontColor('#FFB433').fontSize(14 * this.ratio).height(18 * this.ratio)
|
||||
Text('航向角状态-收星数:' + this.signArr[92])
|
||||
@ -293,16 +240,17 @@ export default struct SignDisplayCom {
|
||||
Row() {
|
||||
Text('GPS').fontColor(this.gpsActive == 0 ? '#2D3C5A' : '#fff')
|
||||
}
|
||||
.width(316*this.ratio)
|
||||
.height(24*this.ratio)
|
||||
.width(316 * this.ratio)
|
||||
.height(24 * this.ratio)
|
||||
.backgroundColor(this.gpsActive == 0 ? '#fff' : '#1A1A1A')
|
||||
.margin({ left: 10*this.ratio, right: 10*this.ratio })
|
||||
.margin({ left: 10 * this.ratio, right: 10 * this.ratio })
|
||||
.justifyContent(FlexAlign.Center)
|
||||
.onClick(() => {
|
||||
this.gpsActive = 0
|
||||
})
|
||||
|
||||
}.margin({ top: 10*this.ratio })
|
||||
}.margin({ top: 10 * this.ratio })
|
||||
|
||||
Flex({ direction: FlexDirection.Column }) {
|
||||
ForEach(this.GPSColum, (item) => {
|
||||
Column() {
|
||||
@ -314,7 +262,7 @@ export default struct SignDisplayCom {
|
||||
})
|
||||
}
|
||||
}
|
||||
.width(168 *2* this.ratio)
|
||||
.width(168 * 2 * this.ratio)
|
||||
.height(380 * this.ratio)
|
||||
.backgroundColor('#282828')
|
||||
.margin({ top: 6 * this.ratio, left: 10 * this.ratio })
|
||||
@ -325,8 +273,8 @@ export default struct SignDisplayCom {
|
||||
|
||||
Row() {
|
||||
RealTime({
|
||||
width:Math.floor(550 * this.ratio),
|
||||
height:Math.floor(380 * this.ratio),
|
||||
widthNumber: Math.floor(550 * this.ratio),
|
||||
heightNumber: Math.floor(380 * this.ratio),
|
||||
})
|
||||
}
|
||||
.width(550 * this.ratio)
|
||||
@ -352,63 +300,64 @@ export default struct SignDisplayCom {
|
||||
aboutToDisappear() {
|
||||
clearInterval(this.interval)
|
||||
}
|
||||
aboutToAppear(){
|
||||
|
||||
aboutToAppear() {
|
||||
this.ratio = this.ratio * (this.scaleNum || 1);
|
||||
const that = this
|
||||
const {showBack,getSignal} = this
|
||||
|
||||
|
||||
if(showBack){
|
||||
if (showBack) {
|
||||
globalThis.udpClient.onMessage((msg) => {
|
||||
console.log('msgmsg',msg)
|
||||
if(msg){
|
||||
console.log('msgmsg', msg)
|
||||
if (msg) {
|
||||
getSignal(msg)
|
||||
}
|
||||
})
|
||||
}else{
|
||||
} else {
|
||||
clearInterval(globalThis.signalTimer)
|
||||
globalThis.signalTimer = setInterval(()=>{
|
||||
globalThis.signalTimer = setInterval(() => {
|
||||
const msgStr = globalThis.msgStr
|
||||
if(msgStr){
|
||||
if (msgStr) {
|
||||
getSignal(msgStr)
|
||||
|
||||
}
|
||||
},200)
|
||||
}, 200)
|
||||
}
|
||||
}
|
||||
|
||||
onPageShow() {
|
||||
console.info('SURENJUN',123)
|
||||
console.info('SURENJUN', 123)
|
||||
|
||||
const getSignal = this.getSignal;
|
||||
const that = this
|
||||
const showBack = this.showBack;
|
||||
if(showBack){
|
||||
if (showBack) {
|
||||
globalThis.udpClient.onMessage((msg) => {
|
||||
getSignal(msg)
|
||||
})
|
||||
}else{
|
||||
} else {
|
||||
clearInterval(globalThis.signalTimer)
|
||||
globalThis.signalTimer = setInterval(()=>{
|
||||
globalThis.signalTimer = setInterval(() => {
|
||||
//TODO 临时方案
|
||||
const msgStr = globalThis.msgStr
|
||||
getSignal(msgStr)
|
||||
},200)
|
||||
}, 200)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
getSignal= (msg)=> {
|
||||
console.log('msgmsgmsg',msg)
|
||||
getSignal = (msg) => {
|
||||
console.log('msgmsgmsg', msg)
|
||||
const that = this;
|
||||
that.msg = msg
|
||||
const strachArr=msg.split(',')
|
||||
const strachArr = msg.split(',')
|
||||
if (strachArr[0] != '#DN_GD') {
|
||||
return
|
||||
}
|
||||
this.signArr = strachArr
|
||||
|
||||
for (let i = 0;i <= 12; i++) {
|
||||
for (let i = 0; i <= 12; i++) {
|
||||
this.sjxhColum[i].value = this.signArr[i+2]
|
||||
}
|
||||
|
||||
@ -417,7 +366,7 @@ export default struct SignDisplayCom {
|
||||
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[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
|
||||
@ -433,11 +382,11 @@ export default struct SignDisplayCom {
|
||||
this.sjxhColum[31].value = this.signArr[33]
|
||||
this.sjxhColum[32].value = this.signArr[34]
|
||||
this.sjxhColum[33].value = this.signArr[35]
|
||||
for (let i = 34;i <= 46; i++) {
|
||||
for (let i = 34; i <= 46; i++) {
|
||||
this.sjxhColum[i].value = this.signArr[i+2]
|
||||
}
|
||||
let t=0
|
||||
for (let i = 83;i <= 97; i++) {
|
||||
let t = 0
|
||||
for (let i = 83; i <= 97; i++) {
|
||||
this.GPSColum[t].value = this.signArr[i]
|
||||
t++
|
||||
}
|
||||
@ -445,11 +394,11 @@ export default struct SignDisplayCom {
|
||||
that.signArr = JSON.parse(JSON.stringify((this.signArr)))
|
||||
that.GPSColum = JSON.parse(JSON.stringify((this.GPSColum)))
|
||||
}
|
||||
|
||||
outClick() {
|
||||
}
|
||||
|
||||
saveLog() {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
43
entry/src/main/ets/pages/compontents/judge/AmplifyPopup.ets
Normal file
43
entry/src/main/ets/pages/compontents/judge/AmplifyPopup.ets
Normal file
@ -0,0 +1,43 @@
|
||||
import { AmplifyArr, AmplifyImages } from '../../../mock'
|
||||
|
||||
const folder = 'judge/km3/amplify/'
|
||||
|
||||
|
||||
@Component
|
||||
export default struct EndPopup {
|
||||
private amplifyImgIndex: number = 0
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
|
||||
build() {
|
||||
Column() {
|
||||
Column() {
|
||||
|
||||
}
|
||||
.width(530)
|
||||
.height(386)
|
||||
.backgroundImage($rawfile(`${folder}${AmplifyImages[this.amplifyImgIndex]}`))
|
||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||
.position({ y: '25%', x: '37%' })
|
||||
.justifyContent(FlexAlign.Center)
|
||||
.onClick((e: ClickEvent) => {
|
||||
this.confirmAmplify(AmplifyArr[this.amplifyImgIndex])
|
||||
})
|
||||
|
||||
}
|
||||
.width('100%')
|
||||
.height('100%')
|
||||
.position({ y: 0 })
|
||||
.backgroundColor('rgba(0,0,0,0.9)')
|
||||
.onClick(() => {
|
||||
this.closeAmplifyPop()
|
||||
})
|
||||
}
|
||||
|
||||
private closeAmplifyPop: Function = () => {
|
||||
}
|
||||
private confirmAmplify: Function = () => {
|
||||
}
|
||||
}
|
||||
@ -5,7 +5,7 @@ interface SEL{
|
||||
}
|
||||
|
||||
@Component
|
||||
struct DeductedPopup {
|
||||
export default struct DeductedPopup {
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
@ -150,5 +150,3 @@ struct DeductedPopup {
|
||||
}.width('100%').height('100%').position({y:0}).backgroundColor('rgba(0,0,0,0.7)')
|
||||
}
|
||||
}
|
||||
|
||||
export default DeductedPopup
|
||||
@ -1,6 +1,6 @@
|
||||
|
||||
@Component
|
||||
struct EndPopup {
|
||||
export default struct EndPopup {
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
@ -23,5 +23,3 @@ struct EndPopup {
|
||||
}.width('100%').height('100%').position({y:0}).backgroundColor('rgba(0,0,0,0.7)')
|
||||
}
|
||||
}
|
||||
|
||||
export default EndPopup
|
||||
@ -1,6 +1,5 @@
|
||||
|
||||
@Component
|
||||
struct LoadingPopup {
|
||||
export default struct LoadingPopup {
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
@ -17,5 +16,3 @@ struct LoadingPopup {
|
||||
}.width('100%').height('100%').position({y:0}).backgroundColor('rgba(0,0,0,0.7)')
|
||||
}
|
||||
}
|
||||
|
||||
export default LoadingPopup
|
||||
@ -1,39 +1,27 @@
|
||||
// @ts-nocheck
|
||||
import hilog from '@ohos.hilog';
|
||||
import apiJudgeSdk from 'libJudgeSdk.so';
|
||||
// import apiJudgeSdk from '@ohos.judgesdk';
|
||||
|
||||
import Judge from '../../judgeSDK/utils/judge-real'
|
||||
// import Judge from '../../judgeSDK/judge-track-playback'
|
||||
import {Project,ProjectObj,MarkRule} from '../../judgeSDK/api/judgeSDK.d'
|
||||
import AccountTable from '../../../common/database/tables/AccountTable';
|
||||
import MA_SYSSET from '../../../common//constants/MA_SYSSET';
|
||||
import Judge from '../../judgeSDK/utils/judge-real';
|
||||
import { MarkRule, Project, ProjectObj } from '../../judgeSDK/api/judgeSDK.d';
|
||||
import common from '@ohos.app.ability.common';
|
||||
import { getSyncData } from '../../../common/service/initable'
|
||||
import {testAllitems,testUIAllitems,testMarkRules} from '../../judgeSDK/dataTest/index'
|
||||
|
||||
@Component
|
||||
struct RealTime {
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
|
||||
private height:number = 0
|
||||
private width:number = 0
|
||||
|
||||
export default struct RealTime {
|
||||
@State message: string = '开始绘制'
|
||||
|
||||
// 控制XComponent组件的创建和销毁
|
||||
@State draw: boolean = false
|
||||
//监管接口序列号
|
||||
@State serialNumber:number = 0
|
||||
|
||||
@State serialNumber: number = 0
|
||||
//模拟考试项目
|
||||
@State projects:Project[] = []
|
||||
@State projectsObj:ProjectObj = {}
|
||||
@State markRuleListObj:MarkRule ={}
|
||||
@State projects: Project[] = []
|
||||
@State projectsObj: ProjectObj = {}
|
||||
@State markRuleListObj: MarkRule = {}
|
||||
private widthNumber: string | number | Resource = 0
|
||||
private heightNumber: string | number | Resource = 0
|
||||
private context = getContext(this) as common.UIAbilityContext;
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
|
||||
// xcomponentController: XComponentController = new XComponentController()
|
||||
|
||||
build() {
|
||||
@ -46,8 +34,8 @@ struct RealTime {
|
||||
libraryname: 'JudgeSdk'
|
||||
// libraryname: 'judgesdk'
|
||||
})
|
||||
.width(this.width)
|
||||
.height(this.height)
|
||||
.width(this.widthNumber)
|
||||
.height(this.heightNumber)
|
||||
.onLoad(() => {
|
||||
apiJudgeSdk.examJudgeMapSetDrawing(true); //停止绘制地图轨迹,false:表示结束绘制
|
||||
})
|
||||
@ -57,9 +45,10 @@ struct RealTime {
|
||||
clearInterval(globalThis.realTimer)
|
||||
})
|
||||
} else {
|
||||
Column() {}
|
||||
.width(this.width)
|
||||
.height(this.height)
|
||||
Column() {
|
||||
}
|
||||
.width(this.widthNumber)
|
||||
.height(this.heightNumber)
|
||||
}
|
||||
}
|
||||
.width('100%')
|
||||
@ -77,7 +66,5 @@ struct RealTime {
|
||||
//apiJudgeSdk.stopRender();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export default RealTime
|
||||
@ -1,39 +0,0 @@
|
||||
const folder = 'judge/km3/amplify/'
|
||||
const amplifyImgs = [
|
||||
'km_zxB.png','km_hcB.png',
|
||||
'km_bdB.png',
|
||||
'km_ccB.png','km_dtB.png','km_tcB.png',
|
||||
]
|
||||
const amplifyArrs = [
|
||||
{name:'直线',projectCode:'3',projectCodeCenter:'40300'},
|
||||
{name:'会车',projectCode:'9',projectCodeCenter:'41300'},
|
||||
{name:'变道',projectCode:'4',projectCodeCenter:'40500'},
|
||||
{name:'超车',projectCode:'10',projectCodeCenter:'41400'},
|
||||
{name:'掉头',projectCode:'12',projectCodeCenter:'41500'},
|
||||
{name:'停车',projectCode:'11',projectCodeCenter:'40600'},
|
||||
]
|
||||
|
||||
@Component
|
||||
struct EndPopup {
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
private amplifyImgIndex:number = 0
|
||||
private closeAmplifyPop:Function = ()=>{}
|
||||
private confirmAmplify:Function = ()=>{}
|
||||
|
||||
build(){
|
||||
Column(){
|
||||
Column(){
|
||||
|
||||
}.width(530).height(386).backgroundImage($rawfile(`${folder}${amplifyImgs[this.amplifyImgIndex]}`)).backgroundImageSize({width:'100%',height:'100%'}).position({y:'25%',x:'37%'}).justifyContent(FlexAlign.Center)
|
||||
.onClick((e:ClickEvent)=>{
|
||||
this.confirmAmplify(amplifyArrs[this.amplifyImgIndex])
|
||||
})
|
||||
|
||||
}.width('100%').height('100%').position({y:0}).backgroundColor('rgba(0,0,0,0.9)')
|
||||
.onClick(()=>{this.closeAmplifyPop()})
|
||||
}
|
||||
}
|
||||
|
||||
export default EndPopup
|
||||
@ -1,25 +0,0 @@
|
||||
|
||||
@Component
|
||||
export default struct EndPopup {
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
|
||||
private title:string = ''
|
||||
private cancelFn:(event?: ClickEvent) => void
|
||||
private confirmFn:(event?: ClickEvent) => void
|
||||
|
||||
build(){
|
||||
Column(){
|
||||
Column(){
|
||||
Text(this.title).fontSize(38).margin({bottom:20})
|
||||
Row(){}.height(50)
|
||||
Row(){
|
||||
Text('取消').backgroundImage($rawfile('judge/end-btn.png'),ImageRepeat.NoRepeat).backgroundImageSize({width:'100%',height:'100%'}).width(250).height(100).fontSize(30).fontColor('#FFF').textAlign(TextAlign.Center).onClick(this.cancelFn)
|
||||
Text('确定').backgroundImage($rawfile('judge/end-btn.png'),ImageRepeat.NoRepeat).backgroundImageSize({width:'100%',height:'100%'}).width(250).height(100).fontSize(30).fontColor('#FFF').textAlign(TextAlign.Center).margin({left:45}).onClick(this.confirmFn)
|
||||
}
|
||||
}.width('80%').height('70%').backgroundColor('#E6E3DF').borderRadius(38).position({y:'12%',x:'10%'}).justifyContent(FlexAlign.Center)
|
||||
|
||||
}.width('100%').height('100%').position({y:0}).backgroundColor('rgba(0,0,0,0.7)')
|
||||
}
|
||||
}
|
||||
@ -3116,7 +3116,6 @@ export const testMarkRules = [{
|
||||
}, {
|
||||
|
||||
"itemno": "41",
|
||||
|
||||
"markcatalog": "41603",
|
||||
"markdepend": "通过急弯、坡路、拱桥、人行横道或者没有交通信号灯控制的路口时,不交替使用远近光灯示意",
|
||||
"markreal": "-100",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -301,6 +301,56 @@ export const plcStrToWXJson = async (plc:string) =>{
|
||||
return wuXiDataStr
|
||||
}
|
||||
|
||||
export const senorToWXDataStr= async (tempData) => {
|
||||
const {sensor,gps} = tempData;
|
||||
const timeStr = await getTimeStr()
|
||||
|
||||
const {mkg,aqd,dh1,dh2, zfxd, yfxd, jgd, ygd,ssc , jsc, lhq, fsc, lb, ygq,wd} = sensor
|
||||
const judgeSignal = [
|
||||
//车门 安全带 熄火 发动机启动 左转向 右转向 前照灯近灯 前照灯远灯
|
||||
mkg, aqd, dh1, dh2, zfxd, yfxd, jgd, ygd,
|
||||
// 注车制动 行车制动 离合器 副制动 喇叭 雨刷 危险报警灯 示廓灯 系统未涉及的传感器信号
|
||||
ssc , jsc, lhq, fsc, lb, ygq, 0, 0, 0
|
||||
]
|
||||
|
||||
const judgeAnotherSignal = [
|
||||
// 低三挡位 左侧单边桥1 左侧单边桥2 右侧单边桥1 右侧单边桥2 雾灯
|
||||
'000', '0', '0', '0', '0', '0',,'0',
|
||||
// 桩杆全无信号 左后绕车 右后绕车 右前绕车 左前绕车
|
||||
'000', '0', '0', '0', '0', '0','0'
|
||||
]
|
||||
//@ts-ignore
|
||||
const str1 = (judgeSignal.join('')*1).toString(16);
|
||||
//@ts-ignore
|
||||
const str2 = (judgeAnotherSignal.join('')*1).toString(16);
|
||||
|
||||
const wuXiData = [
|
||||
// 卫星时间 精度 纬度 高度 方位角 俯仰角 速度角 速度 横滚 卫星定位状态
|
||||
'$KSXT', timeStr, gps.jd, gps.wd, gps.hbg, gps.hxj, gps.fyj, '0' , gps.sd, '0', gps.dwzt,
|
||||
//前天线可用星数 后天线可用星数 东向坐标位置 北向位置坐标 天向位置坐标 东向速度 北向速度 天向速度
|
||||
'0', '0', '0', '0', '0', '0', '0', '0','0',
|
||||
//@ts-ignore 评判信号1 评判信号2 发动机转速
|
||||
// (judgeSignal.join('')*1).toString(16), (judgeAnotherSignal.join('')*1).toString(16) , sensor.fdjzs,
|
||||
'0006', '0001' , sensor.fdjzs,
|
||||
'0xFFFFFFF'
|
||||
]
|
||||
return wuXiData.map(d => (d + '')).join(',');
|
||||
// console.log('wuXiData',wuXiData.join(','));
|
||||
}
|
||||
|
||||
export const getTimeStr = async () =>{
|
||||
const date = await systemTime.getDate()
|
||||
const timeStr = '';
|
||||
const Y = date.getFullYear();
|
||||
const M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) ;
|
||||
const D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate());
|
||||
const h = (date.getHours() < 10 ? '0' + (date.getHours()) : date.getHours());
|
||||
const m = (date.getMinutes() < 10 ? '0' + (date.getMinutes()) : date.getMinutes());
|
||||
const s = (date.getSeconds() < 10 ? '0' + (date.getSeconds()) : date.getSeconds());
|
||||
const ss = (date.getMilliseconds() +'').slice(0,2);
|
||||
return timeStr + Y + M +D +h +m +s +'.' + ss
|
||||
}
|
||||
|
||||
//蓝灯
|
||||
export function sendBlue(){
|
||||
const arrBlue = [0x55, 0xaa, 0x01, 0x00, 0x02, 0x01, 0x03, 0x00];
|
||||
|
||||
@ -3,15 +3,14 @@
|
||||
//考试回放开关
|
||||
export const judgeConfig = {
|
||||
//本地目录开关
|
||||
isTrajectoryOpen: false,
|
||||
isTrajectoryOpen: true,
|
||||
//是否开启Udp
|
||||
udpOpen:false,
|
||||
// 本地模型地址
|
||||
modelPath: 'models/model_enc',
|
||||
// 轨迹回放地址
|
||||
trajectoryPath: 'logs/2024_06_18/0000000000001_342323199501470011_测试学员1_2024_06_18_14_32_25/judge_exam_data.txt'
|
||||
trajectoryPath: 'logs/2024_06_18/0000000000001_342323199501470011_测试学员1_2024_06_26_10_04_23/judge_exam_data.txt'
|
||||
}
|
||||
|
||||
//0000000000001_342323199501470011_测试学员1_2024_04_28_10_59_44
|
||||
// 模拟灯光轨迹
|
||||
// test_sub3_car_test_jinan-32038219990808021X-20240417092356.txt
|
||||
|
||||
@ -1,11 +1,5 @@
|
||||
import {
|
||||
examJudgeSetLogCallback,
|
||||
examJudgeBeginExam,
|
||||
examJudgeInit,
|
||||
examJudgeRealExam,
|
||||
examJudgeSetRealExamCallback,
|
||||
examJudgeMapSetParam,
|
||||
examJudgeMapSetDrawing,
|
||||
examJudgeMapSetScaling
|
||||
} from '../api/index'
|
||||
import systemTime from '@ohos.systemDateTime';
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import prompt from '@ohos.prompt'
|
||||
import Prompt from '@system.prompt'
|
||||
|
||||
const TAG = 'SURENJUN_JUDGE'
|
||||
|
||||
export default class JudgeTask{
|
||||
@ -17,8 +18,8 @@ export default class JudgeTask{
|
||||
try {
|
||||
await currentTask();
|
||||
}catch (e){
|
||||
console.info(TAG,'过程数据接口解析错误')
|
||||
prompt.showToast({
|
||||
// console.info(TAG,'过程数据接口解析错误')
|
||||
Prompt.showToast({
|
||||
message: '过程数据接口解析错误',
|
||||
duration: 3000
|
||||
});
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import media from '@ohos.multimedia.media';
|
||||
import prompt from '@ohos.prompt';
|
||||
import Prompt from '@system.prompt';
|
||||
|
||||
const TAG = 'VoiceAnnounce'
|
||||
|
||||
@ -84,7 +84,7 @@ class AVPlayer {
|
||||
url = await globalThis.context.resourceManager.getRawFd(name);
|
||||
this.avPlayer.fdSrc = url;
|
||||
} catch (e) {
|
||||
prompt.showToast({
|
||||
Prompt.showToast({
|
||||
message: `${name}语音文件不存在`,
|
||||
duration: 4000
|
||||
});
|
||||
|
||||
@ -9,7 +9,6 @@
|
||||
"pages/TerminalInfos",
|
||||
"pages/VideoConfig",
|
||||
"pages/SignDisplay",
|
||||
"pages/RealTime",
|
||||
"pages/Roads",
|
||||
"pages/Judge"
|
||||
],
|
||||
|
||||
BIN
entry/src/main/resources/rawfile/voice/10_01.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/10_01.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/10_02.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/10_02.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/10_03.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/10_03.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/10_04.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/10_04.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/10_05.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/10_05.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/10_06.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/10_06.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/10_101.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/10_101.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/10_102.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/10_102.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/10_103.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/10_103.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/10_104.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/10_104.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/10_105.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/10_105.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/10_106.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/10_106.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/10_107.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/10_107.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/10_41.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/10_41.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/10_42.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/10_42.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/10_43.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/10_43.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/11_01.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/11_01.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/11_02.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/11_02.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/11_03.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/11_03.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/11_04.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/11_04.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/11_05.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/11_05.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/11_06.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/11_06.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/11_07.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/11_07.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/11_08.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/11_08.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/11_09.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/11_09.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/11_10.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/11_10.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/11_101.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/11_101.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/11_102.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/11_102.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/11_41.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/11_41.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/11_42.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/11_42.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/11_43.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/11_43.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/11_44.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/11_44.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/12_01.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/12_01.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/12_02.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/12_02.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/12_04.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/12_04.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/12_101.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/12_101.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/12_102.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/12_102.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/12_103.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/12_103.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/12_104.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/12_104.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/12_41.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/12_41.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/12_42.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/12_42.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/12_44.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/12_44.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/12_45.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/12_45.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/12_46.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/12_46.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/13_01.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/13_01.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/13_02.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/13_02.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/13_03.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/13_03.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/13_04.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/13_04.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/13_05.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/13_05.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/13_06.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/13_06.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/13_08.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/13_08.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/13_09.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/13_09.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/13_101.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/13_101.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/13_102.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/13_102.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/13_103.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/13_103.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/14_01.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/14_01.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/14_02.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/14_02.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/14_66.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/14_66.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/14_67.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/14_67.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/14_68.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/14_68.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/14_71.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/14_71.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/14_72.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/14_72.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/14_82.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/14_82.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/14_90.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/14_90.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/14_91.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/14_91.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/15_01.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/15_01.mp3
Normal file
Binary file not shown.
BIN
entry/src/main/resources/rawfile/voice/15_02.mp3
Normal file
BIN
entry/src/main/resources/rawfile/voice/15_02.mp3
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user