diff --git a/qgroundcontrol.pri b/qgroundcontrol.pri index bf5126614bb724fd2d370bc705e0744ef7456012..9bdb067c497ab621937194265cc4de5ca44abf57 100644 --- a/qgroundcontrol.pri +++ b/qgroundcontrol.pri @@ -390,6 +390,7 @@ exists($$BASEDIR/lib/osgEarth123) { QMAKE_POST_LINK += $$quote(xcopy \"$$BASEDIR_WIN\\audio\" \"$$TARGETDIR_WIN\\debug\\audio\\\" /S /E /Y $$escape_expand(\\n)) QMAKE_POST_LINK += $$quote(xcopy \"$$BASEDIR_WIN\\models\" \"$$TARGETDIR_WIN\\debug\\models\\\" /S /E /Y $$escape_expand(\\n)) QMAKE_POST_LINK += $$quote(copy /Y \"$$BASEDIR_WIN\\images\\earth.html\" \"$$TARGETDIR_WIN\\debug\\earth.html\"$$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(copy /Y "$$BASEDIR_WIN\\thirdParty\\libxbee\\lib\\libxbee.dll" "$$TARGETDIR_WIN\\debug"$$escape_expand(\\n)) # QMAKE_POST_LINK += && copy /Y \"$$BASEDIR_WIN\\lib\\sdl\\win32\\SDL.dll\" \"$$TARGETDIR_WIN\\debug\\SDL.dll\" # QMAKE_POST_LINK += && xcopy \"$$BASEDIR_WIN\\audio\" \"$$TARGETDIR_WIN\\debug\\audio\\\" /S /E /Y # QMAKE_POST_LINK += && xcopy \"$$BASEDIR_WIN\\models\" \"$$TARGETDIR_WIN\\debug\\models\\\" /S /E /Y @@ -401,6 +402,7 @@ exists($$BASEDIR/lib/osgEarth123) { QMAKE_POST_LINK += $$quote(xcopy \"$$BASEDIR_WIN\\audio\" \"$$TARGETDIR_WIN\\release\\audio\\\" /S /E /Y $$escape_expand(\\n)) QMAKE_POST_LINK += $$quote(xcopy \"$$BASEDIR_WIN\\models\" \"$$TARGETDIR_WIN\\release\\models\\\" /S /E /Y $$escape_expand(\\n)) QMAKE_POST_LINK += $$quote(copy /Y \"$$BASEDIR_WIN\\images\\earth.html\" \"$$TARGETDIR_WIN\\release\\earth.html\" $$escape_expand(\\n)) + QMAKE_POST_LINK += $$quote(copy /Y "$$BASEDIR_WIN\\thirdParty\\libxbee\\lib\\libxbee.dll" "$$TARGETDIR_WIN\\release"$$escape_expand(\\n)) # QMAKE_POST_LINK += && copy /Y \"$$BASEDIR_WIN\\lib\\sdl\\win32\\SDL.dll\" \"$$TARGETDIR_WIN\\release\\SDL.dll\" # QMAKE_POST_LINK += && xcopy \"$$BASEDIR_WIN\\audio\" \"$$TARGETDIR_WIN\\release\\audio\\\" /S /E /Y # QMAKE_POST_LINK += && xcopy \"$$BASEDIR_WIN\\models\" \"$$TARGETDIR_WIN\\release\\models\\\" /S /E /Y diff --git a/src/ui/CommConfigurationWindow.cc b/src/ui/CommConfigurationWindow.cc index 319636a9b6ecfccd391f43436cfd5bd6b0af1149..adbf80afcde55c9057b97ed501bf430083623c97 100644 --- a/src/ui/CommConfigurationWindow.cc +++ b/src/ui/CommConfigurationWindow.cc @@ -41,6 +41,10 @@ This file is part of the QGROUNDCONTROL project #include "SerialLink.h" #include "UDPLink.h" #include "MAVLinkSimulationLink.h" +#ifdef XBEELINK +#include "XbeeLink.h" +#include "XbeeConfigurationWindow.h" +#endif // XBEELINK #ifdef OPAL_RT #include "OpalLink.h" #include "OpalLinkConfigurationWindow.h" @@ -62,6 +66,9 @@ CommConfigurationWindow::CommConfigurationWindow(LinkInterface* link, ProtocolIn ui.linkType->addItem(tr("UDP"), QGC_LINK_UDP); ui.linkType->addItem(tr("Simulation"), QGC_LINK_SIMULATION); ui.linkType->addItem(tr("Opal-RT Link"), QGC_LINK_OPAL); +#ifdef XBEELINK + ui.linkType->addItem(tr("Xbee API"),QGC_LINK_XBEE); +#endif // XBEELINK ui.linkType->setEditable(false); //ui.linkType->setEnabled(false); @@ -89,6 +96,10 @@ CommConfigurationWindow::CommConfigurationWindow(LinkInterface* link, ProtocolIn connect(this->link, SIGNAL(connected(bool)), this, SLOT(connectionState(bool))); +#ifdef XBEELINK + connect(ui.linkType,SIGNAL(currentIndexChanged(int)),this,SLOT(setLinkType(int))); +#endif // XBEELINK + // Fill in the current data if(this->link->isConnected()) ui.connectButton->setChecked(true); //connect(this->link, SIGNAL(connected(bool)), ui.connectButton, SLOT(setChecked(bool))); @@ -142,10 +153,23 @@ CommConfigurationWindow::CommConfigurationWindow(LinkInterface* link, ProtocolIn ui.linkGroupBox->setTitle(tr("Opal-RT Link")); } #endif +#ifdef XBEELINK + XbeeLink* xbee = dynamic_cast(link); // new Konrad + if(xbee != 0) + { + QWidget* conf = new XbeeConfigurationWindow(xbee,this); + ui.linkScrollArea->setWidget(conf); + ui.linkGroupBox->setTitle(tr("Xbee Link")); + //ui.linkType->setCurrentIndex(4); + } +#endif // XBEELINK if (serial == 0 && udp == 0 && sim == 0 #ifdef OPAL_RT && opal == 0 #endif +#ifdef XBEELINK + && xbee == 0 +#endif // XBEELINK ) { qDebug() << "Link is NOT a known link, can't open configuration window"; } @@ -184,8 +208,38 @@ QAction* CommConfigurationWindow::getAction() void CommConfigurationWindow::setLinkType(int linktype) { +#ifdef XBEELINK // Adjust the form layout per link type - Q_UNUSED(linktype); + if(ui.linkScrollArea->widget()) + { + delete ui.linkScrollArea->widget(); + } + switch(linktype) + { + case 4: + { + XbeeLink *xbee = new XbeeLink(); + link = xbee; + LinkManager::instance()->add(link); + QWidget* conf = new XbeeConfigurationWindow(link); + ui.linkScrollArea->setWidget(conf); + ui.linkGroupBox->setTitle(tr("Serial Link")); + break; + } + case 0: + { + SerialLink *serial = new SerialLink(); + link = serial; + LinkManager::instance()->add(link); + QWidget* conf = new SerialConfigurationWindow(link, this); + ui.linkScrollArea->setWidget(conf); + ui.linkGroupBox->setTitle(tr("Serial Link")); + break; + } + default: + break; + } +#endif // XBEELINK } void CommConfigurationWindow::setProtocol(int protocol) diff --git a/src/ui/CommConfigurationWindow.h b/src/ui/CommConfigurationWindow.h index 66a3bd4f63c490ffdc186fb8f96042c4fe74fbbc..a50444f485bdabf8547b35075b93f7bff12237ee 100644 --- a/src/ui/CommConfigurationWindow.h +++ b/src/ui/CommConfigurationWindow.h @@ -44,6 +44,9 @@ enum qgc_link_t { QGC_LINK_UDP, QGC_LINK_SIMULATION, QGC_LINK_FORWARDING, +#ifdef XBEELINK + QGC_LINK_XBEE, +#endif QGC_LINK_OPAL };