Commit 6641fcad authored by pixhawk's avatar pixhawk

nothing changed

parent dedaa377
...@@ -114,6 +114,9 @@ Core::Core(int &argc, char* argv[]) : QApplication(argc, argv) ...@@ -114,6 +114,9 @@ Core::Core(int &argc, char* argv[]) : QApplication(argc, argv)
// to make sure that all components are initialized when the // to make sure that all components are initialized when the
// first messages arrive // first messages arrive
UDPLink* udpLink = new UDPLink(QHostAddress::Any, 14550); UDPLink* udpLink = new UDPLink(QHostAddress::Any, 14550);
// Listen on Multicast-Address 239.255.77.77, Port 14550
//QHostAddress * multicast_udp = new QHostAddress("239.255.77.77");
//UDPLink* udpLink = new UDPLink(*multicast_udp, 14550);
mainWindow->addLink(udpLink); mainWindow->addLink(udpLink);
// Check if link could be connected // Check if link could be connected
......
...@@ -36,6 +36,7 @@ This file is part of the QGROUNDCONTROL project ...@@ -36,6 +36,7 @@ This file is part of the QGROUNDCONTROL project
#include "UDPLink.h" #include "UDPLink.h"
#include "LinkManager.h" #include "LinkManager.h"
#include "MG.h" #include "MG.h"
#include <netinet/in.h>
UDPLink::UDPLink(QHostAddress host, quint16 port) UDPLink::UDPLink(QHostAddress host, quint16 port)
{ {
...@@ -197,11 +198,46 @@ bool UDPLink::connect() ...@@ -197,11 +198,46 @@ bool UDPLink::connect()
{ {
socket = new QUdpSocket(this); socket = new QUdpSocket(this);
//Check if we are using a multicast-address
// bool multicast = false;
// if (host.isInSubnet(QHostAddress("224.0.0.0"),4))
// {
// multicast = true;
// connectState = socket->bind(port, QUdpSocket::ShareAddress);
// }
// else
// {
connectState = socket->bind(host, port);
// }
//Provides Multicast functionality to UdpSocket
/* not working yet
if (multicast)
{
int sendingFd = socket->socketDescriptor();
if (sendingFd != -1)
{
// set up destination address
struct sockaddr_in sendAddr;
memset(&sendAddr,0,sizeof(sendAddr));
sendAddr.sin_family=AF_INET;
sendAddr.sin_addr.s_addr=inet_addr(HELLO_GROUP);
sendAddr.sin_port=htons(port);
// set TTL
unsigned int ttl = 1; // restricted to the same subnet
if (setsockopt(sendingFd, IPPROTO_IP, IP_MULTICAST_TTL, (unsigned int*)&ttl, sizeof(ttl) ) < 0)
{
std::cout << "TTL failed\n";
}
}
}
*/
//QObject::connect(socket, SIGNAL(readyRead()), this, SLOT(readPendingDatagrams())); //QObject::connect(socket, SIGNAL(readyRead()), this, SLOT(readPendingDatagrams()));
QObject::connect(socket, SIGNAL(readyRead()), this, SLOT(readBytes())); QObject::connect(socket, SIGNAL(readyRead()), this, SLOT(readBytes()));
connectState = socket->bind(host, port);
emit connected(connectState); emit connected(connectState);
if (connectState) if (connectState)
{ {
......
...@@ -46,6 +46,7 @@ class UDPLink : public LinkInterface ...@@ -46,6 +46,7 @@ class UDPLink : public LinkInterface
public: public:
UDPLink(QHostAddress host = QHostAddress::Any, quint16 port = 14550); UDPLink(QHostAddress host = QHostAddress::Any, quint16 port = 14550);
//UDPLink(QHostAddress host = "239.255.76.67", quint16 port = 7667);
~UDPLink(); ~UDPLink();
bool isConnected(); bool isConnected();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment