diff --git a/src/VehicleSetup/FirmwareUpgrade.qml b/src/VehicleSetup/FirmwareUpgrade.qml index 46cac9be523ebd827cf9ca5256bde5d87e338442..2d2fd779bcd68e40978a0a999b80b1054fd1f054 100644 --- a/src/VehicleSetup/FirmwareUpgrade.qml +++ b/src/VehicleSetup/FirmwareUpgrade.qml @@ -96,7 +96,7 @@ QGCView { } else { // We end up here when we detect a board plugged in after we've started upgrade statusTextArea.append(highlightPrefix + "Found device" + highlightSuffix + ": " + controller.boardType) - if (controller.boardType == "Pixhawk" || controller.boardType == "AeroCore") { + if (controller.boardType == "Pixhawk" || controller.boardType == "AeroCore" || controller.boardType == "PX4 Flow") { showDialog(pixhawkFirmwareSelectDialog, title, 50, StandardButton.Ok | StandardButton.Cancel) } } @@ -140,6 +140,7 @@ QGCView { anchors.fill: parent property bool showVersionSelection: apmFlightStack.checked || advancedMode.checked + property bool px4Flow: controller.boardType == "PX4 Flow" function accept() { hideDialog() @@ -159,20 +160,20 @@ QGCView { id: px4FirmwareTypeList ListElement { - text: qsTr("Standard Version (stable)"); - firmwareType: FirmwareUpgradeController.PX4StableFirmware + text: "Standard Version (stable)"; + firmwareType: FirmwareUpgradeController.PX4StableFirmware } ListElement { - text: qsTr("Beta Testing (beta)"); - firmwareType: FirmwareUpgradeController.PX4BetaFirmware + text: "Beta Testing (beta)"; + firmwareType: FirmwareUpgradeController.PX4BetaFirmware } ListElement { - text: qsTr("Developer Build (master)"); - firmwareType: FirmwareUpgradeController.PX4DeveloperFirmware + text: "Developer Build (master)"; + firmwareType: FirmwareUpgradeController.PX4DeveloperFirmware } ListElement { - text: qsTr("Custom firmware file..."); - firmwareType: FirmwareUpgradeController.PX4CustomFirmware + text: "Custom firmware file..."; + firmwareType: FirmwareUpgradeController.PX4CustomFirmware } } @@ -217,6 +218,19 @@ QGCView { } } + ListModel { + id: px4FlowTypeList + + ListElement { + text: "Standard Version (stable)"; + firmwareType: FirmwareUpgradeController.PX4StableFirmware + } + ListElement { + text: "Custom firmware file..."; + firmwareType: FirmwareUpgradeController.PX4CustomFirmware + } + } + Column { anchors.fill: parent spacing: defaultTextHeight @@ -224,7 +238,7 @@ QGCView { QGCLabel { width: parent.width wrapMode: Text.WordWrap - text: "Detected Pixhawk board. You can select from the following flight stacks:" + text: px4Flow ? "Detected PX4 Flow board. You can select from the following firmware:" : "Detected Pixhawk board. You can select from the following flight stacks:" } function firmwareVersionChanged(model) { @@ -243,6 +257,7 @@ QGCView { checked: true exclusiveGroup: firmwareGroup text: "PX4 Flight Stack (full QGC support)" + visible: !px4Flow onClicked: parent.firmwareVersionChanged(px4FirmwareTypeList) } @@ -251,6 +266,7 @@ QGCView { id: apmFlightStack exclusiveGroup: firmwareGroup text: "APM Flight Stack (partial QGC support)" + visible: !px4Flow onClicked: parent.firmwareVersionChanged(apmFirmwareTypeList) } @@ -259,14 +275,14 @@ QGCView { width: parent.width wrapMode: Text.WordWrap visible: showVersionSelection - text: "Select which version of the above flight stack you would like to install:" + text: px4Flow ? "Select which version of the firmware you would like to install:" : "Select which version of the above flight stack you would like to install:" } - + QGCComboBox { id: firmwareVersionCombo width: 200 visible: showVersionSelection - model: px4FirmwareTypeList + model: px4Flow ? px4FlowTypeList : px4FirmwareTypeList onActivated: { if (model.get(index).firmwareType == FirmwareUpgradeController.PX4BetaFirmware) { @@ -301,6 +317,8 @@ QGCView { id: advancedMode anchors.bottom: parent.bottom text: "Advanced mode" + checked: px4Flow ? true : false + visible: !px4Flow onClicked: { firmwareVersionCombo.currentIndex = 0 @@ -314,6 +332,7 @@ QGCView { anchors.bottom: parent.bottom text: "Help me pick a flight stack" onClicked: Qt.openUrlExternally("http://pixhawk.org/choice") + visible: !px4Flow } } // QGCViewDialog } // Component - pixhawkFirmwareSelectDialog diff --git a/src/VehicleSetup/FirmwareUpgradeController.cc b/src/VehicleSetup/FirmwareUpgradeController.cc index 66992cdc37e580b1b48ee53988e480a6f4592c62..3fb9880cb373c3ffbfc41754af10c9fd325f95df 100644 --- a/src/VehicleSetup/FirmwareUpgradeController.cc +++ b/src/VehicleSetup/FirmwareUpgradeController.cc @@ -94,15 +94,18 @@ void FirmwareUpgradeController::_foundBoard(bool firstAttempt, const QSerialPort _foundBoardType = "Pixhawk"; _startFlashWhenBootloaderFound = false; break; - case FoundBoardAeroCore: + case FoundBoardAeroCore: _foundBoardType = "AeroCore"; _startFlashWhenBootloaderFound = false; break; case FoundBoardPX4Flow: + _foundBoardType = "PX4 Flow"; + _startFlashWhenBootloaderFound = false; + break; case FoundBoard3drRadio: - _foundBoardType = type == FoundBoardPX4Flow ? "PX4 Flow" : "3DR Radio"; + _foundBoardType = "3DR Radio"; if (!firstAttempt) { - // PX4 Flow and Radio always flash stable firmware, so we can start right away without + // Radio always flashes stable firmware, so we can start right away without // any further user input. _startFlashWhenBootloaderFound = true; _startFlashWhenBootloaderFoundFirmwareType = PX4StableFirmware;