From 036d1befabb27f9366c486f318c6f181af855a73 Mon Sep 17 00:00:00 2001 From: Bryan Godbolt Date: Thu, 12 Aug 2010 10:52:48 -0600 Subject: [PATCH] successfully connecting to model --- src/comm/OpalLink.cc | 36 +++++++++++++++++++++++++++++++++--- src/comm/OpalLink.h | 4 ++++ 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/src/comm/OpalLink.cc b/src/comm/OpalLink.cc index 19eb6ed30..c74343a04 100644 --- a/src/comm/OpalLink.cc +++ b/src/comm/OpalLink.cc @@ -1,6 +1,6 @@ #include "OpalLink.h" -OpalLink::OpalLink() +OpalLink::OpalLink() : connectState(false) { // Set unique ID and add link to the list of links @@ -26,6 +26,7 @@ void OpalLink::setName(QString name) } bool OpalLink::isConnected() { + //qDebug() << "OpalLink::isConnected:: connectState: " << connectState; return connectState; } @@ -81,8 +82,28 @@ bool OpalLink::isFullDuplex() bool OpalLink::connect() { short modelState; - OpalConnect(101, true, &modelState); - return true; + + /// \todo allow configuration of instid in window + if (OpalConnect(101, false, &modelState) == EOK) + { + connectState = true; + } + else + { + connectState = false; + setLastErrorMsg(); + QMessageBox msgBox; + msgBox.setIcon(QMessageBox::Critical); + msgBox.setText(lastErrorMsg); + msgBox.exec(); + } + + emit connected(connectState); + if (connectState) + { + emit connected(); + } + return connectState; } bool OpalLink::disconnect() @@ -90,6 +111,15 @@ bool OpalLink::disconnect() return false; } +void OpalLink::setLastErrorMsg() +{ + char buf[512]; + unsigned short len; + OpalGetLastErrMsg(buf, sizeof(buf), &len); + lastErrorMsg.clear(); + lastErrorMsg.append(buf); +} + qint64 OpalLink::bytesAvailable() { return 0; diff --git a/src/comm/OpalLink.h b/src/comm/OpalLink.h index 560d5c149..47dd1c21c 100644 --- a/src/comm/OpalLink.h +++ b/src/comm/OpalLink.h @@ -8,6 +8,8 @@ */ #include +#include +#include #include "LinkInterface.h" #include "LinkManager.h" @@ -73,6 +75,8 @@ protected: quint64 connectionStartTime; QMutex statisticsMutex; + QString lastErrorMsg; + void setLastErrorMsg(); void setName(QString name); }; -- 2.22.0