568 lines
18 KiB
Plaintext
Raw Normal View History

2024-01-05 11:11:15 +08:00
// @ts-nocheck
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'
2024-01-31 14:42:14 +08:00
import {Array2Byte} from '../common/utils/tools'
2024-01-05 11:11:15 +08:00
import {
getDataBaseTable,
upDateTable,
getMySystemSetTable,
getSyncData,
delSyncTable,
getEsCarModel,
upDataZhongxinginitialization
} from '../common/service/initable'
import prompt from '@ohos.prompt'
import { dateFormat } from '../common/utils/tools'
2024-01-31 14:42:14 +08:00
import deviceManager from '@ohos.distributedHardware.deviceManager'
2024-01-05 11:11:15 +08:00
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'
2024-01-31 14:42:14 +08:00
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';
2024-01-05 11:11:15 +08:00
import fs from '@ohos.file.fs'
2024-01-31 14:42:14 +08:00
import mediaLibrary from '@ohos.multimedia.mediaLibrary'
2024-01-05 11:11:15 +08:00
import FileUtil from '../common/utils/File'
2024-01-31 14:42:14 +08:00
2024-01-05 11:11:15 +08:00
@Entry
@Component
struct Index {
@State carNum: string = ''
@State version: string = ''
@State url: string = ''
@State hasAuth: boolean = false;
@State isSingle: boolean = false;
@State deviceId: string = '';
private vocObj = null;
@State angle: number = 0
@State ratio: number = 850 / 960
@State loading: boolean = true
@State fd: number = -1;
private context = getContext(this) as common.UIAbilityContext;
2024-01-31 14:42:14 +08:00
2024-01-05 11:11:15 +08:00
build() {
Column() {
Column() {
Row() {
Image($r('app.media.logo')).width('30%').height('5.5%').margin({ left: 24 })
Row() {
Image($r('app.media.btn_setting')).width('16.7%').height('12.2%')
.onClick(async () => {
if (this.loading) {
return
}
// this.url = 'pages/Settings'
router.pushUrl({
url: 'pages/Settings',
}, router.RouterMode.Single);
})
Image($r('app.media.btn_back')).width('14.4%').height('12.2%')
.onClick(() => {
if (this.loading) {
return
}
// getSyncData('MA_SYSSET')
router.back()
// this.url = 'back'
2024-01-31 14:42:14 +08:00
2024-01-05 11:11:15 +08:00
// app.terminate()
})
}
}
.width('100%')
.justifyContent(FlexAlign.SpaceBetween)
}
Column() {
Row() {
if (!this.isSingle) {
Image($r('app.media.index_lw')).width('30.5%').height('74%').onClick(() => {
2024-01-31 14:42:14 +08:00
// this.vocObj.playAudio({
// type: 1,
// name: 'button_media.wav'
// })
2024-01-05 11:11:15 +08:00
if (this.loading) {
return
}
const that = this
this.loading = true
setTimeout(() => {
that.angle = 360
}, 1000)
that.angle = 0
2024-01-31 14:35:16 +08:00
// this.getCenterDataTable()
if(globalThis.timeInfo.mode=='3'){
this.upDateTable()
}else{
this.getCenterDataTable()
2024-01-31 14:42:14 +08:00
2024-01-31 14:35:16 +08:00
}
2024-01-31 14:42:14 +08:00
2024-01-05 11:11:15 +08:00
})
}
if (this.isSingle) {
Image($r('app.media.index_dj')).width('30.5%').height('74%').onClick(() => {
if (this.loading) {
return
}
router.pushUrl({
url: 'pages/userInfo',
}, router.RouterMode.Single);
})
}
Image($r('app.media.index_zj')).width('30.5%').height('74%').onClick(() => {
if (this.loading) {
return
}
2024-01-31 14:35:16 +08:00
// globalThis.singlePlay = !globalThis.singlePlay
// this.isSingle = globalThis.singlePlay
// return
2024-01-05 11:11:15 +08:00
router.pushUrl({
url: 'pages/carCheck'
}, router.RouterMode.Single);
})
}
.width('100%')
.justifyContent(FlexAlign.SpaceAround)
}
Column() {
Row() {
Column() {
Text('V ' + globalThis.version)
.fontColor('#CCAE7A')
.fontSize(22 * this.ratio)
.width('30%')
.margin({ bottom: 10 })
Text('授权信息:' + (this.hasAuth ? '已授权' : '未授权'))
.fontColor('#CCAE7A')
.fontSize(22 * this.ratio)
.width('30%')
}
.margin({ left: 24 })
.gesture(
GestureGroup(GestureMode.Exclusive,
2024-01-31 14:35:16 +08:00
TapGesture({ count: 2 })
2024-01-05 11:11:15 +08:00
.onAction(() => {
globalThis.singlePlay = !globalThis.singlePlay
this.isSingle = globalThis.singlePlay
})
)
)
Text('考车号:' + this.deviceId).fontColor('#CCAE7A').fontSize(22 * this.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)
}
}
.width('100%')
.height('100%')
.justifyContent(FlexAlign.SpaceBetween)
.backgroundImagePosition({ x: 0, y: 0 })
.backgroundImage($r('app.media.index_bg'))
.backgroundImageSize({ width: '100%', height: '100%' })
}
aboutToAppear() {
this.angle = 0
this.loading = false
2024-01-31 14:42:14 +08:00
// 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;
2024-01-05 11:11:15 +08:00
}
async heartMsg(context) {
const fileUtil = new FileUtil(context)
2024-01-31 14:35:16 +08:00
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');
2024-01-31 14:42:14 +08:00
// TODO
return
if (res) {
if(JSON.stringify(fileData).indexOf('u0000')>=0){
2024-01-05 11:11:15 +08:00
const date = new Date()
const param = {
date: dateFormat(date),
2024-01-31 14:42:14 +08:00
value: 0
2024-01-05 11:11:15 +08:00
}
const folderPath = await fileUtil.initFolder(`/config`);
fileUtil.addFile(`${folderPath}/liushui.txt`, JSON.stringify(param))
2024-01-31 14:42:14 +08:00
}else{
2024-01-05 11:11:15 +08:00
const date = new Date()
2024-01-31 14:42:14 +08:00
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))
2024-01-05 11:11:15 +08:00
}
}
2024-01-31 14:42:14 +08:00
}else
{
2024-01-05 11:11:15 +08:00
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 = [];
2024-01-31 14:42:14 +08:00
tmpList.push(this.string2Bytes(arr[0], 1 * 8)[0])
tmpList.push(this.string2Bytes(arr[1], 1 * 8)[0])
2024-01-05 11:11:15 +08:00
const str =globalThis.lsh|| '0000000000000'
for (let i = 0;i < str.length; i++) {
2024-01-31 14:42:14 +08:00
tmpList.push(this.string2Bytes(str.charCodeAt(i), 1 * 8)[0])
2024-01-05 11:11:15 +08:00
}
2024-01-31 14:42:14 +08:00
// 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 }
2024-01-05 11:11:15 +08:00
const param= {id: 31,list:tmpList,carNo: globalThis.carInfo.carNo,placeId: globalThis.carInfo.examinationRoomId}
2024-01-31 14:42:14 +08:00
2024-01-05 11:11:15 +08:00
globalThis.udpClient2.sendMsg(param, this.context)
}
onPageShow() {
this.loading = false
this.initParams()
getUDP()
getUDP2()
setInterval(() => {
this.heartMsg(this.context)
}, 1000)
2024-01-31 14:42:14 +08:00
// getTCP()
// const TcpClient: TcpClient =new TcpClient(result[0].tcplocalIp, result[0].tcplocalIpPort,result[0].tcpOppositeIp,result[0].tcpOppositePort)
2024-01-05 11:11:15 +08:00
if (globalThis.singlePlay == undefined || globalThis.singlePlay == null) {
globalThis.singlePlay = false
}
this.isSingle = globalThis.singlePlay
console.info('Index onPageShow');
}
2024-01-31 14:42:14 +08:00
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;
}
2024-01-05 11:11:15 +08:00
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;
2024-01-31 14:35:16 +08:00
initJudgeUdp()
2024-01-31 14:42:14 +08:00
// await this.getDataBaseTableFn()
//下载模型
// await this.getModel()
// const arr = [0x55, 0xaa, 0x01, 0x00, 0x02, 0x01, 0x03, 0x00]
// globalThis.udpClientByTopLine.sendMsg(this.Array2Byte(arr).buffer)
2024-01-05 11:11:15 +08:00
}
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 {
2024-01-31 14:42:14 +08:00
// 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)
// });
2024-01-05 11:11:15 +08:00
resolve('')
}
})
})
}
async getModel() {
const context = this.context;
//下载模型
await getEsCarModel(context)
}
2024-01-31 14:42:14 +08:00
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' })
}
2024-01-05 11:11:15 +08:00
async getCenterDataTable() {
2024-01-31 14:35:16 +08:00
const flag= await upDataZhongxinginitialization()
2024-01-05 11:11:15 +08:00
this.loading = false
2024-01-31 14:35:16 +08:00
if(flag){
router.pushUrl({
url: 'pages/ExaminerLogin',
}, router.RouterMode.Single)
}else{
prompt.showToast({
message: '联网更新失败,请检查网络后重新更新',
duration: 1000
});
}
2024-01-05 11:11:15 +08:00
}
async upDateTable() {
2024-01-31 14:35:16 +08:00
// return
const db = new AccountTable(() => {
2024-01-05 11:11:15 +08:00
}, MA_SYSSET);
db.getRdbStore(() => {
db.query('0', async (array) => {
if (array.length) {
2024-02-21 13:34:14 +08:00
delSyncTable('MA_SYSSET').then(async () => {
2024-01-05 11:11:15 +08:00
// getSyncData('MA_SYSSET')
2024-02-21 13:34:14 +08:00
await getDataBaseTable({ tableName: 'MA_SYSSET' })
await getMySystemSetTable({ tableName: 'MA_SYSSET' })
2024-01-05 11:11:15 +08:00
})
2024-02-21 13:34:14 +08:00
2024-01-05 11:11:15 +08:00
} else {
await getDataBaseTable({ tableName: 'MA_SYSSET' })
2024-02-21 13:34:14 +08:00
await getMySystemSetTable({ tableName: 'MA_SYSSET' })
2024-01-05 11:11:15 +08:00
}
// 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
}
}
2024-01-31 14:42:14 +08:00
2024-01-05 11:11:15 +08:00
this.loading = false
2024-01-31 14:42:14 +08:00
// 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){
2024-01-05 11:11:15 +08:00
router.pushUrl({
url: 'pages/ExaminerLogin',
}, router.RouterMode.Single);
2024-01-31 14:42:14 +08:00
// return
// }
// await upDateTable({ tableName: 'MA_SYSSET' })
2024-01-05 11:11:15 +08:00
}
2024-01-31 14:42:14 +08:00
termialCheck() {
// if(!globalThis.deviceNo) {
// prompt.showToast({
// message: '未能查询到当前车辆信息, 请先注册该车辆, 或者检查网络是否连接正常!',
// duration: 3000
// });
//
// return false
// }
return true
}
2024-01-05 11:11:15 +08:00
}