From 4c2515c1fbfe7ac545860483604bfd28aeb56f8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cwangzhongjie=E2=80=9D?= Date: Thu, 22 Feb 2024 10:40:35 +0800 Subject: [PATCH] 22 --- entry/src/main/ets/api/index.ts | 2 +- entry/src/main/ets/common/database/Rdb.ts | 2 +- .../main/ets/common/service/indexService.ts | 127 ++++++ entry/src/main/ets/common/service/initable.ts | 112 +++--- .../ets/common/service/terminalService.ts | 30 +- .../main/ets/common/service/timeService.ts | 2 +- .../main/ets/common/service/videoService.ts | 124 ++++++ entry/src/main/ets/common/utils/FileConfig.ts | 5 + .../ets/common/utils/UdpClientByCenter.ts | 6 +- .../src/main/ets/entryability/EntryAbility.ts | 2 +- entry/src/main/ets/pages/Index.ets | 367 +----------------- entry/src/main/ets/pages/interfaces.ts | 1 + 12 files changed, 367 insertions(+), 413 deletions(-) create mode 100644 entry/src/main/ets/common/service/indexService.ts create mode 100644 entry/src/main/ets/common/service/videoService.ts create mode 100644 entry/src/main/ets/common/utils/FileConfig.ts diff --git a/entry/src/main/ets/api/index.ts b/entry/src/main/ets/api/index.ts index b571b0f..5e9b3fd 100644 --- a/entry/src/main/ets/api/index.ts +++ b/entry/src/main/ets/api/index.ts @@ -9,7 +9,7 @@ export async function timeSynchronization(params){ ${params.deviceNo} ${params.version} - ${params.version} + ${params.judgeVersion} `, method:'post', diff --git a/entry/src/main/ets/common/database/Rdb.ts b/entry/src/main/ets/common/database/Rdb.ts index 85f570f..b10d079 100644 --- a/entry/src/main/ets/common/database/Rdb.ts +++ b/entry/src/main/ets/common/database/Rdb.ts @@ -170,7 +170,7 @@ export default class Rdb { return } console.log('ExecuteSqlsuccess') - callback('ExecuteSqlsuccess') + callback(true) }) } diff --git a/entry/src/main/ets/common/service/indexService.ts b/entry/src/main/ets/common/service/indexService.ts new file mode 100644 index 0000000..0f84744 --- /dev/null +++ b/entry/src/main/ets/common/service/indexService.ts @@ -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) + }) + + }) + +} \ No newline at end of file diff --git a/entry/src/main/ets/common/service/initable.ts b/entry/src/main/ets/common/service/initable.ts index 2c5a9e6..c9ca178 100644 --- a/entry/src/main/ets/common/service/initable.ts +++ b/entry/src/main/ets/common/service/initable.ts @@ -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) + }) }) + } diff --git a/entry/src/main/ets/common/service/terminalService.ts b/entry/src/main/ets/common/service/terminalService.ts index d0aadfb..0aefc50 100644 --- a/entry/src/main/ets/common/service/terminalService.ts +++ b/entry/src/main/ets/common/service/terminalService.ts @@ -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) => { - 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) => { + // if (result.length) { + // globalThis.deviceNo = result[0].deviceId + // this.deviceId = result[0].deviceId + // resolve(result[0].deviceId) + // } else { + // resolve('') + // } + // }) + // }) } //获取考车信息 diff --git a/entry/src/main/ets/common/service/timeService.ts b/entry/src/main/ets/common/service/timeService.ts index 8be7421..3858aa4 100644 --- a/entry/src/main/ets/common/service/timeService.ts +++ b/entry/src/main/ets/common/service/timeService.ts @@ -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 diff --git a/entry/src/main/ets/common/service/videoService.ts b/entry/src/main/ets/common/service/videoService.ts new file mode 100644 index 0000000..ee807e3 --- /dev/null +++ b/entry/src/main/ets/common/service/videoService.ts @@ -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(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 +} + diff --git a/entry/src/main/ets/common/utils/FileConfig.ts b/entry/src/main/ets/common/utils/FileConfig.ts new file mode 100644 index 0000000..6d08826 --- /dev/null +++ b/entry/src/main/ets/common/utils/FileConfig.ts @@ -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/' +} \ No newline at end of file diff --git a/entry/src/main/ets/common/utils/UdpClientByCenter.ts b/entry/src/main/ets/common/utils/UdpClientByCenter.ts index 5403878..69e269c 100644 --- a/entry/src/main/ets/common/utils/UdpClientByCenter.ts +++ b/entry/src/main/ets/common/utils/UdpClientByCenter.ts @@ -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}) }); diff --git a/entry/src/main/ets/entryability/EntryAbility.ts b/entry/src/main/ets/entryability/EntryAbility.ts index 6b96920..e0877d4 100644 --- a/entry/src/main/ets/entryability/EntryAbility.ts +++ b/entry/src/main/ets/entryability/EntryAbility.ts @@ -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; diff --git a/entry/src/main/ets/pages/Index.ets b/entry/src/main/ets/pages/Index.ets index ea7f705..6efe36b 100644 --- a/entry/src/main/ets/pages/Index.ets +++ b/entry/src/main/ets/pages/Index.ets @@ -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) => { - 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 - } } \ No newline at end of file diff --git a/entry/src/main/ets/pages/interfaces.ts b/entry/src/main/ets/pages/interfaces.ts index a4b56e2..def0446 100644 --- a/entry/src/main/ets/pages/interfaces.ts +++ b/entry/src/main/ets/pages/interfaces.ts @@ -1,5 +1,6 @@ export interface VideoConfig{ + videoNum?:string, spls:string faceFlag:boolean pztd:string