diff --git a/libs/mavlink/include/mavlink/v2.0 b/libs/mavlink/include/mavlink/v2.0 index 99a977433a13705cd0624f8ff3b5f5210d526ba9..d1eea85b685eec2204ad31c7f7f51486f218f86b 160000 --- a/libs/mavlink/include/mavlink/v2.0 +++ b/libs/mavlink/include/mavlink/v2.0 @@ -1 +1 @@ -Subproject commit 99a977433a13705cd0624f8ff3b5f5210d526ba9 +Subproject commit d1eea85b685eec2204ad31c7f7f51486f218f86b diff --git a/src/Camera/QGCCameraControl.cc b/src/Camera/QGCCameraControl.cc index bef5c7c49a7f2884c4e135faa571dba3c2163204..54c22847431f4236876d10eea5ca3b6f26706ce5 100644 --- a/src/Camera/QGCCameraControl.cc +++ b/src/Camera/QGCCameraControl.cc @@ -1174,12 +1174,13 @@ QGCCameraControl::_requestAllParameters() MAVLinkProtocol* mavlink = qgcApp()->toolbox()->mavlinkProtocol(); mavlink_message_t msg; mavlink_msg_param_ext_request_list_pack_chan( - static_cast(mavlink->getSystemId()), - static_cast(mavlink->getComponentId()), - _vehicle->priorityLink()->mavlinkChannel(), - &msg, - static_cast(_vehicle->id()), - static_cast(compID())); + static_cast(mavlink->getSystemId()), + static_cast(mavlink->getComponentId()), + _vehicle->priorityLink()->mavlinkChannel(), + &msg, + static_cast(_vehicle->id()), + static_cast(compID()), + 0); // trimmed messages = false _vehicle->sendMessageOnLinkThreadSafe(_vehicle->priorityLink(), msg); qCDebug(CameraControlVerboseLog) << "Request all parameters"; } diff --git a/src/Camera/QGCCameraIO.cc b/src/Camera/QGCCameraIO.cc index a0cbb4cc36576589ec402fd0e4438ebdc93d7efd..4a6c10e1c1f2cda983fd4abb9c9fa3eabc8809c2 100644 --- a/src/Camera/QGCCameraIO.cc +++ b/src/Camera/QGCCameraIO.cc @@ -356,14 +356,15 @@ QGCCameraParamIO::paramRequest(bool reset) strncpy(param_id, _fact->name().toStdString().c_str(), MAVLINK_MSG_PARAM_EXT_REQUEST_READ_FIELD_PARAM_ID_LEN); mavlink_message_t msg; mavlink_msg_param_ext_request_read_pack_chan( - static_cast(_pMavlink->getSystemId()), - static_cast(_pMavlink->getComponentId()), - _vehicle->priorityLink()->mavlinkChannel(), - &msg, - static_cast(_vehicle->id()), - static_cast(_control->compID()), - param_id, - -1); + static_cast(_pMavlink->getSystemId()), + static_cast(_pMavlink->getComponentId()), + _vehicle->priorityLink()->mavlinkChannel(), + &msg, + static_cast(_vehicle->id()), + static_cast(_control->compID()), + param_id, + -1, + 0); // trimmed messages = false _vehicle->sendMessageOnLinkThreadSafe(_vehicle->priorityLink(), msg); _paramRequestTimer.start(); } diff --git a/src/MissionManager/MissionController.cc b/src/MissionManager/MissionController.cc index dfb80e224528c3662154ec883f37ce3241019e4f..a920d34a3255ca49f57e54917ca534ac8d32fd9c 100644 --- a/src/MissionManager/MissionController.cc +++ b/src/MissionManager/MissionController.cc @@ -392,14 +392,14 @@ VisualMissionItem* MissionController::insertTakeoffItem(QGeoCoordinate /*coordin VisualMissionItem* MissionController::insertLandItem(QGeoCoordinate coordinate, int visualItemIndex, bool makeCurrentItem) { - if (_managerVehicle->fixedWing()) { + if (_controllerVehicle->fixedWing()) { FixedWingLandingComplexItem* fwLanding = qobject_cast(insertComplexMissionItem(FixedWingLandingComplexItem::name, coordinate, visualItemIndex, makeCurrentItem)); return fwLanding; - } else if (_managerVehicle->vtol()) { + } else if (_controllerVehicle->vtol()) { VTOLLandingComplexItem* vtolLanding = qobject_cast(insertComplexMissionItem(VTOLLandingComplexItem::name, coordinate, visualItemIndex, makeCurrentItem)); return vtolLanding; } else { - return _insertSimpleMissionItemWorker(coordinate, _managerVehicle->vtol() ? MAV_CMD_NAV_VTOL_LAND : MAV_CMD_NAV_RETURN_TO_LAUNCH, visualItemIndex, makeCurrentItem); + return _insertSimpleMissionItemWorker(coordinate, _controllerVehicle->vtol() ? MAV_CMD_NAV_VTOL_LAND : MAV_CMD_NAV_RETURN_TO_LAUNCH, visualItemIndex, makeCurrentItem); } } @@ -1240,7 +1240,7 @@ void MissionController::_recalcFlightPathSegments(void) bool firstCoordinateNotFound = true; VisualMissionItem* lastFlyThroughVI = qobject_cast(_visualItems->get(0)); bool linkEndToHome = false; - bool linkStartToHome = _managerVehicle->rover() ? true : false; + bool linkStartToHome = _controllerVehicle->rover() ? true : false; bool foundRTL = false; bool homePositionValid = _settingsItem->coordinate().isValid(); bool roiActive = false; diff --git a/src/PlanView/MissionSettingsEditor.qml b/src/PlanView/MissionSettingsEditor.qml index a11db59dd66a9158d9c55bc1678289f3d315732b..2bf3c1cdb457bae449b2bfd0bf618ebee3bd2a4a 100644 --- a/src/PlanView/MissionSettingsEditor.qml +++ b/src/PlanView/MissionSettingsEditor.qml @@ -37,6 +37,7 @@ Rectangle { property bool _showCameraSection: (_waypointsOnlyMode || QGroundControl.corePlugin.showAdvancedUI) && !_controllerVehicle.apmFirmware property bool _simpleMissionStart: QGroundControl.corePlugin.options.showSimpleMissionStart property bool _showFlightSpeed: !_controllerVehicle.vtol && !_simpleMissionStart && !_controllerVehicle.apmFirmware + property bool _allowFWVehicleTypeSelection: _noMissionItemsAdded && !globals.activeVehicle readonly property string _firmwareLabel: qsTr("Firmware") readonly property string _vehicleLabel: qsTr("Vehicle") @@ -197,11 +198,11 @@ Rectangle { fact: QGroundControl.settingsManager.appSettings.offlineEditingFirmwareClass indexModel: false Layout.preferredWidth: _fieldWidth - visible: _multipleFirmware && _noMissionItemsAdded + visible: _multipleFirmware && _allowFWVehicleTypeSelection } QGCLabel { text: _controllerVehicle.firmwareTypeString - visible: _multipleFirmware && !_noMissionItemsAdded + visible: _multipleFirmware && !_allowFWVehicleTypeSelection } QGCLabel { @@ -213,11 +214,11 @@ Rectangle { fact: QGroundControl.settingsManager.appSettings.offlineEditingVehicleClass indexModel: false Layout.preferredWidth: _fieldWidth - visible: _multipleVehicleTypes && _noMissionItemsAdded + visible: _multipleVehicleTypes && _allowFWVehicleTypeSelection } QGCLabel { text: _controllerVehicle.vehicleTypeString - visible: _multipleVehicleTypes && !_noMissionItemsAdded + visible: _multipleVehicleTypes && !_allowFWVehicleTypeSelection } QGCLabel { diff --git a/src/comm/MockLink.cc b/src/comm/MockLink.cc index 9cb3bb446f40ac2da0697e08d6d6c3a98b15aa90..bbc91756873126bca71fb14b54abfdb727c0e0f9 100644 --- a/src/comm/MockLink.cc +++ b/src/comm/MockLink.cc @@ -7,7 +7,6 @@ * ****************************************************************************/ - #include "MockLink.h" #include "QGCLoggingCategory.h" #include "QGCApplication.h" @@ -28,11 +27,6 @@ QGC_LOGGING_CATEGORY(MockLinkLog, "MockLinkLog") QGC_LOGGING_CATEGORY(MockLinkVerboseLog, "MockLinkVerboseLog") -/// @file -/// @brief Mock implementation of a Link. -/// -/// @author Don Gagne - // Vehicle position is set close to default Gazebo vehicle location. This allows for multi-vehicle // testing of a gazebo vehicle and a mocklink vehicle #if 1 @@ -410,12 +404,14 @@ void MockLink::_sendBatteryStatus(void) mavlink_message_t msg; uint16_t rgVoltages[10]; uint16_t rgVoltagesNone[10]; + uint16_t rgVoltagesExtNone[4]; for (int i=0; i<10; i++) { rgVoltages[i] = UINT16_MAX; rgVoltagesNone[i] = UINT16_MAX; } rgVoltages[0] = rgVoltages[1] = rgVoltages[2] = 4200; + memset(rgVoltagesExtNone, 0, sizeof(rgVoltagesExtNone)); mavlink_msg_battery_status_pack_chan( _vehicleSystemId, @@ -432,7 +428,8 @@ void MockLink::_sendBatteryStatus(void) -1, // energy consumed not supported _battery1PctRemaining, _battery1TimeRemaining, - _battery1ChargeState); + _battery1ChargeState, + rgVoltagesExtNone); respondWithMavlinkMessage(msg); mavlink_msg_battery_status_pack_chan( @@ -450,7 +447,8 @@ void MockLink::_sendBatteryStatus(void) -1, // energy consumed not supported _battery2PctRemaining, _battery2TimeRemaining, - _battery2ChargeState); + _battery2ChargeState, + rgVoltagesExtNone); respondWithMavlinkMessage(msg); }