Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
9c88c15
resources: add artwork for multi-gcs indicator
Davidsastresas Nov 13, 2024
8525aad
Vehicle: add support for multi-GCS mavlink protocol
Davidsastresas May 11, 2025
3b95164
FlyviewSettings: add setting for multi-GCS mavlink protocol
Davidsastresas Nov 13, 2024
21ce3bc
toolbar: new multi-GCS control top toolbar indicator
Davidsastresas Nov 13, 2024
768dfce
FirmwarePlugin: add multi-GCS control indicator in top toolbar
Davidsastresas Nov 13, 2024
3b515c5
resources: use new icons
Davidsastresas Nov 24, 2024
83342da
ControlIndicator.qml: use new icons
Davidsastresas Nov 24, 2024
726e45b
ControlIndicator.qml: use new color coding
Davidsastresas Dec 5, 2024
7cd0016
Vehicle.cc: use new cmd id for REQUEST_OPERATOR_CONTROL
Davidsastresas Dec 5, 2024
7c91329
FlyviewSettings: add new requestControlTimeout setting
Davidsastresas Dec 6, 2024
3b3d8d6
Vehicle: use new extra param for REQUEST_OPERATOR_CONTROL, and new cm…
Davidsastresas Dec 6, 2024
9ea3f98
ControlIndicator.qml: add new param4 timeout functionality, for GCS i…
Davidsastresas Dec 6, 2024
4bfa729
ControlIndicator.qml: implement timeout indicator for requestor side
Davidsastresas Dec 6, 2024
62b9c7e
ControlIndicator.qml: Don't permanently allow takeover when accepting…
Davidsastresas Dec 6, 2024
261ff7c
qmlControls: add new ProgressTracker qml file
Davidsastresas Dec 6, 2024
5954c64
ControlIndicator.qml: refactor using new ProgressTracker.qml
Davidsastresas Dec 6, 2024
dc5458c
ControlIndicator.qml: add support to revert takeover not allowed afte…
Davidsastresas Feb 7, 2025
cd35a76
vehicle.cc: fix after rebase
Davidsastresas Jan 14, 2025
66fe67b
MainRootWindow: allow to not dim background on showIndicatorDrawer
Davidsastresas Feb 6, 2025
e092b24
Vehicle: requestOperatorControl(), adjust limits to use default value
Davidsastresas Feb 7, 2025
a929d62
ControlIndicator.qml: fix after rebase to master
Davidsastresas Feb 7, 2025
6f40362
Vehicle: move revert takeover allowed to backend
Davidsastresas Feb 8, 2025
e9130b5
ControlIndicator.qml: move revert takeover allowed to backend
Davidsastresas Feb 8, 2025
600607a
Vehicle: keep track on backend of timer for a request sent
Davidsastresas Feb 8, 2025
0b9bb5c
ControlIndicator.qml: keep track on backend of timer for a request sent
Davidsastresas Feb 8, 2025
795a434
GimbalIndicator.qml: do not dim background on showIndicatorDrawer
Davidsastresas Feb 6, 2025
f71899c
main.cc: allow command line override of systemId (example --system-id…
Davidsastresas Feb 8, 2025
4d3a10b
main.cc: allow to not use runguard at startup by command line argument:
Davidsastresas May 11, 2025
83503ad
ControlIndicator.qml: cleanup comments
Davidsastresas Feb 8, 2025
dbde317
main.cc: --allow-multiple argument only allowed if QT_DEBUG
Davidsastresas Feb 14, 2025
3575568
FirmwarePlugin: ControlIndicator.qml only available if QT_DEBUG
Davidsastresas Feb 14, 2025
7545dd9
Revert "MainRootWindow: allow to not dim background on showIndicatorD…
Davidsastresas Feb 16, 2025
4450e07
Revert "GimbalIndicator.qml: do not dim background on showIndicatorDr…
Davidsastresas Feb 16, 2025
dbacd7d
ControlIndicator.qml: adjust for new showIndicatorDrawer() function n…
Davidsastresas Feb 16, 2025
bae4258
resources: change folder/prefix of controlIndicator to gcscontrolIndi…
Davidsastresas Feb 26, 2025
6ded18c
rename ControlIndicator.qml to GCSControlIndicator.qml
Davidsastresas Feb 26, 2025
f040149
Rename ProgressTracker.qml to TimedProgressTracker.qml
Davidsastresas Feb 26, 2025
5cd93b1
main.cc: fix mavlink sysid range 1-255
Davidsastresas Mar 12, 2025
122756c
main.cc: adapt to new way of getting GCS systemID
Davidsastresas May 11, 2025
bb1a153
GCSControlIndicator.qml: adapt to new way of getting GCS systemID
Davidsastresas May 11, 2025
ce73792
Vehicle.cc: add this context in connect lambda functions
Davidsastresas May 11, 2025
43ca6d3
cmake/CustomOptions.cmake: update mavlink c_library_v2 to latest version
Davidsastresas May 11, 2025
fc15204
Vehicle.cc: After latest mavlink version we can use CMDs in developme…
Davidsastresas May 11, 2025
862d647
Vehicle: implement custom handler for request operator control command:
Davidsastresas May 11, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cmake/CustomOptions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ option(QGC_ENABLE_QT_VIDEOSTREAMING "Enable QtMultimedia Video Backend" OFF) # Q

# MAVLink
set(QGC_MAVLINK_GIT_REPO "https://github.com/mavlink/c_library_v2.git" CACHE STRING "URL to MAVLink Git Repo")
set(QGC_MAVLINK_GIT_TAG "7ea034366ee7f09f3991a5b82f51f0c259023b38" CACHE STRING "Tag of MAVLink Git Repo")
set(QGC_MAVLINK_GIT_TAG "19f9955598af9a9181064619bd2e3c04bd2d848a" CACHE STRING "Tag of MAVLink Git Repo")

# APM
option(QGC_DISABLE_APM_MAVLINK "Disable APM Dialect" OFF)
Expand Down
5 changes: 5 additions & 0 deletions qgcresources.qrc
Original file line number Diff line number Diff line change
Expand Up @@ -110,4 +110,9 @@
<qresource prefix="/gimbal">
<file alias="payload.svg">resources/gimbal/payload.svg</file>
</qresource>
<qresource prefix="/gcscontrolIndicator">
<file alias="gcscontrol_device.svg">resources/gcscontrolIndicator/gcscontrol_device.svg</file>
<file alias="gcscontrol_gcs.svg">resources/gcscontrolIndicator/gcscontrol_gcs.svg</file>
<file alias="gcscontrol_line.svg">resources/gcscontrolIndicator/gcscontrol_line.svg</file>
</qresource>
</RCC>
2 changes: 2 additions & 0 deletions qgroundcontrol.qrc
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
<file alias="TelemetryRSSIIndicator.qml">src/UI/toolbar/TelemetryRSSIIndicator.qml</file>
<file alias="APMSupportForwardingIndicator.qml">src/UI/toolbar/APMSupportForwardingIndicator.qml</file>
<file alias="GimbalIndicator.qml">src/UI/toolbar/GimbalIndicator.qml</file>
<file alias="GCSControlIndicator.qml">src/UI/toolbar/GCSControlIndicator.qml</file>
</qresource>
<qresource prefix="/checklists">
<file alias="DefaultChecklist.qml">src/FlightDisplay/DefaultChecklist.qml</file>
Expand Down Expand Up @@ -208,6 +209,7 @@
<file alias="QGroundControl/Controls/VehicleRotationCal.qml">src/QmlControls/VehicleRotationCal.qml</file>
<file alias="QGroundControl/Controls/VehicleSummaryRow.qml">src/QmlControls/VehicleSummaryRow.qml</file>
<file alias="QGroundControl/Controls/VTOLLandingPatternMapVisual.qml">src/PlanView/VTOLLandingPatternMapVisual.qml</file>
<file alias="QGroundControl/Controls/TimedProgressTracker.qml">src/QmlControls/TimedProgressTracker.qml</file>
<file alias="QGroundControl/FactControls/AltitudeFactTextField.qml">src/FactSystem/FactControls/AltitudeFactTextField.qml</file>
<file alias="QGroundControl/FactControls/FactBitmask.qml">src/FactSystem/FactControls/FactBitmask.qml</file>
<file alias="QGroundControl/FactControls/FactCheckBox.qml">src/FactSystem/FactControls/FactCheckBox.qml</file>
Expand Down
20 changes: 20 additions & 0 deletions resources/gcscontrolIndicator/gcscontrol_device.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
20 changes: 20 additions & 0 deletions resources/gcscontrolIndicator/gcscontrol_gcs.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
20 changes: 20 additions & 0 deletions resources/gcscontrolIndicator/gcscontrol_line.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions src/FirmwarePlugin/FirmwarePlugin.cc
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,10 @@ const QVariantList &FirmwarePlugin::toolIndicators(const Vehicle*)
QVariant::fromValue(QUrl::fromUserInput("qrc:/qml/QGroundControl/Controls/BatteryIndicator.qml")),
QVariant::fromValue(QUrl::fromUserInput("qrc:/toolbar/RemoteIDIndicator.qml")),
QVariant::fromValue(QUrl::fromUserInput("qrc:/toolbar/GimbalIndicator.qml")),
// ControlIndicator is only available in debug builds for the moment
#ifdef QT_DEBUG
QVariant::fromValue(QUrl::fromUserInput("qrc:/toolbar/GCSControlIndicator.qml")),
#endif
});
}

