1111
This commit is contained in:
parent
6db05ab2e1
commit
e6420a333d
@ -15,7 +15,7 @@ import { VideoConfig, User } from './interfaces'
|
||||
import WebRTCVoice from './webRTC/'
|
||||
import promptAction from '@ohos.promptAction'
|
||||
import { CandidateData, EmptyCandidateObject } from "../mock/CandidateData"
|
||||
|
||||
import {string2Bytes} from '../common/utils/tools'
|
||||
@Entry
|
||||
@Component
|
||||
struct UserInfo {
|
||||
@ -81,39 +81,12 @@ struct UserInfo {
|
||||
|
||||
onPageShow() {
|
||||
//语音功能
|
||||
this.stepFlag = false
|
||||
new WebRTCVoice(this.context);
|
||||
this.faceCompareSucess = 0
|
||||
this.showFaceCompare = false
|
||||
globalThis.indexComponent = this;
|
||||
this.lsh = '0000000000000'
|
||||
this.callBackFlag = false
|
||||
globalThis.lsh = this.lsh
|
||||
this.currentUser = EmptyCandidateObject
|
||||
globalThis.statue = 2
|
||||
this.numCount = 0
|
||||
globalThis.udpClient2 && globalThis.udpClient2.onMessage((val) => {
|
||||
if (val.id == '32') {
|
||||
globalThis.signNum = val.body[1]
|
||||
if (val.body[0] == '7') {
|
||||
this.getqkFn()
|
||||
this.signNum = val.body[1]
|
||||
}
|
||||
|
||||
} else if (val.id == '42') {
|
||||
console.log('qkfnqkfn', val.body[0])
|
||||
this.qkFn()
|
||||
} else if (val.id == '48') {
|
||||
console.log('valvalkkkk', val.body)
|
||||
}
|
||||
})
|
||||
// 应用启动时打开读卡设备
|
||||
let ret = testNapi.OpenDevice();
|
||||
if (ret == 0) {
|
||||
testNapi.StartReadCard(this.onReadCard);
|
||||
} else {
|
||||
console.error("zzctest Failed to Open Device");
|
||||
}
|
||||
new WebRTCVoice(this.context);
|
||||
//初始化数据
|
||||
this.initData()
|
||||
//身份证读卡器初始化
|
||||
this.openDeviceByIDCard()
|
||||
// 如果是单机模式则模拟假数据
|
||||
if (globalThis.singlePlay) {
|
||||
// TODO 模拟假数据
|
||||
@ -130,88 +103,56 @@ struct UserInfo {
|
||||
}
|
||||
this.initSysset()
|
||||
initJudgeUdp()
|
||||
this.interval=setInterval(()=>{
|
||||
this.heartMsg()
|
||||
},1000)
|
||||
}
|
||||
|
||||
changeQkfn() {
|
||||
this.qkFn()
|
||||
//身份证读卡器初始化
|
||||
openDeviceByIDCard(){
|
||||
globalThis.indexComponent = this;
|
||||
// 应用启动时打开读卡设备
|
||||
let ret = testNapi.OpenDevice();
|
||||
if (ret == 0) {
|
||||
testNapi.StartReadCard(this.onReadCard);
|
||||
} else {
|
||||
console.error("zzctest Failed to Open Device");
|
||||
}
|
||||
}
|
||||
// 通过身份证获取当前学员
|
||||
getCurrentStudent(id) {
|
||||
let flag = false
|
||||
this.pageIndex
|
||||
this.list.map((res, index) => {
|
||||
if (res.sfzmhm == id) {
|
||||
flag = true
|
||||
this.currentUser = res
|
||||
this.lsh = this.currentUser.lsh
|
||||
globalThis.lsh = this.currentUser.lsh
|
||||
globalThis.ksyh = this.currentUser.ksy1sfzmhm || this.currentUser.ksy2sfzmhm
|
||||
|
||||
getqkFn() {
|
||||
let tmpList = [];
|
||||
tmpList.push(this.string2Bytes(globalThis.signNum, 1 * 8)[0])
|
||||
const param = {
|
||||
id: 41,
|
||||
list: tmpList,
|
||||
carNo: globalThis.carInfo.carNo,
|
||||
placeId: globalThis.carInfo.examinationRoomId
|
||||
}
|
||||
|
||||
globalThis.udpClient2.sendMsg(param, this.context)
|
||||
}
|
||||
|
||||
async heartMsg(context) {
|
||||
let tmpList = []
|
||||
const str = globalThis.lsh
|
||||
for (let i = 0; i < str.length; i++) {
|
||||
tmpList.push(this.string2Bytes(str.charCodeAt(i), 1 * 8)[0])
|
||||
}
|
||||
|
||||
const param = {
|
||||
id: 46,
|
||||
list: tmpList,
|
||||
carNo: globalThis.carInfo.carNo,
|
||||
placeId: globalThis.carInfo.examinationRoomId,
|
||||
callback: () => {
|
||||
console.log('46send')
|
||||
this.callBackFlag = true
|
||||
}
|
||||
}
|
||||
this.interval = setInterval(() => {
|
||||
if (this.callBackFlag) {
|
||||
console.log('validqqq333')
|
||||
const param2 = {
|
||||
id: 47,
|
||||
list: tmpList,
|
||||
carNo: globalThis.carInfo.carNo,
|
||||
placeId: globalThis.carInfo.examinationRoomId
|
||||
// this.currentUser.kszp=this.photo+res.kszp
|
||||
// this.currentUser.ksmjzp=this.photo+this.currentUser.ksmjzp
|
||||
if (globalThis.singlePlay) {
|
||||
testNapi.StopReadCard();
|
||||
// globalThis.statue=4
|
||||
router.pushUrl({
|
||||
url: 'pages/Judge',
|
||||
}, router.RouterMode.Single);
|
||||
return
|
||||
}
|
||||
globalThis.udpClient2 && globalThis.udpClient2.sendMsg(param2, this.context)
|
||||
|
||||
this.showFaceCompare = true
|
||||
this.pageIndex = Math.floor(index / 4)
|
||||
}
|
||||
}, 1000)
|
||||
globalThis.udpClient2 && globalThis.udpClient2.sendMsg(param, this.context)
|
||||
}
|
||||
|
||||
aboutToDisappear() {
|
||||
clearInterval(this.interval)
|
||||
clearInterval(this.interval2)
|
||||
testNapi.StopReadCard();
|
||||
}
|
||||
|
||||
changeStudentStatue(val) {
|
||||
const arr = [globalThis.signNum || 0, val]
|
||||
let tmpList = [];
|
||||
tmpList.push(this.string2Bytes(arr[0], 1 * 8)[0])
|
||||
tmpList.push(this.string2Bytes(arr[1], 1 * 8)[0])
|
||||
const str = globalThis.lsh
|
||||
for (let i = 0; i < str.length; i++) {
|
||||
tmpList.push(this.string2Bytes(str.charCodeAt(i), 1 * 8)[0])
|
||||
}
|
||||
const param = {
|
||||
id: 31,
|
||||
list: tmpList,
|
||||
carNo: globalThis.carInfo.carNo,
|
||||
placeId: globalThis.carInfo.examinationRoomId
|
||||
}
|
||||
|
||||
globalThis.udpClient2 && globalThis.udpClient2.sendMsg(param, this.context)
|
||||
}
|
||||
|
||||
facePass() {
|
||||
if (!this.stepFlag) {
|
||||
this.sfbdinterfaceFn()
|
||||
})
|
||||
this.dataList = this.list.slice(this.pageIndex * 4, this.pageIndex * 4 + 4)
|
||||
if (!flag) {
|
||||
promptAction.showToast({
|
||||
message: '未匹配到对应下载学员',
|
||||
duration: 3000
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
onReadCard(ret) {
|
||||
console.info(`zzctest xx Read Card ret =${ret.status}`)
|
||||
let thisVar = globalThis.indexComponent;
|
||||
@ -265,6 +206,63 @@ struct UserInfo {
|
||||
return true;
|
||||
}
|
||||
|
||||
changeQkfn() {
|
||||
this.qkFn()
|
||||
}
|
||||
initData(){
|
||||
this.stepFlag = false
|
||||
this.faceCompareSucess = 0
|
||||
this.showFaceCompare = false
|
||||
this.lsh = '0000000000000'
|
||||
this.callBackFlag = false
|
||||
globalThis.lsh = this.lsh
|
||||
this.currentUser = EmptyCandidateObject
|
||||
globalThis.statue = 2
|
||||
this.numCount = 0
|
||||
}
|
||||
|
||||
async heartMsg() {
|
||||
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++) {
|
||||
tmpList.push(string2Bytes(str.charCodeAt(i), 1 * 8)[0])
|
||||
}
|
||||
const param= {id: 31,list:tmpList,carNo: globalThis.carInfo.carNo,placeId: globalThis.carInfo.examinationRoomId,callback:(val)=>{
|
||||
if(val.id=='32'){
|
||||
globalThis.signNum=val.body[1]
|
||||
if(val.body[0]=='7'){
|
||||
this.getqkFn()
|
||||
this.signNum=val.body[1]
|
||||
}
|
||||
}else if(val.id=='42'){
|
||||
console.log('qkfnqkfn',val.body[0])
|
||||
this.qkFn()
|
||||
}
|
||||
}}
|
||||
globalThis.udpClient2.sendMsg(param, this.context)
|
||||
}
|
||||
getqkFn() {
|
||||
let tmpList = [];
|
||||
tmpList.push(string2Bytes(globalThis.signNum, 1 * 8)[0])
|
||||
const param = {
|
||||
id: 41,
|
||||
list: tmpList,
|
||||
carNo: globalThis.carInfo.carNo,
|
||||
placeId: globalThis.carInfo.examinationRoomId
|
||||
}
|
||||
|
||||
globalThis.udpClient2.sendMsg(param, this.context)
|
||||
}
|
||||
|
||||
facePass() {
|
||||
if (!this.stepFlag) {
|
||||
this.sfbdinterfaceFn()
|
||||
}
|
||||
}
|
||||
|
||||
async initSysset() {
|
||||
const that = this;
|
||||
const db = new AccountTable(() => {
|
||||
@ -322,41 +320,6 @@ struct UserInfo {
|
||||
this.dataList = this.list.slice(this.pageIndex * 4, this.pageIndex * 4 + 4)
|
||||
}
|
||||
|
||||
getCurrentStudent(id) {
|
||||
let flag = false
|
||||
this.pageIndex
|
||||
this.list.map((res, index) => {
|
||||
if (res.sfzmhm == id) {
|
||||
flag = true
|
||||
this.currentUser = res
|
||||
this.lsh = this.currentUser.lsh
|
||||
globalThis.lsh = this.currentUser.lsh
|
||||
globalThis.ksyh = this.currentUser.ksy1sfzmhm || this.currentUser.ksy2sfzmhm
|
||||
|
||||
// this.currentUser.kszp=this.photo+res.kszp
|
||||
// this.currentUser.ksmjzp=this.photo+this.currentUser.ksmjzp
|
||||
if (globalThis.singlePlay) {
|
||||
testNapi.StopReadCard();
|
||||
// globalThis.statue=4
|
||||
router.pushUrl({
|
||||
url: 'pages/Judge',
|
||||
}, router.RouterMode.Single);
|
||||
return
|
||||
}
|
||||
|
||||
this.showFaceCompare = true
|
||||
this.pageIndex = Math.floor(index / 4)
|
||||
}
|
||||
})
|
||||
this.dataList = this.list.slice(this.pageIndex * 4, this.pageIndex * 4 + 4)
|
||||
if (!flag) {
|
||||
promptAction.showToast({
|
||||
message: '未匹配到对应下载学员',
|
||||
duration: 3000
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
getExaminationStudentInfoFn() {
|
||||
if (globalThis.singlePlay) {
|
||||
return
|
||||
@ -409,49 +372,6 @@ struct UserInfo {
|
||||
console.log('error12error' + error)
|
||||
})
|
||||
}
|
||||
|
||||
fillZero(str, len) {
|
||||
str = String(str);
|
||||
if (!len || str.length >= len) {
|
||||
return str;
|
||||
}
|
||||
const num = len - str.length;
|
||||
const zeroStr = '0'.repeat(num);
|
||||
return zeroStr + str;
|
||||
}
|
||||
|
||||
string2Bytes(number, len) {
|
||||
const str = (+number).toString(2);
|
||||
if (str.length > len) {
|
||||
console.log('数据长度不对~~');
|
||||
return
|
||||
}
|
||||
const byteString = this.fillZero(str, len);
|
||||
const arrBytes = Array.from({ length: byteString.length / 8 }, (_, i) => {
|
||||
const start = Math.max(byteString.length - (i + 1) * 8, 0);
|
||||
const end = byteString.length - i * 8;
|
||||
return parseInt(byteString.slice(start, end), 2);
|
||||
});
|
||||
return arrBytes;
|
||||
}
|
||||
|
||||
getPhotosForOtherFn(data, type) {
|
||||
const date = new Date()
|
||||
const param = {
|
||||
time: dateFormat(date),
|
||||
ksrq: dateFormat(date).split(' ')[0],
|
||||
sfzmhm: data.sfzmhm,
|
||||
zptype: type
|
||||
}
|
||||
getPhotosForOther(param).then(res => {
|
||||
if (type == '1') {
|
||||
this.currentUser.kszp = 'data:image/jpg;base64,' + res.getBmzpRsp.body.kszp
|
||||
} else {
|
||||
this.currentUser.ksmjzp = 'data:image/jpg;base64,' + res.getBmzpRsp.body.ksmjzp
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
qkFn() {
|
||||
this.faceCompareSucess = 0
|
||||
if (globalThis.singlePlay) {
|
||||
@ -465,8 +385,8 @@ struct UserInfo {
|
||||
examinationStuAbsent(param).then(res => {
|
||||
const arr = [this.signNum || 0, 1]
|
||||
let tmpList = [];
|
||||
tmpList.push(this.string2Bytes(arr[0], 1 * 8)[0])
|
||||
tmpList.push(this.string2Bytes(arr[1], 1 * 8)[0])
|
||||
tmpList.push(string2Bytes(arr[0], 1 * 8)[0])
|
||||
tmpList.push(string2Bytes(arr[1], 1 * 8)[0])
|
||||
console.log('globalThis.signNum', globalThis.signNum)
|
||||
const param = {
|
||||
id: 43,
|
||||
@ -489,10 +409,7 @@ struct UserInfo {
|
||||
|
||||
}
|
||||
|
||||
outClick() {
|
||||
testNapi.StopReadCard();
|
||||
}
|
||||
|
||||
//身份比对
|
||||
async sfbdinterfaceFn() {
|
||||
this.stepFlag = true
|
||||
console.info('surenjun', this.currentUser.lsh)
|
||||
@ -565,7 +482,14 @@ struct UserInfo {
|
||||
this.stepFlag = false
|
||||
}
|
||||
}
|
||||
|
||||
aboutToDisappear() {
|
||||
this.outClick()
|
||||
}
|
||||
outClick() {
|
||||
clearInterval(this.interval)
|
||||
clearInterval(this.interval2)
|
||||
testNapi.StopReadCard();
|
||||
}
|
||||
// 几个按钮公共样式
|
||||
@Styles
|
||||
commStyle(){
|
||||
|
||||
@ -1,14 +1,9 @@
|
||||
// @ts-nocheck
|
||||
import hilog from '@ohos.hilog';
|
||||
import apiJudgeSdk from 'libJudgeSdk.so';
|
||||
import Judge from '../../JudgeSDK/utils/judge-real'
|
||||
// import Judge from '../../judgeSDK/judge-track-playback'
|
||||
import Judge from '../../judgeSDK/utils/judge-real'
|
||||
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 common from '@ohos.app.ability.common';
|
||||
import { getSyncData } from '../../../common/service/initable'
|
||||
import {testAllitems,testUIAllitems,testMarkRules} from '../../judgeSDK/dataTest/index'
|
||||
|
||||
@Component
|
||||
struct RealTime {
|
||||
|
||||
@ -1,13 +1,5 @@
|
||||
import abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl'
|
||||
import promptAction from '@ohos.promptAction'
|
||||
import fileAccess from '@ohos.file.fileAccess'
|
||||
import common from '@ohos.app.ability.common'
|
||||
import Want from '@ohos.app.ability.Want'
|
||||
import fs from '@ohos.file.fs'
|
||||
import FileUtil from '../../../common/utils/File'
|
||||
import zlib from '@ohos.zlib';
|
||||
|
||||
const MODELTAG = 'MODELTAG'
|
||||
export default class FileModel{
|
||||
|
||||
//后续文件路径待替换
|
||||
@ -26,9 +18,6 @@ export default class FileModel{
|
||||
public initFolder = async () => {
|
||||
const {fileUtil} = this
|
||||
await fileUtil.initFolder(`/models/model_enc`);
|
||||
//TODO 删除待优化
|
||||
const isDeletedModelEnc= await this.fileUtil.deleteF('models/model_enc',1)
|
||||
const isDeletedModels = await this.fileUtil.deleteF('models',1)
|
||||
const folderPath = await fileUtil.initFolder(`/models`);
|
||||
this.folderPath = folderPath;
|
||||
}
|
||||
|
||||
@ -30,7 +30,7 @@ export const getTranslateSignals = (tempItems) => {
|
||||
return temp.map(item => string2Bytes(item , 8)[0])
|
||||
}
|
||||
|
||||
// 当前考车行驶状态转换
|
||||
// c++评判考车行驶状态转换
|
||||
export function getCarStatus(status: -1 | 0 | 1):string {
|
||||
switch (status){
|
||||
case -1:return '后退'
|
||||
@ -251,17 +251,21 @@ export const plcStrToWXJson = async (plc:string) =>{
|
||||
return wuXiDataStr
|
||||
}
|
||||
|
||||
//蓝灯
|
||||
export function sendBlue(){
|
||||
const arrBlue = [0x55, 0xaa, 0x01, 0x00, 0x02, 0x01, 0x03, 0x00];
|
||||
const arrBlueBuffer= Array2Byte(arrBlue).buffer
|
||||
globalThis.lightLineUdp.send(arrBlueBuffer);
|
||||
}
|
||||
|
||||
//绿灯
|
||||
export function sendGreen(){
|
||||
const arrGreen = [0x55, 0xaa, 0x01, 0x00, 0x02, 0x00, 0x03, 0x01];
|
||||
const arrGreenBuffer= Array2Byte(arrGreen).buffer
|
||||
globalThis.lightLineUdp.send(arrGreenBuffer);
|
||||
}
|
||||
|
||||
//红灯
|
||||
export function sendRed(){
|
||||
const arrRed= [0x55, 0xaa, 0x01, 0x01, 0x02, 0x00, 0x03, 0x00];
|
||||
const arrRedBuffer= Array2Byte(arrRed).buffer
|
||||
|
||||
@ -7,9 +7,8 @@ export const judgeConfig = {
|
||||
// 本地模型地址
|
||||
modelPath: 'models/model_enc',
|
||||
// 轨迹回放目录地址
|
||||
trajectoryPath: '/logs/2024_01_24/2024_01_24_11_30_06_2210707689316_620502199005070478_马鸣五/judge_exam_data.txt'
|
||||
trajectoryPath: 'logs/2024_01_24/2024_01_24_11_30_06_2210707689316_620502199005070478_马鸣五/judge_exam_data.txt'
|
||||
}
|
||||
|
||||
// 2024_01_24_11_30_06_2210707689316_620502199005070478_马鸣五
|
||||
|
||||
// 2024_01_24_10_25_41_2231212226990_330184200208281821_金晓婷
|
||||
@ -1,143 +0,0 @@
|
||||
import FileModel from '../utils/file-model'
|
||||
import {testAllitems,testRealExam} from '../dataTest/index'
|
||||
import { getSyncData } from '../../../common/service/initable'
|
||||
import systemTime from '@ohos.systemDateTime'
|
||||
import {testMarkRules} from '../dataTest/index'
|
||||
import AccountTable from '../../../common/database/tables/AccountTable'
|
||||
import USER from '../../../common/constants/USER'
|
||||
|
||||
export default class JudgeData{
|
||||
private fileModel:FileModel
|
||||
private modelPath:string
|
||||
private markRuleListObj:object
|
||||
|
||||
constructor(judgeUI) {
|
||||
this.fileModel = new FileModel(judgeUI.context);
|
||||
this.modelPath = 'models/model_enc'
|
||||
this.markRuleListObj = {}
|
||||
}
|
||||
|
||||
//获取项目、扣分表数据
|
||||
getInitData = async ()=>{
|
||||
|
||||
}
|
||||
|
||||
// 获取项目信息
|
||||
initProjectInfo = async () => {
|
||||
//TODO 待优化
|
||||
const systemParamsArr = await getSyncData('MA_SYSTEMPARM')
|
||||
const itemInfoArr = await getSyncData('MA_ITEMINFO')
|
||||
//@ts-ignore
|
||||
const filterProjectsArr = systemParamsArr.filter(item => item.no1 == 6)
|
||||
|
||||
}
|
||||
|
||||
// 获取扣分代码信息
|
||||
initMarkRules = async () => {
|
||||
const markRuleParams = await getSyncData('MA_MARKRULE')
|
||||
//@ts-ignore
|
||||
markRuleParams.forEach(mark=>{
|
||||
this.markRuleListObj[`${mark.itemno}_${mark.markserial}`] = {
|
||||
itemno:mark.itemno*1,
|
||||
markcatalog:mark.markcatalog,
|
||||
markshow:decodeURI(mark.markshow),
|
||||
markreal:mark.markreal*1,
|
||||
markserial:mark.markserial
|
||||
};
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
//获取评判初始化数据
|
||||
getJudgeInitData = async () => {
|
||||
const carInfo = globalThis.carInfo;
|
||||
|
||||
const { examSubject,plateNo,carNo } = carInfo;
|
||||
const {getModelData,initProjectInfo,initMarkRules} = this;
|
||||
await initProjectInfo()
|
||||
await initMarkRules()
|
||||
const { markRuleListObj }= this;
|
||||
const initInfo = {
|
||||
kskm:examSubject*1,
|
||||
kchp:plateNo,
|
||||
kchm:carNo*1,
|
||||
//考试车型
|
||||
kscx:'C1',
|
||||
cxcode:'1',
|
||||
name:'桑塔纳',
|
||||
carmodel:getModelData(`C1.txt`),
|
||||
// TODO 待替换
|
||||
allitems:testAllitems.map((project) => {
|
||||
//@ts-ignore
|
||||
const modelKey = project.projectCode + '_' + project.type;
|
||||
return {
|
||||
//@ts-ignore
|
||||
xmdm:project.projectCode*1,
|
||||
xmxh:project.type+'',
|
||||
model:getModelData(`${modelKey}.txt`)
|
||||
}
|
||||
}),
|
||||
mark:Reflect.ownKeys(markRuleListObj).map(ruleKey=>(markRuleListObj[ruleKey])),
|
||||
sysset:[{
|
||||
key:606,
|
||||
value:"1",
|
||||
name:"倒车入库、桩考、侧方不可以取消项目"
|
||||
}],
|
||||
};
|
||||
return initInfo
|
||||
}
|
||||
|
||||
// 获取plc数据
|
||||
getPlcData = async (plc:string) =>{
|
||||
const p = plc.split(',').map((val,key)=>{
|
||||
if(key !== 27 && key !== 92){
|
||||
//@ts-ignore
|
||||
return val*1
|
||||
}else{
|
||||
return val
|
||||
}
|
||||
});
|
||||
let data:any = testRealExam;
|
||||
const time = await systemTime.getCurrentTime()
|
||||
const tempData = {
|
||||
sensor:{
|
||||
//安全带 车门门开关 手刹 脚刹 副刹 离合器 喇叭 示宽灯 近光灯 远光灯
|
||||
aqd:p[19], mkg:p[14], ssc:p[13], jsc:p[12], fsc:p[18], lhq:p[17], lb:p[4], skd:p[9], jgd:p[7], ygd:p[8],
|
||||
//左方向灯 右方向灯 双跳灯 雾灯 雨刮器 点火1 点火2 发动机转速 档位 车速
|
||||
zfxd:p[2], yfxd:p[3], shtd:p[20],wd:p[10], ygq:p[11], dh1:p[5], dh2:p[6], fdjzs:p[25], dw:p[28], cs:p[23],
|
||||
//@ts-ignore 方向盘
|
||||
fxp:p[27].split('_')[0]*1,
|
||||
//累计脉冲 溜车脉冲 超声波左后 超声波右后 超声波右前 超声波左前 座椅 仪表盘 后视镜 倒车镜 光照 雨量
|
||||
ljmc:p[24], lcmc:0, csbzh:p[32], csbyh:p[30], csbyq:p[31], csbzq:p[29], zy:0, tbp:0, hsj:0, dcj:0, gx:0, yl:0
|
||||
},
|
||||
gps:{
|
||||
//办卡类型 定位差分状态
|
||||
bklx:p[56], dwzt:p[83],
|
||||
//@ts-ignore 角度差分状态
|
||||
jdzt:p[92].split('-')[0]*1,
|
||||
//gps数据
|
||||
//gps时间 经度 纬度 航向角 俯仰角 海拔高 高度差 速度
|
||||
sj:time, jd:p[96], wd:p[95], hxj:p[90], fyj:p[91], hbg:p[85], gdc:p[86], sd:p[97],
|
||||
//龄期 经度因子 纬度因子 定位搜星数
|
||||
age:p[87], jdyz:p[89], wdyz:p[88], dwsxs:p[84],
|
||||
//@ts-ignore 角度搜星数
|
||||
jdsxs:p[92].split('-')[1]*1
|
||||
},
|
||||
gps2:data.gps,
|
||||
vision:data.vision,
|
||||
radar:data.radar,
|
||||
extend:{}
|
||||
}
|
||||
return tempData
|
||||
}
|
||||
|
||||
// 获取模型数据
|
||||
getModelData = (modelName) => {
|
||||
const modelPath = this.modelPath
|
||||
const fileModel = this.fileModel;
|
||||
const modelData = fileModel.getModelContent(modelPath,modelName);
|
||||
return modelData
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,130 +0,0 @@
|
||||
import emitter from '@ohos.events.emitter'
|
||||
|
||||
export enum JudgeEvent{
|
||||
//评判回调日志
|
||||
JUDGE,
|
||||
//实时过程数据
|
||||
PERFORM,
|
||||
//日志
|
||||
LOG
|
||||
}
|
||||
|
||||
const {IMMEDIATE,IDLE,HIGH} = emitter.EventPriority
|
||||
|
||||
import {
|
||||
examJudgeSetLogCallback,
|
||||
examJudgeBeginExam,
|
||||
examJudgeInit,
|
||||
examJudgeRealExam,
|
||||
examJudgeSetRealExamCallback,
|
||||
examJudgeSetPerformCallback,
|
||||
examJudgeEndExam
|
||||
} from '../api/index'
|
||||
|
||||
import JudgeData from './judge-data'
|
||||
|
||||
const judgeTag = 'SURENJUN_JUDGE'
|
||||
|
||||
export class GlobalJudge{
|
||||
|
||||
private judgeData:JudgeData
|
||||
private initData:any
|
||||
private fileLog:any
|
||||
|
||||
constructor(context) {
|
||||
const {log} = this;
|
||||
const judgeData = new JudgeData(context);
|
||||
this.judgeData = judgeData;
|
||||
|
||||
}
|
||||
|
||||
// 评判初始化
|
||||
public init = async () => {
|
||||
const {log,judgeData} = this;
|
||||
log('1.进入评判入口')
|
||||
this.setLogCallback();
|
||||
const initData = await judgeData.getJudgeInitData()
|
||||
this.initData = initData;
|
||||
log('2.获取评判初始化数据完成')
|
||||
await examJudgeInit(initData);
|
||||
log('3.评判初始化完成')
|
||||
globalThis.isJudgeInitBool = true;
|
||||
await this.setRealExamCallback()
|
||||
await this.setJudgeSetPerformCallback()
|
||||
}
|
||||
|
||||
// 开始考试
|
||||
public startExam = async (beginData,fileLog) => {
|
||||
const {log,initData} = this;
|
||||
await fileLog.setExamJudgeData(initData)
|
||||
await examJudgeBeginExam(beginData);
|
||||
await fileLog.setExamJudgeData(beginData)
|
||||
log('4.开始考试注册完成')
|
||||
this.fileLog = fileLog;
|
||||
|
||||
}
|
||||
|
||||
// 传递实时数据
|
||||
public executeGPSData = async (msg) => {
|
||||
const {fileLog} = this;
|
||||
const judgeData = this.judgeData;
|
||||
const isString = typeof msg === 'string'
|
||||
let plcData = {}
|
||||
if(isString){
|
||||
plcData = await judgeData.getPlcData(msg);
|
||||
}else{
|
||||
plcData = msg
|
||||
}
|
||||
await fileLog.setExamJudgeData(plcData)
|
||||
await examJudgeRealExam(plcData)
|
||||
}
|
||||
|
||||
// 结束考试
|
||||
endExam = async () => {
|
||||
await examJudgeEndExam()
|
||||
}
|
||||
|
||||
// 评判过程回调
|
||||
setRealExamCallback = async () => {
|
||||
const JUDGE = JudgeEvent.JUDGE
|
||||
const {log} = this;
|
||||
let judgeEvent = {
|
||||
eventId: JUDGE,
|
||||
priority: IMMEDIATE
|
||||
};
|
||||
await examJudgeSetRealExamCallback(async (strData,len)=>{
|
||||
log('评判回调数据' + strData)
|
||||
emitter.emit(judgeEvent, strData);
|
||||
})
|
||||
}
|
||||
|
||||
// 实时数据回调
|
||||
setJudgeSetPerformCallback = async () => {
|
||||
const PERFORM = JudgeEvent.PERFORM
|
||||
let performEvent = {
|
||||
eventId: PERFORM,
|
||||
priority: IDLE
|
||||
};
|
||||
await examJudgeSetPerformCallback(async (info)=>{
|
||||
console.info('评判实时数据',info)
|
||||
emitter.emit(performEvent , info);
|
||||
})
|
||||
}
|
||||
|
||||
// 通用日志回调
|
||||
setLogCallback = async () => {
|
||||
const LOG = JudgeEvent.LOG
|
||||
let logEvent = {
|
||||
eventId: LOG,
|
||||
priority: IDLE
|
||||
};
|
||||
await examJudgeSetLogCallback(3, async (level, info,len)=>{
|
||||
console.log('评判日志:' + info)
|
||||
emitter.emit(logEvent, info);
|
||||
})
|
||||
}
|
||||
|
||||
log = (msg) => {
|
||||
console.info(judgeTag,msg)
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user