import FileUtil from './File' import {getCurrentTime} from './tools' import {uploadHarmonyLiCheng} from '../../api/judge' const LOGTAG = 'GetDistance' export default class GetDistance { //后续文件路径待替换 private fileUtil: FileUtil public folderPath: string public timeStr: string public totalDistance: number public totalTime:number public date: string constructor(context) { const fileUtil = new FileUtil(context) this.fileUtil = fileUtil; // this.uploadData() } // 设置文件夹 public initFolder= async () => { const {fileUtil} = this const time = await getCurrentTime() const folderPath = await fileUtil.initFolder(`/车辆行驶距离统计`); console.info('surenjun folderPath=>' ,folderPath); const date = time.split(' ')[0].split('-').join('_') const timeStr = time.split(' ')[1] this.timeStr = timeStr this.folderPath = folderPath; this.totalDistance = 0; this.totalTime = 0; this.date = date; await fileUtil.editFile( `${folderPath}/${date}.txt`,`程序启动时间:${timeStr} 累计行驶距离:${this.totalDistance}m 累计运行时常:${this.totalTime}min` ); return folderPath } // 过程文件数据 public setTimeData = async (str:number) => { const {fileUtil,folderPath,timeStr,date,totalDistance} = this; const content = await fileUtil.readFile(`${folderPath}/${date}.txt`) || ''; const contentArr = content.split('\n').filter(item => item) console.info('surenjun contentArr',JSON.stringify(contentArr)) this.totalDistance += (str * 1 > 200 ? 200 : str*1) this.totalTime += 1; contentArr[contentArr.length - 1] = `程序启动时间:${timeStr} 累计行驶距离:${(this.totalDistance).toFixed(2)}m 累计运行时常:${Math.ceil(this.totalTime/60)}min`+ '\n' console.info('surenjun',contentArr.join('\n')) await fileUtil.addFile( `${folderPath}/${date}.txt`,contentArr.join('\n') ); } //上传行驶里程数据 uploadData = async () => { setInterval(()=>{ const { carId } = globalThis.carInfo; const {date,timeStr,totalDistance}= this; //"carid":"1001","startTime":"2024-08-24 08:09:01","time":"111233", "mileage":"1222" uploadHarmonyLiCheng({ carid:carId, startTime:`${date.split('_').join('-')} ${timeStr}`, time:timeStr, mileage:totalDistance }) },5000) } }