Merge branch 'dev' of http://88.22.24.105:3000/harmony_car/subject-two into dev
This commit is contained in:
commit
ac5186ef97
@ -6,8 +6,7 @@ import common from '@ohos.app.ability.common'
|
|||||||
import fs from '@ohos.file.fs'
|
import fs from '@ohos.file.fs'
|
||||||
|
|
||||||
const LOGTAG = 'LOGTAG'
|
const LOGTAG = 'LOGTAG'
|
||||||
|
export default class FileUtil{
|
||||||
export default class FileUtil {
|
|
||||||
private context: common.UIAbilityContext
|
private context: common.UIAbilityContext
|
||||||
private wantInfos: Want[]
|
private wantInfos: Want[]
|
||||||
private fileAccessHelper: fileAccess.FileAccessHelper
|
private fileAccessHelper: fileAccess.FileAccessHelper
|
||||||
@ -15,7 +14,8 @@ export default class FileUtil {
|
|||||||
//后续文件路径待替换
|
//后续文件路径待替换
|
||||||
private absolutePath = '/mnt/hmdfs/100/account/device_view/local/files'
|
private absolutePath = '/mnt/hmdfs/100/account/device_view/local/files'
|
||||||
|
|
||||||
public destFile: string
|
public destFile:string
|
||||||
|
public filePathFdObj:Object = {}
|
||||||
|
|
||||||
constructor(wantInfos) {
|
constructor(wantInfos) {
|
||||||
const {requestPermission} = this;
|
const {requestPermission} = this;
|
||||||
@ -27,88 +27,81 @@ export default class FileUtil {
|
|||||||
* @desc 校验文件夹,文件夹不存在会创建,支持嵌套
|
* @desc 校验文件夹,文件夹不存在会创建,支持嵌套
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public initFolder = async (folderPath: string) => {
|
public initFolder = async (folderPath:string) => {
|
||||||
const {absolutePath} = this;
|
const {absolutePath} = this;
|
||||||
const folderList = folderPath.split('/').filter(folderName => folderName !== '');
|
const folderList = folderPath.split('/').filter(folderName => folderName !== '');
|
||||||
|
|
||||||
let path = absolutePath
|
let path = absolutePath
|
||||||
folderList.forEach((folderName => {
|
folderList.forEach((folderName=>{
|
||||||
path += `/${folderName}`;
|
path += `/${folderName}`;
|
||||||
try {
|
try {
|
||||||
const isExit = fs.accessSync(path);
|
const isExit = fs.accessSync(path);
|
||||||
if (!isExit) {
|
if(!isExit){
|
||||||
fs.mkdirSync(path)
|
fs.mkdirSync(path)
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.info('初始化文件夹失败', path)
|
console.info('初始化文件夹失败',path)
|
||||||
promptAction.showToast({
|
promptAction.showToast({
|
||||||
message: `初始化文件夹失败` + JSON.stringify(e),
|
message:`初始化文件夹失败`+ folderPath + JSON.stringify(e),
|
||||||
duration: 4000,
|
duration:4000,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}));
|
}));
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @desc 创建并覆盖文件
|
* @desc 创建并覆盖文件
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public addFile = async (filePath: string, content: string, type?: string, fd?) => {
|
public addFile = async (filePath:string,content:string,type?:string)=>{
|
||||||
const { READ_WRITE,CREATE,APPEND } = fs.OpenMode
|
const { READ_WRITE,CREATE,APPEND }= fs.OpenMode
|
||||||
const isExit = fs.accessSync(filePath);
|
const isExit = fs.accessSync(filePath);
|
||||||
//文件存在先删除
|
//文件存在先删除
|
||||||
if (isExit) {
|
if(isExit){
|
||||||
fs.unlinkSync(filePath);
|
fs.unlinkSync(filePath);
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
let file
|
let file = fs.openSync(filePath, READ_WRITE | CREATE);
|
||||||
if (!fd) {
|
|
||||||
file = fs.openSync(filePath, READ_WRITE | CREATE);
|
|
||||||
}
|
|
||||||
//追加写入文件
|
//追加写入文件
|
||||||
fs.writeSync(file.fd, content)
|
fs.writeSync(file.fd,content)
|
||||||
fs.closeSync(file)
|
fs.closeSync(file)
|
||||||
return file.fd
|
console.error(LOGTAG,'写入文件成功')
|
||||||
|
return true
|
||||||
|
|
||||||
} catch (e) {
|
}catch (e){
|
||||||
console.error(LOGTAG, '写入失败', JSON.stringify(e))
|
promptAction.showToast({
|
||||||
|
message:`addFile文件失败`+ filePath +JSON.stringify(e),
|
||||||
|
duration:4000,
|
||||||
|
})
|
||||||
|
console.error(LOGTAG,'写入失败',JSON.stringify(e))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public openFileSync = async (filePath) => {
|
|
||||||
const { READ_WRITE,CREATE,APPEND } = fs.OpenMode
|
|
||||||
let file = fs.openSync(filePath, READ_WRITE | APPEND | CREATE);
|
|
||||||
return file
|
|
||||||
}
|
|
||||||
|
|
||||||
public editFileWidthOutOpen(file, content) {
|
|
||||||
const newStr = content + '\n'
|
|
||||||
fs.writeSync(file.fd, newStr)
|
|
||||||
fs.closeSync(file)
|
|
||||||
console.error(LOGTAG, '写入文件成功')
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @desc 创建或者编辑文件
|
* @desc 创建或者编辑文件
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public editFile = async (filePath: string, content: string, fd?: number) => {
|
public editFile = async (filePath:string,content:string,fd?:number)=>{
|
||||||
const { READ_WRITE,CREATE,APPEND } = fs.OpenMode
|
const {filePathFdObj} = this;
|
||||||
|
const { READ_WRITE,CREATE,APPEND }= fs.OpenMode
|
||||||
|
const newStr = content + '\n'
|
||||||
|
const thisFileFd = filePathFdObj[filePath];
|
||||||
try {
|
try {
|
||||||
const newStr = content + '\n'
|
if(thisFileFd){
|
||||||
if (fd !== undefined) {
|
fs.writeSync(fd,newStr)
|
||||||
fs.writeSync(fd, newStr)
|
return fd;
|
||||||
return fd
|
}else{
|
||||||
} else {
|
let file = fs.openSync(filePath, READ_WRITE | APPEND |CREATE);
|
||||||
let file = fs.openSync(filePath, READ_WRITE | APPEND | CREATE);
|
fs.writeSync(file.fd,newStr)
|
||||||
fs.writeSync(file.fd, newStr)
|
this.filePathFdObj[filePath] = file.fd
|
||||||
return file.fd
|
return file.fd
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(LOGTAG, JSON.stringify(e))
|
promptAction.showToast({
|
||||||
|
message:`editFile文件失败`+ filePath +JSON.stringify(e),
|
||||||
|
duration:4000,
|
||||||
|
})
|
||||||
|
console.error(LOGTAG,JSON.stringify(e))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -116,12 +109,17 @@ export default class FileUtil {
|
|||||||
* @desc 读取文件
|
* @desc 读取文件
|
||||||
*
|
*
|
||||||
**/
|
**/
|
||||||
public readFile = async (filePath: string) => {
|
public readFile = async (filePath:string) => {
|
||||||
try {
|
try{
|
||||||
console.log('strrr', filePath)
|
console.log('strrr',filePath)
|
||||||
const str = await fs.readText(filePath);
|
const str = await fs.readText(filePath);
|
||||||
return str
|
return str
|
||||||
} catch (err) {
|
}catch (e){
|
||||||
|
promptAction.showToast({
|
||||||
|
message:`读取文件失败`+ filePath +JSON.stringify(e),
|
||||||
|
duration:4000,
|
||||||
|
})
|
||||||
|
console.log('readFile文件失败'+ filePath +JSON.stringify(e))
|
||||||
return ''
|
return ''
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -130,9 +128,9 @@ export default class FileUtil {
|
|||||||
/*
|
/*
|
||||||
* @desc获取系统目录里的文件列表
|
* @desc获取系统目录里的文件列表
|
||||||
*/
|
*/
|
||||||
public getDeviceList = async (folderPath?: string) => {
|
public getDeviceList = async (folderPath?:string)=>{
|
||||||
const {absolutePath,getFilePathList} = this;
|
const {absolutePath,getFilePathList} = this;
|
||||||
return getFilePathList(`${absolutePath}/${folderPath}`, false)
|
return getFilePathList(`${absolutePath}/${folderPath}`,false)
|
||||||
};
|
};
|
||||||
|
|
||||||
// 删除文件夹或者文件
|
// 删除文件夹或者文件
|
||||||
@ -141,29 +139,29 @@ export default class FileUtil {
|
|||||||
* @param{{type}} 1:文件夹 2:文件 3:自定义目录下文件
|
* @param{{type}} 1:文件夹 2:文件 3:自定义目录下文件
|
||||||
**/
|
**/
|
||||||
|
|
||||||
public deleteF = async (path: string, type: 1 | 2 | 3) => {
|
public deleteF = async (path:string,type: 1 | 2 | 3) => {
|
||||||
const {getFilePathList,absolutePath} = this
|
const {getFilePathList,absolutePath} = this
|
||||||
if (type === 1) {
|
if(type === 1){
|
||||||
const fileList = await getFilePathList(`${absolutePath}/${path}`, false);
|
const fileList = await getFilePathList(`${absolutePath}/${path}`,false);
|
||||||
fileList.forEach(filePath => {
|
fileList.forEach(filePath =>{
|
||||||
fs.unlinkSync(`${absolutePath}/${path}/${filePath}`);
|
fs.unlinkSync(`${absolutePath}/${path}/${filePath}`);
|
||||||
})
|
})
|
||||||
fs.rmdirSync(`${absolutePath}/${path}`);
|
fs.rmdirSync(`${absolutePath}/${path}`);
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type === 2) {
|
if(type === 2){
|
||||||
fs.unlinkSync(`${absolutePath}/${path}`);
|
fs.unlinkSync(`${absolutePath}/${path}`);
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
if (type === 3) {
|
if(type === 3){
|
||||||
fs.unlinkSync(`${path}`);
|
fs.unlinkSync(`${path}`);
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取系统文件绝对路径
|
// 获取系统文件绝对路径
|
||||||
public getAbsolutePath = () => {
|
public getAbsolutePath = () =>{
|
||||||
const {absolutePath} = this;
|
const {absolutePath} = this;
|
||||||
return absolutePath
|
return absolutePath
|
||||||
}
|
}
|
||||||
@ -172,7 +170,7 @@ export default class FileUtil {
|
|||||||
public getSdCardPathList = async () => {
|
public getSdCardPathList = async () => {
|
||||||
this.wantInfos = await fileAccess.getFileAccessAbilityInfo();
|
this.wantInfos = await fileAccess.getFileAccessAbilityInfo();
|
||||||
const {wantInfos,context} = this;
|
const {wantInfos,context} = this;
|
||||||
const fileAccessHelper = fileAccess.createFileAccessHelper(this.context, this.wantInfos);
|
const fileAccessHelper = fileAccess.createFileAccessHelper(this.context,this.wantInfos);
|
||||||
this.fileAccessHelper = fileAccessHelper;
|
this.fileAccessHelper = fileAccessHelper;
|
||||||
|
|
||||||
let isDone = false;
|
let isDone = false;
|
||||||
@ -188,48 +186,48 @@ export default class FileUtil {
|
|||||||
if (!isDone) {
|
if (!isDone) {
|
||||||
let deviceType = rootInfo.value.deviceType;
|
let deviceType = rootInfo.value.deviceType;
|
||||||
let displayName = rootInfo.value.displayName;
|
let displayName = rootInfo.value.displayName;
|
||||||
let uri: string = rootInfo.value.uri;
|
let uri:string = rootInfo.value.uri;
|
||||||
let deviceFlags = rootInfo.value.deviceFlags;
|
let deviceFlags = rootInfo.value.deviceFlags;
|
||||||
console.error(LOGTAG, `设备类型:${deviceType},设备名称:${displayName},设备根目录Uri:${uri},设备支持的能力:${deviceFlags}`);
|
console.error(LOGTAG,`设备类型:${deviceType},设备名称:${displayName},设备根目录Uri:${uri},设备支持的能力:${deviceFlags}`);
|
||||||
|
|
||||||
if (uri.indexOf('/mnt/external/') > 0) {
|
if(uri.indexOf('/mnt/external/')>0){
|
||||||
// if('vol-8-1' ==displayName){
|
// if('vol-8-1' ==displayName){
|
||||||
this.destFile = uri.split('ExternalFileManager')[1] + '/'
|
this.destFile = uri.split('ExternalFileManager')[1]+'/'
|
||||||
console.error(LOGTAG, `外置存储路径:` + this.destFile);
|
console.error(LOGTAG,`外置存储路径:`+this.destFile);
|
||||||
this.getFilePathList(this.destFile, true)
|
this.getFilePathList(this.destFile,true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(LOGTAG, "getRoots failed, errCode:" + error.code + ", errMessage:" + error.message);
|
console.error(LOGTAG,"getRoots failed, errCode:" + error.code + ", errMessage:" + error.message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public getFileContent = (filePath: string) => {
|
public getFileContent = (filePath:string) => {
|
||||||
const {absolutePath} = this;
|
const {absolutePath} = this;
|
||||||
const { READ_WRITE } = fs.OpenMode
|
const { READ_WRITE }= fs.OpenMode
|
||||||
const path = `${absolutePath}/${filePath}`
|
const path = `${absolutePath}/${filePath}`
|
||||||
const str = fs.readTextSync(path);
|
const str = fs.readTextSync(path);
|
||||||
return str
|
return str
|
||||||
}
|
}
|
||||||
|
|
||||||
private getFilePathList = async (filePath: string, isSdcard: boolean) => {
|
private getFilePathList = async (filePath:string,isSdcard:boolean) => {
|
||||||
let fileName = [], sdCardFileName = [];
|
let fileName = [],sdCardFileName = [];
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const filenames = await fs.listFile(filePath);
|
const filenames = await fs.listFile(filePath);
|
||||||
for (let i = 0; i < filenames.length; i++) {
|
for (let i = 0; i < filenames.length; i++) {
|
||||||
console.error(LOGTAG, `目录:${filePath}的子文件:${filenames[i]}`);
|
console.error(LOGTAG,`目录:${filePath}的子文件:${filenames[i]}`);
|
||||||
if (isSdcard) {
|
if(isSdcard){
|
||||||
sdCardFileName.push(filenames[i])
|
sdCardFileName.push(filenames[i])
|
||||||
} else {
|
}else{
|
||||||
fileName.push(filenames[i])
|
fileName.push(filenames[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return isSdcard ? sdCardFileName : fileName
|
return isSdcard ? sdCardFileName : fileName
|
||||||
} catch (e) {
|
}catch (e){
|
||||||
console.error(LOGTAG, JSON.stringify(e));
|
console.error(LOGTAG,JSON.stringify(e));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -243,15 +241,17 @@ export default class FileUtil {
|
|||||||
];
|
];
|
||||||
this.wantInfos = await fileAccess.getFileAccessAbilityInfo();
|
this.wantInfos = await fileAccess.getFileAccessAbilityInfo();
|
||||||
let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager()
|
let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager()
|
||||||
atManager.requestPermissionsFromUser(context, permissions, async (code, result) => {
|
atManager.requestPermissionsFromUser(context, permissions , async (code, result) => {
|
||||||
const permissionRequest = result.authResults[0]
|
const permissionRequest = result.authResults[0]
|
||||||
if (permissionRequest == -1) {
|
if(permissionRequest == -1){
|
||||||
promptAction.showToast({
|
promptAction.showToast({
|
||||||
message: "请先授权",
|
message: "请先授权",
|
||||||
duration: 3000,
|
duration:3000,
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -31,6 +31,7 @@ import { judgeConfig } from './judgeSDK/utils/judgeConfig';
|
|||||||
import FileUtil from '../common/utils/File';
|
import FileUtil from '../common/utils/File';
|
||||||
import SignDisplayCom from './compontents/signDisplayCom';
|
import SignDisplayCom from './compontents/signDisplayCom';
|
||||||
import promptAction from '@ohos.promptAction';
|
import promptAction from '@ohos.promptAction';
|
||||||
|
import { voiceService } from '../common/service/voiceService';
|
||||||
|
|
||||||
@Entry
|
@Entry
|
||||||
@Component
|
@Component
|
||||||
@ -40,6 +41,8 @@ struct Index {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async aboutToAppear() {
|
async aboutToAppear() {
|
||||||
|
this.vocObj = new voiceService(async (status, val, next) => {
|
||||||
|
});
|
||||||
globalThis.windowClass.setWindowSystemBarEnable([])
|
globalThis.windowClass.setWindowSystemBarEnable([])
|
||||||
const time = await getCurrentTime()
|
const time = await getCurrentTime()
|
||||||
|
|
||||||
@ -760,6 +763,10 @@ struct Index {
|
|||||||
.height(118 * 0.95)
|
.height(118 * 0.95)
|
||||||
.margin({ bottom: 8 })
|
.margin({ bottom: 8 })
|
||||||
.onClick(() => {
|
.onClick(() => {
|
||||||
|
this.vocObj.playAudio({
|
||||||
|
type: 1,
|
||||||
|
name: 'button_media.wav'
|
||||||
|
})
|
||||||
this.setManualProjectFn(index)
|
this.setManualProjectFn(index)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@ -792,6 +799,10 @@ struct Index {
|
|||||||
.alignItems(VerticalAlign.Center)
|
.alignItems(VerticalAlign.Center)
|
||||||
.border({ width: 5, color: '#4D4136', radius: 30 })
|
.border({ width: 5, color: '#4D4136', radius: 30 })
|
||||||
.onClick(() => {
|
.onClick(() => {
|
||||||
|
this.vocObj.playAudio({
|
||||||
|
type: 1,
|
||||||
|
name: 'button_media.wav'
|
||||||
|
})
|
||||||
this.signDisplayComVisible = true
|
this.signDisplayComVisible = true
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -827,6 +838,10 @@ struct Index {
|
|||||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||||
.margin({ bottom: 10 })
|
.margin({ bottom: 10 })
|
||||||
.onClick(() => {
|
.onClick(() => {
|
||||||
|
this.vocObj.playAudio({
|
||||||
|
type: 1,
|
||||||
|
name: 'button_media.wav'
|
||||||
|
})
|
||||||
this.isDeductedPopShow = true
|
this.isDeductedPopShow = true
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -856,6 +871,10 @@ struct Index {
|
|||||||
.backgroundImage($rawfile('judge/anniu_nor.png'), ImageRepeat.NoRepeat)
|
.backgroundImage($rawfile('judge/anniu_nor.png'), ImageRepeat.NoRepeat)
|
||||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||||
.onClick(() => {
|
.onClick(() => {
|
||||||
|
this.vocObj.playAudio({
|
||||||
|
type: 1,
|
||||||
|
name: 'button_media.wav'
|
||||||
|
})
|
||||||
if (this.judgeConfigObj['353'] == '0') {
|
if (this.judgeConfigObj['353'] == '0') {
|
||||||
this.endPopupVisible = true
|
this.endPopupVisible = true
|
||||||
} else {
|
} else {
|
||||||
@ -919,6 +938,10 @@ struct Index {
|
|||||||
.backgroundImage($rawfile('judge/close.png'), ImageRepeat.NoRepeat)
|
.backgroundImage($rawfile('judge/close.png'), ImageRepeat.NoRepeat)
|
||||||
.backgroundImageSize({ width: '33.33%', height: '33.33%' })
|
.backgroundImageSize({ width: '33.33%', height: '33.33%' })
|
||||||
.onClick(() => {
|
.onClick(() => {
|
||||||
|
this.vocObj.playAudio({
|
||||||
|
type: 1,
|
||||||
|
name: 'button_media.wav'
|
||||||
|
})
|
||||||
this.signDisplayComVisible = false
|
this.signDisplayComVisible = false
|
||||||
})
|
})
|
||||||
}.width('100%').height('100%').position({ y: 0 }).backgroundColor('rgba(0,0,0,0.6)')
|
}.width('100%').height('100%').position({ y: 0 }).backgroundColor('rgba(0,0,0,0.6)')
|
||||||
@ -1330,10 +1353,11 @@ struct Index {
|
|||||||
@State lane: LANE = { road: '', num: 0, count: 0 }
|
@State lane: LANE = { road: '', num: 0, count: 0 }
|
||||||
@State roadData: Object = {};
|
@State roadData: Object = {};
|
||||||
//定位差分状态时候正常
|
//定位差分状态时候正常
|
||||||
@State isDwztRight: boolean = false;
|
@State isDwztRight: boolean = true;
|
||||||
@State defaultTabIndex: number = 0;
|
@State defaultTabIndex: number = 0;
|
||||||
private context = getContext(this) as common.UIAbilityContext;
|
private context = getContext(this) as common.UIAbilityContext;
|
||||||
public kfArrScroller: Scroller = new Scroller()
|
public kfArrScroller: Scroller = new Scroller()
|
||||||
|
private vocObj = null;
|
||||||
//档位
|
//档位
|
||||||
@State dw: string = ''
|
@State dw: string = ''
|
||||||
//速度
|
//速度
|
||||||
|
|||||||
@ -97,8 +97,8 @@ export interface MAPITEMPOINTITEM {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface EXAMDATA {
|
export interface EXAMDATA {
|
||||||
//1:项目开始 2:项目结束 3:扣分 4:考车状态 5:考试结束 6:项目取消 7:语音播放和提示 8:模拟灯光事件 9:车道信息事件 10:预进项目事件
|
//1:项目开始 2:项目结束 3:扣分 4:考车状态 5:考试结束 6:项目取消 7:语音播放和提示 8:模拟灯光事件 9:车道信息事件 10:预进项目事件 11:差分事件
|
||||||
event: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10
|
event: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11
|
||||||
//时间
|
//时间
|
||||||
sj: number
|
sj: number
|
||||||
//考车状态 -1:后退 0:停车 1:前进
|
//考车状态 -1:后退 0:停车 1:前进
|
||||||
@ -164,6 +164,9 @@ export interface EXAMDATA {
|
|||||||
xmdm:number,
|
xmdm:number,
|
||||||
xmxh:string
|
xmxh:string
|
||||||
}
|
}
|
||||||
|
nongps:{
|
||||||
|
type:0|1|2|3|4
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface KSJS {
|
export interface KSJS {
|
||||||
|
|||||||
@ -72,7 +72,6 @@ export default class Judge {
|
|||||||
this.kfArr = judgeUI.kfArr
|
this.kfArr = judgeUI.kfArr
|
||||||
this.xmmcStr = '';
|
this.xmmcStr = '';
|
||||||
this.xmmcCode = '';
|
this.xmmcCode = '';
|
||||||
this.xmmcEndCode = undefined;
|
|
||||||
this.carztStr = '';
|
this.carztStr = '';
|
||||||
this.testKmItems = {};
|
this.testKmItems = {};
|
||||||
// 考试回放配置
|
// 考试回放配置
|
||||||
@ -359,7 +358,7 @@ export default class Judge {
|
|||||||
handleRealExam = async (strData, callBack) => {
|
handleRealExam = async (strData, callBack) => {
|
||||||
let examData: EXAMDATA = JSON.parse(strData);
|
let examData: EXAMDATA = JSON.parse(strData);
|
||||||
const {getDqxmStr,getKfStr,goJudgeVoice,setMndg,avPlayer,fileLog,judgeUI} = this;
|
const {getDqxmStr,getKfStr,goJudgeVoice,setMndg,avPlayer,fileLog,judgeUI} = this;
|
||||||
const {carzt,xmks,kf,event,xmjs,xmqx,ksjs,sound,mndg,lane,precast} = examData
|
const {carzt,xmks,kf,event,xmjs,xmqx,ksjs,sound,mndg,lane,precast,nongps} = examData
|
||||||
const param512 = (judgeUI.judgeConfigObj['512'] || '').split(',');
|
const param512 = (judgeUI.judgeConfigObj['512'] || '').split(',');
|
||||||
//获取项目结束、项目开始代码
|
//获取项目结束、项目开始代码
|
||||||
const xmdm = event == 2 ? xmjs.xmdm : xmks.xmdm
|
const xmdm = event == 2 ? xmjs.xmdm : xmks.xmdm
|
||||||
@ -386,7 +385,6 @@ export default class Judge {
|
|||||||
this.xmmcStr = xmmcStr;
|
this.xmmcStr = xmmcStr;
|
||||||
this.xmmcCode = xmmcCode;
|
this.xmmcCode = xmmcCode;
|
||||||
this.xmmcSingleCode = xmmcSingleCode
|
this.xmmcSingleCode = xmmcSingleCode
|
||||||
this.xmmcEndCode = xmmcCode
|
|
||||||
this.xmdm = xmdm;
|
this.xmdm = xmdm;
|
||||||
this.xmxh = xmxh;
|
this.xmxh = xmxh;
|
||||||
this.judgeUI.isProjectIn = true
|
this.judgeUI.isProjectIn = true
|
||||||
@ -484,7 +482,7 @@ export default class Judge {
|
|||||||
case 10:{
|
case 10:{
|
||||||
const param611 = judgeConfigObj['611'] || '';
|
const param611 = judgeConfigObj['611'] || '';
|
||||||
const [f,s] = param611.split('/')
|
const [f,s] = param611.split('/')
|
||||||
const {xmdm,xmxh} = precast;
|
const {xmdm} = precast;
|
||||||
const xmmcCode = judgeUI.projectsObj[xmdm].projectCodeCenter;
|
const xmmcCode = judgeUI.projectsObj[xmdm].projectCodeCenter;
|
||||||
const xmmcSingleCode = judgeUI.projectsObj[xmdm].projectCode;
|
const xmmcSingleCode = judgeUI.projectsObj[xmdm].projectCode;
|
||||||
// if(examSubject == 2 && ((xmdm == 0 && f == 1) || (xmdm == 1 && s == 1) || xmdm == 3)){
|
// if(examSubject == 2 && ((xmdm == 0 && f == 1) || (xmdm == 1 && s == 1) || xmdm == 3)){
|
||||||
@ -494,13 +492,16 @@ export default class Judge {
|
|||||||
this.testKmItems[xmmcCode].status = 2;
|
this.testKmItems[xmmcCode].status = 2;
|
||||||
this.xmmcStr = xmmcStr;
|
this.xmmcStr = xmmcStr;
|
||||||
this.xmmcCode = xmmcCode;
|
this.xmmcCode = xmmcCode;
|
||||||
this.xmdm = xmdm;
|
|
||||||
this.xmxh = xmxh;
|
|
||||||
this.xmmcSingleCode = xmmcSingleCode;
|
this.xmmcSingleCode = xmmcSingleCode;
|
||||||
judgeUI.projectsObj[xmdm].type = '2';
|
judgeUI.projectsObj[xmdm].type = '2';
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
//差分事件
|
||||||
|
case 11:{
|
||||||
|
const {type}= nongps
|
||||||
|
this.checkDwzt(type)
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -593,7 +594,6 @@ export default class Judge {
|
|||||||
console.info(judgeTag, `项目结束-${xmdm}-${projectsObj[xmdm].name}`)
|
console.info(judgeTag, `项目结束-${xmdm}-${projectsObj[xmdm].name}`)
|
||||||
await endProject(xmdm);
|
await endProject(xmdm);
|
||||||
this.xmmcSingleCode = 0;
|
this.xmmcSingleCode = 0;
|
||||||
this.xmmcEndCode = undefined;
|
|
||||||
}, {isDelay: true})
|
}, {isDelay: true})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -760,7 +760,7 @@ export default class Judge {
|
|||||||
const carInfo = globalThis.carInfo;
|
const carInfo = globalThis.carInfo;
|
||||||
const deviceNo = globalThis.deviceNo;
|
const deviceNo = globalThis.deviceNo;
|
||||||
const { examSubject,plateNo,carNo } = carInfo;
|
const { examSubject,plateNo,carNo } = carInfo;
|
||||||
const {judgeUI,getProjectInfo,fileLog,xmmcEndCode,filePath} = this;
|
const {judgeUI,getProjectInfo,fileLog,xmmcSingleCode,filePath} = this;
|
||||||
const {lsh,idCard,serialNumber,ksdd,projectsObj} = judgeUI
|
const {lsh,idCard,serialNumber,ksdd,projectsObj} = judgeUI
|
||||||
const time = await getCurrentTime();
|
const time = await getCurrentTime();
|
||||||
const project = getProjectInfo(ksxm);
|
const project = getProjectInfo(ksxm);
|
||||||
@ -776,11 +776,6 @@ export default class Judge {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
console.info('surenjun','开始扣分')
|
|
||||||
console.info('surenjun ksxm=>',ksxm)
|
|
||||||
console.info('surenjun commonKsxm=>',commonKsxm)
|
|
||||||
console.info('surenjun project=>',JSON.stringify(project))
|
|
||||||
|
|
||||||
const data = {
|
const data = {
|
||||||
xtlb: '17', jkxlh: serialNumber, jkid: '17C53',
|
xtlb: '17', jkxlh: serialNumber, jkid: '17C53',
|
||||||
drvexam: {
|
drvexam: {
|
||||||
@ -789,7 +784,7 @@ export default class Judge {
|
|||||||
ksxm: project == undefined
|
ksxm: project == undefined
|
||||||
? (commonKsxm
|
? (commonKsxm
|
||||||
? (projectsObj[commonKsxm].projectCodeCenter)
|
? (projectsObj[commonKsxm].projectCodeCenter)
|
||||||
: (examSubject == 3 ? 30000 : (xmmcEndCode == undefined?10000:xmmcEndCode)))
|
: (examSubject == 3 ? 30000 : 10000))
|
||||||
: project.projectCodeCenter ,
|
: project.projectCodeCenter ,
|
||||||
kfxm: kf.markcatalog,
|
kfxm: kf.markcatalog,
|
||||||
kfxmmx: `${ksxm},${kf.markserial}`,
|
kfxmmx: `${ksxm},${kf.markserial}`,
|
||||||
@ -1487,13 +1482,13 @@ export default class Judge {
|
|||||||
const str = await senorToWXDataStr(msg);
|
const str = await senorToWXDataStr(msg);
|
||||||
usbService.sendUSB(str)
|
usbService.sendUSB(str)
|
||||||
}
|
}
|
||||||
this.judgeUI.isDwztRight = (plcData.gps.dwzt == 4 && plcData.gps.jdzt == 3);
|
// this.judgeUI.isDwztRight = (plcData.gps.dwzt == 4 && plcData.gps.jdzt == 3);
|
||||||
const param350 = judgeUI.judgeConfigObj['350']
|
const param350 = judgeUI.judgeConfigObj['350']
|
||||||
//@ts-ignore
|
//@ts-ignore
|
||||||
this.judgeUI.sd = ((param350 == 0? plcData.gps.sd :plcData.sensor.cs) as number * 1.852).toFixed(0) + ''
|
this.judgeUI.sd = ((param350 == 0? plcData.gps.sd :plcData.sensor.cs) as number * 1.852).toFixed(0) + ''
|
||||||
this.judgeUI.dw = (Math.floor(plcData.sensor.dw as number) || 0) + ''
|
this.judgeUI.dw = (Math.floor(plcData.sensor.dw as number) || 0) + ''
|
||||||
//TODO 暂时关闭差分检测异常
|
//TODO 暂时关闭差分检测异常
|
||||||
await this.checkDwzt(plcData.gps.dwzt,plcData.gps.jdzt);
|
// await this.checkDwzt(plcData.gps.dwzt,plcData.gps.jdzt);
|
||||||
if(!isExamEnd){
|
if(!isExamEnd){
|
||||||
await examJudgeRealExam(plcData)
|
await examJudgeRealExam(plcData)
|
||||||
}
|
}
|
||||||
@ -1579,7 +1574,7 @@ export default class Judge {
|
|||||||
const bytes = await this.getMessageHeartbeat();
|
const bytes = await this.getMessageHeartbeat();
|
||||||
bytes && globalThis.judgeUdp.send(bytes)
|
bytes && globalThis.judgeUdp.send(bytes)
|
||||||
|
|
||||||
}, 50)
|
}, 20)
|
||||||
|
|
||||||
globalThis.judgeTimer = judgeTimer;
|
globalThis.judgeTimer = judgeTimer;
|
||||||
}
|
}
|
||||||
@ -1620,25 +1615,35 @@ export default class Judge {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 检测差分状态
|
// 检测差分状态
|
||||||
checkDwzt = async (dwzt,jdzt) => {
|
checkDwzt = async (type) => {
|
||||||
const {avPlayer} = this;
|
const {avPlayer} = this;
|
||||||
const judgeConfig = this.judgeUI.judgeConfig;
|
const judgeConfig = this.judgeUI.judgeConfig;
|
||||||
const param499 = judgeConfig['499'] || '';
|
switch (type){
|
||||||
if(param499 == '' || param499 == undefined){
|
case 0:
|
||||||
return
|
this.judgeUI.isDwztRight = true;
|
||||||
}
|
break;
|
||||||
//10秒内dwzt不为4;
|
|
||||||
const dwztNum = this.dwztNum
|
|
||||||
if(dwztNum != 0 && (dwztNum % (5 * 10) == 0) && (param499 !== '' || param499 !== undefined)){
|
|
||||||
this.judgeUI.dwztErrorVisible = true;
|
|
||||||
avPlayer.playAudio([`voice/差分状态异常.mp3`],true)
|
|
||||||
}
|
|
||||||
|
|
||||||
if(dwzt != 4 || jdzt != 3){
|
case 1:
|
||||||
this.dwztNum += 1
|
this.judgeUI.dwztErrorVisible = true;
|
||||||
}else{
|
avPlayer.playAudio([`voice/差分状态异常.mp3`],true)
|
||||||
this.dwztNum = 0;
|
setTimeout(()=>{
|
||||||
this.judgeUI.dwztErrorVisible = false;
|
router.back()
|
||||||
|
},3000)
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
avPlayer.playAudio([`voice/差分状态异常.mp3`],true);
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
this.judgeUI.dwztErrorVisible = true;
|
||||||
|
avPlayer.playAudio([`voice/差分状态异常.mp3`],true);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 4:
|
||||||
|
this.judgeUI.isDwztRight = false;
|
||||||
|
//差分异常上报
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1659,7 +1664,6 @@ export default class Judge {
|
|||||||
private xmmcStr: string
|
private xmmcStr: string
|
||||||
private xmmcCode: string
|
private xmmcCode: string
|
||||||
private xmmcSingleCode: number
|
private xmmcSingleCode: number
|
||||||
private xmmcEndCode?:number
|
|
||||||
private xmdm: string | number
|
private xmdm: string | number
|
||||||
private xmxh: string
|
private xmxh: string
|
||||||
private fileModel: FileModel
|
private fileModel: FileModel
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user