Compare commits
2 Commits
4f93ec0c9a
...
4e3c3bf465
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4e3c3bf465 | ||
|
|
6930e9afc3 |
@ -5,9 +5,9 @@
|
|||||||
"name": "default",
|
"name": "default",
|
||||||
"material": {
|
"material": {
|
||||||
"certpath": "/Users/wangzhongjie/.ohos/config/openharmony/default_subject-two_Kl4t-ZSvZeuUm9s8O-e6FIH2VFR_OaNyhDP8kPjIWgU=.cer",
|
"certpath": "/Users/wangzhongjie/.ohos/config/openharmony/default_subject-two_Kl4t-ZSvZeuUm9s8O-e6FIH2VFR_OaNyhDP8kPjIWgU=.cer",
|
||||||
"storePassword": "0000001AC0C49320C84ECD6C7BA0119428C66297EAF08E5011B23EBA83794F0FA803077D0F4848203ADD",
|
"storePassword": "0000001A1173A56391B52980E84237B06A106777310E419AF46EBEB63A7D126BCA0F5657D119081FE3C9",
|
||||||
"keyAlias": "debugKey",
|
"keyAlias": "debugKey",
|
||||||
"keyPassword": "0000001A7A1DB8B37DA86FBA8DBDDE9B6E4DC5801A351175FB4980E662677BB08D6E02D623FAD2EB993B",
|
"keyPassword": "0000001A5FF060362EBE093828B7604C511B827EB8C93BAD85C9745AA07A084FBAEB8687CC941F8CC0B7",
|
||||||
"profile": "/Users/wangzhongjie/.ohos/config/openharmony/default_subject-two_Kl4t-ZSvZeuUm9s8O-e6FIH2VFR_OaNyhDP8kPjIWgU=.p7b",
|
"profile": "/Users/wangzhongjie/.ohos/config/openharmony/default_subject-two_Kl4t-ZSvZeuUm9s8O-e6FIH2VFR_OaNyhDP8kPjIWgU=.p7b",
|
||||||
"signAlg": "SHA256withECDSA",
|
"signAlg": "SHA256withECDSA",
|
||||||
"storeFile": "/Users/wangzhongjie/.ohos/config/openharmony/default_subject-two_Kl4t-ZSvZeuUm9s8O-e6FIH2VFR_OaNyhDP8kPjIWgU=.p12"
|
"storeFile": "/Users/wangzhongjie/.ohos/config/openharmony/default_subject-two_Kl4t-ZSvZeuUm9s8O-e6FIH2VFR_OaNyhDP8kPjIWgU=.p12"
|
||||||
|
|||||||
@ -284,50 +284,57 @@ export async function takePhotoFn(context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let fd
|
let fd
|
||||||
const devPath="/dev/ttyS1"
|
const devPath = "/dev/ttyS1"
|
||||||
|
|
||||||
async function openChuankouFn() {
|
async function openChuankouFn() {
|
||||||
fd =await testNapi.SerialOpen(devPath);
|
fd = await testNapi.SerialOpen(devPath);
|
||||||
globalThis.fd=fd
|
globalThis.fd = fd
|
||||||
console.log('chuankoufd',globalThis.fd)
|
console.log('chuankoufd', globalThis.fd)
|
||||||
|
|
||||||
// let parity = 0x4e; // 'N'
|
// let parity = 0x4e; // 'N'
|
||||||
let ret =await testNapi.SerialSet(fd, 115200,0, 8, 1, 0)
|
let ret = await testNapi.SerialSet(fd, 115200, 0, 8, 1, 0)
|
||||||
console.log('daihairet',ret)
|
console.log('daihairet', ret)
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getChuankouFnMsg() {
|
async function getChuankouFnMsg() {
|
||||||
let timeout = 5000; // 2秒超时
|
let timeout = 5000; // 2秒超时
|
||||||
let databuff = [0x61, 0xAA, 0x0A, 0X15, 0X00]; // send ABCDE
|
let databuff = [0x61, 0xAA, 0x0A, 0X15, 0X00]; // send ABCDE
|
||||||
let uint8Arr = new Uint8Array(databuff);
|
let uint8Arr = new Uint8Array(databuff);
|
||||||
console.log('daihai',globalThis.fd)
|
console.log('daihai', globalThis.fd)
|
||||||
let ret = await testNapi.SerialSend(globalThis.fd, uint8Arr);
|
let ret = await testNapi.SerialSend(globalThis.fd, uint8Arr);
|
||||||
console.log('daihai SerialSend ret: ' + ret)
|
console.log('daihai SerialSend ret: ' + ret)
|
||||||
|
|
||||||
|
|
||||||
testNapi.SerialRecv(globalThis.fd, timeout,12).then(revTestInfo=>{
|
testNapi.SerialRecv(globalThis.fd, timeout, 12).then(revTestInfo => {
|
||||||
console.log('daihai',revTestInfo?.recevedBuf?.toString())
|
console.log('daihai', revTestInfo?.recevedBuf?.toString())
|
||||||
const message = revTestInfo?.recevedBuf?.toString()
|
const message = revTestInfo?.recevedBuf?.toString()
|
||||||
|
console.log("chuankou xinxi",message)
|
||||||
if (message == '') {
|
if (message == '') {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const msg = message?.split(',')
|
const msg = message?.split(',')
|
||||||
if(!msg?.length){
|
if (!msg?.length) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (msg[0] != '98' || msg[1] != '85' || msg.length < 9) {
|
if (msg[0] != '98' || msg[1] != '85' || msg.length < 9) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
globalThis.chuankoMsg=msg[9]
|
console.log("chuankou 档位", msg[9])
|
||||||
}).catch((err)=>{
|
if(msg[9]==0||msg[9]==1||msg[9]==2||msg[9]==3||msg[9]==4||msg[9]==5){
|
||||||
console.log('daihaierror',JSON.stringify(err))
|
globalThis.chuankoMsg = msg[9]
|
||||||
|
}
|
||||||
|
}).catch((err) => {
|
||||||
|
console.log('daihaierror', JSON.stringify(err))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
export async function getChuankouFn(){
|
|
||||||
if(globalThis.fd){
|
export async function getChuankouFn() {
|
||||||
|
if (!globalThis.fd) {
|
||||||
|
console.log("chuankou 没有fd")
|
||||||
|
openChuankouFn()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
openChuankouFn()
|
console.log("chuankou 定时器")
|
||||||
setInterval(()=>{
|
|
||||||
getChuankouFnMsg()
|
getChuankouFnMsg()
|
||||||
},1000)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,13 +6,13 @@ import fs from '@ohos.file.fs'
|
|||||||
import photoAccessHelper from '@ohos.file.photoAccessHelper'
|
import photoAccessHelper from '@ohos.file.photoAccessHelper'
|
||||||
import dataSharePredicates from '@ohos.data.dataSharePredicates'
|
import dataSharePredicates from '@ohos.data.dataSharePredicates'
|
||||||
import { dateFormat, getCurrentTime } from '../utils/tools'
|
import { dateFormat, getCurrentTime } from '../utils/tools'
|
||||||
import rtsp_server from '@ohos.rtsprecord';
|
import record from '@ohos.rtsprecord';
|
||||||
// import record from '@ohos.rtsprecord';
|
// import record from '@ohos.rtsprecord';
|
||||||
import { FileHelper } from './FileHelper';
|
import { FileHelper } from './FileHelper';
|
||||||
import FileUtil from '../utils/File';
|
import FileUtil from '../utils/File';
|
||||||
import { GlobalConfig } from '../../config';
|
import { GlobalConfig } from '../../config';
|
||||||
|
|
||||||
// const rtsp_server = record.createServer();
|
const rtsp_server = record.createServer();
|
||||||
//开始录屏
|
//开始录屏
|
||||||
const FILE_ASSET_FETCH_COLUMNS = [photoAccessHelper.PhotoKeys.URI,
|
const FILE_ASSET_FETCH_COLUMNS = [photoAccessHelper.PhotoKeys.URI,
|
||||||
photoAccessHelper.PhotoKeys.PHOTO_TYPE,
|
photoAccessHelper.PhotoKeys.PHOTO_TYPE,
|
||||||
@ -30,6 +30,7 @@ const FILE_ASSET_FETCH_COLUMNS = [photoAccessHelper.PhotoKeys.URI,
|
|||||||
photoAccessHelper.PhotoKeys.POSITION,
|
photoAccessHelper.PhotoKeys.POSITION,
|
||||||
photoAccessHelper.PhotoKeys.DATE_TRASHED,
|
photoAccessHelper.PhotoKeys.DATE_TRASHED,
|
||||||
photoAccessHelper.PhotoKeys.HIDDEN];
|
photoAccessHelper.PhotoKeys.HIDDEN];
|
||||||
|
|
||||||
// const rtsp_server = record.createServer();
|
// const rtsp_server = record.createServer();
|
||||||
|
|
||||||
export async function saveStartRecordVideo(path) {
|
export async function saveStartRecordVideo(path) {
|
||||||
@ -57,6 +58,7 @@ export async function saveStartRecordVideo(path) {
|
|||||||
reslove(record_handle)
|
reslove(record_handle)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getfilehandleCode(td, param, dir, path, index) {
|
async function getfilehandleCode(td, param, dir, path, index) {
|
||||||
return new Promise(async (reslove, reject) => {
|
return new Promise(async (reslove, reject) => {
|
||||||
console.log('pathpath1', path)
|
console.log('pathpath1', path)
|
||||||
@ -67,8 +69,9 @@ async function getfilehandleCode(td, param, dir, path, index) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
export async function startRecordVideo(param?, td?, context?, dir?,path?,index?) {
|
|
||||||
return new Promise(async(reslove, reject) => {
|
export async function startRecordVideo(param?, td?, context?, dir?, path?, index?) {
|
||||||
|
return new Promise(async (reslove, reject) => {
|
||||||
|
|
||||||
var video_uri = `rtsp://${param.userName}:${param.pwd}@${param.ip}:${param.port}/h264/ch${td}/main/av_stream`;
|
var video_uri = `rtsp://${param.userName}:${param.pwd}@${param.ip}:${param.port}/h264/ch${td}/main/av_stream`;
|
||||||
if (rtsp_server != null) {
|
if (rtsp_server != null) {
|
||||||
@ -113,6 +116,7 @@ export async function endRecordVideo(record_handleObj) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*拍照
|
*拍照
|
||||||
* @param param
|
* @param param
|
||||||
@ -120,10 +124,11 @@ export async function endRecordVideo(record_handleObj) {
|
|||||||
* @param type=0不获取base64
|
* @param type=0不获取base64
|
||||||
*/
|
*/
|
||||||
interface takePhotoParam {
|
interface takePhotoParam {
|
||||||
name?:string,
|
name?: string,
|
||||||
base64?:string,
|
base64?: string,
|
||||||
fileSize?:number,
|
fileSize?: number,
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param param
|
* @param param
|
||||||
@ -134,7 +139,8 @@ interface takePhotoParam {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
const fileHelper = new FileHelper();
|
const fileHelper = new FileHelper();
|
||||||
export async function takePhoto(param, context,dir,flag=1,callback?) {
|
|
||||||
|
export async function takePhoto(param, context, dir, flag = 1, callback?) {
|
||||||
|
|
||||||
var video_uri = `rtsp://${param.userName}:${param.pwd}@${param.ip}:${param.port}/h264/ch${param.pztd}/main/av_stream`;
|
var video_uri = `rtsp://${param.userName}:${param.pwd}@${param.ip}:${param.port}/h264/ch${param.pztd}/main/av_stream`;
|
||||||
// var video_uri = `rtsp://admin:openharmony1@192.168.1.66:554/Streaming/Channels/3`;
|
// var video_uri = `rtsp://admin:openharmony1@192.168.1.66:554/Streaming/Channels/3`;
|
||||||
@ -146,11 +152,11 @@ export async function takePhoto(param, context,dir,flag=1,callback?) {
|
|||||||
console.log(`baoyihu Rtsprecord baohaowen getVideoSnapshot fileName:` + fileName);
|
console.log(`baoyihu Rtsprecord baohaowen getVideoSnapshot fileName:` + fileName);
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
// var snapResult = rtsp_server.getVideoSnapshot(context, video_uri, '', dir);
|
// var snapResult = rtsp_server.getVideoSnapshot(context, video_uri, '', dir);
|
||||||
if(flag==0){
|
if (flag == 0) {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
rtsp_server.detectVideoSnapshotSize(video_uri,fileName).then((snapResult)=>{
|
rtsp_server.detectVideoSnapshotSize(video_uri, fileName).then((snapResult) => {
|
||||||
console.log("baohaowen_detectLoop round end size1:"+snapResult.fileSize);
|
console.log("baohaowen_detectLoop round end size1:" + snapResult.fileSize);
|
||||||
callback({fileSize:snapResult.fileSize })
|
callback({ fileSize: snapResult.fileSize })
|
||||||
});
|
});
|
||||||
// rtsp_server.getVideoSnapshot(context, video_uri, fileName,dir,false,(err,snapResult)=>{
|
// rtsp_server.getVideoSnapshot(context, video_uri, fileName,dir,false,(err,snapResult)=>{
|
||||||
// console.log(`baoyihu getVideoSnapshot return `);
|
// console.log(`baoyihu getVideoSnapshot return `);
|
||||||
@ -161,29 +167,26 @@ export async function takePhoto(param, context,dir,flag=1,callback?) {
|
|||||||
// callback({base64: snapResult.dataString,name:snapResult.fileName,fileSize:snapResult.fileSize })
|
// callback({base64: snapResult.dataString,name:snapResult.fileName,fileSize:snapResult.fileSize })
|
||||||
// console.log('getmyLog01')
|
// console.log('getmyLog01')
|
||||||
// });
|
// });
|
||||||
}
|
} else {
|
||||||
else{
|
return new Promise<takePhotoParam>((resolve, reject) => {
|
||||||
return new Promise<takePhotoParam>((resolve,reject)=>{
|
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
rtsp_server.getVideoSnapshot(context, video_uri, fileName,dir,true,(snapResult,err)=>{
|
rtsp_server.getVideoSnapshot(context, video_uri, fileName, dir, true, (err, snapResult) => {
|
||||||
console.log('getPhtot')
|
console.log('getPhtot')
|
||||||
resolve({base64: snapResult.dataString,name:snapResult.fileName,fileSize:snapResult.fileSize })
|
resolve({ base64: snapResult.dataString, name: snapResult.fileName, fileSize: snapResult.fileSize })
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
console.log('getmyLog02')
|
console.log('getmyLog02')
|
||||||
|
|
||||||
}
|
}
|
||||||
console.log('getmyLog03')
|
console.log('getmyLog03')
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function deleteAllFileByPiC(dirName) {
|
export async function deleteAllFileByPiC(dirName) {
|
||||||
// const fileHelper = new FileHelper();
|
// const fileHelper = new FileHelper();
|
||||||
fileHelper.deleteFileOfAlbum(dirName,1);
|
fileHelper.deleteFileOfAlbum(dirName, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function deleteAllVideos(context,type: photoAccessHelper.AlbumType, subType: photoAccessHelper.AlbumSubtype): Promise<void> {
|
export async function deleteAllVideos(context, type: photoAccessHelper.AlbumType, subType: photoAccessHelper.AlbumSubtype): Promise<void> {
|
||||||
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = null;
|
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = null;
|
||||||
try {
|
try {
|
||||||
const userFileMgr = photoAccessHelper.getPhotoAccessHelper(context);
|
const userFileMgr = photoAccessHelper.getPhotoAccessHelper(context);
|
||||||
|
|||||||
@ -36,6 +36,7 @@ export default class UdpClient {
|
|||||||
this.oppositeIp = udpOppositeIp
|
this.oppositeIp = udpOppositeIp
|
||||||
this.localIpPort = udplocalIpPort
|
this.localIpPort = udplocalIpPort
|
||||||
this.oppositeIpPort = udpOppositeIpPort
|
this.oppositeIpPort = udpOppositeIpPort
|
||||||
|
console.log("chuankou 初始化",)
|
||||||
getChuankouFn()
|
getChuankouFn()
|
||||||
console.log(TAG,'newUdp')
|
console.log(TAG,'newUdp')
|
||||||
// this.stashFn=()=>{}
|
// this.stashFn=()=>{}
|
||||||
|
|||||||
@ -164,7 +164,7 @@ async function xmlToJson(result, url) {
|
|||||||
let res = deeml(xmlArr);
|
let res = deeml(xmlArr);
|
||||||
console.log("xmlToJson end",JSON.stringify(res) );
|
console.log("xmlToJson end",JSON.stringify(res) );
|
||||||
resolve(res)
|
resolve(res)
|
||||||
}, 100)
|
}, 10000)
|
||||||
} else {
|
} else {
|
||||||
let res = deeml(xmlArr);
|
let res = deeml(xmlArr);
|
||||||
console.log("xmlToJson end",JSON.stringify(res) );
|
console.log("xmlToJson end",JSON.stringify(res) );
|
||||||
|
|||||||
@ -33,6 +33,7 @@ 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';
|
import { voiceService } from '../common/service/voiceService';
|
||||||
|
import { getChuankouFn } from '../common/service/indexService';
|
||||||
|
|
||||||
@Entry
|
@Entry
|
||||||
@Component
|
@Component
|
||||||
@ -42,6 +43,11 @@ struct Index {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async aboutToAppear() {
|
async aboutToAppear() {
|
||||||
|
getChuankouFn()
|
||||||
|
setInterval(() => {
|
||||||
|
console.log("chuankou 定时器2")
|
||||||
|
getChuankouFn()
|
||||||
|
}, 1000)
|
||||||
globalThis.windowClass.setWindowSystemBarEnable([])
|
globalThis.windowClass.setWindowSystemBarEnable([])
|
||||||
const time = await getCurrentTime()
|
const time = await getCurrentTime()
|
||||||
|
|
||||||
|
|||||||
@ -6,6 +6,8 @@ import { GPSData, SignalData } from '../../mock';
|
|||||||
import { SignalDataType } from '../../model';
|
import { SignalDataType } from '../../model';
|
||||||
import FileUtil from '../../common/utils/File'
|
import FileUtil from '../../common/utils/File'
|
||||||
import { GlobalConfig } from '../../config/index'
|
import { GlobalConfig } from '../../config/index'
|
||||||
|
import { getChuankouFn } from '../../common/service/indexService';
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
export default struct SignDisplayCom {
|
export default struct SignDisplayCom {
|
||||||
@State showBack: boolean = false
|
@State showBack: boolean = false
|
||||||
@ -322,10 +324,14 @@ export default struct SignDisplayCom {
|
|||||||
}
|
}
|
||||||
|
|
||||||
aboutToDisappear() {
|
aboutToDisappear() {
|
||||||
clearInterval(this.interval)
|
// clearInterval(this.interval)
|
||||||
}
|
}
|
||||||
|
|
||||||
async aboutToAppear() {
|
async aboutToAppear() {
|
||||||
|
setInterval(() => {
|
||||||
|
console.log("chuankou 定时器2")
|
||||||
|
getChuankouFn()
|
||||||
|
}, 1000)
|
||||||
// const fileUtil = new FileUtil(globalThis.context)
|
// const fileUtil = new FileUtil(globalThis.context)
|
||||||
// const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/ipConfig.txt')
|
// const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/ipConfig.txt')
|
||||||
// this.udplocalIp=JSON.parse(data)?.udplocalIp||'192.168.7.170'
|
// this.udplocalIp=JSON.parse(data)?.udplocalIp||'192.168.7.170'
|
||||||
@ -360,20 +366,20 @@ export default struct SignDisplayCom {
|
|||||||
const getSignal = this.getSignal;
|
const getSignal = this.getSignal;
|
||||||
const that = this
|
const that = this
|
||||||
const showBack = this.showBack;
|
const showBack = this.showBack;
|
||||||
if (showBack) {
|
// if (showBack) {
|
||||||
globalThis.udpClient.onMessage_1&&globalThis.udpClient.onMessage_1((msg) => {
|
// globalThis.udpClient.onMessage_1&&globalThis.udpClient.onMessage_1((msg) => {
|
||||||
console.log('getUDPonMessage_1bysignDisplay2', msg)
|
// console.log('getUDPonMessage_1bysignDisplay2', msg)
|
||||||
|
//
|
||||||
getSignal(msg)
|
// getSignal(msg)
|
||||||
})
|
// })
|
||||||
} else {
|
// } else {
|
||||||
clearInterval(globalThis.signalTimer)
|
// clearInterval(globalThis.signalTimer)
|
||||||
globalThis.signalTimer = setInterval(() => {
|
// globalThis.signalTimer = setInterval(() => {
|
||||||
//TODO 临时方案
|
// //TODO 临时方案
|
||||||
const msgStr = globalThis.msgStr
|
// const msgStr = globalThis.msgStr
|
||||||
getSignal(msgStr)
|
// getSignal(msgStr)
|
||||||
}, 200)
|
// }, 200)
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@ -1,6 +1,6 @@
|
|||||||
//考试回放开关
|
//考试回放开关
|
||||||
export const judgeConfig = {
|
export const judgeConfig = {
|
||||||
version:'2024.08.21.01',
|
version: '2024.08.21.01',
|
||||||
//本地目录开关
|
//本地目录开关
|
||||||
isTrajectoryOpen: false,
|
isTrajectoryOpen: false,
|
||||||
//是否开启拍照
|
//是否开启拍照
|
||||||
@ -8,22 +8,22 @@ export const judgeConfig = {
|
|||||||
//扣分语音是否强制开启
|
//扣分语音是否强制开启
|
||||||
kfVoiceOpen: false,
|
kfVoiceOpen: false,
|
||||||
//忽略的考试项目
|
//忽略的考试项目
|
||||||
ignoreProjects:[],
|
ignoreProjects: [],
|
||||||
// 是否忽略考试前熄火、车门检查
|
// 是否忽略考试前熄火、车门检查
|
||||||
isCheckFireOpen: false,
|
isCheckFireOpen: false,
|
||||||
//轨迹回放是否开启Udp
|
//轨迹回放是否开启Udp
|
||||||
udpOpen:true,
|
udpOpen: true,
|
||||||
// 本地模型地址
|
// 本地模型地址
|
||||||
// modelPath: 'models/model_enc',
|
// modelPath: 'models/model_enc',
|
||||||
// 济南科目三
|
// 济南科目三
|
||||||
trajectoryPath: 'logs/2025_04_23_09_50_55_2504755332926_320924199111132926_陈静/judge_exam_data.txt',
|
trajectoryPath: 'logs/2024_10_12_11_50_10_9999427676823_744299437502336256_隋统/judge_exam_data.txt',
|
||||||
//四合一画面配置
|
//四合一画面配置
|
||||||
fourInOneScreen:{
|
fourInOneScreen: {
|
||||||
//gps位数
|
//gps位数
|
||||||
gpsDigit:7
|
gpsDigit: 7
|
||||||
},
|
},
|
||||||
// 杭州科目二
|
// 杭州科目二
|
||||||
// trajectoryPath: 'logs/2024_07_19/0000000000001_342323199501470011_测试学员1_2024_07_19_06_49_12/judge_exam_data.txt',
|
// trajectoryPath: 'logs/2024_07_19/0000000000001_342323199501470011_测试学员1_2024_07_19_06_49_12/judge_exam_data.txt',
|
||||||
//TODO 济南临时特殊配置
|
//TODO 济南临时特殊配置
|
||||||
systemParamConfig:{}
|
systemParamConfig: {}
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user