diff --git a/entry/src/main/ets/common/service/indexService.ts b/entry/src/main/ets/common/service/indexService.ts index e3504872..dbb41914 100644 --- a/entry/src/main/ets/common/service/indexService.ts +++ b/entry/src/main/ets/common/service/indexService.ts @@ -3,42 +3,45 @@ 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, deleteAllFileByPiC } from '../../common/service/videoService' +import AccountTable from '../../common/database/tables/AccountTable' +import MA_SYSSET from '../../common/constants/MA_SYSSET' +import { takePhoto } from '../../common/service/videoService' import { - getDataBaseTable, - upDateTable, - getMySystemSetTable, delSyncTable, - upDataZhongxinginitialization + getDataBaseTable, + getMySystemSetTable, + upDataZhongxinginitialization, + upDateTable } from '../../common/service/initable' import { GlobalConfig } from '../../config/index' import testNapi from '@ohos.hiserialsdk' -let num=0 -export async function getliushuiNum(context){ + +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 + 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 + 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 + } 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 + globalThis.lshNo = str // return str } } + //配置流水号 export async function setliushuiNum(context) { const fileUtil = new FileUtil(context) @@ -78,21 +81,11 @@ export async function setliushuiNum(context) { export async function getDoubleCeneterTable(param) { 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' },param) - await getMySystemSetTable({ tableName: 'MA_SYSSET' },param) - }) - } else { - await getDataBaseTable({ tableName: 'MA_SYSSET' },param) - await getMySystemSetTable({ tableName: 'MA_SYSSET' },param) - } - }) - },param.context) + 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, @@ -113,7 +106,7 @@ export async function getDoubleCeneterTable(param) { 'MA_T_CARPARMSET': false } for (let key in typeObj) { - typeObj[key] = await upDateTable({ tableName: key },param) + typeObj[key] = await upDateTable({ tableName: key }, param) if (!typeObj[key]) { promptAction.showToast({ message: `未能查询到${key}表数据, 请先检查网络是否连接正常`, @@ -130,6 +123,7 @@ export async function getDoubleCeneterTable(param) { }) } + //单中心存表 export async function getSingleCenterTable(param) { return new Promise((reslove, reject) => { @@ -209,11 +203,11 @@ export async function takePhotoFn(context) { spzd1: false, zdyz: '5', } - globalThis.spzd={ - spzd1:false, - spzd2:false, - spzd3:false, - spzd4:false, + globalThis.spzd = { + spzd1: false, + spzd2: false, + spzd3: false, + spzd4: false, } globalThis.takePhotoNum = 0 const map = {} @@ -230,11 +224,11 @@ export async function takePhotoFn(context) { map[key] = false // param[key] = false } - for(let i=0;i<=arr.length-1;i++){ - let key=arr[i] + for (let i = 0; i <= arr.length - 1; i++) { + let key = arr[i] if (param[key]) { param.pztd = param[`td${Number(i) + 1}`] - takePhoto(param, context, 'jt/',0,(data)=>{ + takePhoto(param, context, 'jt/', 0, (data) => { if (Number(data.fileSize) <= (Number(param.zdyz) * 1000)) { map[key] = true promptAction.showToast({ @@ -246,9 +240,9 @@ export async function takePhotoFn(context) { map[key] = false globalThis.spzd[key] = false } - setTimeout(()=>{ + setTimeout(() => { takePhotoFn() - },3000) + }, 3000) }) } } @@ -259,14 +253,16 @@ export async function takePhotoFn(context) { } }, 3000) } + let fd -const devPath="/dev/ttyS3" +const devPath = "/dev/ttyS3" + function openChuankouFn(callback) { console.log('SerialOpen in indexservice, path=' + devPath) - testNapi.SerialOpenAsync(devPath, (fd)=> { + testNapi.SerialOpenAsync(devPath, (fd) => { globalThis.fd = fd; - globalThis.num=0 + globalThis.num = 0 let parity = 0x4e; // 'N' let ret = testNapi.SerialSetAsync(globalThis.fd, 115200, 0, 8, 1, parity, (ret) => { callback() @@ -277,42 +273,42 @@ function openChuankouFn(callback) { function getChuankouFnMsg() { let timeout = 50000; // 2秒超时 let databuff = [0x61, 0xAA, 0x0A, 0X15, 0X00]; // send ABCDE - console.log('fdfd',globalThis.fd) + console.log('fdfd', globalThis.fd) console.log('zzc 1 try send msg') - testNapi.SerialSendAsync(globalThis.fd, databuff,(ret)=>{ + 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) + console.log('revTestInfo', revTestInfo.recevedBuf.length) const message = revTestInfo?.recevedBuf?.toString() - console.log('chuankou',message) + console.log('chuankou', message) if (message == '') { console.log('zzc error msg is emptry') - globalThis.num=1 + globalThis.num = 1 console.log('zzc 9 num=3 close serial') // clearInterval(chuankou) testNapi.SerialClose(globalThis.fd); - globalThis.fd=null + globalThis.fd = null getChuankouFn() return } const msg = message?.split(',') - if(!msg?.length){ + if (!msg?.length) { } else if (msg[0] != '98' || msg[1] != '85' || msg.length < 9) { - } else if(msg.length<12){ + } else if (msg.length < 12) { } else { - globalThis.chuankoMsg=msg[9] + globalThis.chuankoMsg = msg[9] } console.log('zzc 5 sleep 1s') - setTimeout(()=>{ + setTimeout(() => { getChuankouFnMsg() - },500) + }, 500) // hilog.info(0x0000, 'testTag', 'Test NAPI SerialRecvAsync callback in'); // hilog.info(0x0000, 'testTag', 'Test NAPI SerialRecvAsync recevedLen = %{public}d', revTestInfo.recevedLen); @@ -323,9 +319,11 @@ function getChuankouFnMsg() { // let revTestInfo = testNapi?.SerialRecv(globalThis.fd, timeout); } + let chuankou -export async function getChuankouFn(){ - if(globalThis.fd){ + +export async function getChuankouFn() { + if (globalThis.fd) { return } openChuankouFn(getChuankouFnMsg) diff --git a/entry/src/main/ets/common/service/initable.ts b/entry/src/main/ets/common/service/initable.ts index b91c11bd..d5ce1762 100644 --- a/entry/src/main/ets/common/service/initable.ts +++ b/entry/src/main/ets/common/service/initable.ts @@ -1,7 +1,5 @@ // @ts-nocheck -import data_rdb from '@ohos.data.rdb'; -import UIAbility from '@ohos.app.ability.UIAbility'; -import { initCenterCache,initCenterCacheByKSPT,initEsModel,initialization } from '../../api/index' +import { initCenterCache, initCenterCacheByKSPT, initEsModel, initialization } from '../../api/index'; import { dateFormat } from '../utils/tools'; import AccountTable from '../database/tables/AccountTable'; import MA_MARKRULE from '../constants/MA_MARKRULE'; @@ -23,12 +21,12 @@ import MA_ITEMINFO from '../constants/MA_ITEMINFO'; import MA_T_CARPARMSET from '../constants/MA_T_CARPARMSET'; import ES_CAR_VIDEO_PARAMETER from '../constants/ES_CAR_VIDEO_PARAMETER'; import IpConfigTable from '../constants/IpConfigTable'; -import CommonConstants from '../constants/CommonConstants' -import DeviceInfoTable from '../constants/DeviceInfoTable' -import USER from '../constants/USER' +import CommonConstants from '../constants/CommonConstants'; +import DeviceInfoTable from '../constants/DeviceInfoTable'; +import USER from '../constants/USER'; import util from '@ohos.util'; -import zlib from '@ohos.zlib'; import FileModel from '../../pages/judgeSDK/utils/fileModel'; + // @ts-nocheck //读表 //参数平台 @@ -51,155 +49,126 @@ const map = { 'MA_ITEMINFO': MA_ITEMINFO, 'MA_T_CARPARMSET': MA_T_CARPARMSET, 'ES_CAR_VIDEO_PARAMETER': ES_CAR_VIDEO_PARAMETER, - 'USER':USER, - 'IpConfigTable':IpConfigTable, - 'DeviceInfoTable':DeviceInfoTable, - 'CommonConstants':CommonConstants + 'USER': USER, + 'IpConfigTable': IpConfigTable, + 'DeviceInfoTable': DeviceInfoTable, + 'CommonConstants': CommonConstants } -const centerToMap={ - 'ItemInfo':MA_ITEMINFO, - 'MarkRule':MA_MARKRULE, - 'SystemParm':MA_SYSTEMPARM, - 'mapCollectList':MA_MAP_COLLECT, - 'mapCollectshapeList':MA_MAP_COLLECT_SHAPE, +const centerToMap = { + 'ItemInfo': MA_ITEMINFO, + 'MarkRule': MA_MARKRULE, + 'SystemParm': MA_SYSTEMPARM, + 'mapCollectList': MA_MAP_COLLECT, + 'mapCollectshapeList': MA_MAP_COLLECT_SHAPE, 'Map_Collect': MA_MAP_COLLECT, 'Map_Collect_Shape': MA_MAP_COLLECT_SHAPE, - 'Map_ItemClass':MA_MAP_ITEMCLASS, - 'Map_Point':MA_MAP_POINT, - 'Map_Point_Item':MA_MAP_POINT_ITEM, - 'Map_Road':MA_MAP_ROAD, - 'Map_Road_Lane':MA_MAP_ROAD_LANE, - 'Map_SubItem':MA_MAP_SUBITEM, - 'Sysset':MA_SYSSET, - 'CarInfo':ES_CARINFO, + 'Map_ItemClass': MA_MAP_ITEMCLASS, + 'Map_Point': MA_MAP_POINT, + 'Map_Point_Item': MA_MAP_POINT_ITEM, + 'Map_Road': MA_MAP_ROAD, + 'Map_Road_Lane': MA_MAP_ROAD_LANE, + 'Map_SubItem': MA_MAP_SUBITEM, + 'Sysset': MA_SYSSET, + 'CarInfo': ES_CARINFO, // 'ES_EXAMPOINTDETAIL':ES_EXAMPOINTDETAIL, - 'MarkRuleSet':MA_MARKRULE, - 'Cdsbinfo':MA_CDSBINFO, - 'T_CarParmSet':MA_T_CARPARMSET, + 'MarkRuleSet': MA_MARKRULE, + 'Cdsbinfo': MA_CDSBINFO, + 'T_CarParmSet': MA_T_CARPARMSET, // 'ES_CAR_VIDEO_PARAMETER':ES_CAR_VIDE0pO_PARAMETER } -function sqlInsertCommonFn(tableName,resultArr,context?){ - return new Promise((resolve,reject)=>{ +function sqlInsertCommonFn(tableName, resultArr, context?, delFlag = true) { + return new Promise((resolve, reject) => { const accountTable = new AccountTable(() => { - }, map[tableName],context); + }, map[tableName], context); accountTable.getRdbStore(() => { - accountTable.query('0', async (result) => { + accountTable.query('0', async (result) => { // console.log('表长度',result.length,tableName) if (result.length == 0) { - let INSERT_SQL = "INSERT INTO "+tableName - + " ("+ map[tableName].ACCOUNT_TABLE.columns.toString()+") VALUES " + let INSERT_SQL = "INSERT INTO " + tableName + + " (" + map[tableName].ACCOUNT_TABLE.columns.toString() + ") VALUES " - resultArr.map((data,i) => { - data.id=`${i}` - let str='(' - map[tableName].ACCOUNT_TABLE.columns.map((res,index)=>{ - if(map[tableName].ACCOUNT_TABLE.columns.length-1==index){ - str+=data[res]?`"${data[res]}"`:'NULL' - }else{ - str+=(data[res]?`"${data[res]}"`:'NULL')+',' + resultArr.map((data, i) => { + data.id = `${i}` + let str = '(' + map[tableName].ACCOUNT_TABLE.columns.map((res, index) => { + if (map[tableName].ACCOUNT_TABLE.columns.length - 1 == index) { + str += data[res] ? `"${data[res]}"` : 'NULL' + } else { + str += (data[res] ? `"${data[res]}"` : 'NULL') + ',' } }) - if(i==resultArr.length-1){ - str+=')' - }else{ - str+='),' + if (i == resultArr.length - 1) { + str += ')' + } else { + str += '),' } - INSERT_SQL+=str + INSERT_SQL += str }) - accountTable.sqlOperate(INSERT_SQL,tableName,(val)=>{ - console.log('sqlsqlinsert,',val,'tableName',tableName) + accountTable.sqlOperate(INSERT_SQL, tableName, (val) => { + console.log('sqlsqlinsert,', val, 'tableName', tableName) resolve(val) }) } else { - await delSyncTable(tableName,context) - const result= await sqlInsertCommonFn(tableName,resultArr,context) + if (delFlag) { + await delSyncTable(tableName, context) + } + const result = await sqlInsertCommonFn(tableName, resultArr, context) resolve(result) } }, true); - },context); + }, context); }) } + //参数平台 -export async function getDataBaseTable(params,reqParam) { - return new Promise((resolve, reject) => { - const accountTable = new AccountTable(() => { - }, map[params.tableName],context); - accountTable.getRdbStore(() => { - accountTable.query('0', async (result) => { - if (result.length != 0) { - resolve(); - return - } else { - const date = new Date() - if(!reqParam?.paraKdid){ - prompt.showToast({ - message: 'paraKdid获取失败', - duration: 3000 - }); - return - } - const str = { "head": { "time": dateFormat(date) }, - "body": - { "tableName": params.tableName, // 表名 - "paraKdid": reqParam.paraKdid, //参数平台kdid - "examinationRoomId": reqParam.examinationRoomId, //考试平台kdid - "typeRsp": "0" // 赋默认值0,无需改变 - } - } - let res: any = await initCenterCache(str,reqParam.centerHost) - if( res.body[params.tableName].length==0){ - resolve(); - return - } - - let INSERT_SQL = "INSERT INTO "+params.tableName - + " ("+ map[params.tableName].ACCOUNT_TABLE.columns.toString()+") VALUES " - if(params.tableName=='MA_SYSSET'){ - res.body[params.tableName]= res.body[params.tableName].filter(res=>{ - return res['v_no']>=300&&res['v_no']<=700 - }) - } - - res.body[params.tableName].map((data,i) => { - // data.id=`${i}` - data.id=i - let str='(' - map[params.tableName].ACCOUNT_TABLE.columns.map((res,index)=>{ - if(map[params.tableName].ACCOUNT_TABLE.columns.length-1==index){ - str+=data[res]?`"${data[res]}"`:'NULL' - }else{ - str+=(data[res]?`"${data[res]}"`:'NULL')+',' - } - }) - if(i==res.body[params.tableName].length-1){ - str+=')' - }else{ - str+='),' - } - INSERT_SQL+=str - }) - - accountTable.sqlOperate(INSERT_SQL,params.tableName,()=>{ - resolve(true) - }) - } - }, true); - },reqParam.context); +export async function getDataBaseTable(params, reqParam) { + return new Promise(async (resolve, reject) => { + const date = new Date() + if (!reqParam?.paraKdid) { + prompt.showToast({ + message: 'paraKdid获取失败', + duration: 3000 + }); + return + } + const str = { "head": { "time": dateFormat(date) }, + "body": + { "tableName": params.tableName, // 表名 + "paraKdid": reqParam.paraKdid, //参数平台kdid + "examinationRoomId": reqParam.examinationRoomId, //考试平台kdid + "typeRsp": "0" // 赋默认值0,无需改变 + } + } + let res: any = await initCenterCache(str, reqParam.centerHost) + if (res.body[params.tableName].length == 0) { + resolve(); + return + } + if (params.tableName == 'MA_SYSSET') { + res.body[params.tableName] = res.body[params.tableName].filter(res => { + return res['v_no'] >= 300 && res['v_no'] <= 700 + }) + } + sqlInsertCommonFn(param.tableName, res.body[params.tableName]).then((val) => { + reslove(val) + }) }) } + //依据数组和表名更新sql表 -export async function upDateTableByArray(tableName,arr) { - sqlInsertCommonFn(tableName,arr) +export async function upDateTableByArray(tableName, arr) { + sqlInsertCommonFn(tableName, arr) } + //更新双中心表 -export async function upDateTable(params,reqParam) { +export async function upDateTable(params, reqParam) { return new Promise((resolve, reject) => { const date = new Date() - let paraKdid=reqParam?.paraKdid||'' - let examinationRoomId=reqParam?.examinationRoomId||'' - if(!paraKdid|| !examinationRoomId){ + let paraKdid = reqParam?.paraKdid || '' + let examinationRoomId = reqParam?.examinationRoomId || '' + if (!paraKdid || !examinationRoomId) { resolve(false) return } @@ -212,17 +181,17 @@ export async function upDateTable(params,reqParam) { "typeRsp": "0" // 赋默认值0,无需改变 } } - const url=globalThis.timeInfo.url + const url = globalThis.timeInfo.url - initCenterCache(str,url).then(async (res)=>{ - if(!res||res==undefined||res==''){ + 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],reqParam.context) + const result = await sqlInsertCommonFn(params.tableName, res.body[params.tableName], reqParam.context) resolve(result) - }catch (error){ + } catch (error) { console.log(error) } }) @@ -230,10 +199,10 @@ export async function upDateTable(params,reqParam) { } //考试平台 -export async function getMySystemSetTable(params,reqParam) { +export async function getMySystemSetTable(params, reqParam) { return new Promise((resolve, reject) => { const date = new Date() - if(!reqParam.paraKdid){ + if (!reqParam.paraKdid) { prompt.showToast({ message: 'paraKdid获取失败', duration: 3000 @@ -248,17 +217,17 @@ export async function getMySystemSetTable(params,reqParam) { "typeRsp": "0" // 赋默认值0,无需改变 } } - initCenterCacheByKSPT(str,reqParam.url).then((res)=>{ - if( res.body[params.tableName].length==0){ + initCenterCacheByKSPT(str, reqParam.url).then((res) => { + if (res.body[params.tableName].length == 0) { resolve(); return } - if(params.tableName=='MA_SYSSET'){ - res.body[params.tableName]= res.body[params.tableName].filter(res=>{ - return res['v_no']<300 || res['v_no']>700 + if (params.tableName == 'MA_SYSSET') { + res.body[params.tableName] = res.body[params.tableName].filter(res => { + return res['v_no'] < 300 || res['v_no'] > 700 }) } - sqlInsertCommonFn(params.tableName,res.body[params.tableName],reqParam.context).then((result)=>{ + sqlInsertCommonFn(params.tableName, res.body[params.tableName], reqParam.context, false).then((result) => { resolve(result) }) }) @@ -269,10 +238,10 @@ export async function getMySystemSetTable(params,reqParam) { } //依据表名同步获取数据 -export async function getSyncData(tableName,context?) { +export async function getSyncData(tableName, context?) { return new Promise((resolve, reject) => { const accountTable = new AccountTable(() => { - }, map[tableName],context); + }, map[tableName], context); accountTable.getRdbStore(() => { accountTable.query('0', async (result) => { resolve(result) @@ -282,22 +251,22 @@ export async function getSyncData(tableName,context?) { } -export async function delSyncTable(tableName,context?){ - return new Promise((resolve,reject)=>{ +export async function delSyncTable(tableName, context?) { + return new Promise((resolve, reject) => { const accountTable = new AccountTable(() => { - }, map[tableName],context); - accountTable.deleteTableData((ret)=>{ + }, map[tableName], context); + accountTable.deleteTableData((ret) => { console.log('删除成功') resolve(true) - },tableName,context) + }, tableName, context) }) } //获取车模、场地模型 -export async function getEsCarModel(context){ +export async function getEsCarModel(context) { const date = new Date() - if(!globalThis.timeInfo?.paraKdid){ + if (!globalThis.timeInfo?.paraKdid) { prompt.showToast({ message: 'paraKdid获取失败', duration: 3000 @@ -307,23 +276,23 @@ export async function getEsCarModel(context){ const carStr = { "head": { "time": dateFormat(date) }, "body": { - "rtkType":"1",//1:车模 2:场地模型 - "rspType":"0", //返回类型 + "rtkType": "1", //1:车模 2:场地模型 + "rspType": "0", //返回类型 "paraKdid": globalThis.timeInfo.paraKdid, //参数平台kdid "examinationRoomId": globalThis.timeInfo.kdid, //考试平台kdid // "carMac":"MAC-HCPAD-210", - "carMac":globalThis.deviceNo + "carMac": globalThis.deviceNo } } - const venueStr = { "head": { "time": dateFormat(date) }, + const venueStr = { "head": { "time": dateFormat(date) }, "body": { - "rtkType":"2",//1:车模 2:场地模型 - "rspType":"0", //返回类型 + "rtkType": "2", //1:车模 2:场地模型 + "rspType": "0", //返回类型 "paraKdid": globalThis.timeInfo.paraKdid, //参数平台kdid "examinationRoomId": globalThis.timeInfo.kdid, //考试平台kdid // "carMac":"MAC-HCPAD-210", - "carMac":globalThis.deviceNo + "carMac": globalThis.deviceNo } } @@ -335,48 +304,48 @@ export async function getEsCarModel(context){ const venueModel = venueRes.body.ES_MODEL[0][2]; let tmpBase64Array = carModel.split("\r\n") - let newBase64Str:string = ''; + let newBase64Str: string = ''; for (let i = 0; i < tmpBase64Array.length; ++i) { newBase64Str += tmpBase64Array[i]; } const base64 = new util.Base64(); let result = base64.decodeSync(newBase64Str); - const fileModel= new FileModel(context); + const fileModel = new FileModel(context); await fileModel.initFolder() await fileModel.storingFiles(result.buffer) } -export async function upDataZhongxinginitialization(param){ +export async function upDataZhongxinginitialization(param) { return new Promise((resolve, reject) => { - if(!param.carId){ + if (!param.carId) { resolve(false) return } const str = { - "carId": param.carId, // 表名 + "carId": param.carId, // 表名 "examinationRoomId": param.examinationRoomId, //考试平台kdid - videoVersion:'1.0', - judgeVersion:param.judgeVersion, - shellVersion: param.shellVersion, - host:param.host + videoVersion: '1.0', + judgeVersion: param.judgeVersion, + shellVersion: param.shellVersion, + host: param.host } - console.log('daihai2',JSON.stringify(str)) + console.log('daihai2', JSON.stringify(str)) - initialization(str).then(async (res)=>{ - console.log('daihai3',JSON.stringify(res)) - if(!res){ + initialization(str).then(async (res) => { + console.log('daihai3', JSON.stringify(res)) + if (!res) { resolve(false) return } let flag console.log('resposestart') - for(let key in res.initializationRsp.body){ - if(!centerToMap[key]){ + for (let key in res.initializationRsp.body) { + if (!centerToMap[key]) { continue } - const data= await setSyncCenterSqlData(key,res,param) - if(!data){ + const data = await setSyncCenterSqlData(key, res, param) + if (!data) { resolve(false) } } @@ -385,52 +354,53 @@ export async function upDataZhongxinginitialization(param){ console.log('resposestart') - }).catch((Error)=>{ + }).catch((Error) => { resolve(false) }) }) } -function setSyncCenterSqlData(key,res,param){ - return new Promise((resolve,reject)=>{ - const mapName={ - 'ItemInfo':'MA_ITEMINFO', - 'MarkRule':'MA_MARKRULE', - 'SystemParm':'MA_SYSTEMPARM', + +function setSyncCenterSqlData(key, res, param) { + return new Promise((resolve, reject) => { + const mapName = { + 'ItemInfo': 'MA_ITEMINFO', + 'MarkRule': 'MA_MARKRULE', + 'SystemParm': 'MA_SYSTEMPARM', 'Map_Collect': 'MA_MAP_COLLECT', 'Map_Collect_Shape': 'MA_MAP_COLLECT_SHAPE', - 'Map_ItemClass':'MA_MAP_ITEMCLASS', - 'Map_Point':'MA_MAP_POINT', - 'Map_Point_Item':'MA_MAP_POINT_ITEM', - 'Map_Road':'MA_MAP_ROAD', - 'Map_Road_Lane':'MA_MAP_ROAD_LANE', - 'Map_SubItem':'MAP_SUBITEM', - 'Sysset':'MA_SYSSET', - 'CarInfo':'ES_CARINFO', + 'Map_ItemClass': 'MA_MAP_ITEMCLASS', + 'Map_Point': 'MA_MAP_POINT', + 'Map_Point_Item': 'MA_MAP_POINT_ITEM', + 'Map_Road': 'MA_MAP_ROAD', + 'Map_Road_Lane': 'MA_MAP_ROAD_LANE', + 'Map_SubItem': 'MAP_SUBITEM', + 'Sysset': 'MA_SYSSET', + 'CarInfo': 'ES_CARINFO', // 'ES_EXAMPOINTDETAIL':ES_EXAMPOINTDETAIL, - 'MarkRuleSet':'MA_MARKRULESET', - 'Cdsbinfo':'MA_CDSBINFO', - 'T_CarParmSet':'MA_T_CARPARMSET', + 'MarkRuleSet': 'MA_MARKRULESET', + 'Cdsbinfo': 'MA_CDSBINFO', + 'T_CarParmSet': 'MA_T_CARPARMSET', // 'ES_CAR_VIDEO_PARAMETER':ES_CAR_VIDE0pO_PARAMETER } // const accountTable = new AccountTable(() => { // }, centerToMap[key],param.context); let arrList - if(res.initializationRsp.body[key].record instanceof Array){ - arrList =res.initializationRsp.body[key].record - }else{ - arrList=[res.initializationRsp.body[key].record] + if (res.initializationRsp.body[key].record instanceof Array) { + arrList = res.initializationRsp.body[key].record + } else { + arrList = [res.initializationRsp.body[key].record] } - console.log('mapName[key]',mapName[key],key) - sqlInsertCommonFn(mapName[key],arrList,param.context).then((result)=>{ - console.log(key,'表建立成功') - if(result){ + console.log('mapName[key]', mapName[key], key) + sqlInsertCommonFn(mapName[key], arrList, param.context).then((result) => { + console.log(key, '表建立成功') + if (result) { resolve(true) - }else{ + } else { resolve(false) } - }).catch((msg)=>{ + }).catch((msg) => { reject(false) - console.log(key,'表建立失败') + console.log(key, '表建立失败') }) }) diff --git a/entry/src/main/ets/common/utils/GlobalTcp.ts b/entry/src/main/ets/common/utils/GlobalTcp.ts index a709aed5..fe02808a 100644 --- a/entry/src/main/ets/common/utils/GlobalTcp.ts +++ b/entry/src/main/ets/common/utils/GlobalTcp.ts @@ -1,74 +1,76 @@ import TcpClient from './TcpClient'; -import { getSyncData} from '../service/initable' +import { getSyncData } from '../service/initable'; import hilog from '@ohos.hilog'; + export async function getTCP() { - getSyncData('IpConfigTable').then(async (result:Array)=>{ - console.log('result222',JSON.stringify(result)) - if(result.length){ - if(globalThis.TcpClient&&globalThis.getCloseTcp){ - globalThis.TcpClient.closeTcp(async ()=>{ + getSyncData('IpConfigTable').then(async (result: Array) => { + console.log('result222', JSON.stringify(result)) + if (result.length) { + if (globalThis.TcpClient && globalThis.TcpClient.closeTcp) { + globalThis.TcpClient.closeTcp(async () => { // const tcpClient: TcpClient =new TcpClient(result[0].tcplocalIp, result[0].tcplocalIpPort,result[0].tcpOppositeIp,result[0].tcpOppositePort) // globalThis.TcpClient = tcpClient - setTimeout(async ()=>{ - await globalThis.TcpClient.rebindTcp(result[0].tcplocalIp, result[0].tcplocalIpPort,result[0].tcpOppositeIp,result[0].tcpOppositePort) + setTimeout(async () => { + await globalThis.TcpClient.rebindTcp(result[0].tcplocalIp, result[0].tcplocalIpPort, result[0].tcpOppositeIp, result[0].tcpOppositePort) await globalThis.TcpClient.connectTcp() - await globalThis.TcpClient.sendMsg('1002')//1002 - globalThis.TcpClient.onError((val)=>{ - setTimeout(()=>{ - globalThis.TcpClient.sendMsg('1002')//1002 - if(val){ + await globalThis.TcpClient.sendMsg('1002') //1002 + globalThis.TcpClient.onError((val) => { + setTimeout(() => { + globalThis.TcpClient.sendMsg('1002') //1002 + if (val) { // const msg=val.substring(5,val.length-1) - console.log('socketTag[PLC.UdpClient] status:',globalThis.udpClient.getStatus()) + console.log('socketTag[PLC.UdpClient] status:', globalThis.udpClient.getStatus()) globalThis.udpClient?.sendMsg(val) } - },1000) + }, 1000) }) - await globalThis.TcpClient.onMessage((val)=>{ - setTimeout(()=>{ - globalThis.TcpClient.sendMsg('1002')//1002 - if(val){ + await globalThis.TcpClient.onMessage((val) => { + setTimeout(() => { + globalThis.TcpClient.sendMsg('1002') //1002 + if (val) { // const msg=val.substring(5,val.length-1) - console.log('socketTag[PLC.UdpClient] status:',globalThis.udpClient.getStatus()) + console.log('socketTag[PLC.UdpClient] status:', globalThis.udpClient.getStatus()) globalThis.udpClient?.sendMsg(val) } - },1000) + }, 1000) }) - },2000) + }, 2000) }) - }else{ - const tcpClient: TcpClient =new TcpClient(result[0].tcplocalIp, result[0].tcplocalIpPort,result[0].tcpOppositeIp,result[0].tcpOppositePort) + } else { + const tcpClient: TcpClient = new TcpClient(result[0].tcplocalIp, result[0].tcplocalIpPort, result[0].tcpOppositeIp, result[0].tcpOppositePort) globalThis.TcpClient = tcpClient await globalThis.TcpClient.bindTcp() await globalThis.TcpClient.connectTcp() - await globalThis.TcpClient.sendMsg('1002')//1002 - globalThis.TcpClient.onError((val)=>{ + await globalThis.TcpClient.sendMsg('1002') //1002 + globalThis.TcpClient.onError((val) => { hilog.info(0x0000, 'testTag', "valvalval2" + JSON.stringify(val)); - setTimeout(()=>{ - globalThis.TcpClient.sendMsg('1002')//1002 - if(val&& globalThis.udpClient?.sendMsg){ + setTimeout(() => { + globalThis.TcpClient.sendMsg('1002') //1002 + if (val && globalThis.udpClient?.sendMsg) { globalThis.udpClient?.sendMsg(val) } - },1000) + }, 1000) }) - await globalThis.TcpClient.onMessage((val)=>{ + await globalThis.TcpClient.onMessage((val) => { hilog.info(0x0000, 'testTag', "valvalval2" + JSON.stringify(val)); - setTimeout(()=>{ - globalThis.TcpClient.sendMsg('1002')//1002 - if(val&& globalThis.udpClient?.sendMsg){ + setTimeout(() => { + globalThis.TcpClient.sendMsg('1002') //1002 + if (val && globalThis.udpClient?.sendMsg) { globalThis.udpClient?.sendMsg(val) } - },1000) + }, 1000) }) } // globalThis.udpClient = new UdpClient(result[0].localIp, result[0].localIpPort,result[0].oppositeIp,result[0].oppositeIpPort) - }else{ - globalThis.TcpClient={} - globalThis.TcpClient.onMessage=()=>{} + } else { + globalThis.TcpClient = {} + globalThis.TcpClient.onMessage = () => { + } } }) } diff --git a/entry/src/main/ets/common/utils/TcpClient.ts b/entry/src/main/ets/common/utils/TcpClient.ts index 94b69093..e0765e65 100644 --- a/entry/src/main/ets/common/utils/TcpClient.ts +++ b/entry/src/main/ets/common/utils/TcpClient.ts @@ -1,176 +1,189 @@ import socket from '@ohos.net.socket'; -import buffer from '@ohos.buffer'; - -const TAG = 'socketTag[TcpDemo.TcpClient]' -import prompt from '@ohos.prompt' import hilog from '@ohos.hilog'; +const TAG = 'socketTag[TcpDemo.TcpClient]' + export default class TcpClient { - private localIp: string = '' - private localIpPort: string = '' - private oppositeIp: string = '' - private oppositeIpPort: string = '' + private localIp: string = '' + private localIpPort: string = '' + private oppositeIp: string = '' + private oppositeIpPort: string = '' - private tcp: any = null + private tcp: any = null - constructor(tcplocalIp: string, tcplocalIpPort:string,tcpOppositeIp: string,tcpOppositePort:string) { - this.localIp = tcplocalIp - this.oppositeIp = tcpOppositeIp - this.localIpPort = tcplocalIpPort - this.oppositeIpPort = tcpOppositePort - console.log(TAG,'new Tcp',this.localIp,this.localIpPort,this.oppositeIp,this.oppositeIpPort) - this.tcp = socket.constructTCPSocketInstance(); - } - onError(callback?){ - this.tcp.on('error', err => { - console.log(TAG,'tcpOnerror', JSON.stringify(err)) - setTimeout(async ()=>{ - await this.bindTcp() - await this.connectTcp() - this.onMessage(callback) - },2000) - // this.closeUdp(()=>{ - // this.bindUdp() - // }) + constructor(tcplocalIp: string, tcplocalIpPort: string, tcpOppositeIp: string, tcpOppositePort: string) { + this.localIp = tcplocalIp + this.oppositeIp = tcpOppositeIp + this.localIpPort = tcplocalIpPort + this.oppositeIpPort = tcpOppositePort + console.log(TAG, 'new Tcp', this.localIp, this.localIpPort, this.oppositeIp, this.oppositeIpPort) + this.tcp = socket.constructTCPSocketInstance(); + } + + onError(callback?) { + this.tcp.on('error', err => { + console.log(TAG, 'tcpOnerror', JSON.stringify(err)) + setTimeout(async () => { + await this.bindTcp() + await this.connectTcp() + this.onMessage(callback) + }, 2000) + // this.closeUdp(()=>{ + // this.bindUdp() + // }) + }); + } + + rebindTcp(localIp: string, localIpPort: string, oppositeIp: string, oppositeIpPort: string) { + return new Promise((resolve, reject) => { + this.localIp = localIp + this.oppositeIp = oppositeIp + this.localIpPort = localIpPort + this.oppositeIpPort = oppositeIpPort + console.log(TAG, 'tcpreBind', this.localIp, this.localIpPort) + let promise = this.tcp.bind({ + address: this.localIp, port: parseInt(this.localIpPort), family: 1 + }, err => { + if (err) { + globalThis.getCloseTcp = true + hilog.info(0x0000, 'testTag', "tcpreBinderror:" + JSON.stringify(err)); + resolve(true) + } + console.log('testTag,rebindtestTag tcp bind success'); + globalThis.getCloseTcp = false + resolve(false) + + }) + }) + + // let promise = this.udp.bind({ + // // address: '192.168.7.170', port: 20122, family: 1 + // // address: '192.168.7.170', port: 31013, family: 1 + // address: this.localIp, port: parseInt(this.localIpPort), family: 1 + // }); + + } + + bindTcp() { + console.log(TAG, 'tcpbind', this.localIp, 'localIp', this.localIpPort) + return new Promise((resolve, reject) => { + let promise = this.tcp.bind({ + address: this.localIp, port: parseInt(this.localIpPort), family: 1 + }, err => { + if (err) { + console.log('testTag tcp bind faile'); + globalThis.getCloseTcp = true + hilog.info(0x0000, 'testTag', "tcpBinderror:" + JSON.stringify(err)); + resolve(true) + return + } + globalThis.getCloseTcp = false + console.log('testTag tcp bind success'); + resolve(false) + }) + }) + console.log('localIp', this.localIp) + console.log('localIpPort', this.localIpPort) + // let promise = this.udp.bind({ + // // address: '192.168.7.170', port: 20122, family: 1 + // // address: '192.168.7.170', port: 31013, family: 1 + // address: this.localIp, port: parseInt(this.localIpPort), family: 1 + // }); + + + } + + connectTcp() { + console.log(TAG, 'tcpConnect', this.oppositeIp, 'localIp', this.oppositeIpPort) + return new Promise((resolve, reject) => { + let promise = this.tcp.connect({ + address: { + address: this.oppositeIp, port: parseInt(this.oppositeIpPort), family: 1 + }, timeout: 6000 + }); + promise.then(() => { + + this.tcp.setExtraOptions({ + keepAlive: true, + // OOBInline: true, + // TCPNoDelay: true, + // socketLinger: { on:true, linger:10 }, + // receiveBufferSize: 1000, + // sendBufferSize: 1000, + // reuseAddress: true, + // socketTimeout: 3000, + }, err => { + if (err) { + return; + } }); - } - rebindTcp(localIp: string, localIpPort:string,oppositeIp: string,oppositeIpPort:string){ - return new Promise((resolve, reject)=>{ - this.localIp = localIp - this.oppositeIp = oppositeIp - this.localIpPort = localIpPort - this.oppositeIpPort = oppositeIpPort - console.log(TAG,'tcpreBind', this.localIp,this.localIpPort) - let promise=this.tcp.bind({ address: this.localIp, port:parseInt(this.localIpPort), family: 1 }, err => { - if (err) { - globalThis.getCloseTcp=true - hilog.info(0x0000, 'testTag', "tcpreBinderror:" + JSON.stringify(err)); - resolve(true) - } - console.log('testTag,rebindtestTag tcp bind success'); - globalThis.getCloseTcp=false - resolve(false) + globalThis.getCloseTcp = false + resolve(true) + }).catch(err => { + globalThis.getCloseTcp = true + setTimeout(() => { + this.connectTcp() + resolve(false) + }, 2000) + console.log('testTagconnect,error') - }) - }) + }); + }) + } - // let promise = this.udp.bind({ - // // address: '192.168.7.170', port: 20122, family: 1 - // // address: '192.168.7.170', port: 31013, family: 1 - // address: this.localIp, port: parseInt(this.localIpPort), family: 1 - // }); + sendMsg(msg: string) { + console.log(TAG, 'tcpSend', msg.length, msg) + return new Promise((reslove, reject) => { + let promise = this.tcp.send({ + data: msg + }); + promise.then(() => { + reslove(true) + }).catch(err => { + reslove(false) + }); + }) + } - } - bindTcp() { - console.log(TAG,'tcpbind',this.localIp,'localIp',this.localIpPort) - return new Promise((resolve,reject)=>{ - let promise=this.tcp.bind({ address: this.localIp, port:parseInt(this.localIpPort), family: 1 }, err => { - if (err) { - console.log('testTag tcp bind faile'); - globalThis.getCloseTcp=true - hilog.info(0x0000, 'testTag', "tcpBinderror:" + JSON.stringify(err)); - resolve(true) - return - } - globalThis.getCloseTcp=false - console.log('testTag tcp bind success'); - resolve(false) - }) - }) - console.log('localIp',this.localIp) - console.log('localIpPort',this.localIpPort) - // let promise = this.udp.bind({ - // // address: '192.168.7.170', port: 20122, family: 1 - // // address: '192.168.7.170', port: 31013, family: 1 - // address: this.localIp, port: parseInt(this.localIpPort), family: 1 - // }); + onMessage(callback?) { + this.tcp.on('message', value => { + console.log(TAG, 'Tcponmessage', value.length, value) + // console.log('messageLengt',,value.message.length)) + console.log('testTagtcpmsg') + // console.log("on message, message:" + value.message+ ", remoteInfo:" ) + if (value) { + let dataView = new DataView(value.message) + // const Arraybuffer=buffer.from(value.message, 5, dataView?.byteLength); + const Arraybuffer = value.message.slice(5, dataView?.byteLength); - } - connectTcp(){ - console.log(TAG,'tcpConnect',this.oppositeIp,'localIp',this.oppositeIpPort) - return new Promise((resolve,reject)=>{ - let promise = this.tcp.connect({ address: {address: this.oppositeIp, port: parseInt(this.oppositeIpPort), family: 1} , timeout: 6000}); - promise.then(() => { + callback && callback(Arraybuffer) + } else { + callback && callback('') + } + // callback(value.message) + }); + } - this.tcp.setExtraOptions({ - keepAlive: true, - // OOBInline: true, - // TCPNoDelay: true, - // socketLinger: { on:true, linger:10 }, - // receiveBufferSize: 1000, - // sendBufferSize: 1000, - // reuseAddress: true, - // socketTimeout: 3000, - },err => { - if (err) { - return; - } - }); - globalThis.getCloseTcp=false - resolve(true) - }).catch(err => { - globalThis.getCloseTcp=true - setTimeout(()=>{ - this.connectTcp() - },2000) - console.log('testTagconnect,error') + offTcp(callback) { + console.log(TAG, 'tcpofff') - }); - }) - } + this.tcp.off('testTagofmessg', callback); + } - sendMsg(msg: string) { - console.log(TAG,'tcpSend',msg.length,msg) - return new Promise((reslove,reject)=>{ - let promise = this.tcp.send({ - data:msg - }); - promise.then(() => { - reslove(true) - }).catch(err => { - reslove(false) - }); - }) - } - - onMessage(callback?) { - this.tcp.on('message', value => { - console.log(TAG,'Tcponmessage',value.length,value) - - // console.log('messageLengt',,value.message.length)) - console.log('testTagtcpmsg') - // console.log("on message, message:" + value.message+ ", remoteInfo:" ) - if (value) { - let dataView = new DataView(value.message) - // const Arraybuffer=buffer.from(value.message, 5, dataView?.byteLength); - const Arraybuffer=value.message.slice(5, dataView?.byteLength); - - callback&&callback(Arraybuffer) - }else{ - callback&&callback('') - } - // callback(value.message) - }); - } - offTcp(callback) { - console.log(TAG,'tcpofff') - - this.tcp.off('testTagofmessg', callback); - } - closeTcp(callback) { - return new Promise((reslove,reject)=>{ - console.log(TAG,'tcpClose') - let promise = this.tcp.close(); - promise.then(() => { - globalThis.getCloseTcp=true - console.log(TAG,'tcpCloseSuccess') - callback() - reslove(true) - }).catch(err => { - console.log(TAG,'tcpClosefailed') - reslove(false) - }); - }) - } + closeTcp(callback) { + return new Promise((reslove, reject) => { + console.log(TAG, 'tcpClose') + let promise = this.tcp.close(); + promise.then(() => { + globalThis.getCloseTcp = true + console.log(TAG, 'tcpCloseSuccess') + callback() + reslove(true) + }).catch(err => { + console.log(TAG, 'tcpClosefailed') + reslove(false) + }); + }) + } } \ No newline at end of file diff --git a/entry/src/main/ets/pages/CarCheck.ets b/entry/src/main/ets/pages/CarCheck.ets index 68a2740b..71be5f8e 100644 --- a/entry/src/main/ets/pages/CarCheck.ets +++ b/entry/src/main/ets/pages/CarCheck.ets @@ -111,7 +111,7 @@ export default struct Index { carConfigurationInfoFn() { if (globalThis.singlePlay) { // - const str = "1:5;2:5;3:5;4:5;5:5;6:5;7:5;8:5;9:5;10:5;11:5;12:5;13:5;14:5;15:5;16:5;17:5;18:5;19:5;20:5;21:5;22:2;23:5;24:5;25:5;" + const str = "1:5;2:5;3:5;4:5;5:5;6:5;7:5;8:5;9:5;10:5;11:5;12:5;13:5;14:5;15:5;16:5;17:5;18:5;19:5;20:5;21:5;22:2;23:5;24:5" const data = str.split(';') this.checkList = [] const list = data @@ -166,7 +166,7 @@ export default struct Index { getPLCInfo() { const that = this - globalThis.udpClient && globalThis.udpClient.onMessage_1((msg) => { + globalThis.udpClient.onMessage_1 && globalThis.udpClient.onMessage_1((msg) => { if (!this.breakFlag) { return }