forked from harmony_car/subject-two
22
This commit is contained in:
parent
5992d0493d
commit
4c2515c1fb
@ -9,7 +9,7 @@ export async function timeSynchronization(params){
|
||||
<head><time>${params.time}</time></head>
|
||||
<body><deviceNo>${params.deviceNo}</deviceNo>
|
||||
<shellVersion>${params.version}</shellVersion>
|
||||
<judgeVersion>${params.version}</judgeVersion>
|
||||
<judgeVersion>${params.judgeVersion}</judgeVersion>
|
||||
</body>
|
||||
</timeSynchronizationReq>`,
|
||||
method:'post',
|
||||
|
||||
@ -170,7 +170,7 @@ export default class Rdb {
|
||||
return
|
||||
}
|
||||
console.log('ExecuteSqlsuccess')
|
||||
callback('ExecuteSqlsuccess')
|
||||
callback(true)
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
127
entry/src/main/ets/common/service/indexService.ts
Normal file
127
entry/src/main/ets/common/service/indexService.ts
Normal file
@ -0,0 +1,127 @@
|
||||
// @ts-nocheck
|
||||
import promptAction from '@ohos.promptAction'
|
||||
import router from '@ohos.router'
|
||||
import { dateFormat} from '../utils/tools'
|
||||
import FileUtil from '../../common/utils/File'
|
||||
import AccountTable from '../../common/database/tables/AccountTable';
|
||||
import MA_SYSSET from '../../common/constants/MA_SYSSET';
|
||||
import {
|
||||
getDataBaseTable,
|
||||
upDateTable,
|
||||
getMySystemSetTable,
|
||||
delSyncTable,
|
||||
upDataZhongxinginitialization
|
||||
} from '../../common/service/initable'
|
||||
import configAddress from '../../common/utils/FileConfig'
|
||||
//配置流水号
|
||||
export async function setliushuiNum(context){
|
||||
const fileUtil = new FileUtil(context)
|
||||
let res = fs.accessSync(configAddress.comoonfileWriteAddress+'/config/liushui.txt');
|
||||
const fileData = await fileUtil.readFile(configAddress.comoonfileWriteAddress+'/config/liushui.txt');
|
||||
if(res&&JSON.stringify(fileData).indexOf('u0000')<0) {
|
||||
const date = new Date()
|
||||
const time1 = JSON.parse(fileData).date.split(' ')[0]
|
||||
const time2 = dateFormat(date).split(' ')[0]
|
||||
if (time1 == time2) {
|
||||
const date = new Date()
|
||||
const param = {
|
||||
date: dateFormat(date),
|
||||
value: Number(JSON.parse(fileData).value) + 1
|
||||
}
|
||||
const folderPath = await fileUtil.initFolder(`/config`);
|
||||
fileUtil.addFile(`${folderPath}/liushui.txt`, JSON.stringify(param))
|
||||
return
|
||||
}
|
||||
}
|
||||
const date = new Date()
|
||||
const param = {
|
||||
date: dateFormat(date),
|
||||
value: 0
|
||||
}
|
||||
const folderPath = await fileUtil.initFolder(`/config`);
|
||||
fileUtil.addFile(`${folderPath}/liushui.txt`, JSON.stringify(param))
|
||||
}
|
||||
|
||||
//双中心表
|
||||
export async function getDoubleCeneterTable() {
|
||||
return new Promise(async (reslove,reject)=>{
|
||||
// MA_SYSSET双中心下做合并表格操作
|
||||
const db = new AccountTable(() => {
|
||||
}, MA_SYSSET);
|
||||
db.getRdbStore(() => {
|
||||
db.query('0', async (array) => {
|
||||
if (array.length) {
|
||||
delSyncTable('MA_SYSSET').then(async () => {
|
||||
await getDataBaseTable({ tableName: 'MA_SYSSET' })
|
||||
await getMySystemSetTable({ tableName: 'MA_SYSSET' })
|
||||
})
|
||||
} else {
|
||||
await getDataBaseTable({ tableName: 'MA_SYSSET' })
|
||||
await getMySystemSetTable({ tableName: 'MA_SYSSET' })
|
||||
}
|
||||
})
|
||||
})
|
||||
const typeObj = {
|
||||
'MA_MARKRULE': false,
|
||||
'MA_SYSTEMPARM': false,
|
||||
'MA_MAP_COLLECT': false,
|
||||
'MA_MAP_COLLECT_SHAPE': false,
|
||||
'MA_MAP_ITEMCLASS': false,
|
||||
'MA_MAP_POINT': false,
|
||||
'MA_MAP_POINT_ITEM': false,
|
||||
'MA_MAP_ROAD': false,
|
||||
'MA_MAP_ROAD_LANE': false,
|
||||
'MA_MAP_SUBITEM': false,
|
||||
'ES_CARINFO': false,
|
||||
'ES_EXAMPOINTDETAIL': false,
|
||||
'MA_MARKRULESET': false,
|
||||
'ES_CAR_VIDEO_PARAMETER': false,
|
||||
'MA_CDSBINFO': false,
|
||||
'MA_ITEMINFO': false,
|
||||
'MA_T_CARPARMSET': false
|
||||
}
|
||||
for(let key in typeObj){
|
||||
typeObj[key] = await upDateTable({ tableName: key })
|
||||
if (!typeObj[key]) {
|
||||
promptAction.showToast({
|
||||
message: `未能查询到${key}表数据, 请先检查网络是否连接正常`,
|
||||
duration: 3000
|
||||
});
|
||||
reslove(false)
|
||||
return
|
||||
}
|
||||
}
|
||||
reslove(true)
|
||||
router.pushUrl({
|
||||
url: 'pages/ExaminerLogin',
|
||||
}, router.RouterMode.Single);
|
||||
})
|
||||
|
||||
}
|
||||
//单中心存表
|
||||
export async function getSingleCenterTable() {
|
||||
return new Promise((reslove,reject)=>{
|
||||
upDataZhongxinginitialization().then((flag)=>{
|
||||
if(flag){
|
||||
router.pushUrl({
|
||||
url: 'pages/ExaminerLogin',
|
||||
}, router.RouterMode.Single)
|
||||
reslove(true)
|
||||
}else{
|
||||
// router.pushUrl({
|
||||
// url: 'pages/ExaminerLogin',
|
||||
// }, router.RouterMode.Single)
|
||||
// reslove(true)
|
||||
promptAction.showToast({
|
||||
message: '联网更新失败,请检查网络后重新更新',
|
||||
duration: 1000
|
||||
});
|
||||
reslove(false)
|
||||
}
|
||||
}).catch((error)=>{
|
||||
console.log(error)
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
}
|
||||
@ -73,10 +73,9 @@ const centerToMap={
|
||||
// 'ES_CAR_VIDEO_PARAMETER':ES_CAR_VIDE0pO_PARAMETER
|
||||
}
|
||||
function sqlInsertCommonFn(tableName,resultArr){
|
||||
new Promise((reslove,reject)=>{
|
||||
|
||||
return new Promise((resolve,reject)=>{
|
||||
const accountTable = new AccountTable(() => {
|
||||
}, map[params.tableName]);
|
||||
}, map[tableName]);
|
||||
accountTable.getRdbStore(() => {
|
||||
accountTable.query('0', async (result) => {
|
||||
if (result.length == 0) {
|
||||
@ -93,7 +92,7 @@ function sqlInsertCommonFn(tableName,resultArr){
|
||||
str+=`"${data[res]||'1'}"`+','
|
||||
}
|
||||
})
|
||||
if(i==res.body[tableName].length-1){
|
||||
if(i==resultArr.length-1){
|
||||
str+=')'
|
||||
}else{
|
||||
str+='),'
|
||||
@ -101,8 +100,8 @@ function sqlInsertCommonFn(tableName,resultArr){
|
||||
INSERT_SQL+=str
|
||||
})
|
||||
|
||||
accountTable.sqlOperate(INSERT_SQL,tableName,()=>{
|
||||
resolve(true)
|
||||
accountTable.sqlOperate(INSERT_SQL,tableName,(val)=>{
|
||||
resolve(val)
|
||||
})
|
||||
|
||||
}
|
||||
@ -121,7 +120,7 @@ function sqlInsertCommonFn(tableName,resultArr){
|
||||
str+=`"${data[res]||'1'}"`+','
|
||||
}
|
||||
})
|
||||
if(i==res.body[tableName].length-1){
|
||||
if(i==resultArr.length-1){
|
||||
str+=')'
|
||||
}else{
|
||||
str+='),'
|
||||
@ -129,8 +128,8 @@ function sqlInsertCommonFn(tableName,resultArr){
|
||||
INSERT_SQL+=str
|
||||
})
|
||||
|
||||
accountTable.sqlOperate(INSERT_SQL,tableName,()=>{
|
||||
resolve(true)
|
||||
accountTable.sqlOperate(INSERT_SQL,tableName,(val)=>{
|
||||
resolve(val)
|
||||
})
|
||||
}
|
||||
}, true);
|
||||
@ -200,7 +199,7 @@ export async function getDataBaseTable(params) {
|
||||
}
|
||||
|
||||
export async function upDateTable(params) {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
const date = new Date()
|
||||
let paraKdid=''
|
||||
let examinationRoomId=''
|
||||
@ -220,14 +219,19 @@ export async function upDateTable(params) {
|
||||
}
|
||||
}
|
||||
const url=globalThis.timeInfo.url
|
||||
let res: any = await initCenterCache(str,url)
|
||||
if(!res||res==undefined||res==''){
|
||||
resolve(false)
|
||||
return
|
||||
}
|
||||
const result=await sqlInsertCommonFn(params.tableName,res.body[params.tableName])
|
||||
resolve(result)
|
||||
|
||||
initCenterCache(str,url).then(async (res)=>{
|
||||
if(!res||res==undefined||res==''){
|
||||
resolve(false)
|
||||
return
|
||||
}
|
||||
try {
|
||||
const result=await sqlInsertCommonFn(params.tableName,res.body[params.tableName])
|
||||
resolve(result)
|
||||
}catch (error){
|
||||
console.log(error)
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
@ -238,7 +242,7 @@ export async function upDateTableConfig(tableName,arr) {
|
||||
}
|
||||
//考试平台
|
||||
export async function getMySystemSetTable(params) {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
const date = new Date()
|
||||
if(!globalThis.timeInfo?.paraKdid){
|
||||
prompt.showToast({
|
||||
@ -255,13 +259,17 @@ export async function getMySystemSetTable(params) {
|
||||
"typeRsp": "0" // 赋默认值0,无需改变
|
||||
}
|
||||
}
|
||||
let res: any = await initCenterCacheByKSPT(str)
|
||||
if( res.body[params.tableName].length==0){
|
||||
resolve();
|
||||
return
|
||||
}
|
||||
const result=sqlInsertCommonFn(params.tableName,res.body[params.tableName])
|
||||
resolve(result)
|
||||
initCenterCacheByKSPT(str).then((res)=>{
|
||||
if( res.body[params.tableName].length==0){
|
||||
resolve();
|
||||
return
|
||||
}
|
||||
sqlInsertCommonFn(params.tableName,res.body[params.tableName]).then((result)=>{
|
||||
resolve(result)
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
})
|
||||
|
||||
}
|
||||
@ -343,7 +351,7 @@ export async function getEsCarModel(context){
|
||||
}
|
||||
|
||||
export async function upDataZhongxinginitialization(){
|
||||
return new Promise(async (resolve, reject) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
if(!globalThis.carInfo?.carId){
|
||||
|
||||
resolve(false)
|
||||
@ -356,28 +364,33 @@ export async function upDataZhongxinginitialization(){
|
||||
judgeVersion:globalThis.judgeVersion,
|
||||
shellVersion: globalThis.version
|
||||
}
|
||||
let res: any = await initialization(str)
|
||||
if(!res){
|
||||
|
||||
resolve(false)
|
||||
return
|
||||
}
|
||||
let flag
|
||||
for(let key in res.initializationRsp.body){
|
||||
if(!centerToMap[key]){
|
||||
continue
|
||||
}
|
||||
flag = await setSyncCenterSqlData(key,res)
|
||||
if(!flag){
|
||||
initialization(str).then(async(res)=>{
|
||||
if(!res){
|
||||
resolve(false)
|
||||
return
|
||||
}
|
||||
}
|
||||
resolve(true)
|
||||
let flag
|
||||
for(let key in res.initializationRsp.body){
|
||||
if(!centerToMap[key]){
|
||||
continue
|
||||
}
|
||||
try{
|
||||
flag= await setSyncCenterSqlData(key,res)
|
||||
}catch (error){
|
||||
console.log(error)
|
||||
}
|
||||
if(!flag){
|
||||
resolve(false)
|
||||
return
|
||||
}
|
||||
}
|
||||
resolve(true)
|
||||
})
|
||||
|
||||
})
|
||||
}
|
||||
function setSyncCenterSqlData(key,res){
|
||||
return new Promise(async (resolve,reject)=>{
|
||||
return new Promise((resolve,reject)=>{
|
||||
const mapName={
|
||||
'ItemInfo':'MA_ITEMINFO',
|
||||
'MarkRule':'MA_MARKRULE',
|
||||
@ -406,7 +419,18 @@ function setSyncCenterSqlData(key,res){
|
||||
}else{
|
||||
arrList=[res.initializationRsp.body[key].record]
|
||||
}
|
||||
const reslut=await sqlInsertCommonFn(mapName[key],arrList)
|
||||
resolve(reslut)
|
||||
res
|
||||
sqlInsertCommonFn(mapName[key],arrList).then((result)=>{
|
||||
console.log(key,'表建立成功')
|
||||
if(result){
|
||||
resolve(true)
|
||||
}else{
|
||||
resolve(false)
|
||||
}
|
||||
}).catch((msg)=>{
|
||||
reject(false)
|
||||
console.log(msg)
|
||||
})
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
@ -4,23 +4,23 @@ import { dateFormat} from '../utils/tools'
|
||||
|
||||
//获取设备信息
|
||||
export async function getDeviceInfo() {
|
||||
// globalThis.deviceNo = 'J43405J003101'; //设备mac
|
||||
// globalThis.deviceNo = 'FE-FC-FE-7C-5C-77'; //设备mac
|
||||
// globalThis.diskId = '1231231231'; //硬盘号
|
||||
// globalThis.hasAuth = true;
|
||||
globalThis.deviceNo = 'J43405J003101'; //设备mac
|
||||
globalThis.deviceNo = 'FE-FC-FE-7C-5C-77'; //设备mac
|
||||
globalThis.diskId = '1231231231'; //硬盘号
|
||||
globalThis.hasAuth = true;
|
||||
//
|
||||
// return null
|
||||
return new Promise((resolve, reject) => {
|
||||
getSyncData('DeviceInfoTable').then((result: Array<any>) => {
|
||||
if (result.length) {
|
||||
globalThis.deviceNo = result[0].deviceId
|
||||
this.deviceId = result[0].deviceId
|
||||
resolve(result[0].deviceId)
|
||||
} else {
|
||||
resolve('')
|
||||
}
|
||||
})
|
||||
})
|
||||
// return new Promise((resolve, reject) => {
|
||||
// getSyncData('DeviceInfoTable').then((result: Array<any>) => {
|
||||
// if (result.length) {
|
||||
// globalThis.deviceNo = result[0].deviceId
|
||||
// this.deviceId = result[0].deviceId
|
||||
// resolve(result[0].deviceId)
|
||||
// } else {
|
||||
// resolve('')
|
||||
// }
|
||||
// })
|
||||
// })
|
||||
}
|
||||
|
||||
//获取考车信息
|
||||
|
||||
@ -7,7 +7,7 @@ export async function timeSynchronize() {
|
||||
let date = new Date();
|
||||
console.info('jiangsong1:timeSynchronization begin ' );
|
||||
|
||||
let params = { time: dateFormat(date), deviceNo: globalThis.deviceNo,version:globalThis.version}
|
||||
let params = { time: dateFormat(date), deviceNo: globalThis.deviceNo,version:globalThis.version,judgeVersion:globalThis.judgeVersion}
|
||||
let res:any = await timeSynchronization(params)
|
||||
res = res.timeSynchronizationRsp;
|
||||
globalThis.timeInfo=res.body
|
||||
|
||||
124
entry/src/main/ets/common/service/videoService.ts
Normal file
124
entry/src/main/ets/common/service/videoService.ts
Normal file
@ -0,0 +1,124 @@
|
||||
import mediaLibrary from '@ohos.multimedia.mediaLibrary'
|
||||
import onvifclient from '@ohos.onvifclient';
|
||||
import fs from '@ohos.file.fs'
|
||||
import util from '@ohos.util';
|
||||
import configAddress from '../../common/utils/FileConfig'
|
||||
import {getCurrentTime} from '../utils/tools'
|
||||
//开始录屏
|
||||
export async function startRecordVideo(param,td,context) {
|
||||
return new Promise<videoPlayRes>(async (reslove,reject)=>{
|
||||
var video_uri = `rtsp://${param.userName}:${param.pwd}@${param.ip}:${param.port}/h264/ch${td}/main/av_stream`;
|
||||
// var result3 = onvifclient.startRecordVideo(video_uri, "video/" );
|
||||
// const record_handle = result3.dataInt;
|
||||
// console.info( `baoyihu startRecordVideo result:`+result3.result+ ` VideoFile:`+result3.dataString );
|
||||
// reslove(record_handle)
|
||||
// return
|
||||
var mediaTest = mediaLibrary.getMediaLibrary(context);
|
||||
let mediaType = mediaLibrary.MediaType.VIDEO;
|
||||
let DIR_DOCUMENTS = mediaLibrary.DirectoryType.DIR_VIDEO;
|
||||
const num = Math.floor(Math.random() * 10000)
|
||||
const name = `movie_record${getCurrentTime(1)}.mp4`
|
||||
const path = await mediaTest.getPublicDirectory(DIR_DOCUMENTS);
|
||||
mediaTest.createAsset(mediaType, name, path, (error, asset) => {
|
||||
const file_asset = asset; // 记录 ,关闭时用到
|
||||
asset.open('rw', (error, fd) => {
|
||||
if (fd > 0) {
|
||||
var file_path = configAddress.videoSavePath + name;
|
||||
var result = onvifclient.startRecordVideo(video_uri, file_path, fd);
|
||||
var rocord_handle = result.dataInt; // 记录 ,关闭时用到
|
||||
reslove({fd,rocord_handle,file_asset})
|
||||
} else {
|
||||
reslove({fd:0,rocord_handle:0,file_asset:0})
|
||||
console.error('baoyihu startRecordVideo File Open failed with error: ' + error);
|
||||
}
|
||||
});
|
||||
});
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
//结束录屏
|
||||
export async function endRecordVideo(record_handle) {
|
||||
if(this.record_handle >0)
|
||||
{
|
||||
var result = onvifclient.endRecordVideo(record_handle);
|
||||
// this.record_handle = -1;
|
||||
console.info( `baoyihu endRecordVideo result:`+result.result+ ` VideoFile:`+result.dataString );
|
||||
}
|
||||
else
|
||||
{
|
||||
console.info( `baoyihu endRecordVideo no task error`);
|
||||
}
|
||||
// var result = onvifclient.endRecordVideo(filehandle);
|
||||
// fs.closeSync(filehandle);
|
||||
// file_asset.close(filehandle);
|
||||
|
||||
}
|
||||
/**
|
||||
*拍照
|
||||
* @param param
|
||||
* @param context
|
||||
* @param type=0不获取base64
|
||||
*/
|
||||
export async function takePhoto(param,context,type=0) {
|
||||
return new Promise(async (reslove,reject)=>{
|
||||
var video_uri = `rtsp://${param.userName}:${param.pwd}@${param.ip}:${param.port}/h264/ch${param.pztd}/main/av_stream`;
|
||||
|
||||
var mediaTest = mediaLibrary.getMediaLibrary(context);
|
||||
let mediaType = mediaLibrary.MediaType.IMAGE;
|
||||
let DIR_DOCUMENTS = mediaLibrary.DirectoryType.DIR_IMAGE;
|
||||
const path = await mediaTest.getPublicDirectory(DIR_DOCUMENTS);
|
||||
const name="picture_record" + getCurrentTime(1) + ".jpg"
|
||||
// if(type==1){
|
||||
// var result = onvifclient.getVideoSnapshot(video_uri,"")
|
||||
// reslove(result.dataString)
|
||||
// }else{
|
||||
// var result = onvifclient.getVideoSnapshot(video_uri,"")
|
||||
// reslove('')
|
||||
// }
|
||||
// return
|
||||
mediaTest.createAsset(mediaType, name, path, (error, asset) => {
|
||||
asset.open('rw', (error, fd) => {
|
||||
if (fd > 0) {
|
||||
var file_path =configAddress.picSavePath + name
|
||||
// var result3 = onvifclient.getVideoSnapshot(video_uri,"");
|
||||
var result3 = onvifclient.getVideoSnapshot(video_uri, file_path, fd);
|
||||
fs.closeSync(fd);
|
||||
asset.close(fd);
|
||||
if(type==1){
|
||||
fs.lstat(file_path).then((stat) => {
|
||||
let file = fs.openSync(file_path, fs.OpenMode.READ_WRITE);
|
||||
const size = Number(stat.size) + 100
|
||||
let buf = new ArrayBuffer(size);
|
||||
let num = fs.readSync(file.fd, buf);
|
||||
var that = new util.Base64();
|
||||
var array = new Uint8Array(buf);
|
||||
var result = that.encodeToStringSync(array); //base64圖片
|
||||
mediaTest.deleteAsset(file_path).then(() => {
|
||||
console.log('delSuccess')
|
||||
}).catch(() => {
|
||||
console.log('delError')
|
||||
})
|
||||
this.fileUtil.deleteF(file_path, 3)
|
||||
reslove(result)
|
||||
}).catch((err) => {
|
||||
console.info("get link status failed with error message: " + err.message + ", error code: " + err.code);
|
||||
});
|
||||
}else{
|
||||
reslove('')
|
||||
}
|
||||
} else {
|
||||
console.error('baoyihu getVideoSnapshot File Open failed with error: ' + error);
|
||||
}
|
||||
});
|
||||
});
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
export interface videoPlayRes {
|
||||
rocord_handle?: number;
|
||||
fd?: number;
|
||||
file_asset?:any
|
||||
}
|
||||
|
||||
5
entry/src/main/ets/common/utils/FileConfig.ts
Normal file
5
entry/src/main/ets/common/utils/FileConfig.ts
Normal file
@ -0,0 +1,5 @@
|
||||
export default {
|
||||
comoonfileWriteAddress:'/mnt/hmdfs/100/account/device_view/localfiles/files',
|
||||
videoSavePath:'/mnt/hmdfs/100/account/device_view/local/files/Videos/',
|
||||
picSavePath:'/mnt/hmdfs/100/account/device_view/local/files/Pictures/'
|
||||
}
|
||||
@ -38,7 +38,7 @@ export default class UdpClientByCenter {
|
||||
private sendId: any = 0
|
||||
private lsh: string = null
|
||||
private context
|
||||
|
||||
private stashFn
|
||||
constructor(udplocalIp: string, udplocalIpPort:string,udpOppositeIp: string,udpOppositeIpPort:string) {
|
||||
this.localIp = udplocalIp
|
||||
this.oppositeIp = udpOppositeIp
|
||||
@ -177,6 +177,7 @@ export default class UdpClientByCenter {
|
||||
port: parseInt(this.oppositeIpPort),
|
||||
}
|
||||
});
|
||||
this.stashFn=param.callback?param.callback:()=>{}
|
||||
promise.then(() => {
|
||||
if(this.sendId=='46'&¶m.callback){
|
||||
param.callback()
|
||||
@ -203,7 +204,8 @@ export default class UdpClientByCenter {
|
||||
for(let i=9;i<=9+length-1;i++){
|
||||
list.push(arr[i])
|
||||
}
|
||||
|
||||
this.stashFn({id,length,body:list,sendId:this.sendId})
|
||||
this.stashFn=()=>{}
|
||||
callback({id,length,body:list,sendId:this.sendId})
|
||||
|
||||
});
|
||||
|
||||
@ -29,7 +29,7 @@ export default class EntryAbility extends UIAbility {
|
||||
globalThis.deviceNo = '';
|
||||
globalThis.hasAuth = false
|
||||
globalThis.version = '2024.11.22.14'
|
||||
globalThis.judgeVersion = '2023.10.31.17'
|
||||
globalThis.judgeVersion = '2024.11.22.14'
|
||||
// globalThis.version = '2022.03.14.01'
|
||||
|
||||
globalThis.context = this.context;
|
||||
|
||||
@ -3,34 +3,17 @@ 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 {Array2Byte} from '../common/utils/tools'
|
||||
import {Array2Byte,string2Bytes} from '../common/utils/tools'
|
||||
import {
|
||||
getDataBaseTable,
|
||||
upDateTable,
|
||||
getMySystemSetTable,
|
||||
getSyncData,
|
||||
delSyncTable,
|
||||
getEsCarModel,
|
||||
upDataZhongxinginitialization
|
||||
} from '../common/service/initable'
|
||||
import prompt from '@ohos.prompt'
|
||||
import { dateFormat } from '../common/utils/tools'
|
||||
import deviceManager from '@ohos.distributedHardware.deviceManager'
|
||||
import AccountTable from '../common/database/tables/AccountTable';
|
||||
import MA_SYSSET from '../common/constants/MA_SYSSET';
|
||||
|
||||
import { getUDP, getUDP2 } from '../common/utils/GlobleUdp'
|
||||
import {initJudgeUdp} from '../common/utils/UdpJudge'
|
||||
import { getTCP } from '../common/utils/GlobleTcp'
|
||||
import { voiceService } from '../common/service/voiceService'
|
||||
import testNapi from '@ohos.hiserialsdk'
|
||||
import TcpClient from '../common/utils/TcpClient';
|
||||
import Router from '@system.router'
|
||||
|
||||
import socket from '@ohos.net.socket';
|
||||
import fs from '@ohos.file.fs'
|
||||
import mediaLibrary from '@ohos.multimedia.mediaLibrary'
|
||||
import FileUtil from '../common/utils/File'
|
||||
|
||||
import {setliushuiNum,getSingleCenterTable,getDoubleCeneterTable} from '../common/service/indexService'
|
||||
@Entry
|
||||
@Component
|
||||
struct Index {
|
||||
@ -58,8 +41,6 @@ struct Index {
|
||||
if (this.loading) {
|
||||
return
|
||||
}
|
||||
|
||||
// this.url = 'pages/Settings'
|
||||
router.pushUrl({
|
||||
url: 'pages/Settings',
|
||||
}, router.RouterMode.Single);
|
||||
@ -69,12 +50,7 @@ struct Index {
|
||||
if (this.loading) {
|
||||
return
|
||||
}
|
||||
// getSyncData('MA_SYSSET')
|
||||
router.back()
|
||||
// this.url = 'back'
|
||||
|
||||
// app.terminate()
|
||||
|
||||
})
|
||||
}
|
||||
}
|
||||
@ -86,27 +62,26 @@ struct Index {
|
||||
Row() {
|
||||
if (!this.isSingle) {
|
||||
Image($r('app.media.index_lw')).width('30.5%').height('74%').onClick(() => {
|
||||
// this.vocObj.playAudio({
|
||||
// type: 1,
|
||||
// name: 'button_media.wav'
|
||||
// })
|
||||
if (this.loading) {
|
||||
return
|
||||
}
|
||||
const that = this
|
||||
this.loading = true
|
||||
setTimeout(() => {
|
||||
that.angle = 360
|
||||
this.angle = 360
|
||||
}, 1000)
|
||||
that.angle = 0
|
||||
// this.getCenterDataTable()
|
||||
this.angle = 0
|
||||
//mode为3双中心下载表
|
||||
if(globalThis.timeInfo.mode=='3'){
|
||||
this.upDateTable()
|
||||
getDoubleCeneterTable().then(()=>{
|
||||
this.loading=false
|
||||
})
|
||||
}else{
|
||||
this.getCenterDataTable()
|
||||
|
||||
getSingleCenterTable().then(()=>{
|
||||
this.loading=false
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
})
|
||||
}
|
||||
if (this.isSingle) {
|
||||
@ -124,9 +99,6 @@ struct Index {
|
||||
if (this.loading) {
|
||||
return
|
||||
}
|
||||
// globalThis.singlePlay = !globalThis.singlePlay
|
||||
// this.isSingle = globalThis.singlePlay
|
||||
// return
|
||||
router.pushUrl({
|
||||
url: 'pages/carCheck'
|
||||
}, router.RouterMode.Single);
|
||||
@ -193,8 +165,6 @@ struct Index {
|
||||
.backgroundColor('#E6E3DF')
|
||||
.borderRadius(19 * this.ratio)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
.width('100%')
|
||||
.height('100%')
|
||||
@ -207,136 +177,20 @@ struct Index {
|
||||
aboutToAppear() {
|
||||
this.angle = 0
|
||||
this.loading = false
|
||||
|
||||
// this.vocObj = new voiceService(async (status, val) => {
|
||||
// if (status == 'idle') {
|
||||
// if (this.url == 'back') {
|
||||
// router.back()
|
||||
// // that.udpClient.sendMsg('111')
|
||||
// } else {
|
||||
// router.pushUrl({
|
||||
// url: this.url,
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
}
|
||||
|
||||
Array2Byte(array) {
|
||||
var buf = new ArrayBuffer(array.length);
|
||||
var view = new Uint8Array(buf);
|
||||
for (var i = 0; i != array.length; ++i)
|
||||
{
|
||||
view[i] = array[i] & 0xFF;
|
||||
}
|
||||
return view;
|
||||
}
|
||||
openChuankouMsg() {
|
||||
this.fd = testNapi.SerialOpen(this.devPath);
|
||||
}
|
||||
|
||||
string2Bytes(number, len) {
|
||||
// console.log('string2Bytes == ', number)
|
||||
let str = (+number).toString(2);
|
||||
if (str.length > len) {
|
||||
console.log('数据长度不对~~');
|
||||
return
|
||||
}
|
||||
var byteString = this.fillZero(str, len);
|
||||
|
||||
var arrBytes = new Array();
|
||||
for (var i = byteString.length; i > 0; ) {
|
||||
let j = i - 8;
|
||||
if (j < 0) {
|
||||
j = 0
|
||||
}
|
||||
var s = byteString.slice(j, i);
|
||||
var v = parseInt(s, 2);
|
||||
arrBytes.push(v);
|
||||
i = i - 8
|
||||
|
||||
}
|
||||
return arrBytes;
|
||||
}
|
||||
//补0
|
||||
fillZero(str, len) {
|
||||
str = str + '';
|
||||
if (str.length > len || !len) {
|
||||
return str
|
||||
}
|
||||
|
||||
let num = len - str.length;
|
||||
let zeroStr = '';
|
||||
for (var i = 0; i < num; i++) {
|
||||
zeroStr = zeroStr + '0'
|
||||
}
|
||||
|
||||
return zeroStr + str;
|
||||
}
|
||||
|
||||
async heartMsg(context) {
|
||||
const fileUtil = new FileUtil(context)
|
||||
const fileData = await fileUtil.readFile('/mnt/hmdfs/100/account/device_view/localfiles/files/config/liushui.txt');
|
||||
let res = fs.accessSync('/mnt/hmdfs/100/account/device_view/localfiles/files/config/liushui.txt');
|
||||
// TODO
|
||||
return
|
||||
if (res) {
|
||||
if(JSON.stringify(fileData).indexOf('u0000')>=0){
|
||||
const date = new Date()
|
||||
const param = {
|
||||
date: dateFormat(date),
|
||||
value: 0
|
||||
}
|
||||
const folderPath = await fileUtil.initFolder(`/config`);
|
||||
fileUtil.addFile(`${folderPath}/liushui.txt`, JSON.stringify(param))
|
||||
}else{
|
||||
const date = new Date()
|
||||
const time1 = JSON.parse(fileData).date.split(' ')[0]
|
||||
const time2 = dateFormat(date).split(' ')[0]
|
||||
if (time1 == time2) {
|
||||
const date = new Date()
|
||||
const param = {
|
||||
date: dateFormat(date),
|
||||
value: Number(JSON.parse(fileData).value) + 1
|
||||
}
|
||||
const folderPath = await fileUtil.initFolder(`/config`);
|
||||
fileUtil.addFile(`${folderPath}/liushui.txt`, JSON.stringify(param))
|
||||
} else {
|
||||
const date = new Date()
|
||||
const param = {
|
||||
date: dateFormat(date),
|
||||
value: 0
|
||||
}
|
||||
const folderPath = await fileUtil.initFolder(`/config`);
|
||||
fileUtil.addFile(`${folderPath}/liushui.txt`, JSON.stringify(param))
|
||||
}
|
||||
}
|
||||
}else
|
||||
{
|
||||
const date = new Date()
|
||||
const param = {
|
||||
date: dateFormat(date),
|
||||
value: 0
|
||||
}
|
||||
const folderPath = await fileUtil.initFolder(`/config`);
|
||||
fileUtil.addFile(`${folderPath}/liushui.txt`, JSON.stringify(param))
|
||||
}
|
||||
const arr = [globalThis.signNum||0, globalThis.statue||1]
|
||||
let tmpList = [];
|
||||
tmpList.push(this.string2Bytes(arr[0], 1 * 8)[0])
|
||||
tmpList.push(this.string2Bytes(arr[1], 1 * 8)[0])
|
||||
tmpList.push(string2Bytes(arr[0], 1 * 8)[0])
|
||||
tmpList.push(string2Bytes(arr[1], 1 * 8)[0])
|
||||
const str =globalThis.lsh|| '0000000000000'
|
||||
for (let i = 0;i < str.length; i++) {
|
||||
tmpList.push(this.string2Bytes(str.charCodeAt(i), 1 * 8)[0])
|
||||
tmpList.push(string2Bytes(str.charCodeAt(i), 1 * 8)[0])
|
||||
}
|
||||
|
||||
// const str ='1111160366580'
|
||||
// for (let i = 0;i < str.length; i++) {
|
||||
// tmpList.push(this.string2Bytes(str.charCodeAt(i), 1 * 8)[0])
|
||||
// }
|
||||
// const param = { id: 46, list: tmpList, carNo: 489, placeId: 62 }
|
||||
const param= {id: 31,list:tmpList,carNo: globalThis.carInfo.carNo,placeId: globalThis.carInfo.examinationRoomId}
|
||||
|
||||
|
||||
globalThis.udpClient2.sendMsg(param, this.context)
|
||||
|
||||
}
|
||||
@ -347,6 +201,7 @@ struct Index {
|
||||
getUDP()
|
||||
getUDP2()
|
||||
setInterval(() => {
|
||||
setliushuiNum(this.context)
|
||||
this.heartMsg(this.context)
|
||||
}, 1000)
|
||||
// getTCP()
|
||||
@ -362,207 +217,23 @@ struct Index {
|
||||
|
||||
}
|
||||
|
||||
Array2Byte(array) {
|
||||
var buf = new ArrayBuffer(array.length);
|
||||
var view = new Uint8Array(buf);
|
||||
for (var i = 0; i != array.length; ++i) {
|
||||
view[i] = array[i] & 0xFF;
|
||||
}
|
||||
return view;
|
||||
}
|
||||
|
||||
async initParams() {
|
||||
this.loading=false
|
||||
await getDeviceInfo()
|
||||
// await this.getDeviceId()
|
||||
await setCurrentTime();
|
||||
await getCarInfo();
|
||||
this.carNum = globalThis.carInfo.plateNo;
|
||||
this.version = globalThis.version;
|
||||
this.hasAuth = globalThis.hasAuth;
|
||||
initJudgeUdp()
|
||||
// await this.getDataBaseTableFn()
|
||||
//下载模型
|
||||
// await this.getModel()
|
||||
// const arr = [0x55, 0xaa, 0x01, 0x00, 0x02, 0x01, 0x03, 0x00]
|
||||
// globalThis.udpClientByTopLine.sendMsg(this.Array2Byte(arr).buffer)
|
||||
// globalThis.udpClientByTopLine.sendMsg(Array2Byte(arr).buffer)
|
||||
}
|
||||
|
||||
getDeviceId() {
|
||||
return new Promise((resolve, reject) => {
|
||||
getSyncData('DeviceInfoTable').then((result: Array<any>) => {
|
||||
if (result.length) {
|
||||
globalThis.deviceNo = result[0].deviceId
|
||||
this.deviceId = result[0].deviceId
|
||||
resolve(result[0].deviceId)
|
||||
} else {
|
||||
// deviceManager.createDeviceManager('com.example.udptest', (error, value) => {
|
||||
// if (error) {
|
||||
// console.error('createDeviceManager failed.');
|
||||
// return;
|
||||
// }
|
||||
// let dvMgrObj = value;
|
||||
// globalThis.deviceNo=dvMgrObj.getLocalDeviceInfoSync().deviceName
|
||||
// this.deviceId=globalThis.deviceNo
|
||||
// resolve(dvMgrObj.getLocalDeviceInfoSync().deviceName)
|
||||
// });
|
||||
resolve('')
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
async getModel() {
|
||||
const context = this.context;
|
||||
//下载模型
|
||||
await getEsCarModel(context)
|
||||
}
|
||||
|
||||
async getDataBaseTableFn() {
|
||||
// getDataBaseTable({ tableName: 'MA_MARKRULE' })
|
||||
// getDataBaseTable({ tableName: 'MA_SYSTEMPARM' })
|
||||
// await getDataBaseTable({ tableName: 'MA_SYSSET' })
|
||||
// await getMySystemSetTable({ tableName: 'MA_SYSSET' })
|
||||
//
|
||||
// await getDataBaseTable({ tableName: 'MA_MAP_COLLECT' })
|
||||
// await getDataBaseTable({ tableName: 'MA_MAP_COLLECT_SHAPE' })
|
||||
// await getDataBaseTable({ tableName: 'MA_MAP_ITEMCLASS' })
|
||||
// await getDataBaseTable({ tableName: 'MA_MAP_POINT' })
|
||||
// await getDataBaseTable({ tableName: 'MA_MAP_POINT_ITEM' })
|
||||
// await getDataBaseTable({ tableName: 'MA_MAP_ROAD' })
|
||||
// await getDataBaseTable({ tableName: 'MA_MAP_ROAD_LANE' })
|
||||
// await getDataBaseTable({ tableName: 'MA_MAP_SUBITEM' })
|
||||
// await getDataBaseTable({ tableName: 'ES_CARINFO' })
|
||||
// await getDataBaseTable({ tableName: 'ES_EXAMPOINTDETAIL' })
|
||||
// await getDataBaseTable({ tableName: 'MA_MARKRULESET' })
|
||||
// await getDataBaseTable({ tableName: 'ES_CAR_VIDEO_PARAMETER' })
|
||||
// await getDataBaseTable({ tableName: 'MA_CDSBINFO' })
|
||||
// await getDataBaseTable({ tableName: 'MA_ITEMINFO' })
|
||||
// await getDataBaseTable({ tableName: 'MA_T_CARPARMSET' })
|
||||
}
|
||||
|
||||
async getCenterDataTable() {
|
||||
const flag= await upDataZhongxinginitialization()
|
||||
this.loading = false
|
||||
if(flag){
|
||||
router.pushUrl({
|
||||
url: 'pages/ExaminerLogin',
|
||||
}, router.RouterMode.Single)
|
||||
}else{
|
||||
prompt.showToast({
|
||||
message: '联网更新失败,请检查网络后重新更新',
|
||||
duration: 1000
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
async upDateTable() {
|
||||
// return
|
||||
const db = new AccountTable(() => {
|
||||
}, MA_SYSSET);
|
||||
db.getRdbStore(() => {
|
||||
db.query('0', async (array) => {
|
||||
if (array.length) {
|
||||
delSyncTable('MA_SYSSET').then(async () => {
|
||||
// getSyncData('MA_SYSSET')
|
||||
await getDataBaseTable({ tableName: 'MA_SYSSET' })
|
||||
await getMySystemSetTable({ tableName: 'MA_SYSSET' })
|
||||
})
|
||||
|
||||
} else {
|
||||
await getDataBaseTable({ tableName: 'MA_SYSSET' })
|
||||
await getMySystemSetTable({ tableName: 'MA_SYSSET' })
|
||||
}
|
||||
// console.log(markRuleParams)
|
||||
})
|
||||
})
|
||||
const typeObj = {
|
||||
'MA_MARKRULE': false,
|
||||
'MA_SYSTEMPARM': false,
|
||||
'MA_MAP_COLLECT': false,
|
||||
'MA_MAP_COLLECT_SHAPE': false,
|
||||
'MA_MAP_ITEMCLASS': false,
|
||||
'MA_MAP_POINT': false,
|
||||
'MA_MAP_POINT_ITEM': false,
|
||||
'MA_MAP_ROAD': false,
|
||||
'MA_MAP_ROAD_LANE': false,
|
||||
'MA_MAP_SUBITEM': false,
|
||||
'ES_CARINFO': false,
|
||||
'ES_EXAMPOINTDETAIL': false,
|
||||
'MA_MARKRULESET': false,
|
||||
'ES_CAR_VIDEO_PARAMETER': false,
|
||||
'MA_CDSBINFO': false,
|
||||
'MA_ITEMINFO': false,
|
||||
'MA_T_CARPARMSET': false
|
||||
}
|
||||
typeObj.MA_MARKRULE = await upDateTable({ tableName: 'MA_MARKRULE' })
|
||||
typeObj.MA_SYSTEMPARM = await upDateTable({ tableName: 'MA_SYSTEMPARM' })
|
||||
typeObj.MA_MAP_COLLECT = await upDateTable({ tableName: 'MA_MAP_COLLECT' })
|
||||
typeObj.MA_MAP_COLLECT_SHAPE = await upDateTable({ tableName: 'MA_MAP_COLLECT_SHAPE' })
|
||||
typeObj.MA_MAP_ITEMCLASS = await upDateTable({ tableName: 'MA_MAP_ITEMCLASS' })
|
||||
typeObj.MA_MAP_POINT = await upDateTable({ tableName: 'MA_MAP_POINT' })
|
||||
typeObj.MA_MAP_POINT_ITEM = await upDateTable({ tableName: 'MA_MAP_POINT_ITEM' })
|
||||
typeObj.MA_MAP_ROAD = await upDateTable({ tableName: 'MA_MAP_ROAD' })
|
||||
typeObj.MA_MAP_ROAD_LANE = await upDateTable({ tableName: 'MA_MAP_ROAD_LANE' })
|
||||
typeObj.MA_MAP_SUBITEM = await upDateTable({ tableName: 'MA_MAP_SUBITEM' })
|
||||
typeObj.ES_CARINFO = await upDateTable({ tableName: 'ES_CARINFO' })
|
||||
typeObj.ES_EXAMPOINTDETAIL = await upDateTable({ tableName: 'ES_EXAMPOINTDETAIL' })
|
||||
typeObj.MA_MARKRULESET = await upDateTable({ tableName: 'MA_MARKRULESET' })
|
||||
typeObj.ES_CAR_VIDEO_PARAMETER = await upDateTable({ tableName: 'ES_CAR_VIDEO_PARAMETER' })
|
||||
typeObj.MA_CDSBINFO = await upDateTable({ tableName: 'MA_CDSBINFO' })
|
||||
typeObj.MA_ITEMINFO = await upDateTable({ tableName: 'MA_ITEMINFO' })
|
||||
typeObj.MA_T_CARPARMSET = await upDateTable({ tableName: 'MA_T_CARPARMSET' })
|
||||
for (let key in typeObj) {
|
||||
if (!typeObj[key]) {
|
||||
this.loading = false
|
||||
prompt.showToast({
|
||||
message: `未能查询到${key}表数据, 请先检查网络是否连接正常`,
|
||||
duration: 3000
|
||||
});
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
this.loading = false
|
||||
// await getSyncData('MA_MARKRULE')
|
||||
// await getSyncData('MA_SYSTEMPARM')
|
||||
// await getSyncData('MA_MAP_COLLECT')
|
||||
// await getSyncData('MA_MAP_COLLECT_SHAPE')
|
||||
// await getSyncData('MA_MAP_ITEMCLASS')
|
||||
// await getSyncData('MA_MAP_POINT')
|
||||
// await getSyncData('MA_SYSTEMPARM')
|
||||
// await getSyncData('MA_MAP_POINT_ITEM')
|
||||
// await getSyncData('MA_MAP_POINT')
|
||||
// await getSyncData('MA_MAP_POINT_ITEM')
|
||||
// await getSyncData('MA_MAP_ROAD')
|
||||
// await getSyncData('MA_MAP_ROAD_LANE')
|
||||
// await getSyncData('MA_MAP_SUBITEM')
|
||||
// await getSyncData('ES_CARINFO')
|
||||
// await getSyncData('ES_EXAMPOINTDETAIL')
|
||||
// await getSyncData('MA_CDSBINFO')
|
||||
// await getSyncData('MA_T_CARPARMSET')
|
||||
// if(!flag){
|
||||
|
||||
router.pushUrl({
|
||||
url: 'pages/ExaminerLogin',
|
||||
}, router.RouterMode.Single);
|
||||
// return
|
||||
// }
|
||||
// await upDateTable({ tableName: 'MA_SYSSET' })
|
||||
|
||||
}
|
||||
|
||||
termialCheck() {
|
||||
// if(!globalThis.deviceNo) {
|
||||
// prompt.showToast({
|
||||
// message: '未能查询到当前车辆信息, 请先注册该车辆, 或者检查网络是否连接正常!',
|
||||
// duration: 3000
|
||||
// });
|
||||
//
|
||||
// return false
|
||||
// }
|
||||
|
||||
return true
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
|
||||
export interface VideoConfig{
|
||||
videoNum?:string,
|
||||
spls:string
|
||||
faceFlag:boolean
|
||||
pztd:string
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user