fix: 去掉旧的日志

This commit is contained in:
wangzhongjie 2025-08-06 11:44:47 +08:00
parent 0a5648967d
commit 3938e0761f
4 changed files with 188 additions and 301 deletions

View File

@ -177,7 +177,7 @@ struct VideoConfigPage {
type: "3",
click: async () => {
const arr = ['1', '2', '3', '4']
if (!arr.includes(this.videoConfig.pztd)) {
if (!arr.includes(this.videoConfig?.pztd || "")) {
Prompt.showToast({
message: '请填写正确的拍照通道',
duration: 3000

View File

@ -6,7 +6,6 @@ import buffer from '@ohos.buffer';
import VoiceAnnounce from './utils/voiceAnnouncements';
import FileModel from './utils/fileModel';
import FilePhoto from './utils/filePhoto';
import FileLog from './utils/fileLog';
import JudgeTask from './utils/judgeTask';
import { JudgeConfig, JudgeTag } from '../../config';
import { GetSyncData, SqlInsertTable } from '../../utils/table/Operation';
@ -101,8 +100,6 @@ export default class Judge {
sharps: this.getModelData('km3/Sharps.txt') || ""
}
}
private context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext;
private fileLog?: FileLog
//人工扣分
public setJudgeMark = async (itemno: string, serial: string, type = 1) => {
await examJudgeArtificialMark(Number(itemno), serial, type);
@ -113,7 +110,8 @@ export default class Judge {
serial,
type
})
await this.fileLog?.setExamJudgeData(str)
// await this.fileLog?.setExamJudgeData(str)
dConsole.writeProcessData(ProcessDataEnumType.JudgeExamData, str)
dConsole.info(JudgeTag, `人工扣分-${itemno}-${serial}`)
}
//人工操作项目
@ -125,9 +123,11 @@ export default class Judge {
itemno: Number(itemno),
type
})
await this.fileLog?.setExamJudgeData(str)
// await this.fileLog?.setExamJudgeData(str)
dConsole.writeProcessData(ProcessDataEnumType.JudgeExamData, str)
dConsole.info(JudgeTag, `人工评判${type == 1 ? '进入' : '取消'}项目-${itemno}`)
}
private context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext;
private filePath: string = ""
private totalScore: number = -1
private prevJd: number = 0
@ -184,6 +184,48 @@ export default class Judge {
private isExamEnd: boolean
// 是否发送udp
private isUdpEnd: boolean = false
// 处理udp plc信号
handleUdp = async (msg: string) => {
const stachArr = msg.split(',')
if (stachArr[0] != '#DN_GD' || this.isUdpEnd) {
return
}
const gpsPart = msg.split("#END$GPS,")[1];
const gpsStatus = gpsPart.split(",")[0];
if (gpsStatus === "4") {
dConsole.log(JudgeTag, "差分状态正常", gpsStatus)
this.judgeUI.isDwztRight = true
} else {
dConsole.log(JudgeTag, "差分状态异常", gpsStatus)
this.judgeUI.isDwztRight = false
}
this.judgeUI.isDwztRight
const plcData = await this.getPlcData(msg);
// 4.过程数据
// await this.fileLog?.setExamJudgeData(JSON.stringify(plcData))
dConsole.writeProcessData(ProcessDataEnumType.JudgeExamData, JSON.stringify(plcData))
//检测到有无锡所设备接入,需要发送特定的数据,供检测
// if (this.usbService.isWXUSBDevice) {
// const str = await senorToWXDataStr(msg);
// this.usbService.sendUSB(str)
// }
const param350: number = Reflect.get(this.judgeUI.judgeConfigObj, '350')
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) + ''
//TODO 暂时关闭差分检测异常
// await this.checkDwzt(plcData.gps.dwzt,plcData.gps.jdzt);
if (!this.isExamEnd) {
await examJudgeRealExam(plcData)
}
// let udpIndex = AppStorage.get<number>('udpIndex') || 0;
// if (udpIndex % 5 === 0 && !this.isUdpEnd) {
// TODO UPD缺失
// const judgeUdp = globalThis.judgeUdp
// const bytes = await this.getMessageHeartbeat(this.isExamEnd);
// judgeUdp.send(bytes)
// }
// AppStorage.setOrCreate('udpIndex', udpIndex++)
}
//是否手动结束考试
private isManual: boolean = false
//UDP服务序列号
@ -194,16 +236,14 @@ export default class Judge {
const carInfo = AppStorage.get<CarInfoType>('carInfo')
const judgeUI = this.judgeUI
const fileUtil = this.fileUtil
const fileLog = this.fileLog
const carId = carInfo?.carId || ""
const examinationRoomId = carInfo?.examinationRoomId || ""
const folderPath = fileLog?.folderPath
const base64 = new util.Base64();
const time = GetCurrentTime();
const endTime = GetCurrentTime(1)
let examDataBase64: string = ''
const examDataStr: string = await this.fileUtil.readFile(`${folderPath}/wuxi_progress_data.txt`);
const examDataStr: string = await this.fileUtil.readFile(`${dConsole.currentExamCatalog}/wuxi_progress_data.txt`);
try {
let tempBuff = buffer.alloc(examDataStr.length, examDataStr)
let examData: Uint8Array = new Uint8Array(tempBuff.buffer)
@ -230,6 +270,60 @@ export default class Judge {
dConsole.info(JudgeTag, '过程数据文件上传 end')
}
private judgeTask: JudgeTask
// 检测扣分、结束项目时该项目是否开始
checkProjectIsStart = async (xmdm: number, currentType: 1 | 2, kf?: MarkRule) => {
if (xmdm == 20) {
return true
}
const judgeUI = this.judgeUI;
const judgeTask = this.judgeTask;
const projectsObj: object = this.judgeUI.projectsObj
const currentProject: ProjectInfo = Reflect.get(projectsObj, xmdm)
const isUpload = currentProject.isUpload
//如果项目没有开始
dConsole.info(JudgeTag, 'surenjun isUpload=>', isUpload)
if (!isUpload) {
dConsole.info(JudgeTag, '项目补传开始')
//项目开始补传
judgeTask.addTask(async () => {
await this.beginProject(xmdm)
}, {
isDelay: true
})
judgeTask.addTask(async () => {
await this.uploadProgressPhoto(xmdm)
}, {
isDelay: true
})
currentProject.isUpload = true;
Reflect.set(this.judgeUI.projectsObj, xmdm, currentProject)
//扣分补传
if (currentType == 2) {
judgeTask.addTask(async () => {
await this.pointsDedute(xmdm, kf!)
}, {
isDelay: true
})
}
//扣分补传判断是否合格 不合格补传项目结束
if (currentType == 1 || (currentType == 2 && this.totalScore < judgeUI.passingScore)) {
judgeTask.addTask(async () => {
await this.endProject(xmdm)
}, {
isDelay: true
})
currentProject.isEnd = true;
Reflect.set(this.judgeUI.projectsObj, xmdm, currentProject)
}
judgeTask.addTask(async () => {
this.checkExamIsEnd()
})
return false;
} else {
return true
}
}
private tempData?: PLCType
//实时计算gps经纬度距离
handDistance = async () => {
@ -260,7 +354,8 @@ export default class Judge {
private plcData?: PLCType
// 获取plc数据
getPlcData = async (plc: string) => {
await this.fileLog?.setPlcProgressData(plc)
// await this.fileLog?.setPlcProgressData(plc)
dConsole.writeProcessData(ProcessDataEnumType.PlcData, plc)
//plc字符串转化成评判初始化数据
const tempData = await PlcStrToJson(plc);
//模拟灯光回放时刻
@ -270,7 +365,8 @@ export default class Judge {
//plc字符串转化成无锡所过程数据
const wuXiDataStr = await PlcStrToWXJson(plc)
this.plcData = tempData
await this.fileLog?.setExamJudgeWuxiProgressData(wuXiDataStr)
// await this.fileLog?.setExamJudgeWuxiProgressData(wuXiDataStr)
dConsole.writeProcessData(ProcessDataEnumType.WuxiProgressData, wuXiDataStr)
this.tempData = tempData
this.plcStr = plc;
this.mndgStr = '';
@ -278,46 +374,40 @@ export default class Judge {
AppStorage.setOrCreate('msgStr', plc)
return tempData
}
// 处理udp plc信号
handleUdp = async (msg: string) => {
const stachArr = msg.split(',')
if (stachArr[0] != '#DN_GD' || this.isUdpEnd) {
// 处理轨迹plc信号
handleTrajectoryUdp = async (strArr: string[]) => {
let num = 2;
const judgeTimer = setInterval(async () => {
const msgStr = strArr[num];
if (msgStr == '') {
dConsole.info(JudgeTag, '模拟数据考试结束')
clearInterval(judgeTimer)
this.checkExamIsEnd(true)
return
}
const gpsPart = msg.split("#END$GPS,")[1];
const gpsStatus = gpsPart.split(",")[0];
if (gpsStatus === "4") {
dConsole.log(JudgeTag, "差分状态正常", gpsStatus)
this.judgeUI.isDwztRight = true
} else {
dConsole.log(JudgeTag, "差分状态异常", gpsStatus)
this.judgeUI.isDwztRight = false
}
this.judgeUI.isDwztRight
const plcData = await this.getPlcData(msg);
const msg: PLCType = JSON.parse(strArr[num]);
num++
// 4.过程数据
await this.fileLog?.setExamJudgeData(JSON.stringify(plcData))
//检测到有无锡所设备接入,需要发送特定的数据,供检测
// if (this.usbService.isWXUSBDevice) {
// const str = await senorToWXDataStr(msg);
// this.usbService.sendUSB(str)
// }
const param350: number = Reflect.get(this.judgeUI.judgeConfigObj, '350')
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) + ''
//TODO 暂时关闭差分检测异常
// await this.checkDwzt(plcData.gps.dwzt,plcData.gps.jdzt);
if (!this.isExamEnd) {
await examJudgeRealExam(plcData)
this.tempData = msg
// this.judgeUI.isDwztRight = (msg?.gps?.dwzt == 4 && msg?.gps?.jdzt == 3);
this.judgeUI.sd = Math.floor(msg?.gps?.sd * 1.852) + '';
this.judgeUI.dw = Math.floor(msg?.sensor?.dw) + ''
this.plcData = msg
// this.judgeUI.isDwztRight = msg.gps.dwzt == 4;
AppStorage.setOrCreate('msgStr', '')
if (msg.method === 'examJudgeArtificialItem') {
this.setJudgeItem(msg.itemno, msg.type)
}
// let udpIndex = AppStorage.get<number>('udpIndex') || 0;
// if (udpIndex % 5 === 0 && !this.isUdpEnd) {
// TODO UPD缺失
// const judgeUdp = globalThis.judgeUdp
// const bytes = await this.getMessageHeartbeat(this.isExamEnd);
// judgeUdp.send(bytes)
// }
// AppStorage.setOrCreate('udpIndex', udpIndex++)
if (msg.method === 'examJudgeArtificialMark') {
this.setJudgeItem(msg.itemno, msg.serial)
}
await examJudgeRealExam(msg)
// const bytes = await this.getMessageHeartbeat();
// bytes && globalThis.judgeUdp.send(bytes)
}, 200)
// TODO 定时器缺失
// globalThis.judgeTimer = judgeTimer;
}
private isEndTip: boolean = false;
//本地轨迹回放地址
@ -331,39 +421,12 @@ export default class Judge {
if (!this.isJudgeDisConnect) {
return
}
const folderPath = this.fileLog?.folderPath
const examDataStr = await this.fileUtil.readFile(`${folderPath}/wuxi_dis_progress_data.txt`);
const examDataStr = await this.fileUtil.readFile(`${dConsole.currentExamCatalog}/wuxi_dis_progress_data.txt`);
const examDataArr = examDataStr.split('\n');
for (let examDataStr of examDataArr) {
const code = await writeObjectOut(JSON.parse(examDataStr), "", this.context);
}
}
private artSubject3ProjectsCodesArr: number[] = [3, 9, 4, 10, 12, 11]
private lane: LANE = {
road: '', num: 0, count: 0
}
private disConnectNum: number = 0;
//调用监管接口
sendWriteObjectOut: SendWriteObjectOut = async (data, filePath) => {
const temp = await writeObjectOut(data, filePath, this.context);
dConsole.log(JudgeTag, "wzj", JSON.stringify(temp))
//断网&网络超时次数计算
if (temp.code == 2300007 || temp.code == 2300028) {
this.disConnectNum += 1;
if (this.disConnectNum < 5) {
return await this.sendWriteObjectOut(data, filePath)
}
}
if (this.disConnectNum >= 5) {
dConsole.info('surenjun', '123')
this.judgeUI.errorMsg = '当前的考试过程信息网络传输异常,程序点击确认将重启!';
this.judgeUI.disConnectErrorOpen = true
}
this.disConnectNum = 0
return temp
}
// 项目开始接口同步
beginProject = async (ksxm: number) => {
const carInfo = AppStorage.get<CarInfoType>('carInfo');
@ -467,6 +530,32 @@ export default class Judge {
UploadRegulatoryCodeConversion('17C54', temp.code || 0)
dConsole.info(JudgeTag, '上传照片 end')
}
private artSubject3ProjectsCodesArr: number[] = [3, 9, 4, 10, 12, 11]
private lane: LANE = {
road: '', num: 0, count: 0
}
private disConnectNum: number = 0;
//调用监管接口
sendWriteObjectOut: SendWriteObjectOut = async (data, filePath) => {
const temp = await writeObjectOut(data, filePath, this.context);
dConsole.log(JudgeTag, "wzj", JSON.stringify(temp))
//断网&网络超时次数计算
if (temp.code == 2300007 || temp.code == 2300028) {
this.disConnectNum += 1;
if (this.disConnectNum < 5) {
return await this.sendWriteObjectOut(data, filePath)
}
}
if (this.disConnectNum >= 5) {
dConsole.info('surenjun', '123')
this.judgeUI.errorMsg = '当前的考试过程信息网络传输异常,程序点击确认将重启!';
this.judgeUI.disConnectErrorOpen = true
}
this.disConnectNum = 0
return temp
}
private videoData?: RecordHandleType
//当前科目二的考试项目
private deductedPopShowTimer: number = 0;
@ -585,95 +674,6 @@ export default class Judge {
}
}
}
// 检测扣分、结束项目时该项目是否开始
checkProjectIsStart = async (xmdm: number, currentType: 1 | 2, kf?: MarkRule) => {
if (xmdm == 20) {
return true
}
const judgeUI = this.judgeUI;
const judgeTask = this.judgeTask;
const projectsObj: object = this.judgeUI.projectsObj
const currentProject: ProjectInfo = Reflect.get(projectsObj, xmdm)
const isUpload = currentProject.isUpload
//如果项目没有开始
dConsole.info(JudgeTag, 'surenjun isUpload=>', isUpload)
if (!isUpload) {
dConsole.info(JudgeTag, '项目补传开始')
//项目开始补传
judgeTask.addTask(async () => {
await this.beginProject(xmdm)
}, {
isDelay: true
})
judgeTask.addTask(async () => {
await this.uploadProgressPhoto(xmdm)
}, {
isDelay: true
})
currentProject.isUpload = true;
Reflect.set(this.judgeUI.projectsObj, xmdm, currentProject)
//扣分补传
if (currentType == 2) {
judgeTask.addTask(async () => {
await this.pointsDedute(xmdm, kf!)
}, {
isDelay: true
})
}
//扣分补传判断是否合格 不合格补传项目结束
if (currentType == 1 || (currentType == 2 && this.totalScore < judgeUI.passingScore)) {
judgeTask.addTask(async () => {
await this.endProject(xmdm)
}, {
isDelay: true
})
currentProject.isEnd = true;
Reflect.set(this.judgeUI.projectsObj, xmdm, currentProject)
}
judgeTask.addTask(async () => {
this.checkExamIsEnd()
})
return false;
} else {
return true
}
}
// 处理轨迹plc信号
handleTrajectoryUdp = async (strArr: string[]) => {
let num = 2;
const judgeTimer = setInterval(async () => {
const msgStr = strArr[num];
if (msgStr == '') {
dConsole.info(JudgeTag, '模拟数据考试结束')
clearInterval(judgeTimer)
this.checkExamIsEnd(true)
return
}
const msg: PLCType = JSON.parse(strArr[num]);
num++
// 4.过程数据
this.tempData = msg
// this.judgeUI.isDwztRight = (msg?.gps?.dwzt == 4 && msg?.gps?.jdzt == 3);
this.judgeUI.sd = Math.floor(msg?.gps?.sd * 1.852) + '';
this.judgeUI.dw = Math.floor(msg?.sensor?.dw) + ''
this.plcData = msg
// this.judgeUI.isDwztRight = msg.gps.dwzt == 4;
AppStorage.setOrCreate('msgStr', '')
if (msg.method === 'examJudgeArtificialItem') {
this.setJudgeItem(msg.itemno, msg.type)
}
if (msg.method === 'examJudgeArtificialMark') {
this.setJudgeItem(msg.itemno, msg.serial)
}
await examJudgeRealExam(msg)
// const bytes = await this.getMessageHeartbeat();
// bytes && globalThis.judgeUdp.send(bytes)
}, 200)
// TODO 定时器缺失
// globalThis.judgeTimer = judgeTimer;
}
constructor(judgeUI: JudgeUI) {
this.serialIndex = 1;
@ -870,7 +870,6 @@ export default class Judge {
const goJudgeVoice = this.goJudgeVoice;
const setMndg = this.setMndg;
const avPlayer = this.avPlayer;
const fileLog = this.fileLog;
const judgeUI = this.judgeUI;
const carzt = examData.carzt
@ -989,7 +988,10 @@ export default class Judge {
//考试结束
case 5:
this.ksjs = ksjs;
await fileLog?.setExamJudgeData(JSON.stringify({
// await fileLog?.setExamJudgeData(JSON.stringify({
// method: 'examJudgeEndExam'
// }))
dConsole.writeProcessData(ProcessDataEnumType.JudgeExamData, JSON.stringify({
method: 'examJudgeEndExam'
}))
break;
@ -1304,7 +1306,7 @@ export default class Judge {
// 评判语音提示
goJudgeVoice = async (sound: JudgeSound) => {
const avPlayer = this.avPlayer
const fileLog = this.fileLog
// const fileLog = this.fileLog
dConsole.info('surenjun code=>', JSON.stringify(sound.code))
//判断是不是模拟灯光语音
if (sound.type == 1) {
@ -1312,7 +1314,13 @@ export default class Judge {
examJudgeSoundEnd({
xmdm: sound.xmdm, code: sound.code[0], type: sound.type
})
fileLog?.setExamJudgeData(JSON.stringify({
// fileLog?.setExamJudgeData(JSON.stringify({
// method: 'examJudgeSoundEnd',
// itemno: sound.xmdm,
// code: sound.code[0],
// type: sound.type,
// }))
dConsole.writeProcessData(ProcessDataEnumType.JudgeExamData, JSON.stringify({
method: 'examJudgeSoundEnd',
itemno: sound.xmdm,
code: sound.code[0],

View File

@ -1,127 +0,0 @@
import { GetCurrentTime } from '../../../utils/Common';
import FileUtils from '../../../utils/FileUtils';
import common from '@ohos.app.ability.common';
interface StuInfo {
name: string
lsh: string
idCard: string
}
export default class FileLog {
public folderPath?: string
public progressDataFd: number | undefined = undefined
public examJudgeWuxiDataFd: number | undefined = undefined
public examJudgeWuxiProgressDataFd: number | undefined = undefined
public plcDataFd: number | undefined = undefined
public examJudgeDataFd: number | undefined = undefined
public examJudgeCallbackDataFd: number | undefined = undefined
public examJudgeLogDataFd: number | undefined = undefined
public fourAndOneLogDataFd: number | undefined = undefined
public fourAndOneLogDataBytesFd: number | undefined = undefined
public examLineDataFd: number | undefined = undefined
private fileUtil: FileUtils
// 过程文件数据
public setExamProgressData = async (str: Object) => {
this.progressDataFd =
await this.fileUtil.editFile(`${this.folderPath}/exam_progress_data.txt`, JSON.stringify(str));
}
// 无锡所接口数据
public setExamJudgeWuxiData = async (str: string) => {
// this.examJudgeWuxiDataFd =
// await this.fileUtil.editFile(`${this.folderPath}/wuxi_exam_data.txt`, str);
}
// 无锡所过程数据
public setExamJudgeWuxiProgressData = async (str: string) => {
// this.examJudgeWuxiProgressDataFd =
// await this.fileUtil.editFile(`${this.folderPath}/wuxi_progress_data.txt`, str);
}
// plc文件数据
public setPlcProgressData = async (str: Object) => {
// this.plcDataFd =
// await this.fileUtil.editFile(`${this.folderPath}/plc_data.txt`, JSON.stringify(str));
}
// 过程评判json数据
public setExamJudgeData = async (str: string) => {
// this.examJudgeDataFd =
// await this.fileUtil.editFile(`${this.folderPath}/judge_exam_data.txt`, str);
}
// 过程评判回调数据
public setExamJudgeCallbackData = async (str: string) => {
// this.examJudgeCallbackDataFd =
// await this.fileUtil.editFile(`${this.folderPath}/judge_progress_callback_data.txt`, str);
}
// 过程评判日志调数据
public setExamJudgeLogData = async (str: string) => {
// this.examJudgeLogDataFd =
// await this.fileUtil.editFile(`${this.folderPath}/judge_log_data.txt`, str);
}
// 设置四合一画面数据
public setFourAndOneLogData = async (str: string) => {
this.fourAndOneLogDataFd =
await this.fileUtil.editFile(`${this.folderPath}/four_one_log_data.txt`, str);
}
public setFourAndOneLogDataBytes = async (str: string) => {
this.fourAndOneLogDataBytesFd =
await this.fileUtil.editFile(`${this.folderPath}/four_one_log_byte_data.txt`, str);
}
// 无锡所轨迹数据
public setExamLineData = async (plcStr: string) => {
const plcData = plcStr.split(',');
const time = GetCurrentTime();
const lineData = [
/*帧头*/time,
/*卫星时间*/time,
/*经度*/ plcData[95],
/*纬度*/ plcData[95],
/*高度*/ plcData[86],
/*方位角*/ 0,
/*俯仰角*/ plcData[91],
/*速度角*/'',
/*速度*/ plcData[97],
/*横滚*/'',
/*卫星定位状态*/'',
/*卫星定向状态*/'',
/*前天线可用星数*/'',
/*后天线可用星数*/'',
/*东向位置坐标*/'',
/*北向位置坐标*/'',
/*天向位置坐标*/'',
/*东向速度*/'',
/*北向速度*/'',
/*评判信号1*/[plcData[14], plcData[19], plcData[5], '', plcData[2], plcData[3], plcData[7], plcData[8],
plcData[13], plcData[12], plcData[17], '', plcData[4], plcData[11], plcData[20], plcData[9], 0].join(','),
/*评判信号2*/['', plcData[28], '', '', plcData[10], '', '', '', '', '', '', '', '', '', '', '', '', ''].join(','),
/*发动机转速*/ plcData[25],
/*结束符*/ time,
];
this.examLineDataFd =
await this.fileUtil.editFile(`${this.folderPath}/exam_wuxi_data.txt`, JSON.stringify(lineData));
};
// private stuInfo: StuInfo
// 设置文件夹
public initFileLogo = async (stuInfo: StuInfo) => {
// this.stuInfo = stuInfo;
// const time = GetCurrentTime()
// const date = time.split(' ')[0].split('-').join('_')
// const hourTime = time.split(' ')[1].split(':').join('_')
// const folderPath =
// await this.fileUtil.initFolder(`/logs/${date}/${date}_${hourTime}_${stuInfo.lsh}_${stuInfo.idCard}_${stuInfo.name}`);
// this.folderPath = folderPath;
return "folderPath"
}
constructor(context: common.UIAbilityContext) {
const fileUtil = new FileUtils(context)
this.fileUtil = fileUtil
}
//关闭所有文件写入
public closeAllFiles = async () => {
['exam_progress_data', 'wuxi_exam_data', 'wuxi_progress_data', 'plc_data', 'judge_exam_data',
'judge_progress_callback_data', 'judge_log_data', 'four_one_log_data', 'four_one_log_byte_data'].forEach(path => {
this.fileUtil.closeFile(`${this.folderPath}/${path}.txt`);
})
}
}

View File

@ -1,13 +1,16 @@
// 日志向外暴露的方法
import dayTs from './Date';
import worker from '@ohos.worker';
import { GlobalConfig } from '../config';
import { LogWorkerMessage, ProcessDataEnumType, WorkerMessageType } from '../model/index';
import dayTs from './Date';
const MAX_MESSAGE_LENGTH = 300;
const LOG_CHUNK_PREFIX = '[切割消息序号';
class logWorker {
private static instance: logWorker | null = null;
// 当前考试的数据目录
public currentExamCatalog: string = ""
private workerInstance: worker.ThreadWorker | null = null;
// 是否开启日志 1开启
private isLogEnabled: string = "0";
@ -58,6 +61,8 @@ class logWorker {
type: WorkerMessageType.ExamProcessInit,
studentDirName: dirName
}
let date = dayTs().format("YYYY_MM_DD")
this.currentExamCatalog = `${GlobalConfig.commonFileWriteAddress}/logs/${date}/${dirName}`
if (this.isLogEnabled === "1") {
this.workerInstance?.postMessage(JSON.stringify(data))
}
@ -74,8 +79,9 @@ class logWorker {
this.workerInstance?.postMessage(JSON.stringify(params))
}
}
// 关闭过程数据写入
closeProcessData(){
closeProcessData() {
let params: LogWorkerMessage = {
type: WorkerMessageType.CloseProcessData,
}