From bf0492e0840c26adea38de51aaf140c26b88d7b5 Mon Sep 17 00:00:00 2001 From: Collin Kidder Date: Wed, 6 Mar 2019 21:02:24 -0500 Subject: [PATCH] Fix an issue with automatic remote detection when multiple instances of SavvyCAN are running. --- connections/connectionwindow.cpp | 8 ++++++-- connections/newconnectiondialog.cpp | 2 ++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/connections/connectionwindow.cpp b/connections/connectionwindow.cpp index 0c2faea..dff1476 100644 --- a/connections/connectionwindow.cpp +++ b/connections/connectionwindow.cpp @@ -31,7 +31,7 @@ ConnectionWindow::ConnectionWindow(QWidget *parent) : ui->tableConnections->setModel(connModel); ui->tableConnections->setColumnWidth(0, 100); ui->tableConnections->setColumnWidth(1, 100); - ui->tableConnections->setColumnWidth(2, 100); + ui->tableConnections->setColumnWidth(2, 130); ui->tableConnections->setColumnWidth(3, 70); ui->tableConnections->setColumnWidth(4, 200); QHeaderView *HorzHdr = ui->tableConnections->horizontalHeader(); @@ -67,7 +67,9 @@ ConnectionWindow::ConnectionWindow(QWidget *parent) : ui->cbBusSpeed->addItem("1000000"); rxBroadcast = new QUdpSocket(this); - rxBroadcast->bind(QHostAddress::AnyIPv4, 17222); + //Need to make sure it tries to share the address in case there are + //multiple instances of SavvyCAN running. + rxBroadcast->bind(QHostAddress::AnyIPv4, 17222, QAbstractSocket::ShareAddress); connect(rxBroadcast, SIGNAL(readyRead()), this, SLOT(readPendingDatagrams())); @@ -76,11 +78,13 @@ ConnectionWindow::ConnectionWindow(QWidget *parent) : void ConnectionWindow::readPendingDatagrams() { + //qDebug() << "Got a UDP frame!"; while (rxBroadcast->hasPendingDatagrams()) { QNetworkDatagram datagram = rxBroadcast->receiveDatagram(); if (!remoteDeviceIP.contains(datagram.senderAddress().toString())) { remoteDeviceIP.append(datagram.senderAddress().toString()); + //qDebug() << "Add new remote IP " << datagram.senderAddress().toString(); } } } diff --git a/connections/newconnectiondialog.cpp b/connections/newconnectiondialog.cpp index ad15569..92ee31b 100644 --- a/connections/newconnectiondialog.cpp +++ b/connections/newconnectiondialog.cpp @@ -20,6 +20,8 @@ NewConnectionDialog::NewConnectionDialog(QVector* ips, QWidget *parent) ui->lblDeviceType->setHidden(true); ui->cbDeviceType->setHidden(true); selectSerial(); + + qDebug() << "Was passed " << remoteDeviceIP->count() << " remote IPs"; } NewConnectionDialog::~NewConnectionDialog()