Compare commits
2 Commits
3b3a38e2c9
...
c3f0abae09
| Author | SHA1 | Date | |
|---|---|---|---|
| c3f0abae09 | |||
| 0f42f45cb9 |
@ -60,6 +60,7 @@ export async function initCenterCacheByKSPT(params){
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
//从参数平台获取模型
|
||||
export async function initEsModel(params){
|
||||
return await request({
|
||||
@ -78,4 +79,14 @@ export async function initialization(params){
|
||||
method:'post',
|
||||
xml:true,
|
||||
})
|
||||
}
|
||||
|
||||
//参数下发读表接口
|
||||
export async function initCarParameter(params){
|
||||
return await request({
|
||||
url:'/der2/services/para/initCarParameter.ws',
|
||||
data:params,
|
||||
method:'post',
|
||||
xml:false,
|
||||
})
|
||||
}
|
||||
@ -37,9 +37,12 @@ import ES_CAR_VIDEO_PARAMETER from '../constants/ES_CAR_VIDEO_PARAMETER';
|
||||
import IpConfigTable from '../constants/IpConfigTable';
|
||||
import DeviceInfoTable from '../constants/DeviceInfoTable'
|
||||
import USER from '../constants/USER'
|
||||
import common from '@ohos.app.ability.common';
|
||||
|
||||
import contextConstant from '@ohos.app.ability.contextConstant';
|
||||
|
||||
import featureAbility from '@ohos.ability.featureAbility'
|
||||
// import { Logger } from '../utils/Logger';
|
||||
import Logger from '../utils/Logger';
|
||||
export default class Rdb {
|
||||
private rdbStore: any = null;
|
||||
private tableName: string;
|
||||
@ -52,7 +55,7 @@ export default class Rdb {
|
||||
this.columns = columns;
|
||||
}
|
||||
|
||||
getRdbStore(callback) {
|
||||
getRdbStore(callback?,content?) {
|
||||
if (!callback || typeof callback == 'undefined' || callback == undefined) {
|
||||
// Logger.verbose(`${CommonConstants.RDB_TAG}`, 'getRdbStore() has no callback!');
|
||||
return;
|
||||
@ -62,7 +65,14 @@ export default class Rdb {
|
||||
callback();
|
||||
return
|
||||
}
|
||||
let context = getContext(this);
|
||||
let context
|
||||
if(content){
|
||||
context=content
|
||||
}else{
|
||||
context=getContext(this)
|
||||
}
|
||||
// let context = getContext(this) as common.UIAbilityContext;
|
||||
// let context = contextConstant(this);
|
||||
const map = {
|
||||
'MA_MARKRULE': MA_MARKRULE,
|
||||
'MA_SYSTEMPARM': MA_SYSTEMPARM,
|
||||
@ -88,18 +98,21 @@ export default class Rdb {
|
||||
'DeviceInfoTable':DeviceInfoTable
|
||||
}
|
||||
|
||||
|
||||
data_rdb.getRdbStore(context,map[this.tableName].STORE_CONFIG, 1, (err, rdb) => {
|
||||
console.log('getRdbStoregetRdbStore',err)
|
||||
if (err) {
|
||||
// Logger.error(`${CommonConstants.RDB_TAG}`, 'gerRdbStore() failed, err: ' + err);
|
||||
return;
|
||||
}
|
||||
console.log('this.sqlCreateTable',this.sqlCreateTable)
|
||||
this.rdbStore = rdb;
|
||||
this.rdbStore.executeSql(this.sqlCreateTable);
|
||||
// Logger.verbose(`${CommonConstants.RDB_TAG}`, 'getRdbStore() finished.');
|
||||
callback();
|
||||
});
|
||||
}
|
||||
deleteTableData(callback,name){
|
||||
deleteTableData(callback,name,content?){
|
||||
if (!callback || typeof callback == 'undefined' || callback == undefined) {
|
||||
// Logger.verbose(`${CommonConstants.RDB_TAG}`, 'getRdbStore() has no callback!');
|
||||
return;
|
||||
@ -109,7 +122,13 @@ export default class Rdb {
|
||||
callback();
|
||||
return
|
||||
}
|
||||
let context = getContext(this);
|
||||
let context
|
||||
if(content){
|
||||
context=content
|
||||
}else{
|
||||
context=getContext(this)
|
||||
}
|
||||
// let context = getContext(this);
|
||||
const map = {
|
||||
'MA_MARKRULE': MA_MARKRULE,
|
||||
'MA_SYSTEMPARM': MA_SYSTEMPARM,
|
||||
|
||||
@ -18,25 +18,26 @@ import Rdb from '../Rdb';
|
||||
import AccountData from '../../bean/AccountData';
|
||||
//import CommonConstants from '../../constants/CommonConstants';
|
||||
export default class AccountTable {
|
||||
// private accountTable = new Rdb(CommonConstants.ACCOUNT_TABLE.tableName, CommonConstants.ACCOUNT_TABLE.sqlCreate,
|
||||
// CommonConstants.ACCOUNT_TABLE.columns);
|
||||
// private accountTable = new Rdb(CommonConstants.ACCOUNT_TABLE.tableName, CommonConstants.ACCOUNT_TABLE.sqlCreate,
|
||||
// CommonConstants.ACCOUNT_TABLE.columns);
|
||||
private commonConstants
|
||||
private accountTable
|
||||
// private CommonConstants
|
||||
constructor(callback: Function = () => {},Constants) {
|
||||
// private CommonConstants
|
||||
constructor(callback: Function = () => {},Constants,context?) {
|
||||
this.accountTable= new Rdb(Constants.ACCOUNT_TABLE.tableName, Constants.ACCOUNT_TABLE.sqlCreate,
|
||||
Constants.ACCOUNT_TABLE.columns)
|
||||
// this.CommonConstants=Constants
|
||||
Constants.ACCOUNT_TABLE.columns)
|
||||
// this.CommonConstants=Constants
|
||||
this.commonConstants=Constants
|
||||
this.accountTable.getRdbStore(callback);
|
||||
this.accountTable.getRdbStore(callback,context);
|
||||
console.log('kkkkkkkk0')
|
||||
}
|
||||
|
||||
getRdbStore(callback: Function = () => {}) {
|
||||
this.accountTable.getRdbStore(callback);
|
||||
getRdbStore(callback: Function = () => {},context?) {
|
||||
this.accountTable.getRdbStore(callback,context);
|
||||
}
|
||||
//删除全部数据
|
||||
deleteTableData(callback: Function,name) {
|
||||
this.accountTable.deleteTableData(callback,name);
|
||||
deleteTableData(callback: Function,name,context?) {
|
||||
this.accountTable.deleteTableData(callback,name,context);
|
||||
}
|
||||
insertData(account, callback: Function) {
|
||||
const valueBucket = generateBucket(this.commonConstants,account);
|
||||
|
||||
@ -16,26 +16,26 @@ import {
|
||||
} from '../../common/service/initable'
|
||||
import { GlobalConfig } from '../../config/index'
|
||||
import testNapi from '@ohos.hiserialsdk'
|
||||
|
||||
export async function getliushuiNum(){
|
||||
let num=0
|
||||
export async function getliushuiNum(context){
|
||||
console.log('getLiushuihao')
|
||||
this.fileUtil = new FileUtil(this.context)
|
||||
const data = await this.fileUtil.readFile(GlobalConfig.comoonfileWriteAddress+'/config/liushui.txt');
|
||||
const fileUtil = new FileUtil(context)
|
||||
const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress+'/config/liushui.txt');
|
||||
if(data === '' || data === undefined){
|
||||
this.num=0
|
||||
let str=this.num.toString()
|
||||
num=0
|
||||
let str=num.toString()
|
||||
for(let i=0;str.length<=5;i++){
|
||||
str='0'+str
|
||||
}
|
||||
this.lsh=str
|
||||
globalThis.lshNo=str
|
||||
// return str
|
||||
}else{
|
||||
this.num=Number(JSON.parse(data).value)+1
|
||||
let str=this.num.toString()
|
||||
num=Number(JSON.parse(data).value)+1
|
||||
let str=num.toString()
|
||||
for(let i=0;str.length<=5;i++){
|
||||
str='0'+str
|
||||
}
|
||||
this.lsh=str
|
||||
globalThis.lshNo=str
|
||||
// return str
|
||||
}
|
||||
}
|
||||
@ -75,7 +75,7 @@ export async function setliushuiNum(context) {
|
||||
}
|
||||
|
||||
//双中心表
|
||||
export async function getDoubleCeneterTable() {
|
||||
export async function getDoubleCeneterTable(param) {
|
||||
return new Promise(async (reslove, reject) => {
|
||||
// MA_SYSSET双中心下做合并表格操作
|
||||
const db = new AccountTable(() => {
|
||||
@ -84,15 +84,15 @@ export async function getDoubleCeneterTable() {
|
||||
db.query('0', async (array) => {
|
||||
if (array.length) {
|
||||
delSyncTable('MA_SYSSET').then(async () => {
|
||||
await getDataBaseTable({ tableName: 'MA_SYSSET' })
|
||||
await getMySystemSetTable({ tableName: 'MA_SYSSET' })
|
||||
await getDataBaseTable({ tableName: 'MA_SYSSET' },param)
|
||||
await getMySystemSetTable({ tableName: 'MA_SYSSET' },param)
|
||||
})
|
||||
} else {
|
||||
await getDataBaseTable({ tableName: 'MA_SYSSET' })
|
||||
await getMySystemSetTable({ tableName: 'MA_SYSSET' })
|
||||
await getDataBaseTable({ tableName: 'MA_SYSSET' },param)
|
||||
await getMySystemSetTable({ tableName: 'MA_SYSSET' },param)
|
||||
}
|
||||
})
|
||||
})
|
||||
},param.context)
|
||||
const typeObj = {
|
||||
'MA_MARKRULE': false,
|
||||
'MA_SYSTEMPARM': false,
|
||||
@ -113,7 +113,7 @@ export async function getDoubleCeneterTable() {
|
||||
'MA_T_CARPARMSET': false
|
||||
}
|
||||
for (let key in typeObj) {
|
||||
typeObj[key] = await upDateTable({ tableName: key })
|
||||
typeObj[key] = await upDateTable({ tableName: key },param)
|
||||
if (!typeObj[key]) {
|
||||
promptAction.showToast({
|
||||
message: `未能查询到${key}表数据, 请先检查网络是否连接正常`,
|
||||
@ -131,13 +131,10 @@ export async function getDoubleCeneterTable() {
|
||||
|
||||
}
|
||||
//单中心存表
|
||||
export async function getSingleCenterTable() {
|
||||
export async function getSingleCenterTable(param) {
|
||||
return new Promise((reslove, reject) => {
|
||||
upDataZhongxinginitialization().then((result) => {
|
||||
upDataZhongxinginitialization(param).then((result) => {
|
||||
if (result) {
|
||||
router.pushUrl({
|
||||
url: 'pages/ExaminerLogin',
|
||||
}, router.RouterMode.Single)
|
||||
reslove(true)
|
||||
} else {
|
||||
promptAction.showDialog({
|
||||
@ -172,6 +169,7 @@ export async function getSingleCenterTable() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
let interval
|
||||
|
||||
export async function takePhotoFn(context) {
|
||||
@ -309,11 +307,8 @@ function getChuankouFnMsg() {
|
||||
|
||||
console.log('zzc 5 sleep 1s')
|
||||
setTimeout(()=>{
|
||||
console.log(`x=${globalThis.num}`)
|
||||
|
||||
console.log('zzc 7 send next msg')
|
||||
getChuankouFnMsg()
|
||||
},1000)
|
||||
},500)
|
||||
|
||||
// hilog.info(0x0000, 'testTag', 'Test NAPI SerialRecvAsync callback in');
|
||||
// hilog.info(0x0000, 'testTag', 'Test NAPI SerialRecvAsync recevedLen = %{public}d', revTestInfo.recevedLen);
|
||||
|
||||
@ -42,7 +42,7 @@ const map = {
|
||||
'MA_MAP_POINT_ITEM': MA_MAP_POINT_ITEM,
|
||||
'MA_MAP_ROAD': MA_MAP_ROAD,
|
||||
'MA_MAP_ROAD_LANE': MA_MAP_ROAD_LANE,
|
||||
'MA_MAP_SUBITEM': MA_MAP_SUBITEM,
|
||||
'MAP_SUBITEM': MA_MAP_SUBITEM,
|
||||
'MA_SYSSET': MA_SYSSET,
|
||||
'ES_CARINFO': ES_CARINFO,
|
||||
'ES_EXAMPOINTDETAIL': ES_EXAMPOINTDETAIL,
|
||||
@ -77,24 +77,25 @@ const centerToMap={
|
||||
// 'ES_CAR_VIDEO_PARAMETER':ES_CAR_VIDE0pO_PARAMETER
|
||||
}
|
||||
|
||||
function sqlInsertCommonFn(tableName,resultArr){
|
||||
function sqlInsertCommonFn(tableName,resultArr,context?){
|
||||
return new Promise((resolve,reject)=>{
|
||||
const accountTable = new AccountTable(() => {
|
||||
}, map[tableName]);
|
||||
}, map[tableName],context);
|
||||
accountTable.getRdbStore(() => {
|
||||
accountTable.query('0', async (result) => {
|
||||
// console.log('表长度',result.length,tableName)
|
||||
if (result.length == 0) {
|
||||
let INSERT_SQL = "INSERT INTO "+tableName
|
||||
+ " ("+ map[tableName].ACCOUNT_TABLE.columns.toString()+") VALUES "
|
||||
+ " ("+ map[tableName].ACCOUNT_TABLE.columns.toString()+") VALUES "
|
||||
|
||||
resultArr.map((data,i) => {
|
||||
data.id=`${i}`
|
||||
let str='('
|
||||
map[tableName].ACCOUNT_TABLE.columns.map((res,index)=>{
|
||||
if(map[tableName].ACCOUNT_TABLE.columns.length-1==index){
|
||||
str+=`"${data[res]||'1'}"`
|
||||
str+=`"${data[res]||'0'}"`
|
||||
}else{
|
||||
str+=`"${data[res]||'1'}"`+','
|
||||
str+=`"${data[res]||'0'}"`+','
|
||||
}
|
||||
})
|
||||
if(i==resultArr.length-1){
|
||||
@ -110,19 +111,19 @@ function sqlInsertCommonFn(tableName,resultArr){
|
||||
})
|
||||
}
|
||||
else {
|
||||
await delSyncTable(tableName)
|
||||
const result= await sqlInsertCommonFn(tableName,resultArr)
|
||||
await delSyncTable(tableName,context)
|
||||
const result= await sqlInsertCommonFn(tableName,resultArr,context)
|
||||
resolve(result)
|
||||
}
|
||||
}, true);
|
||||
});
|
||||
},context);
|
||||
})
|
||||
}
|
||||
|
||||
export async function getDataBaseTable(params) {
|
||||
//参数平台
|
||||
export async function getDataBaseTable(params,reqParam) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const accountTable = new AccountTable(() => {
|
||||
}, map[params.tableName]);
|
||||
}, map[params.tableName],context);
|
||||
accountTable.getRdbStore(() => {
|
||||
accountTable.query('0', async (result) => {
|
||||
if (result.length != 0) {
|
||||
@ -130,7 +131,7 @@ export async function getDataBaseTable(params) {
|
||||
return
|
||||
} else {
|
||||
const date = new Date()
|
||||
if(!globalThis.timeInfo?.paraKdid){
|
||||
if(!reqParam?.paraKdid){
|
||||
prompt.showToast({
|
||||
message: 'paraKdid获取失败',
|
||||
duration: 3000
|
||||
@ -140,8 +141,8 @@ export async function getDataBaseTable(params) {
|
||||
const str = { "head": { "time": dateFormat(date) },
|
||||
"body":
|
||||
{ "tableName": params.tableName, // 表名
|
||||
"paraKdid": globalThis.timeInfo?.paraKdid, //参数平台kdid
|
||||
"examinationRoomId": globalThis.carInfo?.examinationRoomId, //考试平台kdid
|
||||
"paraKdid": reqParam.paraKdid, //参数平台kdid
|
||||
"examinationRoomId": reqParam.examinationRoomId, //考试平台kdid
|
||||
"typeRsp": "0" // 赋默认值0,无需改变
|
||||
}
|
||||
}
|
||||
@ -152,10 +153,16 @@ export async function getDataBaseTable(params) {
|
||||
}
|
||||
|
||||
let INSERT_SQL = "INSERT INTO "+params.tableName
|
||||
+ " ("+ map[params.tableName].ACCOUNT_TABLE.columns.toString()+") VALUES "
|
||||
+ " ("+ map[params.tableName].ACCOUNT_TABLE.columns.toString()+") VALUES "
|
||||
if(params.tableName=='MA_SYSSET'){
|
||||
res.body[params.tableName]= res.body[params.tableName].filter(res=>{
|
||||
return res['v_no']>=300&&res['v_no']<=700
|
||||
})
|
||||
}
|
||||
|
||||
res.body[params.tableName].map((data,i) => {
|
||||
data.id=`${i}`
|
||||
// data.id=`${i}`
|
||||
data.id=i
|
||||
let str='('
|
||||
map[params.tableName].ACCOUNT_TABLE.columns.map((res,index)=>{
|
||||
if(map[params.tableName].ACCOUNT_TABLE.columns.length-1==index){
|
||||
@ -177,7 +184,7 @@ export async function getDataBaseTable(params) {
|
||||
})
|
||||
}
|
||||
}, true);
|
||||
});
|
||||
},reqParam.context);
|
||||
})
|
||||
}
|
||||
//依据数组和表名更新sql表
|
||||
@ -185,13 +192,11 @@ export async function upDateTableByArray(tableName,arr) {
|
||||
sqlInsertCommonFn(tableName,arr)
|
||||
}
|
||||
//更新双中心表
|
||||
export async function upDateTable(params) {
|
||||
export async function upDateTable(params,reqParam) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const date = new Date()
|
||||
let paraKdid=''
|
||||
let examinationRoomId=''
|
||||
paraKdid=globalThis.timeInfo?globalThis.timeInfo?.paraKdid:''
|
||||
examinationRoomId= globalThis.carInfo?globalThis.carInfo.examinationRoomId:''
|
||||
let paraKdid=reqParam?.paraKdid||''
|
||||
let examinationRoomId=reqParam?.examinationRoomId||''
|
||||
if(!paraKdid|| !examinationRoomId){
|
||||
resolve(false)
|
||||
return
|
||||
@ -213,7 +218,7 @@ export async function upDateTable(params) {
|
||||
return
|
||||
}
|
||||
try {
|
||||
const result=await sqlInsertCommonFn(params.tableName,res.body[params.tableName])
|
||||
const result=await sqlInsertCommonFn(params.tableName,res.body[params.tableName],reqParam.context)
|
||||
resolve(result)
|
||||
}catch (error){
|
||||
console.log(error)
|
||||
@ -223,10 +228,10 @@ export async function upDateTable(params) {
|
||||
}
|
||||
|
||||
//考试平台
|
||||
export async function getMySystemSetTable(params) {
|
||||
export async function getMySystemSetTable(params,reqParam) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const date = new Date()
|
||||
if(!globalThis.timeInfo?.paraKdid){
|
||||
if(!reqParam.paraKdid){
|
||||
prompt.showToast({
|
||||
message: 'paraKdid获取失败',
|
||||
duration: 3000
|
||||
@ -236,20 +241,25 @@ export async function getMySystemSetTable(params) {
|
||||
const str = { "head": { "time": dateFormat(date) },
|
||||
"body":
|
||||
{ "tableName": params.tableName, // 表名
|
||||
"paraKdid": globalThis.timeInfo?.kdid, //考试平台kdid
|
||||
"examinationRoomId": globalThis.timeInfo?.kdid, //考试平台kdid
|
||||
"paraKdid": reqParam?.kdid, //考试平台kdid
|
||||
"examinationRoomId": reqParam?.kdid, //考试平台kdid
|
||||
"typeRsp": "0" // 赋默认值0,无需改变
|
||||
}
|
||||
}
|
||||
initCenterCacheByKSPT(str).then((res)=>{
|
||||
if( res.body[params.tableName].length==0){
|
||||
resolve();
|
||||
return
|
||||
}
|
||||
sqlInsertCommonFn(params.tableName,res.body[params.tableName]).then((result)=>{
|
||||
resolve(result)
|
||||
})
|
||||
})
|
||||
initCenterCacheByKSPT(str).then((res)=>{
|
||||
if( res.body[params.tableName].length==0){
|
||||
resolve();
|
||||
return
|
||||
}
|
||||
if(params.tableName=='MA_SYSSET'){
|
||||
res.body[params.tableName]= res.body[params.tableName].filter(res=>{
|
||||
return res['v_no']<300 || res['v_no']>700
|
||||
})
|
||||
}
|
||||
sqlInsertCommonFn(params.tableName,res.body[params.tableName],reqParam.context).then((result)=>{
|
||||
resolve(result)
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
})
|
||||
@ -257,10 +267,10 @@ export async function getMySystemSetTable(params) {
|
||||
}
|
||||
|
||||
//依据表名同步获取数据
|
||||
export async function getSyncData(tableName) {
|
||||
export async function getSyncData(tableName,context?) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const accountTable = new AccountTable(() => {
|
||||
}, map[tableName]);
|
||||
}, map[tableName],context);
|
||||
accountTable.getRdbStore(() => {
|
||||
accountTable.query('0', async (result) => {
|
||||
resolve(result)
|
||||
@ -270,13 +280,14 @@ export async function getSyncData(tableName) {
|
||||
|
||||
}
|
||||
|
||||
export async function delSyncTable(tableName){
|
||||
export async function delSyncTable(tableName,context?){
|
||||
return new Promise((resolve,reject)=>{
|
||||
const accountTable = new AccountTable(() => {
|
||||
}, map[tableName]);
|
||||
accountTable.deleteTableData(()=>{
|
||||
}, map[tableName],context);
|
||||
accountTable.deleteTableData((ret)=>{
|
||||
console.log('删除成功')
|
||||
resolve(true)
|
||||
},tableName)
|
||||
},tableName,context)
|
||||
|
||||
})
|
||||
}
|
||||
@ -333,89 +344,98 @@ export async function getEsCarModel(context){
|
||||
await fileModel.storingFiles(result.buffer)
|
||||
}
|
||||
|
||||
export async function upDataZhongxinginitialization(){
|
||||
export async function upDataZhongxinginitialization(param){
|
||||
return new Promise((resolve, reject) => {
|
||||
if(!globalThis.carInfo?.carId){
|
||||
if(!param.carId){
|
||||
resolve(false)
|
||||
return
|
||||
}
|
||||
const str = {
|
||||
"carId": globalThis.carInfo?.carId, // 表名
|
||||
"examinationRoomId": globalThis.carInfo?.examinationRoomId, //考试平台kdid
|
||||
"carId": param.carId, // 表名
|
||||
"examinationRoomId": param.examinationRoomId, //考试平台kdid
|
||||
videoVersion:'1.0',
|
||||
judgeVersion:globalThis.judgeVersion,
|
||||
shellVersion: globalThis.version
|
||||
judgeVersion:param.judgeVersion,
|
||||
shellVersion: param.shellVersion
|
||||
}
|
||||
console.log('respose')
|
||||
initialization(str).then(async(res)=>{
|
||||
console.log('daihai2')
|
||||
|
||||
initialization(str).then((res)=>{
|
||||
console.log('daihai3',JSON.stringify(res))
|
||||
if(!res){
|
||||
resolve(false)
|
||||
return
|
||||
}
|
||||
let flag
|
||||
console.log('resposestart')
|
||||
|
||||
for(let key in res.initializationRsp.body){
|
||||
if(!centerToMap[key]){
|
||||
continue
|
||||
}
|
||||
try{
|
||||
flag= await setSyncCenterSqlData(key,res)
|
||||
}catch (error){
|
||||
console.log(error)
|
||||
}
|
||||
if(!flag){
|
||||
setSyncCenterSqlData(key,res,param).then((flag) => {
|
||||
if(!flag){
|
||||
resolve(false)
|
||||
return
|
||||
}{
|
||||
resolve(true)
|
||||
}
|
||||
}).catch ((error) => {
|
||||
resolve(false)
|
||||
return
|
||||
}
|
||||
console.log(error)
|
||||
})
|
||||
}
|
||||
console.log('daihai4')
|
||||
|
||||
resolve(true)
|
||||
console.log('resposestart')
|
||||
|
||||
}).catch((Error)=>{
|
||||
resolve(false)
|
||||
})
|
||||
|
||||
})
|
||||
}
|
||||
function setSyncCenterSqlData(key,res){
|
||||
function setSyncCenterSqlData(key,res,param){
|
||||
return new Promise((resolve,reject)=>{
|
||||
const mapName={
|
||||
'ItemInfo':'MA_ITEMINFO',
|
||||
'MarkRule':'MA_MARKRULE',
|
||||
'SystemParm':'MA_SYSTEMPARM',
|
||||
'mapCollectList':'MA_MAP_COLLECT',
|
||||
'mapCollectshapeList':'MA_MAP_COLLECT_SHAPE',
|
||||
'MA_MAP_COLLECT':'MA_MAP_COLLECT',
|
||||
'MA_MAP_COLLECT_SHAPE':'MA_MAP_COLLECT_SHAPE',
|
||||
'Map_ItemClass':'MA_MAP_ITEMCLASS',
|
||||
'Map_Point':'MA_MAP_POINT',
|
||||
'Map_Point_Item':'MA_MAP_POINT_ITEM',
|
||||
'Map_Road':'MA_MAP_ROAD',
|
||||
'Map_Road_Lane':'MA_MAP_ROAD_LANE',
|
||||
'Map_SubItem':'MA_MAP_SUBITEM',
|
||||
'Map_SubItem':'MAP_SUBITEM',
|
||||
'Sysset':'MA_SYSSET',
|
||||
'CarInfo':'ES_CARINFO',
|
||||
// 'ES_EXAMPOINTDETAIL':ES_EXAMPOINTDETAIL,
|
||||
'MarkRuleSet':'MA_MARKRULE',
|
||||
'MarkRuleSet':'MA_MARKRULESET',
|
||||
'Cdsbinfo':'MA_CDSBINFO',
|
||||
'T_CarParmSet':'MA_T_CARPARMSET',
|
||||
// 'ES_CAR_VIDEO_PARAMETER':ES_CAR_VIDE0pO_PARAMETER
|
||||
}
|
||||
const accountTable = new AccountTable(() => {
|
||||
}, centerToMap[key]);
|
||||
let arrList
|
||||
// const accountTable = new AccountTable(() => {
|
||||
// }, centerToMap[key],param.context);
|
||||
console.log('kkkkkkkkk',key)
|
||||
let arrList
|
||||
if(res.initializationRsp.body[key].record instanceof Array){
|
||||
arrList =res.initializationRsp.body[key].record
|
||||
}else{
|
||||
arrList=[res.initializationRsp.body[key].record]
|
||||
}
|
||||
res
|
||||
sqlInsertCommonFn(mapName[key],arrList).then((result)=>{
|
||||
console.log(key,'表建立成功')
|
||||
if(result){
|
||||
resolve(true)
|
||||
}else{
|
||||
resolve(false)
|
||||
}
|
||||
}).catch((msg)=>{
|
||||
reject(false)
|
||||
console.log(msg)
|
||||
})
|
||||
sqlInsertCommonFn(mapName[key],arrList,param.context).then((result)=>{
|
||||
console.log(key,'表建立成功')
|
||||
if(result){
|
||||
resolve(true)
|
||||
}else{
|
||||
resolve(false)
|
||||
}
|
||||
}).catch((msg)=>{
|
||||
reject(false)
|
||||
console.log(key,'表建立失败')
|
||||
})
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
@ -6,7 +6,8 @@ import { getSyncData } from '../../common/service/initable'
|
||||
|
||||
//获取设备信息
|
||||
export async function getDeviceInfo() {
|
||||
globalThis.deviceNo = 'HM-AC76'; //科目三设备
|
||||
globalThis.deviceNo = '153216400880'; //科目三设备
|
||||
// globalThis.deviceNo = '150667400235'; //科目三设备
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
getSyncData('DeviceInfoTable').then((result: Array<any>) => {
|
||||
|
||||
@ -11,6 +11,7 @@ export async function timeSynchronize() {
|
||||
let res:any = await timeSynchronization(params)
|
||||
res = res.timeSynchronizationRsp;
|
||||
globalThis.timeInfo=res.body
|
||||
console.log('timeInfo',JSON.stringify(res.body))
|
||||
|
||||
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@ import { getCurrentTime } from '../utils/tools'
|
||||
import record from '@ohos.rtsprecord';
|
||||
import { FileHelper } from './FileHelper';
|
||||
|
||||
// const rtsp_server = record.createServer();
|
||||
const rtsp_server = record.createServer();
|
||||
//开始录屏
|
||||
const FILE_ASSET_FETCH_COLUMNS = [photoAccessHelper.PhotoKeys.URI,
|
||||
photoAccessHelper.PhotoKeys.PHOTO_TYPE,
|
||||
@ -28,7 +28,7 @@ photoAccessHelper.PhotoKeys.TITLE,
|
||||
photoAccessHelper.PhotoKeys.POSITION,
|
||||
photoAccessHelper.PhotoKeys.DATE_TRASHED,
|
||||
photoAccessHelper.PhotoKeys.HIDDEN];
|
||||
const rtsp_server = record.createServer();
|
||||
// const rtsp_server = record.createServer();
|
||||
|
||||
export async function startRecordVideo(param, td, context, dir) {
|
||||
return new Promise((reslove, reject) => {
|
||||
|
||||
@ -24,7 +24,7 @@ export default class TcpClient {
|
||||
onError(callback?){
|
||||
this.tcp.on('error', err => {
|
||||
hilog.info(0x0000, 'testTag', "on error, err:" + JSON.stringify(err));
|
||||
callback()
|
||||
callback&&callback()
|
||||
// this.closeUdp(()=>{
|
||||
// this.bindUdp()
|
||||
// })
|
||||
@ -39,9 +39,11 @@ export default class TcpClient {
|
||||
this.oppositeIpPort = oppositeIpPort
|
||||
let promise=this.tcp.bind({ address: this.localIp, port:parseInt(this.localIpPort), family: 1 }, err => {
|
||||
if (err) {
|
||||
hilog.info(0x0000, 'testTag', "tcpBinderror:" + JSON.stringify(err));
|
||||
hilog.info(0x0000, 'testTag', "tcpreBinderror:" + JSON.stringify(err));
|
||||
resolve(true)
|
||||
}
|
||||
console.log('testTag,rebindtestTag tcp bind success');
|
||||
|
||||
resolve(false)
|
||||
|
||||
})
|
||||
@ -80,12 +82,11 @@ export default class TcpClient {
|
||||
|
||||
}
|
||||
connectTcp(){
|
||||
console.log('testTagtcpoppositeIp',this.oppositeIp,'localIp',this.localIp)
|
||||
console.log('testTagtcbpoppositeIp',this.oppositeIp,this.oppositeIpPort,'localIp',this.localIp,this.localIpPort)
|
||||
console.log('22323')
|
||||
return new Promise((resolve,reject)=>{
|
||||
let promise = this.tcp.connect({ address: {address: this.oppositeIp, port: parseInt(this.oppositeIpPort), family: 1} , timeout: 6000});
|
||||
promise.then(() => {
|
||||
console.log('testTagbindSuccess')
|
||||
|
||||
this.tcp.setExtraOptions({
|
||||
keepAlive: true,
|
||||
@ -111,7 +112,7 @@ export default class TcpClient {
|
||||
}
|
||||
|
||||
sendMsg(msg: string) {
|
||||
console.log('oppositeIp',this.oppositeIp)
|
||||
console.log('testTagsendoppositeIp',this.oppositeIp)
|
||||
return new Promise((reslove,reject)=>{
|
||||
let promise = this.tcp.send({
|
||||
data:msg
|
||||
@ -146,7 +147,7 @@ export default class TcpClient {
|
||||
onMessage(callback?) {
|
||||
this.tcp.on('message', value => {
|
||||
// console.log('messageLengt',,value.message.length))
|
||||
console.log('tcpmsg')
|
||||
console.log('testTagtcpmsg')
|
||||
// console.log("on message, message:" + value.message+ ", remoteInfo:" )
|
||||
if (value) {
|
||||
let dataView = new DataView(value.message)
|
||||
@ -181,17 +182,17 @@ export default class TcpClient {
|
||||
// });
|
||||
}
|
||||
offTcp(callback) {
|
||||
this.tcp.off('message', callback);
|
||||
this.tcp.off('testTagofmessg', callback);
|
||||
}
|
||||
closeTcp(callback) {
|
||||
return new Promise((reslove,reject)=>{
|
||||
let promise = this.tcp.close();
|
||||
promise.then(() => {
|
||||
console.log('close success');
|
||||
console.log('testTagclose success');
|
||||
callback()
|
||||
reslove(true)
|
||||
}).catch(err => {
|
||||
console.log('close fail');
|
||||
console.log('testTagclose fail');
|
||||
reslove(false)
|
||||
});
|
||||
})
|
||||
|
||||
@ -64,9 +64,9 @@ export default class UdpClient {
|
||||
hilog.info(0x0000, 'udpCLient', 'bind'+ this.localIp+this.localIpPort);
|
||||
|
||||
let promise = this.udp.bind({
|
||||
address: '192.168.7.170', port: 20122, family: 1
|
||||
// address: '192.168.7.170', port: 20122, family: 1
|
||||
// address: '192.168.7.170', port: 31013, family: 1
|
||||
// address: this.localIp, port: parseInt(this.localIpPort), family: 1
|
||||
address: this.localIp, port: parseInt(this.localIpPort), family: 1
|
||||
});
|
||||
promise.then(() => {
|
||||
console.log(`${TAG}udpCLient udp bind success`);
|
||||
@ -88,10 +88,10 @@ export default class UdpClient {
|
||||
address: {
|
||||
// address: '192.168.7.124',
|
||||
// port: 30013,
|
||||
address: '192.168.7.124',
|
||||
port: 20022,
|
||||
// address: this.oppositeIp,
|
||||
// port: parseInt(this.oppositeIpPort),
|
||||
// address: '192.168.7.124',
|
||||
// port: 20022,
|
||||
address: this.oppositeIp,
|
||||
port: parseInt(this.oppositeIpPort),
|
||||
family: 1
|
||||
}
|
||||
});
|
||||
|
||||
@ -68,6 +68,7 @@ export default class UdpClientByCenter {
|
||||
});
|
||||
}
|
||||
initHeartSendMsg(param,context){
|
||||
console.log('1111param',JSON.stringify(param))
|
||||
this.initParam=param
|
||||
this.context=context
|
||||
}
|
||||
@ -116,9 +117,11 @@ export default class UdpClientByCenter {
|
||||
|
||||
}
|
||||
setMsgHead({id, list, placeId=62, carNo=489}){
|
||||
console.log('globalThis.lshNo',globalThis.lshNo)
|
||||
let a = string2Bytes(`${id}${fillZero(placeId,3)}`, 2*8);
|
||||
let b = string2Bytes(`${carNo}${this.lsh}`, 4*8);
|
||||
|
||||
console.log('aaa',a)
|
||||
let b = string2Bytes(`${fillZero(carNo,4)}${globalThis.lshNo}`, 4*8);
|
||||
console.log('bbb',b)
|
||||
let c = string2Bytes(list.length, 2*8);
|
||||
return [...a,...b,...c];
|
||||
}
|
||||
@ -179,6 +182,7 @@ export default class UdpClientByCenter {
|
||||
}
|
||||
onMessage(callback,type?) {
|
||||
this.udp.on('message', value => {
|
||||
console.log('tttttttt')
|
||||
let arr=[]
|
||||
let dataView = new DataView(value.message)
|
||||
for (let i = 0;i < dataView?.byteLength; ++i) {
|
||||
@ -198,16 +202,7 @@ export default class UdpClientByCenter {
|
||||
callback({id,length,body:list,sendId:this.sendId})
|
||||
});
|
||||
}
|
||||
onError(callback?){
|
||||
this.udp.on('error', err => {
|
||||
console.log('udpbycenterdiushierroring')
|
||||
hilog.info(0x0000, 'udpCLientBycenteronerror', 'error'+ JSON.stringify(err));
|
||||
console.log("on error, err:" + JSON.stringify(err))
|
||||
// this.closeUdp(()=>{
|
||||
// this.bindUdp()
|
||||
// })
|
||||
});
|
||||
}
|
||||
|
||||
closeUdp(callback) {
|
||||
this.udp.close(err=>{
|
||||
if(err){
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import systemTime from '@ohos.systemDateTime';
|
||||
import { Array2Byte, fillZero, string2Bytes, stringToASC } from '../../common/utils/tools';
|
||||
import { testKmItems } from '../../pages/judgeSDK/dataTest/index';
|
||||
import { setJudgeUdp, setTopLineUdp } from './GlobalUdp';
|
||||
import { setJudgeUdp, setTopLineUdp } from './GlobleUdp';
|
||||
import { convertGpsCoord2 } from '../utils/tools';
|
||||
|
||||
|
||||
@ -38,11 +38,12 @@ export const initJudgeUdp = async () => {
|
||||
|
||||
export const getMessageHeartbeat = async (msg) => {
|
||||
const carInfo = globalThis.carInfo;
|
||||
const { examSubject,plateNo,ksyh } = carInfo;
|
||||
|
||||
const { examSubject,plateNo } = carInfo;
|
||||
const ksyh='0000000000000'
|
||||
const asclshArr = stringToASC(fillZero(globalThis.lsh || 0, 13));
|
||||
const ascksyhArr = stringToASC(fillZero(globalThis.ksyh || 0, 13))
|
||||
const ascsbxhArr = stringToASC('0000000000')
|
||||
const ascksyhArr = stringToASC(fillZero(ksyh || 0, 13))
|
||||
const ascsbxhArr = stringToASC('00000000')
|
||||
// const ascsbxhArr = stringToASC('153216400880')
|
||||
const serialIndex = globalThis.serialIndex
|
||||
const tempData = await getPlcData(msg);
|
||||
const {sensor,gps} = tempData;
|
||||
@ -51,6 +52,8 @@ export const getMessageHeartbeat = async (msg) => {
|
||||
const translateSignals = getTranslateSignals(
|
||||
[zfxd, yfxd, shtd, ygd, jgd, skd, dh1, dh2, lhq, jsc, ssc, fsc, lb, mkg, aqd, 0, 0, 0, 0, 0, 0, ygq, sensor.wd, 0]
|
||||
)
|
||||
console.log('jinweiduwaike',wd,jd,hxj,fyj,hbg)
|
||||
|
||||
const translateProject = getTranslateProject();
|
||||
//@ts-ignore
|
||||
const translateJd = convertGpsCoord2(wd).toFixed(7) * Math.pow(10, 7)
|
||||
@ -77,6 +80,7 @@ export const getMessageHeartbeat = async (msg) => {
|
||||
//航向角 俯仰角 高程(海拔)
|
||||
//@ts-ignore
|
||||
string2Bytes((hxj + 90) * 100, 2 * 8), string2Bytes(fyj * 100, 2 * 8), string2Bytes(hbg * 100, 4 * 8),
|
||||
//dddd
|
||||
translateProjects,
|
||||
//当前项目编号
|
||||
string2Bytes(0, 8),
|
||||
@ -84,7 +88,9 @@ export const getMessageHeartbeat = async (msg) => {
|
||||
ascsbxhArr.map(sbxh => string2Bytes(sbxh, 8)[0]),
|
||||
//本次考试行驶距离
|
||||
string2Bytes(0, 2 * 8),
|
||||
//扣分
|
||||
//扣分值
|
||||
string2Bytes(0, 2 * 8),
|
||||
//扣分数
|
||||
string2Bytes(0, 2 * 8),
|
||||
//扣分项数量
|
||||
string2Bytes(0, 8),
|
||||
@ -95,6 +101,8 @@ export const getMessageHeartbeat = async (msg) => {
|
||||
arr.forEach(itemArr => {
|
||||
tempArr = tempArr.concat(itemArr)
|
||||
})
|
||||
console.log('kmkmkm',tempArr.length)
|
||||
|
||||
globalThis.serialIndex = 0;
|
||||
return Array2Byte(tempArr)
|
||||
}
|
||||
@ -125,10 +133,10 @@ const getTranslateProject = () => {
|
||||
status: getCenterProjectStatus(current.status)
|
||||
}
|
||||
})
|
||||
const len = Math.floor(tempItems.length / 4);
|
||||
const len = Math.floor(tempItems.length / 8);
|
||||
const arr = [];
|
||||
for (let i = 0; i <= len; i++) {
|
||||
const temp = tempItems.slice(i * 4, (i + 1) * 4);
|
||||
const temp = tempItems.slice(i * 8, (i + 1) * 8);
|
||||
let tempArr = temp.map(item => item.status)
|
||||
if (i === 4) {
|
||||
tempArr = tempArr.concat(['00', '00'])
|
||||
|
||||
@ -35,13 +35,14 @@ export default async function request(req: any) {
|
||||
paramsStr = paramsStr.toString();
|
||||
paramsStr = paramsStr.substring(0, paramsStr.length-1)
|
||||
try {
|
||||
let baseUrl=host?host:(globalThis.host||config.host)
|
||||
let baseUrl=host?host:(globalThis.host||GlobalConfig.host)
|
||||
|
||||
// let baseUrl=host?config.csptHost:config.host'
|
||||
console.info('surenjun',baseUrl)
|
||||
const {result,responseCode} = await httpRequest.request(`${baseUrl}${url}${paramsStr}`, options);
|
||||
|
||||
console.log('daihai5')
|
||||
let res:any = xml ? xmlToJson(result) : result;
|
||||
console.log('daihai55')
|
||||
|
||||
console.log('响应头地址' + JSON.stringify(res))
|
||||
let resObj = null;
|
||||
@ -52,7 +53,12 @@ export default async function request(req: any) {
|
||||
//处理中心服务code
|
||||
if(res.Envelope){
|
||||
const msgXml = res.Envelope.Body.writeObjectOutResponse.return;
|
||||
return handleCenterCode(msgXml);
|
||||
console.log('daihai6')
|
||||
|
||||
const dd = handleCenterCode(msgXml);
|
||||
console.log('daihai7')
|
||||
|
||||
return dd
|
||||
}
|
||||
|
||||
if(!xml){
|
||||
|
||||
@ -10,5 +10,5 @@ export const GlobalConfig={
|
||||
comoonfileWriteAddress:'/mnt/hmdfs/100/account/device_view/local/files',
|
||||
picSavePath:'/storage/cloud/100/files/Photo/',
|
||||
videoSavePath:'/storage/cloud/100/files/Videos/',
|
||||
host:'http://112.80.35.83:11052'
|
||||
}
|
||||
host:'http://172.37.55.191:8082'
|
||||
}
|
||||
|
||||
@ -31,6 +31,9 @@ export default class EntryAbility extends UIAbility {
|
||||
globalThis.version = '2024.11.22.14'
|
||||
globalThis.judgeVersion = '2024.11.22.14'
|
||||
globalThis.videoVersion= '1.0'
|
||||
// globalThis.version = '2023.12.13.01'
|
||||
// globalThis.judgeVersion = '2023.09.30.1'
|
||||
// globalThis.videoVersion= '1.0'
|
||||
// globalThis.version = '2022.03.14.01'
|
||||
//视频遮挡
|
||||
globalThis.spzd={
|
||||
@ -42,9 +45,11 @@ export default class EntryAbility extends UIAbility {
|
||||
globalThis.singlePlay=false //单机模式
|
||||
globalThis.signNum=0//心跳指令编号
|
||||
globalThis.lsh='0000000000000'//学员流水号
|
||||
globalThis.ratio= 1700 / 960 //适配比例
|
||||
globalThis.statue=1//考试状态
|
||||
globalThis.pathDir = this.context.filesDir;
|
||||
globalThis.context=this.context
|
||||
globalThis.context = this.context;
|
||||
globalThis.isJudgeInitBool=false
|
||||
console.info('jiangsong globalThis.pathDir = ' + globalThis.pathDir);
|
||||
// this.requestPermission(this.context)
|
||||
// this.featureAbilityAuth()
|
||||
@ -52,7 +57,7 @@ export default class EntryAbility extends UIAbility {
|
||||
const windowClass = await windowStage.getMainWindow();
|
||||
globalThis.windowClass = windowClass
|
||||
// await windowClass.setWindowLayoutFullScreen(true)
|
||||
await windowClass.setWindowSystemBarEnable([]) //全屏
|
||||
// await windowClass.setWindowSystemBarEnable([]) //全屏
|
||||
await windowClass.setWindowSystemBarEnable(['navigation'])
|
||||
|
||||
windowStage.loadContent('pages/Index', (err, data) => {
|
||||
|
||||
@ -1,43 +1,73 @@
|
||||
import { VideoConfig } from './interfaces';
|
||||
// @ts-nocheck
|
||||
import { VideoConfig } from './interfaces'
|
||||
import common from '@ohos.app.ability.common';
|
||||
import router from '@ohos.router';
|
||||
import { getCarInfo, getDeviceInfo } from '../common/service/terminalService';
|
||||
import { setCurrentTime } from '../common/service/timeService';
|
||||
import { string2Bytes } from '../common/utils/tools';
|
||||
import router from '@ohos.router'
|
||||
import { getDeviceInfo ,getCarInfo} from '../common/service/terminalService'
|
||||
import { setCurrentTime } from '../common/service/timeService'
|
||||
import {string2Bytes} from '../common/utils/tools'
|
||||
import { FileHelper } from '../common/service/FileHelper';
|
||||
import { getUDP, getUDP2 } from '../common/utils/GlobalUdp';
|
||||
import { initJudgeUdp } from '../common/utils/UdpJudge';
|
||||
import { getTCP } from '../common/utils/GlobalTcp';
|
||||
import testNapi from '@ohos.hiserialsdk';
|
||||
import {
|
||||
getEsCarModel,
|
||||
} from '../common/service/initable'
|
||||
import {
|
||||
getDoubleCeneterTable,
|
||||
getliushuiNum,
|
||||
getSingleCenterTable,
|
||||
setliushuiNum,
|
||||
takePhotoFn
|
||||
} from '../common/service/indexService';
|
||||
import FileUtil from '../common/utils/File'
|
||||
import { getUDP, getUDP2 } from '../common/utils/GlobleUdp'
|
||||
import {initJudgeUdp} from '../common/utils/UdpJudge'
|
||||
import { getTCP } from '../common/utils/GlobleTcp'
|
||||
import TcpClient from '../common/utils/TcpClient';
|
||||
import testNapi from '@ohos.hiserialsdk'
|
||||
import {setliushuiNum,getliushuiNum,getSingleCenterTable,getDoubleCeneterTable,takePhotoFn} from '../common/service/indexService'
|
||||
import abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl';
|
||||
import promptAction from '@ohos.promptAction';
|
||||
import { VideoConfigData } from '../mock';
|
||||
import worker, { MessageEvents } from '@ohos.worker';
|
||||
|
||||
@Entry
|
||||
@Component
|
||||
struct Index {
|
||||
private fileUtil: FileUtil
|
||||
@State carNum: string = ''
|
||||
@State version: string = ''
|
||||
@State url: string = ''
|
||||
@State hasAuth: boolean = false;
|
||||
@State isSingle: boolean = false;
|
||||
@State deviceId: string = '';
|
||||
private interval = null;
|
||||
private workerInstance = null;
|
||||
@State angle: number = 0
|
||||
@State ratio: number = 1700 / 960
|
||||
@State loading: boolean = true
|
||||
@State fd: number = -1;
|
||||
private interval=null;
|
||||
private context = getContext(this) as common.UIAbilityContext;
|
||||
@State param: VideoConfig = {
|
||||
videoNum:'1',
|
||||
spls: '1',
|
||||
wz: '0,0',
|
||||
faceFlag: false,
|
||||
shuiying: true,
|
||||
pztd: '2',
|
||||
ljlx: '',
|
||||
ip: '192.168.36.94',
|
||||
port: '554',
|
||||
userName: 'admin',
|
||||
pwd: '12345qwe',
|
||||
td1: '1',
|
||||
td2: '2',
|
||||
td3: '3',
|
||||
td4: '4',
|
||||
videoRecord1: false,
|
||||
videoRecord2: true,
|
||||
videoRecord3: false,
|
||||
videoRecord4: false,
|
||||
text1: '',
|
||||
text2: '',
|
||||
text3: '',
|
||||
dolt: '',
|
||||
fontSize: '',
|
||||
rlls: '1',
|
||||
spzd4:false,
|
||||
spzd3:false,
|
||||
spzd2:false,
|
||||
spzd1:false,
|
||||
zdyz:'5',
|
||||
}
|
||||
fileHelper =null;
|
||||
build() {
|
||||
Column() {
|
||||
@ -70,7 +100,7 @@ struct Index {
|
||||
Column() {
|
||||
Row() {
|
||||
if (!this.isSingle) {
|
||||
Image($r('app.media.index_lw')).width('30.5%').height('74%').onClick(async () => {
|
||||
Image($r('app.media.index_lw')).width('30.5%').height('74%').onClick(async() => {
|
||||
if (this.loading) {
|
||||
return
|
||||
}
|
||||
@ -79,21 +109,15 @@ struct Index {
|
||||
this.angle = 360
|
||||
}, 1000)
|
||||
this.angle = 0
|
||||
|
||||
//mode为3双中心下载表
|
||||
if (globalThis.timeInfo?.mode == '3') {
|
||||
await getDoubleCeneterTable()
|
||||
} else if (globalThis.timeInfo?.mode == '1') {
|
||||
//单中心
|
||||
await getSingleCenterTable()
|
||||
} else {
|
||||
if(!globalThis.timeInfo){
|
||||
promptAction.showToast({
|
||||
message: `网络连接失败`,
|
||||
duration: 3000
|
||||
});
|
||||
this.loading = false
|
||||
this.loading=false
|
||||
}
|
||||
this.loading = false
|
||||
this.testXMLToJSONInWorker()
|
||||
|
||||
|
||||
})
|
||||
}
|
||||
@ -129,12 +153,12 @@ struct Index {
|
||||
Column() {
|
||||
Text('V ' + globalThis.version)
|
||||
.fontColor('#CCAE7A')
|
||||
.fontSize(22 * this.ratio)
|
||||
.fontSize(22 * globalThis.ratio)
|
||||
.width('30%')
|
||||
.margin({ bottom: 10 })
|
||||
Text('授权信息:' + (this.hasAuth ? '已授权' : '未授权'))
|
||||
.fontColor('#CCAE7A')
|
||||
.fontSize(22 * this.ratio)
|
||||
.fontSize(22 * globalThis.ratio)
|
||||
.width('30%')
|
||||
}
|
||||
.margin({ left: 24 })
|
||||
@ -142,45 +166,47 @@ struct Index {
|
||||
GestureGroup(GestureMode.Exclusive,
|
||||
TapGesture({ count: 2 })
|
||||
.onAction(() => {
|
||||
// takePhotoFn(this.context)
|
||||
|
||||
globalThis.singlePlay = !globalThis.singlePlay
|
||||
this.isSingle = globalThis.singlePlay
|
||||
})
|
||||
)
|
||||
)
|
||||
|
||||
Text('考车号:' + globalThis.deviceNo).fontColor('#CCAE7A').fontSize(22 * this.ratio).margin({ right: 24 })
|
||||
Text('考车号:' + globalThis.deviceNo).fontColor('#CCAE7A').fontSize(22 * globalThis.ratio).margin({ right: 24 })
|
||||
}
|
||||
.width('100%')
|
||||
.justifyContent(FlexAlign.SpaceBetween)
|
||||
.margin({ bottom: 10 })
|
||||
}
|
||||
|
||||
//
|
||||
if (this.loading) {
|
||||
Column() {
|
||||
Image($r('app.media.open_loading'))
|
||||
.width(200 * this.ratio)
|
||||
.rotate({ angle: this.angle })
|
||||
.height(200 * this.ratio)
|
||||
.animation({
|
||||
duration: 5000, // 动画时长
|
||||
curve: Curve.EaseOut, // 动画曲线
|
||||
delay: 500, // 动画延迟
|
||||
iterations: -1, // 播放次数
|
||||
playMode: PlayMode.Normal, // 动画模式
|
||||
})
|
||||
.margin({ top: 30 * this.ratio })
|
||||
Image($r('app.media.car'))
|
||||
.width(80 * this.ratio)
|
||||
.height(80 * this.ratio)
|
||||
.position({ x: 288 * this.ratio, y: 89 * this.ratio })
|
||||
Text('获取考车信息,请稍候……').fontSize(24 * this.ratio).margin({ top: 20 * this.ratio }).fontWeight(400)
|
||||
}
|
||||
.width(660 * this.ratio)
|
||||
.height(360 * this.ratio)
|
||||
.position({ x: 150 * this.ratio, y: 98 * this.ratio })
|
||||
.backgroundColor('#E6E3DF')
|
||||
.borderRadius(19 * this.ratio)
|
||||
Column() {
|
||||
Image($r('app.media.open_loading'))
|
||||
.width(200 * globalThis.ratio)
|
||||
.rotate({ angle: this.angle })
|
||||
.height(200 * globalThis.ratio)
|
||||
.animation({
|
||||
duration: 5000, // 动画时长
|
||||
curve: Curve.EaseOut, // 动画曲线
|
||||
delay: 500, // 动画延迟
|
||||
iterations: -1, // 播放次数
|
||||
playMode: PlayMode.Normal, // 动画模式
|
||||
})
|
||||
.margin({ top: 30 * globalThis.ratio })
|
||||
Image($r('app.media.car'))
|
||||
.width(80 * globalThis.ratio)
|
||||
.height(80 * globalThis.ratio)
|
||||
.position({ x: 288 * globalThis.ratio, y: 89 * globalThis.ratio })
|
||||
Text('获取考车信息,请稍候……').fontSize(24 * globalThis.ratio).margin({ top: 20 * globalThis.ratio }).fontWeight(400)
|
||||
}
|
||||
.visibility(this.loading ? Visibility.Visible: Visibility.Hidden)
|
||||
.width(660 * globalThis.ratio)
|
||||
.height(360 * globalThis.ratio)
|
||||
.position({ x: 150 * globalThis.ratio, y: 98 * globalThis.ratio })
|
||||
.backgroundColor('#E6E3DF')
|
||||
.borderRadius(19 * globalThis.ratio)
|
||||
}
|
||||
}
|
||||
.width('100%')
|
||||
@ -192,13 +218,54 @@ struct Index {
|
||||
}
|
||||
|
||||
aboutToAppear() {
|
||||
globalThis.ratio= 1700 / 960
|
||||
this.angle = 0
|
||||
this.loading = false
|
||||
// let workerInstance = new worker.ThreadWorker('entry/ets/pages/worker.ts', {
|
||||
// name: 'FriendsMoments Worker'
|
||||
// });
|
||||
// this.workerInstance.onmessage = function(e) {
|
||||
// console.log("onerror")
|
||||
// router.pushUrl({
|
||||
// url: 'pages/ExaminerLogin',
|
||||
// }, router.RouterMode.Single)
|
||||
// this.loading=false
|
||||
// }
|
||||
}
|
||||
async testXMLToJSONInWorker(){
|
||||
let workerInstance = new worker.ThreadWorker('entry/ets/workers/worker.ts', {
|
||||
name: 'FriendsMoments Worker'
|
||||
});
|
||||
var xmlStr='123'
|
||||
console.log("baoyihu before postMessage :");
|
||||
const param={
|
||||
carId:globalThis.carInfo?.carId,
|
||||
examinationRoomId:globalThis.carInfo?.examinationRoomId,
|
||||
judgeVersion:globalThis.judgeVersion,
|
||||
shellVersion:globalThis.version,
|
||||
paraKdid:globalThis.timeInfo?.paraKdid,
|
||||
mode: globalThis.timeInfo?.mode,
|
||||
context:this.context
|
||||
}
|
||||
workerInstance.postMessage(param);
|
||||
workerInstance.onmessage = (e: MessageEvents): void => {
|
||||
console.log("baoyihu after postMessage :",e.data);
|
||||
console.log("onerror")
|
||||
router.pushUrl({
|
||||
url: 'pages/ExaminerLogin',
|
||||
}, router.RouterMode.Single)
|
||||
this.loading=false
|
||||
// let workData: WorkData = e.data;
|
||||
// if (workData) {
|
||||
// this.isComplete = workData.isComplete;
|
||||
// this.json_Str = workData.jsonStr;
|
||||
// console.log("baoyihu after postMessage json_Str:"+this.json_Str);
|
||||
// workerInstance.terminate();
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
async heartMsg() {
|
||||
//心跳指令编号 //考试状态
|
||||
const arr = [globalThis.signNum || 0, globalThis.statue || 1]
|
||||
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])
|
||||
@ -206,27 +273,30 @@ struct Index {
|
||||
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.examinationRomId}
|
||||
console.log('globalThis.carInfo',JSON.stringify(globalThis.carInfo))
|
||||
|
||||
const param= {id: 31,list:tmpList,carNo: globalThis.carInfo.carNo,placeId: globalThis.carInfo.examinationRoomId}
|
||||
// globalThis.udpClient2.initHeartSendMsg(param,this.context)
|
||||
globalThis.udpClient2.sendMsg(param, this.context)
|
||||
}
|
||||
|
||||
onPageShow() {
|
||||
this.loading = false
|
||||
this.createAlbum()
|
||||
this.userAuth();
|
||||
//plc
|
||||
getUDP()
|
||||
//中心udp
|
||||
getUDP2()
|
||||
clearInterval(this.interval)
|
||||
this.interval=setInterval(() => {
|
||||
setliushuiNum(this.context)
|
||||
getliushuiNum()
|
||||
getliushuiNum(this.context)
|
||||
this.heartMsg()
|
||||
}, 1000)
|
||||
// 3s拍照
|
||||
takePhotoFn(this.context)
|
||||
//tcp差分转发,如果差分通过udp转发可注释
|
||||
// takePhotoFn(this.context)
|
||||
|
||||
//
|
||||
getTCP()
|
||||
// const TcpClient: TcpClient =new TcpClient(result[0].tcplocalIp, result[0].tcplocalIpPort,result[0].tcpOppositeIp,result[0].tcpOppositePort)
|
||||
|
||||
if (globalThis.singlePlay == undefined || globalThis.singlePlay == null) {
|
||||
globalThis.singlePlay = false
|
||||
@ -236,15 +306,15 @@ struct Index {
|
||||
console.info('Index onPageShow');
|
||||
|
||||
}
|
||||
//创建截图文件夹
|
||||
|
||||
async createAlbum() {
|
||||
this.fileHelper = new FileHelper();
|
||||
// this.fileHelper.createAlbum('jt')
|
||||
this.fileHelper.createAlbum('jt')
|
||||
this.fileHelper.createAlbum('pz');
|
||||
|
||||
}
|
||||
userAuth() {
|
||||
const permissions: Array<Permissions> = ["ohos.permission.READ_IMAGEVIDEO", "ohos.permission.DISTRIBUTED_DATASYNC" ,'ohos.permission.CONNECTIVITY_INTERNAL','ohos.permission.CAMERA','ohos.permission.READ_MEDIA','ohos.permission.WRITE_MEDIA','ohos.permission.FILE_ACCESS_MANAGER'];
|
||||
const permissions: Array<Permissions> = ["ohos.permission.SET_TIME","ohos.permission.READ_IMAGEVIDEO", "ohos.permission.DISTRIBUTED_DATASYNC" ,'ohos.permission.CONNECTIVITY_INTERNAL','ohos.permission.CAMERA','ohos.permission.READ_MEDIA','ohos.permission.WRITE_MEDIA','ohos.permission.FILE_ACCESS_MANAGER'];
|
||||
let context = this.context;
|
||||
let atManager = abilityAccessCtrl.createAtManager();
|
||||
// requestPermissionsFromUser会判断权限的授权状态来决定是否唤起弹窗
|
||||
@ -268,10 +338,7 @@ struct Index {
|
||||
}
|
||||
async initParams() {
|
||||
this.loading=false
|
||||
//获取设备信息
|
||||
this.createAlbum()
|
||||
await getDeviceInfo()
|
||||
//车辆信息
|
||||
getCarInfo()
|
||||
await setCurrentTime();
|
||||
this.carNum = globalThis.carInfo.plateNo;
|
||||
@ -282,6 +349,7 @@ struct Index {
|
||||
// await this.getModel()
|
||||
// const arr = [0x55, 0xaa, 0x01, 0x00, 0x02, 0x01, 0x03, 0x00]
|
||||
// globalThis.udpClientByTopLine.sendMsg(Array2Byte(arr).buffer)
|
||||
console.info(testNapi)
|
||||
}
|
||||
async getModel() {
|
||||
const context = this.context;
|
||||
|
||||
@ -9,7 +9,7 @@ import Judge from './judgeSDK/judge'
|
||||
import {defaultJudgeConfigObj} from './judgeSDK/utils//judge-common'
|
||||
import {
|
||||
Project, ProjectObj, MarkRule, CDSBInfo,
|
||||
SYSTEMPARMARR,CARINFO ,MAPPOINT ,MAPITEMPOINTITEM
|
||||
SYSTEMPARMARR,CARINFO ,MAPPOINT ,MAPITEMPOINTITEM,SYSSET
|
||||
} from './judgeSDK/api/judgeSDK.d'
|
||||
import { getCurrentTime, formatTime, getCurrentHourTime,chunkArr } from '../common/utils/tools'
|
||||
import { examJudgeEndExam } from './judgeSDK/api/index'
|
||||
@ -29,9 +29,7 @@ struct Index {
|
||||
async aboutToAppear() {
|
||||
globalThis.windowClass.setWindowSystemBarEnable([''])
|
||||
const time = await getCurrentTime()
|
||||
const examSubject = globalThis.carInfo.examSubject
|
||||
|
||||
this.examSubject = examSubject
|
||||
this.startTime = time.split(' ')[1]
|
||||
this.startFullTime = await getCurrentTime(1);
|
||||
this.startHourTime = await getCurrentHourTime()
|
||||
@ -67,9 +65,8 @@ struct Index {
|
||||
? await this.initSystemKm2Param()
|
||||
: await this.initSystemKm3Param()
|
||||
await this.initMarkRules();
|
||||
await this.initSysset();
|
||||
}
|
||||
|
||||
await this.initSysset();
|
||||
await this.initCDSBInfo()
|
||||
|
||||
// 科目三新增读取表数据
|
||||
@ -122,7 +119,6 @@ struct Index {
|
||||
markreal:mark.markreal * 1,
|
||||
markserial:mark.markserial,
|
||||
kfxh:mark.kfxh,
|
||||
//TODO 科目三评判新参数
|
||||
OnlyOneKind:mark.onlyoneid * 1,
|
||||
NoCancelId:mark.nocancelid * 1,
|
||||
GPS_SID:mark.gps_sid == 0 ? false : true
|
||||
@ -141,34 +137,44 @@ struct Index {
|
||||
}
|
||||
|
||||
// 获取sysset表信息
|
||||
async initSysset() {
|
||||
const syssetParams = await getSyncData('MA_SYSSET')
|
||||
async initSysset(sysset?:SYSSET[]) {
|
||||
const syssetParams = sysset || await getSyncData('MA_SYSSET')
|
||||
//@ts-ignore
|
||||
const serialNumberArr = syssetParams.filter(sys => sys.v_no === '901');
|
||||
this.serialNumber = (serialNumberArr[0] && serialNumberArr[0].v_value) || '123456'
|
||||
|
||||
const judgeConfig = []
|
||||
const {isTrajectoryOpen} = judgeConfig
|
||||
const syssetJudgeConfigArr = []
|
||||
|
||||
//@ts-ignore
|
||||
syssetParams.forEach((sys) => {
|
||||
if(isTrajectoryOpen){
|
||||
sys.v_no = sys.key;
|
||||
sys.v_name = sys.name;
|
||||
sys.v_value = sys.value
|
||||
}
|
||||
|
||||
const {v_no,v_value} = sys;
|
||||
const v_no_num = v_no * 1;
|
||||
const value = decodeURIComponent(v_value)
|
||||
if(v_no_num >= 10 &&v_no_num <= 900){
|
||||
judgeConfig.push({
|
||||
syssetJudgeConfigArr.push({
|
||||
key: v_no_num,value: value,
|
||||
name: decodeURI(sys.v_name)
|
||||
})
|
||||
}
|
||||
//科目三应行驶距离参数
|
||||
if(sys.v_no == '303'){
|
||||
this.examMileage = sys.v_value + '';
|
||||
}
|
||||
|
||||
this.judgeConfigObj[sys.v_no] = value
|
||||
});
|
||||
this.judgeConfig = judgeConfig;
|
||||
this.judgeConfig = syssetJudgeConfigArr;
|
||||
}
|
||||
|
||||
// 初始化systemParam表
|
||||
async initSystemKm2Param(){
|
||||
const systemParms:any = await getSyncData('MA_SYSTEMPARM')
|
||||
async initSystemKm2Param(sysParam?:SYSTEMPARMARR[]){
|
||||
const systemParms:any = sysParam || await getSyncData('MA_SYSTEMPARM')
|
||||
const carName = this.carName;
|
||||
|
||||
let carNo2 = '',allItems = [];
|
||||
@ -217,7 +223,7 @@ struct Index {
|
||||
//初始化systemParam表
|
||||
async initSystemKm3Param(sysParam?:SYSTEMPARMARR[]) {
|
||||
const systemParms: any = sysParam || await getSyncData('MA_SYSTEMPARM')
|
||||
|
||||
console.log('systemParms',JSON.stringify(systemParms))
|
||||
const {isTrajectoryOpen} = judgeConfig
|
||||
|
||||
systemParms.forEach((systemParm) => {
|
||||
@ -232,7 +238,6 @@ struct Index {
|
||||
}
|
||||
|
||||
const {no1,no2,no3,} = systemParm;
|
||||
|
||||
this.systemparmArr.push({
|
||||
'NO1':no1*1,'NO2':no2*1,'NO3':no3*1,
|
||||
'TXT1':decodeURIComponent(systemParm.txt1),
|
||||
@ -241,7 +246,6 @@ struct Index {
|
||||
})
|
||||
|
||||
const txt2 = decodeURIComponent(systemParm.txt2)
|
||||
|
||||
if (no1 == 6) {
|
||||
const currentProject = {
|
||||
name: decodeURI(systemParm.txt1),
|
||||
@ -253,11 +257,10 @@ struct Index {
|
||||
this.projectsCenterObj[txt2] = currentProject
|
||||
this.projects.push(currentProject)
|
||||
}
|
||||
if(no1 == 3 && no2 == 1 && no3 == 15){
|
||||
this.examMileage = decodeURI(systemParm.txt1)
|
||||
}
|
||||
// if(no1 == 3 && no2 == 1 && no3 == 15){
|
||||
// this.examMileage = decodeURI(systemParm.txt1)
|
||||
// }
|
||||
})
|
||||
|
||||
const projects = this.projects;
|
||||
if (!projects.length) {
|
||||
prompt.showToast({
|
||||
@ -376,19 +379,17 @@ struct Index {
|
||||
pointItemPoints.forEach(itemPoint => {
|
||||
const {point_no,itemno,itemno1,subname} = itemPoint
|
||||
this.mapPointItemArr.push({
|
||||
point_no:point_no * 1,
|
||||
itemno:itemno * 1,
|
||||
itemno1:itemno1 * 1,
|
||||
subname
|
||||
point_no:point_no * 1,
|
||||
itemno:itemno * 1,
|
||||
itemno1:itemno1 * 1,
|
||||
subname
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 初始化本地systemparam表、markrule表
|
||||
async initTrajectoryParam(trajectoryPath:string){
|
||||
const examSubject = globalThis.carInfo.examSubject;
|
||||
|
||||
const {isTrajectoryOpen} = judgeConfig
|
||||
//轨迹回放读取 systemparam表、markrule表
|
||||
const fileUtil = new FileUtil(this.context);
|
||||
const folderPath = await fileUtil.initFolder(trajectoryPath);
|
||||
@ -396,12 +397,16 @@ struct Index {
|
||||
const strArr = str.split('\n');
|
||||
const [initData,beginData] = [strArr[0],strArr[1]];
|
||||
const initDataObj = JSON.parse(initData)
|
||||
|
||||
const systemparm = initDataObj.systemparm;
|
||||
const examSubject = globalThis.carInfo.examSubject;
|
||||
this.examSubject = isTrajectoryOpen ? (initDataObj.kskm*1):examSubject;
|
||||
globalThis.carInfo.examSubject = this.examSubject
|
||||
examSubject == 2
|
||||
? await this.initSystemKm2Param()
|
||||
: await this.initSystemKm3Param(initDataObj.systemparm)
|
||||
? await this.initSystemKm2Param(systemparm)
|
||||
: await this.initSystemKm3Param(systemparm)
|
||||
//@ts-ignore
|
||||
await this.initMarkRules(testMarkRules);
|
||||
await this.initSysset(initDataObj.sysset);
|
||||
}
|
||||
|
||||
|
||||
@ -620,10 +625,10 @@ struct Index {
|
||||
Row(){}.width(60).height(60).backgroundImage($rawfile('judge/manual_judge.png'), ImageRepeat.NoRepeat).backgroundImageSize({ width: '100%', height: '100%' })
|
||||
Text('人工评判').fontColor('#FFF').fontSize(32).padding({right:12})
|
||||
}.width(334).height(110).justifyContent(FlexAlign.Center).alignItems(VerticalAlign.Center)
|
||||
.backgroundImage($rawfile('judge/button_nor.png'), ImageRepeat.NoRepeat)
|
||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||
.margin({bottom:10})
|
||||
.onClick(()=>{
|
||||
.backgroundImage($rawfile('judge/button_nor.png'), ImageRepeat.NoRepeat)
|
||||
.backgroundImageSize({ width: '100%', height: '100%' })
|
||||
.margin({bottom:10})
|
||||
.onClick(()=>{
|
||||
if(this.judgeConfigObj['342'] == 0){
|
||||
this.isDeductedPopShow = true
|
||||
}else{
|
||||
@ -778,7 +783,7 @@ struct Index {
|
||||
|
||||
const unExitManualProjects = judgeConfigObj['332'].split(',') || [];
|
||||
const param348 = judgeConfigObj['348'] || '0';
|
||||
const param387 = judgeConfigObj['348'] || '0';
|
||||
const param387 = judgeConfigObj['387'] || '0';
|
||||
|
||||
if(judgeConfigObj['342'] === '3' || judgeConfigObj['342'] === '2'){
|
||||
return false
|
||||
@ -818,7 +823,7 @@ struct Index {
|
||||
@State startFullTime: string = ''
|
||||
@State startHourTime: string = ''
|
||||
//科目类型
|
||||
@State examSubject: 2 | 3 = 2;
|
||||
@State examSubject: 2 | 3 = 3;
|
||||
@State ddxkTime: number = 0;
|
||||
@State ddxkKsxmArr: string[] = ['']
|
||||
@State ddxkKfArr: string[] = ['']
|
||||
|
||||
@ -20,17 +20,23 @@ export default struct Index {
|
||||
|
||||
onPageShow() {
|
||||
// this.plateNo=globalThis.carInfo.plateNo
|
||||
deviceManager.createDeviceManager('com.oh.dts', (error, value) => {
|
||||
if (error) {
|
||||
console.error('createDeviceManager failed.');
|
||||
return;
|
||||
}
|
||||
let dvMgrObj = value;
|
||||
this.deviceName = dvMgrObj.getLocalDeviceInfoSync().deviceName
|
||||
this.deviceNo = dvMgrObj.getLocalDeviceInfoSync().deviceId.substring(0, 10).toUpperCase()
|
||||
this.ip = 'MAC-' + this.deviceNo
|
||||
globalThis.deviceNo = 'MAC-' + this.deviceNo
|
||||
});
|
||||
console.log('createDeviceManagerstart')
|
||||
try{
|
||||
deviceManager.createDeviceManager('com.oh.dts', (error, value) => {
|
||||
if (error) {
|
||||
console.error('createDeviceManager failed.');
|
||||
return;
|
||||
}
|
||||
let dvMgrObj = value;
|
||||
this.deviceName = dvMgrObj.getLocalDeviceInfoSync().deviceName
|
||||
this.deviceNo = dvMgrObj.getLocalDeviceInfoSync().deviceId.substring(0, 10).toUpperCase()
|
||||
this.ip = 'MAC-' + this.deviceNo
|
||||
globalThis.deviceNo = 'MAC-' + this.deviceNo
|
||||
});
|
||||
|
||||
}catch (error){
|
||||
console.log('createDeviceManagererror',error)
|
||||
}
|
||||
}
|
||||
|
||||
build() {
|
||||
|
||||
@ -19,7 +19,7 @@ struct Index {
|
||||
// @State inputTextList2: string[] = ['192.168.7.124','20022']
|
||||
|
||||
|
||||
@State inputTextList1: string[] = ['112.80.35.83','11055','112.80.35.83','11052','255.255.255.0','192.168.7.1','114.114.114.114','192.168.7.124','20022','192.168.7.170','20122','112.80.35.83','11050']
|
||||
@State inputTextList1: string[] = ['172.37.55.191','18782','172.37.55.191','8082','255.255.255.0','192.168.7.1','114.114.114.114','192.168.7.124','20022','192.168.7.170','20122','172.37.55.191','11050']
|
||||
// @State inputTextList2: string[] = []
|
||||
// 112.80.35.83 11052
|
||||
// @State inputTextList1: string[] = ['192.168.36.2','8084','192.168.36.200','20122','255.255.255.0','192.168.36.1','','','114.114.114.114','192.168.36.139','8000']
|
||||
@ -88,7 +88,7 @@ struct Index {
|
||||
gateway: this.inputTextList1[5],//value.gateway网关
|
||||
netMask: this.inputTextList1[4],//value.netMask网络掩码
|
||||
dnsServers: this.inputTextList1[6],
|
||||
// domain: ""
|
||||
domain: ""
|
||||
}, (error) => {
|
||||
if (error) {
|
||||
prompt.showToast({
|
||||
|
||||
@ -19,7 +19,7 @@ import {string2Bytes} from '../common/utils/tools'
|
||||
import { getSyncData } from '../common/service/initable'
|
||||
@Entry
|
||||
@Component
|
||||
export default struct UserInfo {
|
||||
struct UserInfo {
|
||||
@State pageIndex: number = 0
|
||||
@State ratio: number = 1700 / 960
|
||||
@State index: number = 0
|
||||
@ -182,7 +182,6 @@ export default struct UserInfo {
|
||||
changeQkfn() {
|
||||
this.qkFn()
|
||||
}
|
||||
//初始化数据
|
||||
initData(){
|
||||
this.stepFlag = false
|
||||
this.faceCompareSucess = 0
|
||||
@ -238,6 +237,7 @@ export default struct UserInfo {
|
||||
}
|
||||
|
||||
|
||||
|
||||
async initSysset() {
|
||||
const that = this;
|
||||
const db = new AccountTable(() => {
|
||||
@ -276,7 +276,7 @@ export default struct UserInfo {
|
||||
that.getExaminationStudentInfoFn()
|
||||
}
|
||||
}, 5000)
|
||||
} else {
|
||||
}else{
|
||||
this.getExaminationItemFn()
|
||||
}
|
||||
|
||||
@ -287,7 +287,7 @@ export default struct UserInfo {
|
||||
changeFaceCompareSuccess() {
|
||||
console.log('this.faceCompareSuces', this.faceCompareSucess, JSON.stringify(this.currentUser))
|
||||
if (this.faceCompareSucess > 0) {
|
||||
//人脸比对通过
|
||||
//人脸比对通过
|
||||
this.sfbdinterfaceFn()
|
||||
}
|
||||
}
|
||||
@ -360,7 +360,6 @@ export default struct UserInfo {
|
||||
console.log('error12error' + error)
|
||||
})
|
||||
}
|
||||
//缺考
|
||||
qkFn() {
|
||||
this.faceCompareSucess = 0
|
||||
if (globalThis.singlePlay) {
|
||||
@ -397,7 +396,6 @@ export default struct UserInfo {
|
||||
})
|
||||
|
||||
}
|
||||
// 获取考试项目
|
||||
async getExaminationItemFn(){
|
||||
console.info('surenjun', this.currentUser.lsh)
|
||||
if(!this.currentUser.lsh||globalThis.singlePlay){
|
||||
@ -411,10 +409,10 @@ export default struct UserInfo {
|
||||
lsh: this.currentUser.lsh || '',
|
||||
examinationRoomId
|
||||
});
|
||||
if (examItems?.getExaminationItemRsp?.body?.kssycs != 0) {
|
||||
if(examItems?.getExaminationItemRsp?.body?.kssycs!=0){
|
||||
this.getExaminationStudentInfoFn()
|
||||
} else {
|
||||
this.dataList = []
|
||||
}else{
|
||||
this.dataList=[]
|
||||
this.currentUser = EmptyCandidateObject
|
||||
}
|
||||
|
||||
@ -771,7 +769,7 @@ struct LabelBlock {
|
||||
Row() {
|
||||
Text(this.label).fontSize(16 * this.ratio).fontColor('#99948A')
|
||||
Row() {
|
||||
Text(this.value).fontColor('#fff').textAlign(TextAlign.Center).width('100%')
|
||||
Text(decodeURIComponent(this.value)).fontColor('#fff').textAlign(TextAlign.Center).width('100%')
|
||||
}
|
||||
.commLabelStyle()
|
||||
}.margin({ bottom: 10 * this.ratio })
|
||||
|
||||
@ -138,7 +138,7 @@ export default struct SignDisplayCom {
|
||||
|
||||
Row() {
|
||||
if(this.showBack){
|
||||
Image($r('app.media.topB_back')).width('16.7%').height('12.2%')
|
||||
Image($r('app.media.topB_back')).height('12.2%')
|
||||
.onClick(() => {
|
||||
router.back()
|
||||
// this.url='back'
|
||||
|
||||
@ -66,6 +66,14 @@ export interface VideoConfig{
|
||||
spzd1:boolean,
|
||||
zdyz:string,
|
||||
}
|
||||
|
||||
export interface initTableParam{
|
||||
carId:string,
|
||||
examinationRoomId:string,
|
||||
judgeVersion:string,
|
||||
shellVersion:string,
|
||||
paraKdid:string,
|
||||
mode: string
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -140,6 +140,11 @@ export interface SOUND {
|
||||
//语音播放提示代码
|
||||
code:string
|
||||
}
|
||||
export interface SYSSET {
|
||||
v_no:string,
|
||||
v_name:string,
|
||||
v_value:string
|
||||
}
|
||||
|
||||
export interface ProjectObj {
|
||||
[k:any]:Project
|
||||
|
||||
@ -20,7 +20,7 @@ import {writeObjectOut,uploadExamProgressData} from '../../api/judge'
|
||||
import {deepClone,getCurrentTime,stringToASC,string2Bytes,fillZero,Array2Byte,convertGpsCoord2} from '../../common/utils/tools'
|
||||
import {getTranslateSignals,getCarStatus,getCarStatusType,getCenterProjectStatus,plcStrToJson,plcStrToWXJson,promptWxCode,getKmProjectVoice} from './utils//judge-common'
|
||||
import {examJudgeSetLogCallback,examJudgeBeginExam,examJudgeInit,examJudgeRealExam,examJudgeSetRealExamCallback,examJudgeSetPerformCallback,examJudgeEndExam,examJudgeArtificialMark,examJudgeArtificialItem} from './api/index'
|
||||
import Want from '@ohos.app.ability.Want';
|
||||
|
||||
import prompt from '@ohos.prompt';
|
||||
|
||||
const judgeTag = 'SURENJUN_JUDGE'
|
||||
@ -129,6 +129,7 @@ export default class Judge{
|
||||
await examJudgeBeginExam(beginExamInfo);
|
||||
console.info(judgeTag,'6.开始考试注册完成')
|
||||
|
||||
avPlayer.playAudio(['voice/ksks.WAV'])
|
||||
// 处理轨迹plc信息
|
||||
if(isTrajectoryOpen){
|
||||
handleTrajectoryUdp(strArr);
|
||||
@ -139,7 +140,7 @@ export default class Judge{
|
||||
globalThis.udpClient.onMessage(async (msg) => {
|
||||
handleUdp(msg)
|
||||
})
|
||||
avPlayer.playAudio(['voice/ksks.WAV'])
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -706,8 +707,11 @@ export default class Judge{
|
||||
|
||||
// 消息心跳发送
|
||||
getMessageHeartbeat = async (isEnd?:Boolean) => {
|
||||
console.log('kkkkkkmmm')
|
||||
const carInfo = globalThis.carInfo;
|
||||
const { examSubject,plateNo,ksyh } = carInfo;
|
||||
// const ksyh='0000000000000'
|
||||
// const ksyh=globalThis.ksyh ||'0000000000000'
|
||||
const {judgeUI,isExam,serialIndex,tempData,xmmcCode,xmxh,xmmcSingleCode,xmdm,performInfo,kfArr,getTranslateProject,getSbxh} = this;
|
||||
const {lsh,startHourTime,totalScore} = judgeUI;
|
||||
const examType = isExam?examSubject:0;
|
||||
@ -716,25 +720,36 @@ export default class Judge{
|
||||
const {jd,wd, hxj, fyj, hbg,} = gps
|
||||
const translateProject = getTranslateProject();
|
||||
const sbxh = getSbxh(xmdm,xmxh)
|
||||
console.log('sbxhsbxh',sbxh)
|
||||
const {carzt,dcjl,qjjl,dxjl,bxjl} = performInfo;
|
||||
console.log('performInfo',JSON.stringify(performInfo))
|
||||
// const asclshArr = stringToASC(lsh);
|
||||
const asclshArr = stringToASC(fillZero('0000000000000' || 0, 13));
|
||||
|
||||
const asclshArr = stringToASC(lsh);
|
||||
//13不足要补0
|
||||
const ascksyhArr = stringToASC(fillZero(ksyh || 0,13))
|
||||
const ascsbxhArr = stringToASC(sbxh)
|
||||
const translateSignals = getTranslateSignals(
|
||||
[zfxd, yfxd, shtd, ygd, jgd, skd, dh1, dh2, lhq, jsc,ssc,fsc, lb, mkg, aqd, 0,0,0,0 ].concat(getCarStatusType(carzt)).concat([ ygq, sensor.wd, 0 ])
|
||||
)
|
||||
console.log('jinweidu111jdwd0')
|
||||
|
||||
//@ts-ignore
|
||||
const translateJd = convertGpsCoord2(wd).toFixed(7) * Math.pow(10,7)
|
||||
const translateJd = convertGpsCoord2(wd).toFixed(7) * Math.pow(10,7);
|
||||
//@ts-ignore
|
||||
const translateWd = convertGpsCoord2(jd).toFixed(7) * Math.pow(10,7)
|
||||
const translateWd = convertGpsCoord2(jd).toFixed(7) * Math.pow(10, 7)
|
||||
console.log('jinweidu111jdwd')
|
||||
//@ts-ignore
|
||||
const translateProjects= translateProject.map(num => string2Bytes(num,8)[0])
|
||||
const translateProjects = translateProject.map(numStr => string2Bytes(parseInt(numStr, 2), 8)[0])
|
||||
|
||||
//@ts-ignore
|
||||
// const translateProjects= translateProject.map(num => string2Bytes(p,8)[0])
|
||||
console.log('jinweidu2222',`${examType}${startHourTime}`)
|
||||
const arr = [
|
||||
//考生号 TODO 考试员号
|
||||
asclshArr.map(lsh => string2Bytes(lsh,8)[0]), ascksyhArr.map(ksyh => string2Bytes(ksyh,8)[0]),
|
||||
asclshArr.map(lsh => string2Bytes(lsh,8)[0]),
|
||||
//考试员号
|
||||
ascksyhArr.map(ksyh => string2Bytes(ksyh,8)[0]),
|
||||
//科目类型(0:未考试 1:科目二 2:科目三) + 考试开始时间
|
||||
string2Bytes(`${examType}${startHourTime}`,4 * 8),
|
||||
// TODO 消息序号从1开始,0结束
|
||||
@ -760,16 +775,20 @@ export default class Judge{
|
||||
string2Bytes(Math.floor((dcjl + qjjl)/100),2*8),
|
||||
//扣分
|
||||
string2Bytes(100 - Math.abs(totalScore),2*8),
|
||||
//扣分数
|
||||
//todo扣分值/扣分项
|
||||
string2Bytes(0, 2 * 8),
|
||||
//扣分项数量
|
||||
string2Bytes(kfArr.length,8),
|
||||
string2Bytes(kfArr.length,8),
|
||||
//n个扣分序号
|
||||
|
||||
kfArr.map(kf => string2Bytes(kf.kfxh,8)[0])
|
||||
]
|
||||
|
||||
let tempArr = [];
|
||||
arr.forEach(itemArr =>{ tempArr = tempArr.concat(itemArr)})
|
||||
|
||||
this.serialIndex += 1;
|
||||
console.log('kmkmkm2',tempArr.length)
|
||||
return Array2Byte(tempArr)
|
||||
}
|
||||
|
||||
@ -797,7 +816,7 @@ export default class Judge{
|
||||
sfyk:0,
|
||||
ykkkcs:1,
|
||||
//TODO 考试路线待修改
|
||||
wayno:1,
|
||||
wayno:3,
|
||||
czlx:0,
|
||||
kskssj:await systemTime.getCurrentTime(),
|
||||
ksxm:projects.map(project=>{
|
||||
@ -858,12 +877,12 @@ export default class Judge{
|
||||
const {cdsbInfoObj,projectsObj} = judgeUI;
|
||||
const project = projectsObj[ksxm]
|
||||
if(project === undefined){
|
||||
return '0000000000'
|
||||
return '00000000'
|
||||
}
|
||||
const projectType = project.sbxh;
|
||||
const projectKey = `${ksxm}_${xmxh}`;
|
||||
const currentCdsb = cdsbInfoObj[projectKey] || {};
|
||||
const sbxh = currentCdsb.sbbh || '0000000000'
|
||||
const sbxh = currentCdsb.sbbh || '00000000'
|
||||
return sbxh
|
||||
}
|
||||
|
||||
@ -882,18 +901,18 @@ export default class Judge{
|
||||
|
||||
// 中心所有项目转换
|
||||
getTranslateProject = () => {
|
||||
const {testKmItems} = this;
|
||||
// const {testKmItems} = this;
|
||||
const tempItems = testKmItems.map(item=>{
|
||||
const current = testKmItems[item.code];
|
||||
const current = this.testKmItems[item.code];
|
||||
return {
|
||||
code:item.code,
|
||||
status:getCenterProjectStatus(current.status)
|
||||
}
|
||||
})
|
||||
const len = Math.floor(tempItems.length / 4);
|
||||
const len = Math.floor(tempItems.length / 8);
|
||||
const arr = [];
|
||||
for(let i = 0;i <= len;i++){
|
||||
const temp = tempItems.slice( i*4 , (i+1)*4 );
|
||||
const temp = tempItems.slice( i*8 , (i+1)*8 );
|
||||
let tempArr = temp.map(item => item.status)
|
||||
if(i === 4){
|
||||
tempArr = tempArr.concat(['00','00'])
|
||||
|
||||
@ -8,7 +8,8 @@ export const judgeConfig = {
|
||||
udpOpen:false,
|
||||
// 本地模型地址
|
||||
modelPath: 'models/model_enc',
|
||||
trajectoryPath: 'logs/2024_05_14/0000000000001_342323199501470011_测试学员1_2024_05_14_11_28_31/judge_exam_data.txt'
|
||||
// 轨迹回放地址
|
||||
trajectoryPath: 'logs/2024_06_18/0000000000001_342323199501470011_测试学员1_2024_06_18_14_32_25/judge_exam_data.txt'
|
||||
}
|
||||
|
||||
//0000000000001_342323199501470011_测试学员1_2024_04_28_10_59_44
|
||||
@ -17,7 +18,6 @@ export const judgeConfig = {
|
||||
|
||||
// 济南轨迹回放
|
||||
// test_sub3_car_test_jinan-32038219990808021X-20240322173643.txt
|
||||
|
||||
// test_sub3_car_test_jinan-32038219990808021X-20240322173643.track
|
||||
// 2024_01_24_11_30_06_2210707689316_620502199005070478_马鸣五
|
||||
// 2024_01_24_10_25_41_2231212226990_330184200208281821_金晓婷
|
||||
@ -1,4 +1,5 @@
|
||||
import media from '@ohos.multimedia.media';
|
||||
import prompt from '@ohos.prompt';
|
||||
|
||||
const TAG = 'VoiceAnnounce'
|
||||
|
||||
@ -18,7 +19,6 @@ export default class VoiceAnnounce{
|
||||
async playAudio(urls:string[],shit,callback:Function){
|
||||
const {isStopped,queue} = this;
|
||||
this.callback = callback
|
||||
console.info('surenjun',JSON.stringify(callback))
|
||||
if(shit){
|
||||
//队列清空,重新初始化
|
||||
this.isStopped = true;
|
||||
@ -45,6 +45,7 @@ export default class VoiceAnnounce{
|
||||
await go()
|
||||
return
|
||||
}
|
||||
|
||||
await avPlayer.play(queue[0],callback);
|
||||
this.queue.shift();
|
||||
console.info(TAG,JSON.stringify(this.queue),'堆栈弹出');
|
||||
@ -73,14 +74,22 @@ class AVPlayer {
|
||||
this.endCallback = callback
|
||||
const avPlayer = await media.createAVPlayer();
|
||||
this.avPlayer = avPlayer;
|
||||
return new Promise(async (resolve)=>{
|
||||
return new Promise(async (resolve,reject) => {
|
||||
let url = ''
|
||||
await this.setAVPlayerCallback(()=>{
|
||||
//@ts-ignore
|
||||
resolve()
|
||||
});
|
||||
let url = await globalThis.context.resourceManager.getRawFd(name)
|
||||
this.avPlayer.fdSrc = url;
|
||||
|
||||
try {
|
||||
url = await globalThis.context.resourceManager.getRawFd(name);
|
||||
this.avPlayer.fdSrc = url;
|
||||
} catch (e) {
|
||||
prompt.showToast({
|
||||
message: `${name}语音文件不存在`,
|
||||
duration: 4000
|
||||
});
|
||||
resolve(1)
|
||||
}
|
||||
})
|
||||
}
|
||||
//音频播放队列
|
||||
|
||||
@ -1,55 +1,56 @@
|
||||
// import AccountTable from '../common/database/tables/AccountTable';
|
||||
// import worker from '@ohos.worker';
|
||||
// import { getDataBaseTable, upDateTable, getMySystemSetTable,getSyncData } from '../common/service/initable'
|
||||
// import MA_SYSSET from '../common/constants/MA_SYSSET';
|
||||
//
|
||||
//
|
||||
// async function upDateTableFn(data) {
|
||||
//
|
||||
// // let flag
|
||||
// await upDateTable({ tableName: 'MA_MARKRULE' },)
|
||||
// await upDateTable({ tableName: 'MA_SYSTEMPARM' },)
|
||||
//
|
||||
// await upDateTable({ tableName: 'MA_MAP_COLLECT' },data)
|
||||
//
|
||||
// await upDateTable({ tableName: 'MA_MAP_COLLECT_SHAPE' },data)
|
||||
// await upDateTable({ tableName: 'MA_MAP_ITEMCLASS' },data)
|
||||
//
|
||||
// await upDateTable({ tableName: 'MA_MAP_POINT' },data)
|
||||
//
|
||||
// await upDateTable({ tableName: 'MA_MAP_POINT_ITEM' },data)
|
||||
//
|
||||
// await upDateTable({ tableName: 'MA_MAP_ROAD' },data)
|
||||
// await upDateTable({ tableName: 'MA_MAP_ROAD_LANE' },data)
|
||||
// await upDateTable({ tableName: 'MA_MAP_SUBITEM' },data)
|
||||
// await upDateTable({ tableName: 'ES_CARINFO' },data)
|
||||
// await upDateTable({ tableName: 'ES_EXAMPOINTDETAIL' },data)
|
||||
// await upDateTable({ tableName: 'MA_MARKRULESET' },data)
|
||||
// await upDateTable({ tableName: 'ES_CAR_VIDEO_PARAMETER' },data)
|
||||
// await upDateTable({ tableName: 'MA_CDSBINFO' },data)
|
||||
// await upDateTable({ tableName: 'MA_ITEMINFO' },data)
|
||||
// await upDateTable({ tableName: 'MA_T_CARPARMSET' },data)
|
||||
// workerPort.postMessage("receive data from main.js");
|
||||
//
|
||||
//
|
||||
// }
|
||||
// const workerPort = worker.workerPort;
|
||||
// workerPort.onmessage = function(e){
|
||||
// let data = e
|
||||
// console.log('e.data',e.data)
|
||||
// upDateTableFn(e.data);
|
||||
// }
|
||||
// //console.log('1111111111')
|
||||
// //accountTable.getRdbStore(() => {
|
||||
// // accountTable.query(0, (result) => {
|
||||
// //// this.accounts = result;
|
||||
// // }, true);
|
||||
// //});
|
||||
// //parentPort.onmessage = function(e){
|
||||
// // accountTable.insertData({ id: 0, accountType: 0, typeText: '', amount: 0 }, (id) => {
|
||||
// // parentPort.postMessage("receive data from main.js")
|
||||
// //// newAccount.id = id;
|
||||
// //// this.accounts.push(newAccount);
|
||||
// // });
|
||||
// //
|
||||
// //}
|
||||
/*
|
||||
* Copyright (c) 2023 Huawei Device Co., Ltd.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import worker, { MessageEvents } from '@ohos.worker';
|
||||
import zlib from '@ohos.zlib';
|
||||
import request from '@ohos.request';
|
||||
import type common from '@ohos.app.ability.common';
|
||||
import ConvertXML from '@ohos.convertxml';
|
||||
import xml from '@ohos.xml';
|
||||
import hilog from '@ohos.hilog';
|
||||
import { getDoubleCeneterTable, getSingleCenterTable } from '../common/service/indexService';
|
||||
import { initTableParam } from '../pages/interfaces';
|
||||
|
||||
let workerPort = worker.workerPort;
|
||||
|
||||
workerPort.onmessage = (e: MessageEvents): void => {
|
||||
let param:initTableParam = e.data;
|
||||
console.log('baoyihu,onmessage',JSON.stringify(param))
|
||||
if(param.mode=='1'){
|
||||
//单中心
|
||||
getSingleCenterTable(param).then((ret) => {
|
||||
if (ret) {
|
||||
workerPort.postMessage({ isComplete: true });
|
||||
}else{
|
||||
workerPort.postMessage({ isComplete: false });
|
||||
}
|
||||
})
|
||||
}else if(param.mode=='3'){
|
||||
//双中心
|
||||
getDoubleCeneterTable(param).then((ret)=>{
|
||||
if (ret) {
|
||||
workerPort.postMessage({ isComplete: true });
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// worker线程向主线程发送信息
|
||||
//let context: common.UIAbilityContext = e.data.context;
|
||||
|
||||
|
||||
|
||||
// workerPort.postMessage({ isComplete: true, jsonStr: result });
|
||||
|
||||
};
|
||||
Loading…
x
Reference in New Issue
Block a user