Expand Down
2 changes: 2 additions & 0 deletions src/QmlControls/QGroundControl/Controls/qmldir
Original file line number Diff line number Diff line change
Expand Up @@ -130,3 +130,5 @@ ValueSlider 1.0 ValueSlider.qml
VehicleMessageList 1.0 VehicleMessageList.qml
VehicleRotationCal 1.0 VehicleRotationCal.qml
VehicleSummaryRow 1.0 VehicleSummaryRow.qml
MAVLinkChart 1.0 MAVLinkChart.qml
TimedProgressTracker 1.0 TimedProgressTracker.qml
74 changes: 74 additions & 0 deletions src/QmlControls/TimedProgressTracker.qml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
import QtQuick

Item {
id: root
// Setable propterties
property real timeoutSeconds: 0
property string progressLabel: ""
property bool running: false

// Do not set these properties
property real progress: 0

signal timeout()

property double _lastUpdateTime: 0

Timer {
id: timeoutTimer
interval: timeoutSeconds * 1000
repeat: false
running: running

onTriggered: {
root.running = false
root.progress = 0
root.progressLabel = ""
root.timeout()
}
}

SequentialAnimation on progress {
id: progressAnimation
running: root.running
loops: 1

NumberAnimation {
target: root
property: "progress"
to: 1
duration: timeoutSeconds * 1000
}
}

onProgressChanged: {
const currentTime = Date.now() * 0.001
if (currentTime - _lastUpdateTime < 0.1) {
return
}

if (running) {
var currentCount = (progress * timeoutSeconds)
progressLabel = (timeoutSeconds - currentCount).toFixed(1)
} else {
progressLabel = ""
}

_lastUpdateTime = currentTime
}

function start() {
running = true
progress = 0
timeoutTimer.restart()
progressAnimation.restart()
}

function stop() {
running = false
progress = 0
timeoutTimer.stop()
progressAnimation.stop()
progressLabel = ""
}
}
14 changes: 14 additions & 0 deletions src/Settings/FlyView.SettingsGroup.json
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,20 @@
"enumStrings": "Integrated Compass & Attitude,Horizontal Compass & Attitude,Large Vertical",
"enumValues": "qrc:/qml/IntegratedCompassAttitude.qml,qrc:/qml/HorizontalCompassAttitude.qml,qrc:/qml/VerticalCompassAttitude.qml",
"default": "qrc:/qml/IntegratedCompassAttitude.qml"
},
{
"name": "requestControlAllowTakeover",
"shortDesc": "When requesting vehicle control, allow other GCS to override control automatically, or require this GCS to accept the request first.",
"type": "bool",
"default": false
},
{
"name": "requestControlTimeout",
"shortDesc": "Timeout in seconds before a request to a GCS to allow takeover is assumed to be rejected. This is used to display the timeout graphically on requestor and GCS in control.",
"type": "uint32",
"min": 3,
"max": 60,
"default": 10
}
]
}
2 changes: 2 additions & 0 deletions src/Settings/FlyViewSettings.cc
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,5 @@ DECLARE_SETTINGSFACT(FlyViewSettings, showSimpleCameraControl)
DECLARE_SETTINGSFACT(FlyViewSettings, showObstacleDistanceOverlay)
DECLARE_SETTINGSFACT(FlyViewSettings, updateHomePosition)
DECLARE_SETTINGSFACT(FlyViewSettings, instrumentQmlFile)
DECLARE_SETTINGSFACT(FlyViewSettings, requestControlAllowTakeover)
DECLARE_SETTINGSFACT(FlyViewSettings, requestControlTimeout)
2 changes: 2 additions & 0 deletions src/Settings/FlyViewSettings.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,6 @@ class FlyViewSettings : public SettingsGroup
DEFINE_SETTINGFACT(showObstacleDistanceOverlay)
DEFINE_SETTINGFACT(updateHomePosition)
DEFINE_SETTINGFACT(instrumentQmlFile)
DEFINE_SETTINGFACT(requestControlAllowTakeover)
DEFINE_SETTINGFACT(requestControlTimeout)
};
1 change: 0 additions & 1 deletion src/UI/MainRootWindow.qml
Original file line number Diff line number Diff line change
Expand Up @@ -677,7 +677,6 @@ ApplicationWindow {
modal: true
focus: true
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
dim: false

property var sourceComponent
property var indicatorItem
Expand Down
Loading
Loading