//import UdpClient from './UdpClient'; import UdpClientByCenter from './UdpClientByCenter'; import { getSyncData } from '../service/initable' import { getChuankouFn } from '../../common/service/indexService' export async function sendMsg(val) { // globalThis.udpClient1&&globalThis.udpClient1.sendMsg(val) } export async function getUDP() { return new Promise((reslove,reject)=>{ 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}` 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}` // udpClient.onError_resend(globalThis.udpClient.onMessage_1?globalThis.udpClient.onMessage_1:()=>{}) globalThis.udpClient = udpClient 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() { 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) }, 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() 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 config = await getSyncData('IpConfigTable'); if (config && config[0] && config[0].udplocalIp) { const {udplocalIp,udpOppositeIp,udpOppositeIpPort} = config[0]; const udpClient: UdpClientByCenter = new UdpClientByCenter(udplocalIp, '55509', udpOppositeIp, udpOppositeIpPort) udpClient.bindUdp() return { send(bytes) { udpClient.sendHeadMsg(bytes) } } } } // export async function setJudgeUdp() { const config = await getSyncData('IpConfigTable'); let udpIndex = 0; let currentUdpIndex = 0; let judgeUdpTimer clearInterval(judgeUdpTimer) judgeUdpTimer = setInterval(() => { udpIndex += 1; }, 1000); if (config && config[0] && config[0].udplocalIp) { const {udplocalIp} = config[0]; const udpClientbyCenter: UdpClientByCenter = new UdpClientByCenter(udplocalIp, '8080', globalThis.carInfo?.gpsAddress, globalThis.carInfo?.hintPort) await udpClientbyCenter.bindUdp() await udpClientbyCenter.onMessage_1((val) => { console.log('valval', 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 } } } } } // globalThis.udpClient.bindUdp()