完善航点设置,历史遗留问题

This commit is contained in:
hm
2020-11-20 18:57:45 +08:00
parent 47743acfa6
commit a41f3e3060
16 changed files with 659 additions and 433 deletions
+27 -2
View File
@@ -1,4 +1,4 @@
#include "dlink.h"
#include "dlink.h"
#include <string.h>
#include "QDateTime"
@@ -183,7 +183,7 @@ void DLink::connectSignal(QVariant m_state,
}
else if(m_Type.toString() == "UDP")
{
//qDebug() << m_Type << m_Param1 << m_Param2 << m_Param4;
//qDebug() << "connet to socket" << m_Type << m_Param1 << m_Param2 << m_Param4;
if(setupClient(QHostAddress(m_Param1.toString()),m_Param2.toString().toInt(),QHostAddress(m_Param3.toString()),m_Param4.toString().toInt()))
{
emit PortConnected(true,m_usrName,m_Type,m_Param1,m_Param2,m_Param3,m_Param4,m_Param5);
@@ -204,6 +204,27 @@ void DLink::connectSignal(QVariant m_state,
}
else if(m_Type.toString() == "UDP")
{
//断开连接
if(Clientsock)
{
for(int i = 0;i < clientSockets.count();i++)
{
qDebug() << clientSockets.at(i).addr;
if(clientSockets.at(i).addr == QHostAddress(m_Param3.toString()))
{
clientSockets.removeAt(i);
}
}
Clientsock->leaveMulticastGroup(QHostAddress(m_Param3.toString()));
Clientsock->close();
qWarning("leave multicast Group");
delete Clientsock;
Clientsock = nullptr;
}
emit PortConnected(false,m_usrName,m_Type,m_Param1,m_Param2,m_Param3,m_Param4,m_Param5);
}
}
@@ -221,6 +242,8 @@ bool DLink::setupClient(const QHostAddress &local_addr,int local_port,const QHos
Clientsock = nullptr;
}
qDebug() << "sock connect";
bool isSuccess = false;
Clientsock = new QUdpSocket(this);
if (Clientsock->bind(QHostAddress::AnyIPv4, local_port, QUdpSocket::ShareAddress|QUdpSocket::ReuseAddressHint))
@@ -256,6 +279,7 @@ bool DLink::setupClient(const QHostAddress &local_addr,int local_port,const QHos
isSuccess = false;
qWarning() << "sock not open";
delete Clientsock;
Clientsock = nullptr;
}
}
else
@@ -265,6 +289,7 @@ bool DLink::setupClient(const QHostAddress &local_addr,int local_port,const QHos
Clientsock->close();
qWarning("sock is not binded.");
delete Clientsock;
Clientsock = nullptr;
}
return isSuccess;