Fix an issue with automatic remote detection when multiple instances
of SavvyCAN are running.
This commit is contained in:
@@ -31,7 +31,7 @@ ConnectionWindow::ConnectionWindow(QWidget *parent) :
|
|||||||
ui->tableConnections->setModel(connModel);
|
ui->tableConnections->setModel(connModel);
|
||||||
ui->tableConnections->setColumnWidth(0, 100);
|
ui->tableConnections->setColumnWidth(0, 100);
|
||||||
ui->tableConnections->setColumnWidth(1, 100);
|
ui->tableConnections->setColumnWidth(1, 100);
|
||||||
ui->tableConnections->setColumnWidth(2, 100);
|
ui->tableConnections->setColumnWidth(2, 130);
|
||||||
ui->tableConnections->setColumnWidth(3, 70);
|
ui->tableConnections->setColumnWidth(3, 70);
|
||||||
ui->tableConnections->setColumnWidth(4, 200);
|
ui->tableConnections->setColumnWidth(4, 200);
|
||||||
QHeaderView *HorzHdr = ui->tableConnections->horizontalHeader();
|
QHeaderView *HorzHdr = ui->tableConnections->horizontalHeader();
|
||||||
@@ -67,7 +67,9 @@ ConnectionWindow::ConnectionWindow(QWidget *parent) :
|
|||||||
ui->cbBusSpeed->addItem("1000000");
|
ui->cbBusSpeed->addItem("1000000");
|
||||||
|
|
||||||
rxBroadcast = new QUdpSocket(this);
|
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()));
|
connect(rxBroadcast, SIGNAL(readyRead()), this, SLOT(readPendingDatagrams()));
|
||||||
|
|
||||||
@@ -76,11 +78,13 @@ ConnectionWindow::ConnectionWindow(QWidget *parent) :
|
|||||||
|
|
||||||
void ConnectionWindow::readPendingDatagrams()
|
void ConnectionWindow::readPendingDatagrams()
|
||||||
{
|
{
|
||||||
|
//qDebug() << "Got a UDP frame!";
|
||||||
while (rxBroadcast->hasPendingDatagrams()) {
|
while (rxBroadcast->hasPendingDatagrams()) {
|
||||||
QNetworkDatagram datagram = rxBroadcast->receiveDatagram();
|
QNetworkDatagram datagram = rxBroadcast->receiveDatagram();
|
||||||
if (!remoteDeviceIP.contains(datagram.senderAddress().toString()))
|
if (!remoteDeviceIP.contains(datagram.senderAddress().toString()))
|
||||||
{
|
{
|
||||||
remoteDeviceIP.append(datagram.senderAddress().toString());
|
remoteDeviceIP.append(datagram.senderAddress().toString());
|
||||||
|
//qDebug() << "Add new remote IP " << datagram.senderAddress().toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ NewConnectionDialog::NewConnectionDialog(QVector<QString>* ips, QWidget *parent)
|
|||||||
ui->lblDeviceType->setHidden(true);
|
ui->lblDeviceType->setHidden(true);
|
||||||
ui->cbDeviceType->setHidden(true);
|
ui->cbDeviceType->setHidden(true);
|
||||||
selectSerial();
|
selectSerial();
|
||||||
|
|
||||||
|
qDebug() << "Was passed " << remoteDeviceIP->count() << " remote IPs";
|
||||||
}
|
}
|
||||||
|
|
||||||
NewConnectionDialog::~NewConnectionDialog()
|
NewConnectionDialog::~NewConnectionDialog()
|
||||||
|
|||||||
Reference in New Issue
Block a user