diff --git a/qgroundcontrol.pri b/qgroundcontrol.pri index 59cc0514c0119c9f1b995403f12a35926d479b71..47995496c48df5b5f92cf0b5d73b940d7efc9f34 100644 --- a/qgroundcontrol.pri +++ b/qgroundcontrol.pri @@ -42,8 +42,8 @@ macx { # COMPILER_VERSION = $$system(gcc -v) #message(Using compiler $$COMPILER_VERSION) - CONFIG += x86 cocoa phonon - CONFIG -= x86_64 + CONFIG += x86_64 cocoa phonon + CONFIG -= x86 #HARDWARE_PLATFORM = $$system(uname -a) #contains( $$HARDWARE_PLATFORM, "9.6.0" ) || contains( $$HARDWARE_PLATFORM, "9.7.0" ) || contains( $$HARDWARE_PLATFORM, "9.8.0" ) || contains( $$HARDWARE_PLATFORM, "9.9.0" ) { @@ -65,11 +65,10 @@ macx { # debug { #QMAKE_CXXFLAGS += -finstrument-functions #LIBS += -lSaturn - CONFIG += console # } #} - QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.5 + QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.6 #DESTDIR = $$BASEDIR/bin/mac INCLUDEPATH += -framework SDL @@ -103,7 +102,7 @@ macx { DEFINES += QGC_OSG_ENABLED # Include OpenSceneGraph libraries INCLUDEPATH += -framework GLUT \ - -framework Carbon \ + -framework Cocoa \ -framework OpenThreads \ -framework osg \ -framework osgViewer \ @@ -113,7 +112,7 @@ macx { -framework osgWidget LIBS += -framework GLUT \ - -framework Carbon \ + -framework Cocoa \ -framework OpenThreads \ -framework osg \ -framework osgViewer \ @@ -123,37 +122,13 @@ macx { -framework osgWidget } - exists(/usr/include/osgEarth) { - message("Building support for osgEarth") - DEPENDENCIES_PRESENT += osgearth - # Include osgEarth libraries - INCLUDEPATH += -framework GDAL \ - $$IN_PWD/lib/mac32-gcc/include \ - -framework GEOS \ - -framework SQLite3 \ - -framework osgFX \ - -framework osgTerrain - - LIBS += -framework GDAL \ - -framework GEOS \ - -framework SQLite3 \ - -framework osgFX \ - -framework osgTerrain - DEFINES += QGC_OSGEARTH_ENABLED - } - - - exists(/opt/local/include/libfreenect) { + exists(/opt/local/include/libfreenect)|exists(/usr/local/include/libfreenect) { message("Building support for libfreenect") DEPENDENCIES_PRESENT += libfreenect # Include libfreenect libraries LIBS += -lfreenect DEFINES += QGC_LIBFREENECT_ENABLED } - - # osg/osgEarth dynamic casts might fail without this compiler option. - # see http://osgearth.org/wiki/FAQ for details. - #QMAKE_CXXFLAGS += -Wl,-E } # GNU/Linux diff --git a/src/comm/MAVLinkSimulationMAV.cc b/src/comm/MAVLinkSimulationMAV.cc index 27a9d136805251676e8677682291e3763b76bbab..08af21112d603ee5ed05237604d6252b7e49e98a 100644 --- a/src/comm/MAVLinkSimulationMAV.cc +++ b/src/comm/MAVLinkSimulationMAV.cc @@ -303,12 +303,12 @@ void MAVLinkSimulationMAV::mainloop() timer25Hz--; } -static unsigned chan_counts[MAVLINK_COMM_NUM_BUFFERS]; +//static unsigned chan_counts[MAVLINK_COMM_NUM_BUFFERS]; static const unsigned message_lengths[] = MAVLINK_MESSAGE_LENGTHS; -static unsigned error_count; +//static unsigned error_count; -static const mavlink_message_info_t message_info[256] = MAVLINK_MESSAGE_INFO; +mavlink_message_info_t message_info[256] = MAVLINK_MESSAGE_INFO; static void print_one_field(const mavlink_message_t *msg, const mavlink_field_info_t *f, int idx) { diff --git a/src/libs/opmapcontrol/src/mapwidget/opmapwidget.cpp b/src/libs/opmapcontrol/src/mapwidget/opmapwidget.cpp index 5ae3e14d131d8d2ff61d14292cc3af4b959c6141..066bef4454c5b68eca16f88b386107ffc1d9b102 100644 --- a/src/libs/opmapcontrol/src/mapwidget/opmapwidget.cpp +++ b/src/libs/opmapcontrol/src/mapwidget/opmapwidget.cpp @@ -33,7 +33,18 @@ namespace mapcontrol { - OPMapWidget::OPMapWidget(QWidget *parent, Configuration *config):QGraphicsView(parent),configuration(config),UAV(0),GPS(0),Home(0),followmouse(true),compass(0),showuav(false),showhome(false),showDiag(false),diagGraphItem(0),diagTimer(0) + OPMapWidget::OPMapWidget(QWidget *parent, Configuration *config) : QGraphicsView(parent), + configuration(config), + UAV(0), + GPS(0), + Home(0), + followmouse(true), + compass(0), + showuav(false), + showhome(false), + diagTimer(0), + showDiag(false), + diagGraphItem(0) { setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); core=new internals::Core; @@ -277,6 +288,7 @@ namespace mapcontrol } void OPMapWidget::WPCreate(int id, WayPointItem* item) { + Q_UNUSED(id); static internals::PointLatLng lastPos; ConnectWP(item); diff --git a/src/libs/opmapcontrol/src/mapwidget/waypointitem.cpp b/src/libs/opmapcontrol/src/mapwidget/waypointitem.cpp index 5b351318761dfcaa595e5fe91893d23a20fc2b6f..0118c2776f2ca33ff8147908e71fab6c7e8861f6 100644 --- a/src/libs/opmapcontrol/src/mapwidget/waypointitem.cpp +++ b/src/libs/opmapcontrol/src/mapwidget/waypointitem.cpp @@ -29,14 +29,14 @@ namespace mapcontrol { WayPointItem::WayPointItem(const internals::PointLatLng &coord,double const& altitude, MapGraphicItem *map) : map(map), + autoreachedEnabled(true), coord(coord), reached(false), description(""), shownumber(true), isDragging(false), altitude(altitude), - heading(0), - autoreachedEnabled(true) + heading(0) { text=0; numberI=0; @@ -53,13 +53,13 @@ namespace mapcontrol RefreshPos(); } WayPointItem::WayPointItem(const internals::PointLatLng &coord,double const& altitude, const QString &description, MapGraphicItem *map) : + map(map), coord(coord), reached(false), description(description), shownumber(true), isDragging(false), altitude(altitude), - map(map), heading(0) { text=0; diff --git a/src/libs/utils/xmlconfig.cpp b/src/libs/utils/xmlconfig.cpp index 7b4cc9d5aa95f1199fda4853f7e448d9510fc9af..72c5c92ec2b7711f470115eddfc1ee6c9ad3039e 100644 --- a/src/libs/utils/xmlconfig.cpp +++ b/src/libs/utils/xmlconfig.cpp @@ -63,7 +63,7 @@ bool XmlConfig::readXmlFile(QIODevice &device, QSettings::SettingsMap &map) .arg(errorLine) .arg(errorColumn) .arg(errorStr); - qFatal(err.toLatin1().data()); + qFatal("%s", err.toLatin1().data()); return false; } root = domDoc.documentElement(); diff --git a/src/uas/UAS.cc b/src/uas/UAS.cc index 50a2bd0fb176821094f086a5aa70fb2216787c3e..7143951c59b6ab8c54079c61e6b8a4e0d3e26999 100644 --- a/src/uas/UAS.cc +++ b/src/uas/UAS.cc @@ -1459,6 +1459,7 @@ void UAS::writeParametersToStorage() { mavlink_message_t msg; mavlink_msg_command_long_pack(mavlink->getSystemId(), mavlink->getComponentId(), &msg, uasId, 0, MAV_CMD_PREFLIGHT_STORAGE, 1, 1, -1, -1, -1, 0, 0, 0); + qDebug() << "SENT COMMAND" << MAV_CMD_PREFLIGHT_STORAGE; sendMessage(msg); } @@ -1492,7 +1493,6 @@ void UAS::enableAllDataTransmission(int rate) mavlink_msg_request_data_stream_encode(mavlink->getSystemId(), mavlink->getComponentId(), &msg, &stream); // Send message twice to increase chance of reception sendMessage(msg); - sendMessage(msg); } void UAS::enableRawSensorDataTransmission(int rate) @@ -1514,7 +1514,6 @@ void UAS::enableRawSensorDataTransmission(int rate) mavlink_msg_request_data_stream_encode(mavlink->getSystemId(), mavlink->getComponentId(), &msg, &stream); // Send message twice to increase chance of reception sendMessage(msg); - sendMessage(msg); } void UAS::enableExtendedSystemStatusTransmission(int rate) @@ -1536,7 +1535,6 @@ void UAS::enableExtendedSystemStatusTransmission(int rate) mavlink_msg_request_data_stream_encode(mavlink->getSystemId(), mavlink->getComponentId(), &msg, &stream); // Send message twice to increase chance of reception sendMessage(msg); - sendMessage(msg); } void UAS::enableRCChannelDataTransmission(int rate) @@ -1562,7 +1560,6 @@ void UAS::enableRCChannelDataTransmission(int rate) mavlink_msg_request_data_stream_encode(mavlink->getSystemId(), mavlink->getComponentId(), &msg, &stream); // Send message twice to increase chance of reception sendMessage(msg); - sendMessage(msg); #endif } @@ -1585,7 +1582,6 @@ void UAS::enableRawControllerDataTransmission(int rate) mavlink_msg_request_data_stream_encode(mavlink->getSystemId(), mavlink->getComponentId(), &msg, &stream); // Send message twice to increase chance of reception sendMessage(msg); - sendMessage(msg); } //void UAS::enableRawSensorFusionTransmission(int rate) @@ -1629,7 +1625,6 @@ void UAS::enablePositionTransmission(int rate) mavlink_msg_request_data_stream_encode(mavlink->getSystemId(), mavlink->getComponentId(), &msg, &stream); // Send message twice to increase chance of reception sendMessage(msg); - sendMessage(msg); } void UAS::enableExtra1Transmission(int rate) @@ -2122,7 +2117,7 @@ void UAS::shutdown() { // If the active UAS is set, execute command mavlink_message_t msg; - mavlink_msg_command_long_pack(mavlink->getSystemId(), mavlink->getComponentId(), &msg, uasId, MAV_COMP_ID_ALL, MAV_CMD_PREFLIGHT_REBOOT_SHUTDOWN, 0, 2, 0, 0, 0, 0, 0, 0); + mavlink_msg_command_long_pack(mavlink->getSystemId(), mavlink->getComponentId(), &msg, uasId, MAV_COMP_ID_ALL, MAV_CMD_PREFLIGHT_REBOOT_SHUTDOWN, 1, 0, 2, 0, 0, 0, 0, 0); sendMessage(msg); result = true; } @@ -2165,33 +2160,34 @@ QString UAS::getShortModeTextFor(int id) qDebug() << "MODE:" << modeid; // BASE MODE DECODING - if (modeid & MAV_MODE_FLAG_DECODE_POSITION_AUTO) + if (modeid & (uint8_t)MAV_MODE_FLAG_DECODE_POSITION_AUTO) { - mode = "AUTO"; + mode += "AUTO"; } - else if (modeid & MAV_MODE_FLAG_DECODE_POSITION_GUIDED) + if (modeid & (uint8_t)MAV_MODE_FLAG_DECODE_POSITION_GUIDED) { - mode = "GUIDED"; + mode += "GUIDED"; } - else if (modeid & MAV_MODE_FLAG_DECODE_POSITION_STABILIZE) + if (modeid & (uint8_t)MAV_MODE_FLAG_DECODE_POSITION_STABILIZE) { - mode = "STABILIZED"; + mode += "STABILIZED"; } - else if (modeid & MAV_MODE_FLAG_DECODE_POSITION_TEST) + if (modeid & (uint8_t)MAV_MODE_FLAG_DECODE_POSITION_TEST) { - mode = "TEST"; + mode += "TEST"; } - else if (modeid & MAV_MODE_FLAG_DECODE_POSITION_MANUAL) + if (modeid & (uint8_t)MAV_MODE_FLAG_DECODE_POSITION_MANUAL) { - mode = "MANUAL"; + mode += "MANUAL"; } - else + + if (modeid == 0) { mode = "PREFLIGHT"; } // ARMED STATE DECODING - if (modeid & MAV_MODE_FLAG_DECODE_POSITION_SAFETY) + if (modeid & (uint8_t)MAV_MODE_FLAG_DECODE_POSITION_SAFETY) { mode.prepend("A|"); } @@ -2201,7 +2197,7 @@ QString UAS::getShortModeTextFor(int id) } // HARDWARE IN THE LOOP DECODING - if (modeid & MAV_MODE_FLAG_DECODE_POSITION_HIL) + if (modeid & (uint8_t)MAV_MODE_FLAG_DECODE_POSITION_HIL) { mode.prepend("HIL:"); } diff --git a/src/uas/UASWaypointManager.cc b/src/uas/UASWaypointManager.cc index 02841e7c61b6629d84732b5dcba5fab72d1371da..a38b882ef87ceaa76c7d642db816e1456083902b 100644 --- a/src/uas/UASWaypointManager.cc +++ b/src/uas/UASWaypointManager.cc @@ -45,8 +45,8 @@ UASWaypointManager::UASWaypointManager(UAS* _uas) current_state(WP_IDLE), current_partner_systemid(0), current_partner_compid(0), - protocol_timer(this), - currentWaypointEditable(NULL) + currentWaypointEditable(NULL), + protocol_timer(this) { if (uas) { @@ -112,7 +112,14 @@ void UASWaypointManager::handleLocalPositionChanged(UASInterface* mav, double x, void UASWaypointManager::handleGlobalPositionChanged(UASInterface* mav, double lat, double lon, double alt, quint64 time) { - + Q_UNUSED(mav); + Q_UNUSED(time); + if (waypointsEditable.count() > 0 && currentWaypointEditable && (currentWaypointEditable->getFrame() == MAV_FRAME_GLOBAL || currentWaypointEditable->getFrame() == MAV_FRAME_GLOBAL_RELATIVE_ALT)) + { + // TODO FIXME Calculate distance + double dist = 0; + emit waypointDistanceChanged(dist); + } } void UASWaypointManager::handleWaypointCount(quint8 systemId, quint8 compId, quint16 count) @@ -240,6 +247,7 @@ void UASWaypointManager::handleWaypointReached(quint8 systemId, quint8 compId, m void UASWaypointManager::handleWaypointCurrent(quint8 systemId, quint8 compId, mavlink_mission_current_t *wpc) { + Q_UNUSED(compId); if (!uas) return; if (systemId == uasid) { // FIXME Petri diff --git a/src/ui/HSIDisplay.cc b/src/ui/HSIDisplay.cc index f34ae6252d7d1192b7518b49516d1c4b8c3c31c6..9a4f6ecf54fdeba8cd4fceae10c907683680495c 100644 --- a/src/ui/HSIDisplay.cc +++ b/src/ui/HSIDisplay.cc @@ -100,11 +100,12 @@ HSIDisplay::HSIDisplay(QWidget *parent) : mavInitialized(false), bottomMargin(10.0f), topMargin(12.0f), - userSetPointSet(false), dragStarted(false), leftDragStarted(false), mouseHasMoved(false), - actionPending(false) + actionPending(false), + userSetPointSet(false), + userXYSetPointSet(false) { refreshTimer->setInterval(updateInterval); diff --git a/src/ui/MainWindow.cc b/src/ui/MainWindow.cc index 409f1613ec5da86a2b657bf6ae272fefb4854be6..8aacd4ef99412d7c7abce60c4e68650cce2da955 100644 --- a/src/ui/MainWindow.cc +++ b/src/ui/MainWindow.cc @@ -88,11 +88,11 @@ MainWindow* MainWindow::instance(QSplashScreen* screen) MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), currentView(VIEW_UNCONNECTED), + currentStyle(QGC_MAINWINDOW_STYLE_INDOOR), aboutToCloseFlag(false), changingViewsFlag(false), styleFileName(QCoreApplication::applicationDirPath() + "/style-indoor.css"), autoReconnect(false), - currentStyle(QGC_MAINWINDOW_STYLE_INDOOR), centerStackActionGroup(this), lowPowerMode(false) { diff --git a/src/ui/MainWindow.h b/src/ui/MainWindow.h index f401fb4195fe2d2f90e4b62310cf2d13cb2d33cc..ae3d649340f1fb23d38336f1e51485f48f64e9a3 100644 --- a/src/ui/MainWindow.h +++ b/src/ui/MainWindow.h @@ -279,6 +279,7 @@ protected: /** @brief Keeps track of the current view */ VIEW_SECTIONS currentView; + QGC_MAINWINDOW_STYLE currentStyle; bool aboutToCloseFlag; bool changingViewsFlag; @@ -371,7 +372,6 @@ protected: QTimer* videoTimer; QString styleFileName; bool autoReconnect; - QGC_MAINWINDOW_STYLE currentStyle; Qt::WindowStates windowStateVal; bool lowPowerMode; ///< If enabled, QGC reduces the update rates of all widgets QGCFlightGearLink* fgLink; diff --git a/src/ui/QGCParamWidget.cc b/src/ui/QGCParamWidget.cc index f79ba30da68aef44bedcdaefc3d72a723b5efcf6..31fe803f9966fe5884c1a53d07b6a8ee4d91d7e8 100644 --- a/src/ui/QGCParamWidget.cc +++ b/src/ui/QGCParamWidget.cc @@ -707,15 +707,15 @@ void QGCParamWidget::saveParameters() { case QVariant::Int: paramValue = paramValue.arg(j.value().toInt()); - paramType.arg(MAVLINK_TYPE_INT32_T); + paramType = paramType.arg(MAVLINK_TYPE_INT32_T); break; case QVariant::UInt: paramValue = paramValue.arg(j.value().toUInt()); - paramType.arg(MAVLINK_TYPE_UINT32_T); + paramType = paramType.arg(MAVLINK_TYPE_UINT32_T); break; case QMetaType::Float: paramValue = paramValue.arg(j.value().toDouble(), 25, 'g', 12); - paramType.arg(MAVLINK_TYPE_FLOAT); + paramType = paramType.arg(MAVLINK_TYPE_FLOAT); break; default: qCritical() << "ABORTED PARAM WRITE TO FILE, NO VALID QVARIANT TYPE" << j.value(); diff --git a/src/ui/uas/UASControlWidget.cc b/src/ui/uas/UASControlWidget.cc index 7640aa8dd1d69291c8a79726b3d2f941253b37a0..5040497c4bdcb987a6e5b7834004b35ae7f307fb 100644 --- a/src/ui/uas/UASControlWidget.cc +++ b/src/ui/uas/UASControlWidget.cc @@ -50,12 +50,12 @@ UASControlWidget::UASControlWidget(QWidget *parent) : QWidget(parent), connect(UASManager::instance(), SIGNAL(activeUASSet(UASInterface*)), this, SLOT(setUAS(UASInterface*))); ui.modeComboBox->clear(); - ui.modeComboBox->insertItem(MAV_MODE_PREFLIGHT, UAS::getShortModeTextFor(MAV_MODE_PREFLIGHT)); - ui.modeComboBox->insertItem(MAV_MODE_STABILIZE_ARMED, UAS::getShortModeTextFor(MAV_MODE_STABILIZE_ARMED)); - ui.modeComboBox->insertItem(MAV_MODE_MANUAL_ARMED, UAS::getShortModeTextFor(MAV_MODE_MANUAL_ARMED)); - ui.modeComboBox->insertItem(MAV_MODE_GUIDED_DISARMED, UAS::getShortModeTextFor(MAV_MODE_GUIDED_ARMED)); - ui.modeComboBox->insertItem(MAV_MODE_AUTO_ARMED, UAS::getShortModeTextFor(MAV_MODE_AUTO_ARMED)); - ui.modeComboBox->insertItem(MAV_MODE_TEST_ARMED, UAS::getShortModeTextFor(MAV_MODE_TEST_ARMED)); + ui.modeComboBox->insertItem(0, UAS::getShortModeTextFor(MAV_MODE_PREFLIGHT), MAV_MODE_PREFLIGHT); + ui.modeComboBox->insertItem(1, UAS::getShortModeTextFor((MAV_MODE_FLAG_STABILIZE_ENABLED | MAV_MODE_FLAG_MANUAL_INPUT_ENABLED)), (MAV_MODE_FLAG_STABILIZE_ENABLED | MAV_MODE_FLAG_MANUAL_INPUT_ENABLED)); + ui.modeComboBox->insertItem(2, UAS::getShortModeTextFor(MAV_MODE_FLAG_MANUAL_INPUT_ENABLED), MAV_MODE_FLAG_MANUAL_INPUT_ENABLED); + ui.modeComboBox->insertItem(3, UAS::getShortModeTextFor((MAV_MODE_FLAG_STABILIZE_ENABLED | MAV_MODE_FLAG_MANUAL_INPUT_ENABLED | MAV_MODE_FLAG_GUIDED_ENABLED)), (MAV_MODE_FLAG_STABILIZE_ENABLED | MAV_MODE_FLAG_MANUAL_INPUT_ENABLED | MAV_MODE_FLAG_GUIDED_ENABLED)); + ui.modeComboBox->insertItem(4, UAS::getShortModeTextFor((MAV_MODE_FLAG_STABILIZE_ENABLED | MAV_MODE_FLAG_MANUAL_INPUT_ENABLED | MAV_MODE_FLAG_GUIDED_ENABLED | MAV_MODE_FLAG_AUTO_ENABLED)), (MAV_MODE_FLAG_STABILIZE_ENABLED | MAV_MODE_FLAG_MANUAL_INPUT_ENABLED | MAV_MODE_FLAG_GUIDED_ENABLED | MAV_MODE_FLAG_AUTO_ENABLED)); + ui.modeComboBox->insertItem(5, UAS::getShortModeTextFor((MAV_MODE_FLAG_MANUAL_INPUT_ENABLED | MAV_MODE_FLAG_TEST_ENABLED)), (MAV_MODE_FLAG_MANUAL_INPUT_ENABLED | MAV_MODE_FLAG_TEST_ENABLED)); connect(ui.modeComboBox, SIGNAL(activated(int)), this, SLOT(setMode(int))); connect(ui.setModeButton, SIGNAL(clicked()), this, SLOT(transmitMode())); @@ -157,7 +157,7 @@ void UASControlWidget::updateState(int state) void UASControlWidget::setMode(int mode) { // Adapt context button mode - uasMode = mode; + uasMode = ui.modeComboBox->itemData(mode).toInt(); ui.modeComboBox->blockSignals(true); ui.modeComboBox->setCurrentIndex(mode); ui.modeComboBox->blockSignals(false);