Compare commits

...

5 Commits

Author SHA1 Message Date
b987bac5f0 Merge pull request 'lv_chengmai' (#38) from lv_chengmai into main
Reviewed-on: #38
2024-07-30 10:41:50 +08:00
3bbf35a1db tcp修改 2024-07-30 10:35:41 +08:00
33a719a462 双中心修改 2024-07-29 14:29:32 +08:00
abb3e1bb47 双中心修改 2024-07-29 09:51:49 +08:00
bf8e2226a7 carcheck修改 2024-07-29 08:56:01 +08:00
5 changed files with 445 additions and 462 deletions

View File

@ -3,42 +3,45 @@ import promptAction from '@ohos.promptAction'
import router from '@ohos.router' import router from '@ohos.router'
import { dateFormat } from '../utils/tools' import { dateFormat } from '../utils/tools'
import FileUtil from '../../common/utils/File' import FileUtil from '../../common/utils/File'
import AccountTable from '../../common/database/tables/AccountTable'; import AccountTable from '../../common/database/tables/AccountTable'
import MA_SYSSET from '../../common/constants/MA_SYSSET'; import MA_SYSSET from '../../common/constants/MA_SYSSET'
import { takePhoto, deleteAllFileByPiC } from '../../common/service/videoService' import { takePhoto } from '../../common/service/videoService'
import { import {
getDataBaseTable,
upDateTable,
getMySystemSetTable,
delSyncTable, delSyncTable,
upDataZhongxinginitialization getDataBaseTable,
getMySystemSetTable,
upDataZhongxinginitialization,
upDateTable
} from '../../common/service/initable' } from '../../common/service/initable'
import { GlobalConfig } from '../../config/index' import { GlobalConfig } from '../../config/index'
import testNapi from '@ohos.hiserialsdk' import testNapi from '@ohos.hiserialsdk'
let num=0
export async function getliushuiNum(context){ let num = 0
export async function getliushuiNum(context) {
console.log('getLiushuihao') console.log('getLiushuihao')
const fileUtil = new FileUtil(context) const fileUtil = new FileUtil(context)
const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress+'/config/liushui.txt'); const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/liushui.txt');
if(data === '' || data === undefined){ if (data === '' || data === undefined) {
num=0 num = 0
let str=num.toString() let str = num.toString()
for(let i=0;str.length<=5;i++){ for (let i = 0; str.length <= 5; i++) {
str='0'+str str = '0' + str
} }
globalThis.lshNo=str globalThis.lshNo = str
// return str // return str
}else{ } else {
num=Number(JSON.parse(data).value)+1 num = Number(JSON.parse(data).value) + 1
let str=num.toString() let str = num.toString()
for(let i=0;str.length<=5;i++){ for (let i = 0; str.length <= 5; i++) {
str='0'+str str = '0' + str
} }
globalThis.lshNo=str globalThis.lshNo = str
// return str // return str
} }
} }
//配置流水号 //配置流水号
export async function setliushuiNum(context) { export async function setliushuiNum(context) {
const fileUtil = new FileUtil(context) const fileUtil = new FileUtil(context)
@ -78,21 +81,11 @@ export async function setliushuiNum(context) {
export async function getDoubleCeneterTable(param) { export async function getDoubleCeneterTable(param) {
return new Promise(async (reslove, reject) => { return new Promise(async (reslove, reject) => {
// MA_SYSSET双中心下做合并表格操作 // MA_SYSSET双中心下做合并表格操作
const db = new AccountTable(() => { delSyncTable('MA_SYSSET', param.context).then(async () => {
}, MA_SYSSET); await getDataBaseTable({ tableName: 'MA_SYSSET' }, param)
db.getRdbStore(() => { await getMySystemSetTable({ tableName: 'MA_SYSSET' }, param)
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)
const typeObj = { const typeObj = {
'MA_MARKRULE': false, 'MA_MARKRULE': false,
'MA_SYSTEMPARM': false, 'MA_SYSTEMPARM': false,
@ -113,7 +106,7 @@ export async function getDoubleCeneterTable(param) {
'MA_T_CARPARMSET': false 'MA_T_CARPARMSET': false
} }
for (let key in typeObj) { for (let key in typeObj) {
typeObj[key] = await upDateTable({ tableName: key },param) typeObj[key] = await upDateTable({ tableName: key }, param)
if (!typeObj[key]) { if (!typeObj[key]) {
promptAction.showToast({ promptAction.showToast({
message: `未能查询到${key}表数据, 请先检查网络是否连接正常`, message: `未能查询到${key}表数据, 请先检查网络是否连接正常`,
@ -130,6 +123,7 @@ export async function getDoubleCeneterTable(param) {
}) })
} }
//单中心存表 //单中心存表
export async function getSingleCenterTable(param) { export async function getSingleCenterTable(param) {
return new Promise((reslove, reject) => { return new Promise((reslove, reject) => {
@ -209,11 +203,11 @@ export async function takePhotoFn(context) {
spzd1: false, spzd1: false,
zdyz: '5', zdyz: '5',
} }
globalThis.spzd={ globalThis.spzd = {
spzd1:false, spzd1: false,
spzd2:false, spzd2: false,
spzd3:false, spzd3: false,
spzd4:false, spzd4: false,
} }
globalThis.takePhotoNum = 0 globalThis.takePhotoNum = 0
const map = {} const map = {}
@ -230,11 +224,11 @@ export async function takePhotoFn(context) {
map[key] = false map[key] = false
// param[key] = false // param[key] = false
} }
for(let i=0;i<=arr.length-1;i++){ for (let i = 0; i <= arr.length - 1; i++) {
let key=arr[i] let key = arr[i]
if (param[key]) { if (param[key]) {
param.pztd = param[`td${Number(i) + 1}`] 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)) { if (Number(data.fileSize) <= (Number(param.zdyz) * 1000)) {
map[key] = true map[key] = true
promptAction.showToast({ promptAction.showToast({
@ -246,9 +240,9 @@ export async function takePhotoFn(context) {
map[key] = false map[key] = false
globalThis.spzd[key] = false globalThis.spzd[key] = false
} }
setTimeout(()=>{ setTimeout(() => {
takePhotoFn() takePhotoFn()
},3000) }, 3000)
}) })
} }
} }
@ -259,14 +253,16 @@ export async function takePhotoFn(context) {
} }
}, 3000) }, 3000)
} }
let fd let fd
const devPath="/dev/ttyS3" const devPath = "/dev/ttyS3"
function openChuankouFn(callback) { function openChuankouFn(callback) {
console.log('SerialOpen in indexservice, path=' + devPath) console.log('SerialOpen in indexservice, path=' + devPath)
testNapi.SerialOpenAsync(devPath, (fd)=> { testNapi.SerialOpenAsync(devPath, (fd) => {
globalThis.fd = fd; globalThis.fd = fd;
globalThis.num=0 globalThis.num = 0
let parity = 0x4e; // 'N' let parity = 0x4e; // 'N'
let ret = testNapi.SerialSetAsync(globalThis.fd, 115200, 0, 8, 1, parity, (ret) => { let ret = testNapi.SerialSetAsync(globalThis.fd, 115200, 0, 8, 1, parity, (ret) => {
callback() callback()
@ -277,42 +273,42 @@ function openChuankouFn(callback) {
function getChuankouFnMsg() { function getChuankouFnMsg() {
let timeout = 50000; // 2秒超时 let timeout = 50000; // 2秒超时
let databuff = [0x61, 0xAA, 0x0A, 0X15, 0X00]; // send ABCDE 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') 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 2 send finished')
console.log('zzc 3 try receive msg') console.log('zzc 3 try receive msg')
testNapi.SerialRecvAsync(globalThis.fd, timeout, (revTestInfo) => { testNapi.SerialRecvAsync(globalThis.fd, timeout, (revTestInfo) => {
console.log('zzc 4 received msg') console.log('zzc 4 received msg')
console.log('revTestInfo',revTestInfo.recevedBuf.length) console.log('revTestInfo', revTestInfo.recevedBuf.length)
const message = revTestInfo?.recevedBuf?.toString() const message = revTestInfo?.recevedBuf?.toString()
console.log('chuankou',message) console.log('chuankou', message)
if (message == '') { if (message == '') {
console.log('zzc error msg is emptry') console.log('zzc error msg is emptry')
globalThis.num=1 globalThis.num = 1
console.log('zzc 9 num=3 close serial') console.log('zzc 9 num=3 close serial')
// clearInterval(chuankou) // clearInterval(chuankou)
testNapi.SerialClose(globalThis.fd); testNapi.SerialClose(globalThis.fd);
globalThis.fd=null globalThis.fd = null
getChuankouFn() getChuankouFn()
return return
} }
const msg = message?.split(',') const msg = message?.split(',')
if(!msg?.length){ if (!msg?.length) {
} else if (msg[0] != '98' || msg[1] != '85' || msg.length < 9) { } else if (msg[0] != '98' || msg[1] != '85' || msg.length < 9) {
} else if(msg.length<12){ } else if (msg.length < 12) {
} else { } else {
globalThis.chuankoMsg=msg[9] globalThis.chuankoMsg = msg[9]
} }
console.log('zzc 5 sleep 1s') console.log('zzc 5 sleep 1s')
setTimeout(()=>{ setTimeout(() => {
getChuankouFnMsg() getChuankouFnMsg()
},500) }, 500)
// hilog.info(0x0000, 'testTag', 'Test NAPI SerialRecvAsync callback in'); // 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 recevedLen = %{public}d', revTestInfo.recevedLen);
@ -323,9 +319,11 @@ function getChuankouFnMsg() {
// let revTestInfo = testNapi?.SerialRecv(globalThis.fd, timeout); // let revTestInfo = testNapi?.SerialRecv(globalThis.fd, timeout);
} }
let chuankou let chuankou
export async function getChuankouFn(){
if(globalThis.fd){ export async function getChuankouFn() {
if (globalThis.fd) {
return return
} }
openChuankouFn(getChuankouFnMsg) openChuankouFn(getChuankouFnMsg)

View File

@ -1,7 +1,5 @@
// @ts-nocheck // @ts-nocheck
import data_rdb from '@ohos.data.rdb'; import { initCenterCache, initCenterCacheByKSPT, initEsModel, initialization } from '../../api/index';
import UIAbility from '@ohos.app.ability.UIAbility';
import { initCenterCache,initCenterCacheByKSPT,initEsModel,initialization } from '../../api/index'
import { dateFormat } from '../utils/tools'; import { dateFormat } from '../utils/tools';
import AccountTable from '../database/tables/AccountTable'; import AccountTable from '../database/tables/AccountTable';
import MA_MARKRULE from '../constants/MA_MARKRULE'; 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 MA_T_CARPARMSET from '../constants/MA_T_CARPARMSET';
import ES_CAR_VIDEO_PARAMETER from '../constants/ES_CAR_VIDEO_PARAMETER'; import ES_CAR_VIDEO_PARAMETER from '../constants/ES_CAR_VIDEO_PARAMETER';
import IpConfigTable from '../constants/IpConfigTable'; import IpConfigTable from '../constants/IpConfigTable';
import CommonConstants from '../constants/CommonConstants' import CommonConstants from '../constants/CommonConstants';
import DeviceInfoTable from '../constants/DeviceInfoTable' import DeviceInfoTable from '../constants/DeviceInfoTable';
import USER from '../constants/USER' import USER from '../constants/USER';
import util from '@ohos.util'; import util from '@ohos.util';
import zlib from '@ohos.zlib';
import FileModel from '../../pages/judgeSDK/utils/fileModel'; import FileModel from '../../pages/judgeSDK/utils/fileModel';
// @ts-nocheck // @ts-nocheck
//读表 //读表
//参数平台 //参数平台
@ -51,155 +49,126 @@ const map = {
'MA_ITEMINFO': MA_ITEMINFO, 'MA_ITEMINFO': MA_ITEMINFO,
'MA_T_CARPARMSET': MA_T_CARPARMSET, 'MA_T_CARPARMSET': MA_T_CARPARMSET,
'ES_CAR_VIDEO_PARAMETER': ES_CAR_VIDEO_PARAMETER, 'ES_CAR_VIDEO_PARAMETER': ES_CAR_VIDEO_PARAMETER,
'USER':USER, 'USER': USER,
'IpConfigTable':IpConfigTable, 'IpConfigTable': IpConfigTable,
'DeviceInfoTable':DeviceInfoTable, 'DeviceInfoTable': DeviceInfoTable,
'CommonConstants':CommonConstants 'CommonConstants': CommonConstants
} }
const centerToMap={ const centerToMap = {
'ItemInfo':MA_ITEMINFO, 'ItemInfo': MA_ITEMINFO,
'MarkRule':MA_MARKRULE, 'MarkRule': MA_MARKRULE,
'SystemParm':MA_SYSTEMPARM, 'SystemParm': MA_SYSTEMPARM,
'mapCollectList':MA_MAP_COLLECT, 'mapCollectList': MA_MAP_COLLECT,
'mapCollectshapeList':MA_MAP_COLLECT_SHAPE, 'mapCollectshapeList': MA_MAP_COLLECT_SHAPE,
'Map_Collect': MA_MAP_COLLECT, 'Map_Collect': MA_MAP_COLLECT,
'Map_Collect_Shape': MA_MAP_COLLECT_SHAPE, 'Map_Collect_Shape': MA_MAP_COLLECT_SHAPE,
'Map_ItemClass':MA_MAP_ITEMCLASS, 'Map_ItemClass': MA_MAP_ITEMCLASS,
'Map_Point':MA_MAP_POINT, 'Map_Point': MA_MAP_POINT,
'Map_Point_Item':MA_MAP_POINT_ITEM, 'Map_Point_Item': MA_MAP_POINT_ITEM,
'Map_Road':MA_MAP_ROAD, 'Map_Road': MA_MAP_ROAD,
'Map_Road_Lane':MA_MAP_ROAD_LANE, 'Map_Road_Lane': MA_MAP_ROAD_LANE,
'Map_SubItem':MA_MAP_SUBITEM, 'Map_SubItem': MA_MAP_SUBITEM,
'Sysset':MA_SYSSET, 'Sysset': MA_SYSSET,
'CarInfo':ES_CARINFO, 'CarInfo': ES_CARINFO,
// 'ES_EXAMPOINTDETAIL':ES_EXAMPOINTDETAIL, // 'ES_EXAMPOINTDETAIL':ES_EXAMPOINTDETAIL,
'MarkRuleSet':MA_MARKRULE, 'MarkRuleSet': MA_MARKRULE,
'Cdsbinfo':MA_CDSBINFO, 'Cdsbinfo': MA_CDSBINFO,
'T_CarParmSet':MA_T_CARPARMSET, 'T_CarParmSet': MA_T_CARPARMSET,
// 'ES_CAR_VIDEO_PARAMETER':ES_CAR_VIDE0pO_PARAMETER // 'ES_CAR_VIDEO_PARAMETER':ES_CAR_VIDE0pO_PARAMETER
} }
function sqlInsertCommonFn(tableName,resultArr,context?){ function sqlInsertCommonFn(tableName, resultArr, context?, delFlag = true) {
return new Promise((resolve,reject)=>{ return new Promise((resolve, reject) => {
const accountTable = new AccountTable(() => { const accountTable = new AccountTable(() => {
}, map[tableName],context); }, map[tableName], context);
accountTable.getRdbStore(() => { accountTable.getRdbStore(() => {
accountTable.query('0', async (result) => { accountTable.query('0', async (result) => {
// console.log('表长度',result.length,tableName) // console.log('表长度',result.length,tableName)
if (result.length == 0) { if (result.length == 0) {
let INSERT_SQL = "INSERT INTO "+tableName let INSERT_SQL = "INSERT INTO " + tableName
+ " ("+ map[tableName].ACCOUNT_TABLE.columns.toString()+") VALUES " + " (" + map[tableName].ACCOUNT_TABLE.columns.toString() + ") VALUES "
resultArr.map((data,i) => { resultArr.map((data, i) => {
data.id=`${i}` data.id = `${i}`
let str='(' let str = '('
map[tableName].ACCOUNT_TABLE.columns.map((res,index)=>{ map[tableName].ACCOUNT_TABLE.columns.map((res, index) => {
if(map[tableName].ACCOUNT_TABLE.columns.length-1==index){ if (map[tableName].ACCOUNT_TABLE.columns.length - 1 == index) {
str+=data[res]?`"${data[res]}"`:'NULL' str += data[res] ? `"${data[res]}"` : 'NULL'
}else{ } else {
str+=(data[res]?`"${data[res]}"`:'NULL')+',' str += (data[res] ? `"${data[res]}"` : 'NULL') + ','
} }
}) })
if(i==resultArr.length-1){ if (i == resultArr.length - 1) {
str+=')' str += ')'
}else{ } else {
str+='),' str += '),'
} }
INSERT_SQL+=str INSERT_SQL += str
}) })
accountTable.sqlOperate(INSERT_SQL,tableName,(val)=>{ accountTable.sqlOperate(INSERT_SQL, tableName, (val) => {
console.log('sqlsqlinsert,',val,'tableName',tableName) console.log('sqlsqlinsert,', val, 'tableName', tableName)
resolve(val) resolve(val)
}) })
} }
else { else {
await delSyncTable(tableName,context) if (delFlag) {
const result= await sqlInsertCommonFn(tableName,resultArr,context) await delSyncTable(tableName, context)
}
const result = await sqlInsertCommonFn(tableName, resultArr, context)
resolve(result) resolve(result)
} }
}, true); }, true);
},context); }, context);
}) })
} }
//参数平台 //参数平台
export async function getDataBaseTable(params,reqParam) { export async function getDataBaseTable(params, reqParam) {
return new Promise((resolve, reject) => { return new Promise(async (resolve, reject) => {
const accountTable = new AccountTable(() => { const date = new Date()
}, map[params.tableName],context); if (!reqParam?.paraKdid) {
accountTable.getRdbStore(() => { prompt.showToast({
accountTable.query('0', async (result) => { message: 'paraKdid获取失败',
if (result.length != 0) { duration: 3000
resolve(); });
return return
} else { }
const date = new Date() const str = { "head": { "time": dateFormat(date) },
if(!reqParam?.paraKdid){ "body":
prompt.showToast({ { "tableName": params.tableName, // 表名
message: 'paraKdid获取失败', "paraKdid": reqParam.paraKdid, //参数平台kdid
duration: 3000 "examinationRoomId": reqParam.examinationRoomId, //考试平台kdid
}); "typeRsp": "0" // 赋默认值0无需改变
return }
} }
const str = { "head": { "time": dateFormat(date) }, let res: any = await initCenterCache(str, reqParam.centerHost)
"body": if (res.body[params.tableName].length == 0) {
{ "tableName": params.tableName, // 表名 resolve();
"paraKdid": reqParam.paraKdid, //参数平台kdid return
"examinationRoomId": reqParam.examinationRoomId, //考试平台kdid }
"typeRsp": "0" // 赋默认值0无需改变 if (params.tableName == 'MA_SYSSET') {
} res.body[params.tableName] = res.body[params.tableName].filter(res => {
} return res['v_no'] >= 300 && res['v_no'] <= 700
let res: any = await initCenterCache(str,reqParam.centerHost) })
if( res.body[params.tableName].length==0){ }
resolve(); sqlInsertCommonFn(param.tableName, res.body[params.tableName]).then((val) => {
return reslove(val)
} })
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);
}) })
} }
//依据数组和表名更新sql表 //依据数组和表名更新sql表
export async function upDateTableByArray(tableName,arr) { export async function upDateTableByArray(tableName, arr) {
sqlInsertCommonFn(tableName,arr) sqlInsertCommonFn(tableName, arr)
} }
//更新双中心表 //更新双中心表
export async function upDateTable(params,reqParam) { export async function upDateTable(params, reqParam) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const date = new Date() const date = new Date()
let paraKdid=reqParam?.paraKdid||'' let paraKdid = reqParam?.paraKdid || ''
let examinationRoomId=reqParam?.examinationRoomId||'' let examinationRoomId = reqParam?.examinationRoomId || ''
if(!paraKdid|| !examinationRoomId){ if (!paraKdid || !examinationRoomId) {
resolve(false) resolve(false)
return return
} }
@ -212,17 +181,17 @@ export async function upDateTable(params,reqParam) {
"typeRsp": "0" // 赋默认值0无需改变 "typeRsp": "0" // 赋默认值0无需改变
} }
} }
const url=globalThis.timeInfo.url const url = globalThis.timeInfo.url
initCenterCache(str,url).then(async (res)=>{ initCenterCache(str, url).then(async (res) => {
if(!res||res==undefined||res==''){ if (!res || res == undefined || res == '') {
resolve(false) resolve(false)
return return
} }
try { 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) resolve(result)
}catch (error){ } catch (error) {
console.log(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) => { return new Promise((resolve, reject) => {
const date = new Date() const date = new Date()
if(!reqParam.paraKdid){ if (!reqParam.paraKdid) {
prompt.showToast({ prompt.showToast({
message: 'paraKdid获取失败', message: 'paraKdid获取失败',
duration: 3000 duration: 3000
@ -248,17 +217,17 @@ export async function getMySystemSetTable(params,reqParam) {
"typeRsp": "0" // 赋默认值0无需改变 "typeRsp": "0" // 赋默认值0无需改变
} }
} }
initCenterCacheByKSPT(str,reqParam.url).then((res)=>{ initCenterCacheByKSPT(str, reqParam.url).then((res) => {
if( res.body[params.tableName].length==0){ if (res.body[params.tableName].length == 0) {
resolve(); resolve();
return return
} }
if(params.tableName=='MA_SYSSET'){ if (params.tableName == 'MA_SYSSET') {
res.body[params.tableName]= res.body[params.tableName].filter(res=>{ res.body[params.tableName] = res.body[params.tableName].filter(res => {
return res['v_no']<300 || res['v_no']>700 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) 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) => { return new Promise((resolve, reject) => {
const accountTable = new AccountTable(() => { const accountTable = new AccountTable(() => {
}, map[tableName],context); }, map[tableName], context);
accountTable.getRdbStore(() => { accountTable.getRdbStore(() => {
accountTable.query('0', async (result) => { accountTable.query('0', async (result) => {
resolve(result) resolve(result)
@ -282,22 +251,22 @@ export async function getSyncData(tableName,context?) {
} }
export async function delSyncTable(tableName,context?){ export async function delSyncTable(tableName, context?) {
return new Promise((resolve,reject)=>{ return new Promise((resolve, reject) => {
const accountTable = new AccountTable(() => { const accountTable = new AccountTable(() => {
}, map[tableName],context); }, map[tableName], context);
accountTable.deleteTableData((ret)=>{ accountTable.deleteTableData((ret) => {
console.log('删除成功') console.log('删除成功')
resolve(true) resolve(true)
},tableName,context) }, tableName, context)
}) })
} }
//获取车模、场地模型 //获取车模、场地模型
export async function getEsCarModel(context){ export async function getEsCarModel(context) {
const date = new Date() const date = new Date()
if(!globalThis.timeInfo?.paraKdid){ if (!globalThis.timeInfo?.paraKdid) {
prompt.showToast({ prompt.showToast({
message: 'paraKdid获取失败', message: 'paraKdid获取失败',
duration: 3000 duration: 3000
@ -307,23 +276,23 @@ export async function getEsCarModel(context){
const carStr = { "head": { "time": dateFormat(date) }, const carStr = { "head": { "time": dateFormat(date) },
"body": "body":
{ {
"rtkType":"1",//1:车模 2:场地模型 "rtkType": "1", //1:车模 2:场地模型
"rspType":"0", //返回类型 "rspType": "0", //返回类型
"paraKdid": globalThis.timeInfo.paraKdid, //参数平台kdid "paraKdid": globalThis.timeInfo.paraKdid, //参数平台kdid
"examinationRoomId": globalThis.timeInfo.kdid, //考试平台kdid "examinationRoomId": globalThis.timeInfo.kdid, //考试平台kdid
// "carMac":"MAC-HCPAD-210", // "carMac":"MAC-HCPAD-210",
"carMac":globalThis.deviceNo "carMac": globalThis.deviceNo
} }
} }
const venueStr = { "head": { "time": dateFormat(date) }, const venueStr = { "head": { "time": dateFormat(date) },
"body": "body":
{ {
"rtkType":"2",//1:车模 2:场地模型 "rtkType": "2", //1:车模 2:场地模型
"rspType":"0", //返回类型 "rspType": "0", //返回类型
"paraKdid": globalThis.timeInfo.paraKdid, //参数平台kdid "paraKdid": globalThis.timeInfo.paraKdid, //参数平台kdid
"examinationRoomId": globalThis.timeInfo.kdid, //考试平台kdid "examinationRoomId": globalThis.timeInfo.kdid, //考试平台kdid
// "carMac":"MAC-HCPAD-210", // "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]; const venueModel = venueRes.body.ES_MODEL[0][2];
let tmpBase64Array = carModel.split("\r\n") let tmpBase64Array = carModel.split("\r\n")
let newBase64Str:string = ''; let newBase64Str: string = '';
for (let i = 0; i < tmpBase64Array.length; ++i) { for (let i = 0; i < tmpBase64Array.length; ++i) {
newBase64Str += tmpBase64Array[i]; newBase64Str += tmpBase64Array[i];
} }
const base64 = new util.Base64(); const base64 = new util.Base64();
let result = base64.decodeSync(newBase64Str); let result = base64.decodeSync(newBase64Str);
const fileModel= new FileModel(context); const fileModel = new FileModel(context);
await fileModel.initFolder() await fileModel.initFolder()
await fileModel.storingFiles(result.buffer) await fileModel.storingFiles(result.buffer)
} }
export async function upDataZhongxinginitialization(param){ export async function upDataZhongxinginitialization(param) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if(!param.carId){ if (!param.carId) {
resolve(false) resolve(false)
return return
} }
const str = { const str = {
"carId": param.carId, // 表名 "carId": param.carId, // 表名
"examinationRoomId": param.examinationRoomId, //考试平台kdid "examinationRoomId": param.examinationRoomId, //考试平台kdid
videoVersion:'1.0', videoVersion: '1.0',
judgeVersion:param.judgeVersion, judgeVersion: param.judgeVersion,
shellVersion: param.shellVersion, shellVersion: param.shellVersion,
host:param.host host: param.host
} }
console.log('daihai2',JSON.stringify(str)) console.log('daihai2', JSON.stringify(str))
initialization(str).then(async (res)=>{ initialization(str).then(async (res) => {
console.log('daihai3',JSON.stringify(res)) console.log('daihai3', JSON.stringify(res))
if(!res){ if (!res) {
resolve(false) resolve(false)
return return
} }
let flag let flag
console.log('resposestart') console.log('resposestart')
for(let key in res.initializationRsp.body){ for (let key in res.initializationRsp.body) {
if(!centerToMap[key]){ if (!centerToMap[key]) {
continue continue
} }
const data= await setSyncCenterSqlData(key,res,param) const data = await setSyncCenterSqlData(key, res, param)
if(!data){ if (!data) {
resolve(false) resolve(false)
} }
} }
@ -385,52 +354,53 @@ export async function upDataZhongxinginitialization(param){
console.log('resposestart') console.log('resposestart')
}).catch((Error)=>{ }).catch((Error) => {
resolve(false) resolve(false)
}) })
}) })
} }
function setSyncCenterSqlData(key,res,param){
return new Promise((resolve,reject)=>{ function setSyncCenterSqlData(key, res, param) {
const mapName={ return new Promise((resolve, reject) => {
'ItemInfo':'MA_ITEMINFO', const mapName = {
'MarkRule':'MA_MARKRULE', 'ItemInfo': 'MA_ITEMINFO',
'SystemParm':'MA_SYSTEMPARM', 'MarkRule': 'MA_MARKRULE',
'SystemParm': 'MA_SYSTEMPARM',
'Map_Collect': 'MA_MAP_COLLECT', 'Map_Collect': 'MA_MAP_COLLECT',
'Map_Collect_Shape': 'MA_MAP_COLLECT_SHAPE', 'Map_Collect_Shape': 'MA_MAP_COLLECT_SHAPE',
'Map_ItemClass':'MA_MAP_ITEMCLASS', 'Map_ItemClass': 'MA_MAP_ITEMCLASS',
'Map_Point':'MA_MAP_POINT', 'Map_Point': 'MA_MAP_POINT',
'Map_Point_Item':'MA_MAP_POINT_ITEM', 'Map_Point_Item': 'MA_MAP_POINT_ITEM',
'Map_Road':'MA_MAP_ROAD', 'Map_Road': 'MA_MAP_ROAD',
'Map_Road_Lane':'MA_MAP_ROAD_LANE', 'Map_Road_Lane': 'MA_MAP_ROAD_LANE',
'Map_SubItem':'MAP_SUBITEM', 'Map_SubItem': 'MAP_SUBITEM',
'Sysset':'MA_SYSSET', 'Sysset': 'MA_SYSSET',
'CarInfo':'ES_CARINFO', 'CarInfo': 'ES_CARINFO',
// 'ES_EXAMPOINTDETAIL':ES_EXAMPOINTDETAIL, // 'ES_EXAMPOINTDETAIL':ES_EXAMPOINTDETAIL,
'MarkRuleSet':'MA_MARKRULESET', 'MarkRuleSet': 'MA_MARKRULESET',
'Cdsbinfo':'MA_CDSBINFO', 'Cdsbinfo': 'MA_CDSBINFO',
'T_CarParmSet':'MA_T_CARPARMSET', 'T_CarParmSet': 'MA_T_CARPARMSET',
// 'ES_CAR_VIDEO_PARAMETER':ES_CAR_VIDE0pO_PARAMETER // 'ES_CAR_VIDEO_PARAMETER':ES_CAR_VIDE0pO_PARAMETER
} }
// const accountTable = new AccountTable(() => { // const accountTable = new AccountTable(() => {
// }, centerToMap[key],param.context); // }, centerToMap[key],param.context);
let arrList let arrList
if(res.initializationRsp.body[key].record instanceof Array){ if (res.initializationRsp.body[key].record instanceof Array) {
arrList =res.initializationRsp.body[key].record arrList = res.initializationRsp.body[key].record
}else{ } else {
arrList=[res.initializationRsp.body[key].record] arrList = [res.initializationRsp.body[key].record]
} }
console.log('mapName[key]',mapName[key],key) console.log('mapName[key]', mapName[key], key)
sqlInsertCommonFn(mapName[key],arrList,param.context).then((result)=>{ sqlInsertCommonFn(mapName[key], arrList, param.context).then((result) => {
console.log(key,'表建立成功') console.log(key, '表建立成功')
if(result){ if (result) {
resolve(true) resolve(true)
}else{ } else {
resolve(false) resolve(false)
} }
}).catch((msg)=>{ }).catch((msg) => {
reject(false) reject(false)
console.log(key,'表建立失败') console.log(key, '表建立失败')
}) })
}) })

View File

@ -1,74 +1,76 @@
import TcpClient from './TcpClient'; import TcpClient from './TcpClient';
import { getSyncData} from '../service/initable' import { getSyncData } from '../service/initable';
import hilog from '@ohos.hilog'; import hilog from '@ohos.hilog';
export async function getTCP() { export async function getTCP() {
getSyncData('IpConfigTable').then(async (result:Array<any>)=>{ getSyncData('IpConfigTable').then(async (result: Array<any>) => {
console.log('result222',JSON.stringify(result)) console.log('result222', JSON.stringify(result))
if(result.length){ if (result.length) {
if(globalThis.TcpClient&&globalThis.getCloseTcp){ if (globalThis.TcpClient && globalThis.TcpClient.closeTcp) {
globalThis.TcpClient.closeTcp(async ()=>{ globalThis.TcpClient.closeTcp(async () => {
// const tcpClient: TcpClient =new TcpClient(result[0].tcplocalIp, result[0].tcplocalIpPort,result[0].tcpOppositeIp,result[0].tcpOppositePort) // const tcpClient: TcpClient =new TcpClient(result[0].tcplocalIp, result[0].tcplocalIpPort,result[0].tcpOppositeIp,result[0].tcpOppositePort)
// globalThis.TcpClient = tcpClient // globalThis.TcpClient = tcpClient
setTimeout(async ()=>{ setTimeout(async () => {
await globalThis.TcpClient.rebindTcp(result[0].tcplocalIp, result[0].tcplocalIpPort,result[0].tcpOppositeIp,result[0].tcpOppositePort) await globalThis.TcpClient.rebindTcp(result[0].tcplocalIp, result[0].tcplocalIpPort, result[0].tcpOppositeIp, result[0].tcpOppositePort)
await globalThis.TcpClient.connectTcp() await globalThis.TcpClient.connectTcp()
await globalThis.TcpClient.sendMsg('1002')//1002 await globalThis.TcpClient.sendMsg('1002') //1002
globalThis.TcpClient.onError((val)=>{ globalThis.TcpClient.onError((val) => {
setTimeout(()=>{ setTimeout(() => {
globalThis.TcpClient.sendMsg('1002')//1002 globalThis.TcpClient.sendMsg('1002') //1002
if(val){ if (val) {
// const msg=val.substring(5,val.length-1) // 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) globalThis.udpClient?.sendMsg(val)
} }
},1000) }, 1000)
}) })
await globalThis.TcpClient.onMessage((val)=>{ await globalThis.TcpClient.onMessage((val) => {
setTimeout(()=>{ setTimeout(() => {
globalThis.TcpClient.sendMsg('1002')//1002 globalThis.TcpClient.sendMsg('1002') //1002
if(val){ if (val) {
// const msg=val.substring(5,val.length-1) // 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) globalThis.udpClient?.sendMsg(val)
} }
},1000) }, 1000)
}) })
},2000) }, 2000)
}) })
}else{ } else {
const tcpClient: TcpClient =new TcpClient(result[0].tcplocalIp, result[0].tcplocalIpPort,result[0].tcpOppositeIp,result[0].tcpOppositePort) const tcpClient: TcpClient = new TcpClient(result[0].tcplocalIp, result[0].tcplocalIpPort, result[0].tcpOppositeIp, result[0].tcpOppositePort)
globalThis.TcpClient = tcpClient globalThis.TcpClient = tcpClient
await globalThis.TcpClient.bindTcp() await globalThis.TcpClient.bindTcp()
await globalThis.TcpClient.connectTcp() await globalThis.TcpClient.connectTcp()
await globalThis.TcpClient.sendMsg('1002')//1002 await globalThis.TcpClient.sendMsg('1002') //1002
globalThis.TcpClient.onError((val)=>{ globalThis.TcpClient.onError((val) => {
hilog.info(0x0000, 'testTag', "valvalval2" + JSON.stringify(val)); hilog.info(0x0000, 'testTag', "valvalval2" + JSON.stringify(val));
setTimeout(()=>{ setTimeout(() => {
globalThis.TcpClient.sendMsg('1002')//1002 globalThis.TcpClient.sendMsg('1002') //1002
if(val&& globalThis.udpClient?.sendMsg){ if (val && globalThis.udpClient?.sendMsg) {
globalThis.udpClient?.sendMsg(val) globalThis.udpClient?.sendMsg(val)
} }
},1000) }, 1000)
}) })
await globalThis.TcpClient.onMessage((val)=>{ await globalThis.TcpClient.onMessage((val) => {
hilog.info(0x0000, 'testTag', "valvalval2" + JSON.stringify(val)); hilog.info(0x0000, 'testTag', "valvalval2" + JSON.stringify(val));
setTimeout(()=>{ setTimeout(() => {
globalThis.TcpClient.sendMsg('1002')//1002 globalThis.TcpClient.sendMsg('1002') //1002
if(val&& globalThis.udpClient?.sendMsg){ if (val && globalThis.udpClient?.sendMsg) {
globalThis.udpClient?.sendMsg(val) globalThis.udpClient?.sendMsg(val)
} }
},1000) }, 1000)
}) })
} }
// globalThis.udpClient = new UdpClient(result[0].localIp, result[0].localIpPort,result[0].oppositeIp,result[0].oppositeIpPort) // globalThis.udpClient = new UdpClient(result[0].localIp, result[0].localIpPort,result[0].oppositeIp,result[0].oppositeIpPort)
}else{ } else {
globalThis.TcpClient={} globalThis.TcpClient = {}
globalThis.TcpClient.onMessage=()=>{} globalThis.TcpClient.onMessage = () => {
}
} }
}) })
} }

View File

@ -1,176 +1,189 @@
import socket from '@ohos.net.socket'; 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'; import hilog from '@ohos.hilog';
const TAG = 'socketTag[TcpDemo.TcpClient]'
export default class TcpClient { export default class TcpClient {
private localIp: string = '' private localIp: string = ''
private localIpPort: string = '' private localIpPort: string = ''
private oppositeIp: string = '' private oppositeIp: string = ''
private oppositeIpPort: string = '' private oppositeIpPort: string = ''
private tcp: any = null private tcp: any = null
constructor(tcplocalIp: string, tcplocalIpPort:string,tcpOppositeIp: string,tcpOppositePort:string) { constructor(tcplocalIp: string, tcplocalIpPort: string, tcpOppositeIp: string, tcpOppositePort: string) {
this.localIp = tcplocalIp this.localIp = tcplocalIp
this.oppositeIp = tcpOppositeIp this.oppositeIp = tcpOppositeIp
this.localIpPort = tcplocalIpPort this.localIpPort = tcplocalIpPort
this.oppositeIpPort = tcpOppositePort this.oppositeIpPort = tcpOppositePort
console.log(TAG,'new Tcp',this.localIp,this.localIpPort,this.oppositeIp,this.oppositeIpPort) console.log(TAG, 'new Tcp', this.localIp, this.localIpPort, this.oppositeIp, this.oppositeIpPort)
this.tcp = socket.constructTCPSocketInstance(); this.tcp = socket.constructTCPSocketInstance();
} }
onError(callback?){
this.tcp.on('error', err => { onError(callback?) {
console.log(TAG,'tcpOnerror', JSON.stringify(err)) this.tcp.on('error', err => {
setTimeout(async ()=>{ console.log(TAG, 'tcpOnerror', JSON.stringify(err))
await this.bindTcp() setTimeout(async () => {
await this.connectTcp() await this.bindTcp()
this.onMessage(callback) await this.connectTcp()
},2000) this.onMessage(callback)
// this.closeUdp(()=>{ }, 2000)
// this.bindUdp() // 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;
}
}); });
} globalThis.getCloseTcp = false
rebindTcp(localIp: string, localIpPort:string,oppositeIp: string,oppositeIpPort:string){ resolve(true)
return new Promise((resolve, reject)=>{ }).catch(err => {
this.localIp = localIp globalThis.getCloseTcp = true
this.oppositeIp = oppositeIp setTimeout(() => {
this.localIpPort = localIpPort this.connectTcp()
this.oppositeIpPort = oppositeIpPort resolve(false)
console.log(TAG,'tcpreBind', this.localIp,this.localIpPort) }, 2000)
let promise=this.tcp.bind({ address: this.localIp, port:parseInt(this.localIpPort), family: 1 }, err => { console.log('testTagconnect,error')
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({ sendMsg(msg: string) {
// // address: '192.168.7.170', port: 20122, family: 1 console.log(TAG, 'tcpSend', msg.length, msg)
// // address: '192.168.7.170', port: 31013, family: 1 return new Promise((reslove, reject) => {
// address: this.localIp, port: parseInt(this.localIpPort), family: 1 let promise = this.tcp.send({
// }); data: msg
});
promise.then(() => {
reslove(true)
}).catch(err => {
reslove(false)
});
})
}
} onMessage(callback?) {
bindTcp() { this.tcp.on('message', value => {
console.log(TAG,'tcpbind',this.localIp,'localIp',this.localIpPort) console.log(TAG, 'Tcponmessage', value.length, value)
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
// });
// 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)
connectTcp(){ } else {
console.log(TAG,'tcpConnect',this.oppositeIp,'localIp',this.oppositeIpPort) callback && callback('')
return new Promise((resolve,reject)=>{ }
let promise = this.tcp.connect({ address: {address: this.oppositeIp, port: parseInt(this.oppositeIpPort), family: 1} , timeout: 6000}); // callback(value.message)
promise.then(() => { });
}
this.tcp.setExtraOptions({ offTcp(callback) {
keepAlive: true, console.log(TAG, 'tcpofff')
// 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')
}); this.tcp.off('testTagofmessg', callback);
}) }
}
sendMsg(msg: string) { closeTcp(callback) {
console.log(TAG,'tcpSend',msg.length,msg) return new Promise((reslove, reject) => {
return new Promise((reslove,reject)=>{ console.log(TAG, 'tcpClose')
let promise = this.tcp.send({ let promise = this.tcp.close();
data:msg promise.then(() => {
}); globalThis.getCloseTcp = true
promise.then(() => { console.log(TAG, 'tcpCloseSuccess')
reslove(true) callback()
}).catch(err => { reslove(true)
reslove(false) }).catch(err => {
}); console.log(TAG, 'tcpClosefailed')
}) 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)
});
})
}
} }

View File

@ -111,7 +111,7 @@ export default struct Index {
carConfigurationInfoFn() { carConfigurationInfoFn() {
if (globalThis.singlePlay) { 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(';') const data = str.split(';')
this.checkList = [] this.checkList = []
const list = data const list = data
@ -166,7 +166,7 @@ export default struct Index {
getPLCInfo() { getPLCInfo() {
const that = this const that = this
globalThis.udpClient && globalThis.udpClient.onMessage_1((msg) => { globalThis.udpClient.onMessage_1 && globalThis.udpClient.onMessage_1((msg) => {
if (!this.breakFlag) { if (!this.breakFlag) {
return return
} }