//import UdpClient from './UdpClient'; import UdpClientByCenter from './UdpClientByCenter'; import { getSyncData } from '../service/initable' import { getChuankouFn } from '../../common/service/indexService' import FileUtil from '../../common/utils/File' import { GlobalConfig } from '../../config/index' import emitter from '@ohos.events.emitter'; export async function sendMsg(val) { // globalThis.udpClient1&&globalThis.udpClient1.sendMsg(val) } export async function getUDP(context,errorFlag?) { return new Promise(async (reslove,reject)=>{ const fileUtil = new FileUtil(context) const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/ipConfig.txt'); console.log('ttttt',data) if (data === '' || data === undefined) { console.log(` getUDP has no IPConfigTable `); globalThis.udpClient = {} globalThis.host = '' reslove('') } else { const result=JSON.parse(data) console.log(` getUDP has IPConfigTable `); if (globalThis.udpClient && globalThis.udpClient.closeUdp) { console.log(` getUDP has udclent close and rebind `); globalThis.udpClient.closeUdp(() => { setTimeout(() => { globalThis.udpClient.rebindUdp(result.udplocalIp, result.udplocalIpPort, result.udpOppositeIp, result.udpOppositeIpPort) globalThis.udpClient.sendMsg('111', null) globalThis.host = `http://${result.centerIp}:${result.centerPort}` globalThis.udpClient.onError_Callback(()=>{ console.log('getUDPgetUDPgetUDP') getUDP(context,true) if(errorFlag&&globalThis.udpClient&&globalThis.udpClient.onMessage_1){ globalThis.udpClient.onMessage_1=globalThis.udpClient.onMessage_1 } }) reslove(`http://${result.centerIp}:${result.centerPort}`) // globalThis.udpClient.onError_resend(globalThis.udpClient.onMessage_1?globalThis.udpClient.onMessage_1:()=>{}) }, 1000) }) } else { // 未绑定 console.log(` getUDP has no udclent and bind `); console.log('ttttttdata',JSON.stringify(result)) const udpClient: UdpClientByCenter = new UdpClientByCenter(result.udplocalIp, result.udplocalIpPort, result.udpOppositeIp, result.udpOppositeIpPort) udpClient.bindUdp() udpClient.sendMsg('111') globalThis.host = `http://${result.centerIp}:${result.centerPort}` globalThis.udpClient = udpClient globalThis.udpClient.onMessage_1(()=>{ console.log('getUDPonMessage_1msgmsgByGloalUdp') }) globalThis.udpClient.onError_Callback(()=>{ getUDP(context,true) if(errorFlag&&globalThis.udpClient&&globalThis.udpClient.onMessage_1){ globalThis.udpClient.onMessage_1=globalThis.udpClient.onMessage_1 } }) getChuankouFn() reslove(`http://${result.centerIp}:${result.centerPort}`) } } return getSyncData('IpConfigTable').then((result: Array) => { if (result.length) { console.log(` getUDP has IPConfigTable `); if (globalThis.udpClient && globalThis.udpClient.closeUdp) { console.log(` getUDP has udclent close and rebind `); globalThis.udpClient.closeUdp(() => { setTimeout(() => { globalThis.udpClient.rebindUdp(result[0].udplocalIp, result[0].udplocalIpPort, result[0].udpOppositeIp, result[0].udpOppositeIpPort) globalThis.udpClient.sendMsg('111', null) globalThis.host = `http://${result[0].centerIp}:${result[0].centerPort}` globalThis.udpClient.onError_Callback(()=>{ console.log('getUDPgetUDPgetUDP') getUDP(true,context) if(errorFlag&&globalThis.udpClient&&globalThis.udpClient.onMessage_1){ globalThis.udpClient.onMessage_1=globalThis.udpClient.onMessage_1 } }) reslove(`http://${result[0].centerIp}:${result[0].centerPort}`) // globalThis.udpClient.onError_resend(globalThis.udpClient.onMessage_1?globalThis.udpClient.onMessage_1:()=>{}) }, 1000) }) } else { // 未绑定 console.log(` getUDP has no udclent and bind `); const udpClient: UdpClientByCenter = new UdpClientByCenter(result[0].udplocalIp, result[0].udplocalIpPort, result[0].udpOppositeIp, result[0].udpOppositeIpPort) udpClient.bindUdp() udpClient.sendMsg('111') globalThis.host = `http://${result[0].centerIp}:${result[0].centerPort}` globalThis.udpClient = udpClient globalThis.udpClient.onMessage_1(()=>{ console.log('getUDPonMessage_1msgmsgByGloalUdp') }) globalThis.udpClient.onError_Callback(()=>{ getUDP(true,context) if(errorFlag&&globalThis.udpClient&&globalThis.udpClient.onMessage_1){ globalThis.udpClient.onMessage_1=globalThis.udpClient.onMessage_1 } }) // udpClient.onError_resend(globalThis.udpClient.onMessage_1?globalThis.udpClient.onMessage_1:()=>{}) getChuankouFn() reslove(`http://${result[0].centerIp}:${result[0].centerPort}`) } } else { console.log(` getUDP has no IPConfigTable `); // if(globalThis.udpClient) // { // console.log(` getUDP2 has IPConfigTable ,has udpClient ,close it`); // globalThis.udpClient.closeUdp(async ()=>{ }) // } globalThis.udpClient = {} // globalThis.udpClient.onMessage_1 = () => {} globalThis.host = '' reslove('') } }) }) } export async function getUDP2(context,errorFlag?) { const fileUtil = new FileUtil(context) const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/ipConfig.txt'); if (data === '' || data === undefined) { globalThis.udpClient2 = {} globalThis.udpClient2.setMsgCallBack = () => { } }else{ const result=JSON.parse(data) console.log(` getUDP2 has IPConfigTable `); if (globalThis.udpClient2 && globalThis.udpClient2.closeUdp) { console.log(` getUDP2 has udclent ,close and rebind `); globalThis.udpClient2.closeUdp(async () => { setTimeout(() => { globalThis.udpClient2.rebindUdp(result.udplocalIp, '8800', globalThis.carInfo?.udpAddress, globalThis.carInfo?.messagePort) globalThis.udpClient2.onError_Callback(()=>{ getUDP2(context,true); if(errorFlag&&globalThis.udpClient2&&globalThis.udpClient2.onMessage_2){ globalThis.udpClient2.onMessage_2=globalThis.udpClient2.onMessage_2 } }) }, 1000) }) } else { // 未绑定 console.log(` getUDP2 has no udclent and bind `); const udpClient2: UdpClientByCenter = new UdpClientByCenter(result.udplocalIp, '8800', globalThis.carInfo?.udpAddress, globalThis.carInfo?.messagePort) await udpClient2.bindUdp() await udpClient2.onError_Callback(()=>{ getUDP2(context,true); if(errorFlag&&globalThis.udpClient2&&globalThis.udpClient2.onMessage_2){ globalThis.udpClient2.onMessage_2=globalThis.udpClient2.onMessage_2 } }) if(!errorFlag){ await udpClient2.onMessage_2((val) => { console.log('getUDPOnmessageByGlobalUDP2Message') if (val.id == '32') { globalThis.signNum = val.body[1] if(val.body[0] == 5){ } if(val.body[0] == 11){ globalThis.udpEvent.sendBeginExam() } if(val.body[0] == 12){ globalThis.udpEvent.sendEndExam() } } else if (val.id == '46') { let tmpList = [] const str = globalThis.lsh for (let i = 0; i < str.length; i++) { tmpList.push(this.string2Bytes(str.charCodeAt(i), 1 * 8)[0]) } const param = { id: 47, list: tmpList, carNo: globalThis.carInfo.carNo, placeId: globalThis.carInfo.examinationRoomId } globalThis.udpClient2.send(param) } }) } globalThis.udpClient2 = udpClient2 } } return console.log(` getUDP2 enter`); getSyncData('IpConfigTable').then(async (result: Array) => { if (result.length) { console.log(` getUDP2 has IPConfigTable `); if (globalThis.udpClient2 && globalThis.udpClient2.closeUdp) { console.log(` getUDP2 has udclent ,close and rebind `); globalThis.udpClient2.closeUdp(async () => { setTimeout(() => { globalThis.udpClient2.rebindUdp(result[0].udplocalIp, '8800', globalThis.carInfo?.udpAddress, globalThis.carInfo?.messagePort) globalThis.udpClient2.onError_Callback(()=>{ getUDP2(true); if(errorFlag&&globalThis.udpClient2&&globalThis.udpClient2.onMessage_2){ globalThis.udpClient2.onMessage_2=globalThis.udpClient2.onMessage_2 } }) }, 1000) }) } else { // 未绑定 console.log(` getUDP2 has no udclent and bind `); const udpClient2: UdpClientByCenter = new UdpClientByCenter(result[0].udplocalIp, '8800', globalThis.carInfo?.udpAddress, globalThis.carInfo?.messagePort) await udpClient2.bindUdp() await udpClient2.onError_Callback(()=>{ getUDP2(true); if(errorFlag&&globalThis.udpClient2&&globalThis.udpClient2.onMessage_2){ globalThis.udpClient2.onMessage_2=globalThis.udpClient2.onMessage_2 } }) if(!errorFlag){ await udpClient2.onMessage_2((val) => { if (val.id == '32') { globalThis.signNum = val.body[1] } else if (val.id == '46') { let tmpList = [] const str = globalThis.lsh for (let i = 0; i < str.length; i++) { tmpList.push(this.string2Bytes(str.charCodeAt(i), 1 * 8)[0]) } const param = { id: 47, list: tmpList, carNo: globalThis.carInfo.carNo, placeId: globalThis.carInfo.examinationRoomId } globalThis.udpClient2.send(param) } }) } globalThis.udpClient2 = udpClient2 } } else { globalThis.udpClient2 = {} globalThis.udpClient2.setMsgCallBack = () => { } } }) } export async function setTopLineUdp() { const fileUtil = new FileUtil(globalThis.context) const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/ipConfig.txt'); const config = JSON.parse(data) // const config = await getSyncData('IpConfigTable'); if (config && config.udplocalIp) { const {udplocalIp,udpOppositeIp,udpOppositeIpPort} = config; const udpClient: UdpClientByCenter = new UdpClientByCenter(udplocalIp, '55509', udpOppositeIp, udpOppositeIpPort) udpClient.bindUdp() return { send(bytes) { udpClient.sendHeadMsg(bytes) } } } } // export async function setJudgeUdp() { const fileUtil = new FileUtil(globalThis.context) const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/ipConfig.txt'); const config = JSON.parse(data) // // const config = await getSyncData('IpConfigTable'); let udpIndex = 0; let currentUdpIndex = 0; let judgeUdpTimer clearInterval(globalThis.judgeUdpTimer) globalThis.judgeUdpTimer = setInterval(() => { udpIndex += 1; }, 1000); if (config && config.udplocalIp) { const {udplocalIp} = config; const udpClientbyCenter: UdpClientByCenter = new UdpClientByCenter( udplocalIp, '8080', globalThis.carInfo?.udpAddress, globalThis.carInfo?.hintPort ) await udpClientbyCenter.onError_Callback(()=>{}) await udpClientbyCenter.bindUdp() await udpClientbyCenter.onMessage_2((val) => {}) //远程监听开始考试、结束考试、扣分指令 // globalThis.judgeUdpClient = udpClientbyCenter; return { send(bytes) { if (udpIndex > currentUdpIndex) { udpClientbyCenter.sendMsgExt({ id: 45, list: bytes, carNo: globalThis.carInfo.carNo, placeId: globalThis.carInfo.examinationRoomId }) currentUdpIndex = udpIndex } }, //远程查询扣分项 //远程确认扣分 confirmKF(){ }, //远程开始考试 //远程结束考试 } } } // globalThis.udpClient.bindUdp()