diff --git a/lib/opmapcontrol/src/mapwidget/mapgraphicitem.h b/lib/opmapcontrol/src/mapwidget/mapgraphicitem.h index cf8ffeb963a1ee5b48c99875bc05107c4e88a149..0d8bdad979f8c543d8a14e6f870978f29286a5f5 100644 --- a/lib/opmapcontrol/src/mapwidget/mapgraphicitem.h +++ b/lib/opmapcontrol/src/mapwidget/mapgraphicitem.h @@ -39,9 +39,12 @@ #include #include #include "waypointitem.h" +#include "configuration.h" //#include "uavitem.h" namespace mapcontrol { + using namespace mapcontrol; + class OPMapWidget; /** * @brief The main graphicsItem used on the widget, contains the map and map logic diff --git a/lib/opmapcontrol/src/mapwidget/opmapwidget.h b/lib/opmapcontrol/src/mapwidget/opmapwidget.h index e080bfc30df27e8860b269bcbc33ab592d5f1e55..723fd515e0fa0ab084ee0afa2634e7bf53e5050d 100644 --- a/lib/opmapcontrol/src/mapwidget/opmapwidget.h +++ b/lib/opmapcontrol/src/mapwidget/opmapwidget.h @@ -37,6 +37,7 @@ #include #include "waypointitem.h" #include "QtSvg/QGraphicsSvgItem" +#include "configuration.h" #include "uavitem.h" #include "gpsitem.h" #include "homeitem.h" @@ -168,7 +169,7 @@ namespace mapcontrol * @param config pointer to configuration classed to be used * @return */ - OPMapWidget(QWidget *parent=0,Configuration *config=new Configuration); + OPMapWidget(QWidget *parent=0, mapcontrol::Configuration *config=new mapcontrol::Configuration()); ~OPMapWidget(); /** diff --git a/qgroundcontrol.pro b/qgroundcontrol.pro index c6b0e7837923984145604168916719b8b72a3e49..b131429b66a2a8c1400f7a90223f195fc9cc193a 100644 --- a/qgroundcontrol.pro +++ b/qgroundcontrol.pro @@ -24,9 +24,9 @@ # include ( "../qmapcontrol/QMapControl/QMapControl.pri" ) #{ # Include bundled version if necessary -include(lib/QMapControl/QMapControl.pri) +#include(lib/QMapControl/QMapControl.pri) include(lib/nmea/nmea.pri) -#include(lib/opmapcontrol/opmapcontrol.pri) +include(lib/opmapcontrol/opmapcontrol.pri) # message("Including bundled QMapControl version as FALLBACK. This is fine on Linux and MacOS, but not the best choice in Windows") QT += network \ @@ -34,7 +34,8 @@ QT += network \ svg \ xml \ phonon \ - webkit + webkit \ + sql TEMPLATE = app TARGET = qgroundcontrol BASEDIR = $$IN_PWD @@ -104,13 +105,13 @@ include(src/lib/qextserialport/qextserialport.pri) # Include QWT plotting library include(src/lib/qwt/qwt.pri) DEPENDPATH += . \ - lib/QMapControl \ - lib/QMapControl/src \ +# lib/QMapControl \ +# lib/QMapControl/src \ lib/opmapcontrol \ lib/opmapcontrol/src \ plugins INCLUDEPATH += . \ - lib/QMapControl \ +# lib/QMapControl \ lib/opmapcontrol \ $$BASEDIR/../mavlink/include @@ -132,7 +133,7 @@ FORMS += src/ui/MainWindow.ui \ src/ui/ObjectDetectionView.ui \ src/ui/JoystickWidget.ui \ src/ui/DebugConsole.ui \ - src/ui/MapWidget.ui \ +# src/ui/MapWidget.ui \ src/ui/XMLCommProtocolWidget.ui \ src/ui/HDDisplay.ui \ src/ui/MAVLinkSettingsWidget.ui \ @@ -182,7 +183,7 @@ INCLUDEPATH += src \ src/ui/designer HEADERS += src/MG.h \ - src/Core.h \ + src/QGCCore.h \ src/uas/UASInterface.h \ src/uas/UAS.h \ src/uas/UASManager.h \ @@ -218,7 +219,7 @@ HEADERS += src/MG.h \ src/input/JoystickInput.h \ src/ui/JoystickWidget.h \ src/ui/DebugConsole.h \ - src/ui/MapWidget.h \ +# src/ui/MapWidget.h \ src/ui/XMLCommProtocolWidget.h \ src/ui/mavlink/DomItem.h \ src/ui/mavlink/DomModel.h \ @@ -245,8 +246,8 @@ HEADERS += src/MG.h \ src/ui/QGCPxImuFirmwareUpdate.h \ src/ui/QGCDataPlot2D.h \ src/ui/linechart/IncrementalPlot.h \ - src/ui/map/Waypoint2DIcon.h \ - src/ui/map/MAV2DIcon.h \ +# src/ui/map/Waypoint2DIcon.h \ +# src/ui/map/MAV2DIcon.h \ src/ui/QGCRemoteControlView.h \ src/ui/RadioCalibration/RadioCalibrationData.h \ src/ui/RadioCalibration/RadioCalibrationWindow.h \ @@ -278,7 +279,8 @@ HEADERS += src/MG.h \ src/ui/uas/UASControlParameters.h \ src/ui/mission/QGCMissionDoWidget.h \ src/ui/mission/QGCMissionConditionWidget.h \ - src/uas/QGCUASParamManager.h + src/uas/QGCUASParamManager.h \ + src/ui/QGCMapWidget.h # Google Earth is only supported on Mac OS and Windows with Visual Studio Compiler macx|win32-msvc2008: { @@ -318,7 +320,7 @@ contains(DEPENDENCIES_PRESENT, libfreenect) { } SOURCES += src/main.cc \ - src/Core.cc \ + src/QGCCore.cc \ src/uas/UASManager.cc \ src/uas/UAS.cc \ src/comm/LinkManager.cc \ @@ -349,7 +351,7 @@ SOURCES += src/main.cc \ src/input/JoystickInput.cc \ src/ui/JoystickWidget.cc \ src/ui/DebugConsole.cc \ - src/ui/MapWidget.cc \ +# src/ui/MapWidget.cc \ src/ui/XMLCommProtocolWidget.cc \ src/ui/mavlink/DomItem.cc \ src/ui/mavlink/DomModel.cc \ @@ -376,8 +378,8 @@ SOURCES += src/main.cc \ src/ui/QGCPxImuFirmwareUpdate.cc \ src/ui/QGCDataPlot2D.cc \ src/ui/linechart/IncrementalPlot.cc \ - src/ui/map/Waypoint2DIcon.cc \ - src/ui/map/MAV2DIcon.cc \ +# src/ui/map/Waypoint2DIcon.cc \ +# src/ui/map/MAV2DIcon.cc \ src/ui/QGCRemoteControlView.cc \ src/ui/RadioCalibration/RadioCalibrationWindow.cc \ src/ui/RadioCalibration/AirfoilServoCalibrator.cc \ @@ -408,7 +410,8 @@ SOURCES += src/main.cc \ src/ui/uas/UASControlParameters.cpp \ src/ui/mission/QGCMissionDoWidget.cc \ src/ui/mission/QGCMissionConditionWidget.cc \ - src/uas/QGCUASParamManager.cc + src/uas/QGCUASParamManager.cc \ + src/ui/QGCMapWidget.cc macx|win32-msvc2008: { SOURCES += src/ui/map3D/QGCGoogleEarthView.cc diff --git a/src/Core.cc b/src/QGCCore.cc similarity index 97% rename from src/Core.cc rename to src/QGCCore.cc index 38a37b93bb6ca8d4d9c2c3869b261d9f5aa062d5..09c4ca809632fa5b90ffe548b5616916f7d53d03 100644 --- a/src/Core.cc +++ b/src/QGCCore.cc @@ -23,7 +23,7 @@ This file is part of the QGROUNDCONTROL project /** * @file - * @brief Implementation of class Core + * @brief Implementation of class QGCCore * * @author Lorenz Meier * @@ -43,7 +43,7 @@ This file is part of the QGROUNDCONTROL project #include "configuration.h" #include "QGC.h" -#include "Core.h" +#include "QGCCore.h" #include "MG.h" #include "MainWindow.h" #include "GAudioOutput.h" @@ -66,7 +66,7 @@ This file is part of the QGROUNDCONTROL project **/ -Core::Core(int &argc, char* argv[]) : QApplication(argc, argv) +QGCCore::QGCCore(int &argc, char* argv[]) : QApplication(argc, argv) { @@ -207,7 +207,7 @@ Core::Core(int &argc, char* argv[]) : QApplication(argc, argv) * @brief Destructor for the groundstation. It destroys all loaded instances. * **/ -Core::~Core() +QGCCore::~QGCCore() { //mainWindow->storeSettings(); mainWindow->hide(); @@ -223,7 +223,7 @@ Core::~Core() * The link manager keeps track of all communication links and provides the global * packet queue. It is the main communication hub **/ -void Core::startLinkManager() +void QGCCore::startLinkManager() { LinkManager::instance(); } @@ -232,7 +232,7 @@ void Core::startLinkManager() * @brief Start the Unmanned Air System Manager * **/ -void Core::startUASManager() +void QGCCore::startUASManager() { // Load UAS plugins QDir pluginsDir = QDir(qApp->applicationDirPath()); diff --git a/src/Core.h b/src/QGCCore.h similarity index 92% rename from src/Core.h rename to src/QGCCore.h index 78bb5f63905f9b1657f7bfea1cab01a2441caedb..335ce22a088dafbdf7ceface4cce43db4e615235 100644 --- a/src/Core.h +++ b/src/QGCCore.h @@ -30,8 +30,8 @@ This file is part of the PIXHAWK project */ -#ifndef _CORE_H_ -#define _CORE_H_ +#ifndef QGC_CORE_H +#define QGC_CORE_H #include @@ -51,13 +51,13 @@ This file is part of the PIXHAWK project * the central management unit of the groundstation application. * **/ -class Core : public QApplication +class QGCCore : public QApplication { Q_OBJECT public: - Core(int &argc, char* argv[]); - ~Core(); + QGCCore(int &argc, char* argv[]); + ~QGCCore(); protected: void startLinkManager(); diff --git a/src/comm/UDPLink.cc b/src/comm/UDPLink.cc index 5e6b17cbdf5ec52aaaf3d1faff69d6a7dfa0562e..85eac1e17e1b8b2533ea0eb2cafadcd11bacf60b 100644 --- a/src/comm/UDPLink.cc +++ b/src/comm/UDPLink.cc @@ -90,29 +90,35 @@ void UDPLink::addHost(const QString& host) { qDebug() << "HOST: " << host.split(":").first(); QHostInfo info = QHostInfo::fromName(host.split(":").first()); - // Add host - QList hostAddresses = info.addresses(); - QHostAddress address; - for (int i = 0; i < hostAddresses.size(); i++) + if (info.error() == QHostInfo::NoError) { - // Exclude loopback IPv4 and all IPv6 addresses - if (!hostAddresses.at(i).toString().contains(":")) + // Add host + QList hostAddresses = info.addresses(); + QHostAddress address; + for (int i = 0; i < hostAddresses.size(); i++) { - address = hostAddresses.at(i); + // Exclude loopback IPv4 and all IPv6 addresses + if (!hostAddresses.at(i).toString().contains(":")) + { + address = hostAddresses.at(i); + } } + hosts.append(address); + qDebug() << "Address:" << address.toString(); + // Set port according to user input + ports.append(host.split(":").last().toInt()); } - hosts.append(address); - qDebug() << "Address:" << address.toString(); - // Set port according to user input - ports.append(host.split(":").last().toInt()); } else { QHostInfo info = QHostInfo::fromName(host); - // Add host - hosts.append(info.addresses().first()); - // Set port according to default (this port) - ports.append(port); + if (info.error() == QHostInfo::NoError) + { + // Add host + hosts.append(info.addresses().first()); + // Set port according to default (this port) + ports.append(port); + } } } diff --git a/src/configuration.h b/src/configuration.h index 1285ebf954f8cb5bc3ac412ff0f77270eca40b51..ee36327bbcc384074740a555c805f3840365858d 100644 --- a/src/configuration.h +++ b/src/configuration.h @@ -1,5 +1,5 @@ -#ifndef CONFIGURATION_H -#define CONFIGURATION_H +#ifndef QGC_CONFIGURATION_H +#define QGC_CONFIGURATION_H #include "mavlink.h" #include @@ -27,4 +27,4 @@ namespace QGC const int APPLICATIONVERSION = 83; // 0.8.0 } -#endif // CONFIGURATION_H +#endif // QGC_CONFIGURATION_H diff --git a/src/main.cc b/src/main.cc index ba6d1af2df48400edd6b96cafd3f3ec17626ab62..38c494cfe3d84db1e7231e37540afae507c9501d 100644 --- a/src/main.cc +++ b/src/main.cc @@ -29,7 +29,7 @@ This file is part of the QGROUNDCONTROL project */ #include -#include "Core.h" +#include "QGCCore.h" #include "MainWindow.h" #include "configuration.h" @@ -70,6 +70,6 @@ int main(int argc, char *argv[]) qInstallMsgHandler( msgHandler ); #endif - Core core(argc, argv); + QGCCore core(argc, argv); return core.exec(); } diff --git a/src/ui/HSIDisplay.cc b/src/ui/HSIDisplay.cc index 8c058793491e2981f9ef32a88319ca4d6c5a6040..2b0fb42db1103a7dddd1a452cefc18d2179c8470 100644 --- a/src/ui/HSIDisplay.cc +++ b/src/ui/HSIDisplay.cc @@ -40,8 +40,8 @@ This file is part of the QGROUNDCONTROL project #include "QGC.h" #include "Waypoint.h" #include "UASWaypointManager.h" -#include "Waypoint2DIcon.h" -#include "MAV2DIcon.h" +//#include "Waypoint2DIcon.h" +//#include "MAV2DIcon.h" #include @@ -246,7 +246,7 @@ void HSIDisplay::renderOverlay() // Translate to center painter.translate((xCenterPos)*scalingFactor, (yCenterPos)*scalingFactor); QColor uasColor = uas->getColor(); - MAV2DIcon::drawAirframePolygon(uas->getAirframe(), painter, static_cast((vwidth/4.0f)*scalingFactor*1.1f), uasColor, 0.0f); + //MAV2DIcon::drawAirframePolygon(uas->getAirframe(), painter, static_cast((vwidth/4.0f)*scalingFactor*1.1f), uasColor, 0.0f); // Translate back painter.translate(-(xCenterPos)*scalingFactor, -(yCenterPos)*scalingFactor); } diff --git a/src/ui/MainWindow.cc b/src/ui/MainWindow.cc index 3a8b9ed2afa9ebe98c22f3bbd3033fd6a7ee4620..f49d36c4d4aabb09592436e1eccce27909f190bd 100644 --- a/src/ui/MainWindow.cc +++ b/src/ui/MainWindow.cc @@ -383,7 +383,7 @@ void MainWindow::buildCommonWidgets() // Center widgets if (!mapWidget) { - mapWidget = new MapWidget(this); + mapWidget = new mapcontrol::OPMapWidget(this);//new MapWidget(this); addToCentralWidgetsMenu (mapWidget, "Maps", SLOT(showCentralWidget()),CENTRAL_MAP); } diff --git a/src/ui/MainWindow.h b/src/ui/MainWindow.h index aaf6091f061e8864d16f06abfdfd6215c43feca9..61c0051580aa7c7896170f2813caa9a1d7174840 100644 --- a/src/ui/MainWindow.h +++ b/src/ui/MainWindow.h @@ -55,7 +55,7 @@ This file is part of the QGROUNDCONTROL project #include "JoystickWidget.h" #include "input/JoystickInput.h" #include "DebugConsole.h" -#include "MapWidget.h" +//#include "MapWidget.h" #include "ParameterInterface.h" #include "XMLCommProtocolWidget.h" #include "HDDisplay.h" @@ -63,6 +63,7 @@ This file is part of the QGROUNDCONTROL project #include "HSIDisplay.h" #include "QGCDataPlot2D.h" #include "QGCRemoteControlView.h" +#include "opmapcontrol.h" #if (defined Q_OS_MAC) | (defined _MSC_VER) #include "QGCGoogleEarthView.h" #endif @@ -366,7 +367,7 @@ protected: QPointer hudWidget; - QPointer mapWidget; + QPointer mapWidget; QPointer protocolWidget; QPointer dataplotWidget; #ifdef QGC_OSG_ENABLED diff --git a/src/ui/QGCMapWidget.cc b/src/ui/QGCMapWidget.cc new file mode 100644 index 0000000000000000000000000000000000000000..847de71089983e810a00841aaf05f55499ab233d --- /dev/null +++ b/src/ui/QGCMapWidget.cc @@ -0,0 +1,6 @@ +#include "QGCMapWidget.h" + +QGCMapWidget::QGCMapWidget(QWidget *parent) : + OPMapWidget(parent) +{ +} diff --git a/src/ui/QGCMapWidget.h b/src/ui/QGCMapWidget.h new file mode 100644 index 0000000000000000000000000000000000000000..ee485c29d37d20c23b5ca4ead93eacd17b1a918a --- /dev/null +++ b/src/ui/QGCMapWidget.h @@ -0,0 +1,16 @@ +#ifndef QGCMAPWIDGET_H +#define QGCMAPWIDGET_H + +class QGCMapWidget : public OPMapWidget +{ + Q_OBJECT +public: + explicit QGCMapWidget(QWidget *parent = 0); + +signals: + +public slots: + +}; + +#endif // QGCMAPWIDGET_H diff --git a/src/ui/map/MAV2DIcon.h b/src/ui/map/MAV2DIcon.h index 6a447ffe381839276d578885b7cc18c89efcda34..5f37c58e1349215cc55ffd3867915b7e5b514d0b 100644 --- a/src/ui/map/MAV2DIcon.h +++ b/src/ui/map/MAV2DIcon.h @@ -2,11 +2,10 @@ #define MAV2DICON_H #include -#include "qmapcontrol.h" #include "UASInterface.h" -class MAV2DIcon : public qmapcontrol::Point +class MAV2DIcon : public QGraphicsItem { public: enum diff --git a/src/ui/map/Waypoint2DIcon.h b/src/ui/map/Waypoint2DIcon.h index d3bd5f570ae1b63a65e37692e3e54c92b0505374..521358ddf1a981b96f75ca95b5cf3bed190b397c 100644 --- a/src/ui/map/Waypoint2DIcon.h +++ b/src/ui/map/Waypoint2DIcon.h @@ -2,11 +2,10 @@ #define WAYPOINT2DICON_H #include -#include "qmapcontrol.h" #include "Waypoint.h" -class Waypoint2DIcon : public qmapcontrol::Point +class Waypoint2DIcon : public QGraphicsItem { public: /*!