162 lines
5.6 KiB
TypeScript
Raw Normal View History

2024-07-09 11:11:31 +08:00
//import UdpClient from './UdpClient';
2024-01-05 11:11:15 +08:00
import UdpClientByCenter from './UdpClientByCenter';
2024-02-23 15:23:48 +08:00
import { getSyncData} from '../service/initable'
2024-07-09 11:11:31 +08:00
import {getChuankouFn} from '../../common/service/indexService'
2024-02-23 15:23:48 +08:00
export async function sendMsg(val){
2024-05-16 09:53:10 +08:00
// globalThis.udpClient1&&globalThis.udpClient1.sendMsg(val)
2024-01-05 11:11:15 +08:00
}
2024-06-04 13:14:48 +08:00
export async function getUDP() {
2024-07-09 11:11:31 +08:00
console.log(` getUDP enter`);
getSyncData('IpConfigTable').then((result:Array<any>)=>
{
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_resend(globalThis.udpClient.onMessage?globalThis.udpClient.onMessage:()=>{})
},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)
2024-01-05 11:11:15 +08:00
udpClient.bindUdp()
udpClient.sendMsg('111')
2024-05-09 13:42:56 +08:00
globalThis.host=`http://${result[0].centerIp}:${result[0].centerPort}`
2024-07-09 11:11:31 +08:00
// udpClient.onError_resend(globalThis.udpClient.onMessage?globalThis.udpClient.onMessage:()=>{})
globalThis.udpClient = udpClient
getChuankouFn()
2024-01-05 11:11:15 +08:00
}
2024-07-09 11:11:31 +08:00
}else
{
console.log(` getUDP has no IPConfigTable `);
// if(globalThis.udpClient)
// {
// console.log(` getUDP2 has IPConfigTable ,has udpClient close it`);
// globalThis.udpClient.closeUdp(async ()=>{ })
// }
2024-02-23 15:23:48 +08:00
globalThis.udpClient={}
2024-07-09 11:11:31 +08:00
globalThis.udpClient.onMessage_1=()=>{}
2024-05-09 13:42:56 +08:00
globalThis.host=''
2024-01-05 11:11:15 +08:00
}
})
}
2024-06-04 13:14:48 +08:00
export async function getUDP2() {
2024-07-09 11:11:31 +08:00
console.log(` getUDP2 enter`);
2024-02-23 15:23:48 +08:00
getSyncData('IpConfigTable').then(async (result:Array<any>)=>{
2024-07-09 11:11:31 +08:00
if(result.length)
{
console.log(` getUDP2 has IPConfigTable `);
if(globalThis.udpClient2)
{
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.onMessage((val)=>{ })
// globalThis.udpClient2.onError()
// globalThis.udpClient2.setMsgCallBack=()=>{}
},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)
2024-01-05 11:11:15 +08:00
2024-07-09 11:11:31 +08:00
udpClient2.bindUdp()
udpClient2.onError_Callback()
udpClient2.onMessage_1((val)=>{
2024-02-23 15:23:48 +08:00
if(val.id=='32'){
globalThis.signNum=val.body[1]
2024-03-12 15:32:48 +08:00
2024-02-23 15:23:48 +08:00
}else if(val.id=='46'){
2024-01-05 11:11:15 +08:00
let tmpList = []
const str = globalThis.lsh
2024-02-23 15:23:48 +08:00
for (let i = 0;i < str.length; i++) {
2024-01-05 11:11:15 +08:00
tmpList.push(this.string2Bytes(str.charCodeAt(i), 1 * 8)[0])
}
2024-02-23 15:23:48 +08:00
const param = { id: 47, list: tmpList, carNo: globalThis.carInfo.carNo, placeId: globalThis.carInfo.examinationRoomId }
2024-01-05 11:11:15 +08:00
globalThis.udpClient2.send(param)
}
})
2024-07-09 11:11:31 +08:00
globalThis.udpClient2 = udpClient2
2024-01-05 11:11:15 +08:00
}
2024-02-23 15:23:48 +08:00
}else{
2024-07-09 11:11:31 +08:00
console.log(` getUDP2 has no IPConfigTable `);
if(globalThis.udpClient2)
{
console.log(` getUDP2 has IPConfigTable ,has udpClient close it`);
globalThis.udpClient2.closeUdp(async ()=>{ })
}
2024-02-23 15:23:48 +08:00
globalThis.udpClient2={}
2024-07-09 11:11:31 +08:00
globalThis.udpClient2.onMessage_2=()=>{}
2024-05-09 13:42:56 +08:00
globalThis.udpClient2.setMsgCallBack=()=>{}
2024-01-05 11:11:15 +08:00
}
})
}
2024-02-20 10:22:33 +08:00
2024-02-23 15:23:48 +08:00
export async function setTopLineUdp(){
2024-01-05 11:11:15 +08:00
const config = await getSyncData('IpConfigTable');
2024-02-23 15:23:48 +08:00
if(config && config[0] && config[0].udplocalIp){
2024-01-05 11:11:15 +08:00
const {udplocalIp,udpOppositeIp,udpOppositeIpPort} = config[0];
2024-02-23 15:23:48 +08:00
const udpClient: UdpClientByCenter = new UdpClientByCenter(udplocalIp, '55509',udpOppositeIp,udpOppositeIpPort)
2024-01-05 11:11:15 +08:00
udpClient.bindUdp()
return {
2024-02-23 15:23:48 +08:00
send(bytes){
2024-01-05 11:11:15 +08:00
udpClient.sendHeadMsg(bytes)
}
}
}
}
2024-05-09 13:42:56 +08:00
//
2024-02-23 15:23:48 +08:00
export async function setJudgeUdp(){
2024-01-05 11:11:15 +08:00
const config = await getSyncData('IpConfigTable');
2024-05-09 13:42:56 +08:00
let udpIndex = 0;
let currentUdpIndex = 0;
let judgeUdpTimer
clearInterval(judgeUdpTimer)
judgeUdpTimer = setInterval(()=>{
udpIndex += 1;
},1000);
2024-02-23 15:23:48 +08:00
if(config && config[0] && config[0].udplocalIp){
const {udplocalIp} = config[0];
2024-07-09 11:11:31 +08:00
const udpClientbyCenter: UdpClientByCenter = new UdpClientByCenter(udplocalIp, '8080',globalThis.carInfo?.gpsAddress,globalThis.carInfo?.hintPort)
udpClientbyCenter.bindUdp()
udpClientbyCenter.onMessage_1((val)=>{
2024-03-12 15:32:48 +08:00
console.log('valval',val)
2024-01-05 11:11:15 +08:00
})
2024-07-09 11:11:31 +08:00
// globalThis.judgeUdpClient = udpClientbyCenter;
2024-01-05 11:11:15 +08:00
return {
2024-02-23 15:23:48 +08:00
send(bytes){
2024-05-09 13:42:56 +08:00
if(udpIndex > currentUdpIndex){
2024-07-09 11:11:31 +08:00
udpClientbyCenter.sendMsgExt({id:45,
list:bytes,
carNo:globalThis.carInfo.carNo,
placeId:globalThis.carInfo.examinationRoomId})
2024-05-09 13:42:56 +08:00
currentUdpIndex = udpIndex
}
2024-01-05 11:11:15 +08:00
}
}
}
}
// globalThis.udpClient.bindUdp()