Handle invalid IP address
This commit is contained in:
parent
f77cbca876
commit
991f31bc77
@ -28,13 +28,14 @@ public:
|
|||||||
signals:
|
signals:
|
||||||
void connectToDevice(const QString& ipAddress);
|
void connectToDevice(const QString& ipAddress);
|
||||||
void connectionSucceed(aasdk::tcp::ITCPEndpoint::SocketPointer socket);
|
void connectionSucceed(aasdk::tcp::ITCPEndpoint::SocketPointer socket);
|
||||||
void connectionFailed();
|
void connectionFailed(const QString& message);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void onConnectButtonClicked();
|
void onConnectButtonClicked();
|
||||||
void onConnectionFailed();
|
void onConnectionFailed(const QString& message);
|
||||||
void onConnectionSucceed();
|
void onConnectionSucceed();
|
||||||
void setControlsEnabledStatus(bool status);
|
void setControlsEnabledStatus(bool status);
|
||||||
|
void connectHandler(const boost::system::error_code& ec, aasdk::tcp::ITCPEndpoint::SocketPointer socket);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
boost::asio::io_service& ioService_;
|
boost::asio::io_service& ioService_;
|
||||||
|
@ -37,7 +37,19 @@ void ConnectDialog::onConnectButtonClicked()
|
|||||||
|
|
||||||
const auto& ipAddress = ui_->lineEditIPAddress->text().toStdString();
|
const auto& ipAddress = ui_->lineEditIPAddress->text().toStdString();
|
||||||
auto socket = std::make_shared<boost::asio::ip::tcp::socket>(ioService_);
|
auto socket = std::make_shared<boost::asio::ip::tcp::socket>(ioService_);
|
||||||
tcpWrapper_.asyncConnect(*socket, ipAddress, 5277, [this, socket](auto ec) mutable {
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
tcpWrapper_.asyncConnect(*socket, ipAddress, 5277, std::bind(&ConnectDialog::connectHandler, this, std::placeholders::_1, socket));
|
||||||
|
}
|
||||||
|
catch(const boost::system::system_error& se)
|
||||||
|
{
|
||||||
|
emit connectionFailed(QString(se.what()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConnectDialog::connectHandler(const boost::system::error_code& ec, aasdk::tcp::ITCPEndpoint::SocketPointer socket)
|
||||||
|
{
|
||||||
if(!ec)
|
if(!ec)
|
||||||
{
|
{
|
||||||
emit connectionSucceed(std::move(socket));
|
emit connectionSucceed(std::move(socket));
|
||||||
@ -45,9 +57,8 @@ void ConnectDialog::onConnectButtonClicked()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
emit connectionFailed();
|
emit connectionFailed(QString::fromStdString(ec.message()));
|
||||||
}
|
}
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConnectDialog::onConnectionSucceed()
|
void ConnectDialog::onConnectionSucceed()
|
||||||
@ -55,11 +66,11 @@ void ConnectDialog::onConnectionSucceed()
|
|||||||
this->setControlsEnabledStatus(true);
|
this->setControlsEnabledStatus(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConnectDialog::onConnectionFailed()
|
void ConnectDialog::onConnectionFailed(const QString& message)
|
||||||
{
|
{
|
||||||
this->setControlsEnabledStatus(true);
|
this->setControlsEnabledStatus(true);
|
||||||
|
|
||||||
QMessageBox errorMessage(QMessageBox::Critical, "Error", "Connection failed.", QMessageBox::Ok);
|
QMessageBox errorMessage(QMessageBox::Critical, "Connect error", message, QMessageBox::Ok);
|
||||||
errorMessage.setWindowFlags(Qt::WindowStaysOnTopHint);
|
errorMessage.setWindowFlags(Qt::WindowStaysOnTopHint);
|
||||||
errorMessage.exec();
|
errorMessage.exec();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user