379 lines
10 KiB
TypeScript
379 lines
10 KiB
TypeScript
// @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 { takePhoto } from '../../common/service/videoService'
|
||
|
||
import {
|
||
delSyncTable,
|
||
getDataBaseTable,
|
||
getMySystemSetTable,
|
||
upDataZhongxinginitialization,
|
||
upDateTable
|
||
} from '../../common/service/initable'
|
||
import { GlobalConfig } from '../../config/index'
|
||
import testNapi from '@ohos.hiserialsdk'
|
||
import fs from '@ohos.file.fs';
|
||
let num = 0
|
||
|
||
export async function getliushuiNum(context) {
|
||
console.log('getLiushuihao')
|
||
const fileUtil = new FileUtil(context)
|
||
const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/liushui.txt');
|
||
if (data === '' || data === undefined) {
|
||
num = 0
|
||
let str = num.toString()
|
||
for (let i = 0; str.length <= 5; i++) {
|
||
str = '0' + str
|
||
}
|
||
globalThis.lshNo = str
|
||
// return str
|
||
} else {
|
||
num = Number(JSON.parse(data).value) + 1
|
||
let str = num.toString()
|
||
for (let i = 0; str.length <= 5; i++) {
|
||
str = '0' + str
|
||
}
|
||
globalThis.lshNo = str
|
||
// return str
|
||
}
|
||
}
|
||
export async function deleteAllFIleLog(path){
|
||
let options = {
|
||
"recursion": false,
|
||
"listNum": 0,
|
||
};
|
||
let filenames = fs.listFileSync(path, options);
|
||
console.info("listFile succeed",JSON.stringify(filenames));
|
||
for (let i = 0; i < filenames.length; i++) {
|
||
console.info("listFile succeed",JSON.stringify(filenames[i]));
|
||
|
||
if(isSevenDaysAgo(filenames[i])){
|
||
fs.rmdir(path+filenames[i], (err) => {
|
||
if (err) {
|
||
console.error("rmdir failed with error message: " + err.message + ", error code: " + err.code);
|
||
} else {
|
||
console.info("rmdir succeed");
|
||
}
|
||
});
|
||
}
|
||
// console.info("filename: %s", filenames[i]);
|
||
}
|
||
|
||
}
|
||
function isSevenDaysAgo(date) {
|
||
const today = new Date(); // 当前日期
|
||
const target = new Date(date); // 需要判断的日期
|
||
console.info("listFile succeed1",JSON.stringify(target));
|
||
|
||
const diff = today.getTime() - target.getTime(); // 计算两个日期之间的毫秒数差异
|
||
const diffDays = diff / (1000 * 60 * 60 * 24); // 将毫秒转换为天数
|
||
console.info("listFile succeed2",JSON.stringify(diffDays));
|
||
// 如果差异天数正好是7,则原日期是当前日期的前七天
|
||
return diffDays > 7;
|
||
}
|
||
//配置流水号
|
||
export async function setliushuiNum(context) {
|
||
const fileUtil = new FileUtil(context)
|
||
try {
|
||
const fileData = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/liushui.txt');
|
||
const date = new Date()
|
||
const time1 = JSON.parse(fileData).date.split(' ')[0]
|
||
const time2 = dateFormat(date).split(' ')[0]
|
||
if (time1 == time2) {
|
||
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 param = {
|
||
date: dateFormat(date),
|
||
value: 0
|
||
}
|
||
const folderPath = await fileUtil.initFolder(`/config`);
|
||
fileUtil.addFile(`${folderPath}/liushui.txt`, JSON.stringify(param))
|
||
} catch (err) {
|
||
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(param) {
|
||
return new Promise(async (reslove, reject) => {
|
||
// MA_SYSSET双中心下做合并表格操作
|
||
delSyncTable('MA_SYSSET', param.context).then(async () => {
|
||
await getDataBaseTable({ tableName: 'MA_SYSSET' }, param)
|
||
await getMySystemSetTable({ tableName: 'MA_SYSSET' }, param)
|
||
})
|
||
|
||
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 }, param)
|
||
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(param) {
|
||
return new Promise((reslove, reject) => {
|
||
try{
|
||
upDataZhongxinginitialization(param).then((result) => {
|
||
console.log('kkkkkkkkkkk',result)
|
||
|
||
if (result) {
|
||
reslove(true)
|
||
} else {
|
||
// promptAction.showToast({
|
||
// title: '提示',
|
||
// message: '联网更新失败,请检查网络后重新更新',
|
||
// buttons: [
|
||
// {
|
||
// text: '确认',
|
||
// color: '#000000',
|
||
// },
|
||
// {
|
||
// text: '取消',
|
||
// color: '#000000',
|
||
// }
|
||
// ],
|
||
// })
|
||
// .then(data => {
|
||
// reslove(false)
|
||
// })
|
||
// .catch(err => {
|
||
// reslove(false)
|
||
// })
|
||
console.log('联网更新失败,请检查网络后重新更新')
|
||
// promptAction.showToast({
|
||
// message: `联网更新表数据失败,请重新更新`,
|
||
// duration: 3000
|
||
// });
|
||
reslove(false)
|
||
}
|
||
}).catch((error) => {
|
||
reslove(false)
|
||
console.log(error)
|
||
})
|
||
}catch (e){
|
||
reslove(false)
|
||
}
|
||
})
|
||
|
||
}
|
||
|
||
|
||
let interval
|
||
|
||
export async function takePhotoFn(context) {
|
||
let param = {
|
||
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',
|
||
}
|
||
globalThis.spzd = {
|
||
spzd1: false,
|
||
spzd2: false,
|
||
spzd3: false,
|
||
spzd4: false,
|
||
}
|
||
globalThis.takePhotoNum = 0
|
||
const map = {}
|
||
const fileUtil = new FileUtil(context)
|
||
const fileData = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/config3.txt');
|
||
console.log('sizesize', fileData)
|
||
param = JSON.parse(fileData)
|
||
console.log('paramparam')
|
||
clearInterval(interval)
|
||
interval = setTimeout(async () => {
|
||
const arr = ['spzd1', 'spzd2', 'spzd3', 'spzd4']
|
||
|
||
for (let key in map) {
|
||
map[key] = false
|
||
// param[key] = false
|
||
}
|
||
for (let i = 0; i <= arr.length - 1; i++) {
|
||
let key1 = arr[i]
|
||
if (param[key1]) {
|
||
param.pztd = param[`td${Number(i) + 1}`]
|
||
takePhoto(param, context, 'jt/', 0, (data) => {
|
||
if(data.errorCode!=0){
|
||
console.log('拍照失败')
|
||
return
|
||
}
|
||
if (Number(data.fileSize) <= (Number(param.zdyz) * 1000)) {
|
||
map[key1] = true
|
||
promptAction.showToast({
|
||
message: `视频遮挡`,
|
||
duration: 3000
|
||
});
|
||
globalThis.spzd[key1] = true
|
||
} else {
|
||
map[key1] = false
|
||
globalThis.spzd[key1] = false
|
||
}
|
||
console.log('getPhtot0000')
|
||
setTimeout(() => {
|
||
takePhotoFn()
|
||
}, 3000)
|
||
})
|
||
|
||
}
|
||
}
|
||
globalThis.takePhotoNum++
|
||
if (globalThis.takePhotoNum >= 20) {
|
||
globalThis.takePhotoNum = 0
|
||
// deleteAllFileByPiC('jt')
|
||
}
|
||
}, 3000)
|
||
}
|
||
|
||
let fd
|
||
const devPath = "/dev/ttyS3"
|
||
|
||
function openChuankouFn(callback) {
|
||
console.log('SerialOpen in indexservice, path=' + devPath)
|
||
|
||
testNapi.SerialOpenAsync(devPath, (fd) => {
|
||
globalThis.fd = fd;
|
||
globalThis.num = 0
|
||
let parity = 0x4e; // 'N'
|
||
let ret = testNapi.SerialSetAsync(globalThis.fd, 115200, 0, 8, 1, parity, (ret) => {
|
||
callback()
|
||
});
|
||
});
|
||
}
|
||
|
||
function getChuankouFnMsg() {
|
||
let timeout = 50000; // 2秒超时
|
||
let databuff = [0x61, 0xAA, 0x0A, 0X15, 0X00]; // send ABCDE
|
||
console.log('fdfd', globalThis.fd)
|
||
console.log('zzc 1 try send msg')
|
||
testNapi.SerialSendAsync(globalThis.fd, databuff, (ret) => {
|
||
console.log('zzc 2 send finished')
|
||
console.log('zzc 3 try receive msg')
|
||
testNapi.SerialRecvAsync(globalThis.fd, timeout, (revTestInfo) => {
|
||
console.log('zzc 4 received msg')
|
||
console.log('revTestInfo', revTestInfo.recevedBuf.length)
|
||
|
||
const message = revTestInfo?.recevedBuf?.toString()
|
||
console.log('chuankou', message)
|
||
if (message == '') {
|
||
console.log('zzc error msg is emptry')
|
||
globalThis.num = 1
|
||
console.log('zzc 9 num=3 close serial')
|
||
// clearInterval(chuankou)
|
||
testNapi.SerialClose(globalThis.fd);
|
||
globalThis.fd = null
|
||
getChuankouFn()
|
||
return
|
||
}
|
||
const msg = message?.split(',')
|
||
if (!msg?.length) {
|
||
|
||
} else if (msg[0] != '98' || msg[1] != '85' || msg.length < 9) {
|
||
|
||
} else if (msg.length < 12) {
|
||
|
||
} else {
|
||
globalThis.chuankoMsg = msg[9]
|
||
}
|
||
|
||
console.log('zzc 5 sleep 1s')
|
||
setTimeout(() => {
|
||
getChuankouFnMsg()
|
||
}, 500)
|
||
|
||
// hilog.info(0x0000, 'testTag', 'Test NAPI SerialRecvAsync callback in');
|
||
// hilog.info(0x0000, 'testTag', 'Test NAPI SerialRecvAsync recevedLen = %{public}d', revTestInfo.recevedLen);
|
||
// hilog.info(0x0000, 'testTag', 'Test NAPI SerialRecvAsync recevedBuf = %{public}s', revTestInfo.recevedBuf.toString());
|
||
});
|
||
|
||
});
|
||
// let revTestInfo = testNapi?.SerialRecv(globalThis.fd, timeout);
|
||
|
||
}
|
||
|
||
let chuankou
|
||
|
||
export async function getChuankouFn() {
|
||
if (globalThis.fd) {
|
||
return
|
||
}
|
||
openChuankouFn(getChuankouFnMsg)
|
||
// clearInterval(chuankou)
|
||
// chuankou=setInterval(()=>{
|
||
// getChuankouFnMsg()
|
||
// },1000)
|
||
|
||
} |