Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Valentin Platzgummer
qgroundcontrol
Commits
2157ba2a
Commit
2157ba2a
authored
Apr 20, 2017
by
Don Gagne
Browse files
Progress bar for mission upload/download
parent
994c6198
Changes
6
Hide whitespace changes
Inline
Side-by-side
src/MissionManager/MissionController.cc
View file @
2157ba2a
...
...
@@ -57,6 +57,7 @@ MissionController::MissionController(QObject *parent)
,
_surveyMissionItemName
(
tr
(
"Survey"
))
,
_fwLandingMissionItemName
(
tr
(
"Fixed Wing Landing"
))
,
_appSettings
(
qgcApp
()
->
toolbox
()
->
settingsManager
()
->
appSettings
())
,
_progressPct
(
0
)
{
_resetMissionFlightStatus
();
}
...
...
@@ -1261,6 +1262,7 @@ void MissionController::activeVehicleBeingRemoved(void)
disconnect
(
missionManager
,
&
MissionManager
::
newMissionItemsAvailable
,
this
,
&
MissionController
::
_newMissionItemsAvailableFromVehicle
);
disconnect
(
missionManager
,
&
MissionManager
::
inProgressChanged
,
this
,
&
MissionController
::
_inProgressChanged
);
disconnect
(
missionManager
,
&
MissionManager
::
progressPct
,
this
,
&
MissionController
::
_progressPctChanged
);
disconnect
(
missionManager
,
&
MissionManager
::
currentIndexChanged
,
this
,
&
MissionController
::
_currentMissionIndexChanged
);
disconnect
(
missionManager
,
&
MissionManager
::
lastCurrentIndexChanged
,
this
,
&
MissionController
::
resumeMissionIndexChanged
);
disconnect
(
missionManager
,
&
MissionManager
::
resumeMissionReady
,
this
,
&
MissionController
::
resumeMissionReady
);
...
...
@@ -1286,6 +1288,7 @@ void MissionController::activeVehicleSet(Vehicle* activeVehicle)
connect
(
missionManager
,
&
MissionManager
::
newMissionItemsAvailable
,
this
,
&
MissionController
::
_newMissionItemsAvailableFromVehicle
);
connect
(
missionManager
,
&
MissionManager
::
inProgressChanged
,
this
,
&
MissionController
::
_inProgressChanged
);
connect
(
missionManager
,
&
MissionManager
::
progressPct
,
this
,
&
MissionController
::
_progressPctChanged
);
connect
(
missionManager
,
&
MissionManager
::
currentIndexChanged
,
this
,
&
MissionController
::
_currentMissionIndexChanged
);
connect
(
missionManager
,
&
MissionManager
::
lastCurrentIndexChanged
,
this
,
&
MissionController
::
resumeMissionIndexChanged
);
connect
(
missionManager
,
&
MissionManager
::
resumeMissionReady
,
this
,
&
MissionController
::
resumeMissionReady
);
...
...
@@ -1562,3 +1565,11 @@ void MissionController::clearCameraPoints(void)
{
_cameraPoints
.
clearAndDeleteContents
();
}
void
MissionController
::
_progressPctChanged
(
double
progressPct
)
{
if
(
!
qFuzzyCompare
(
progressPct
,
_progressPct
))
{
_progressPct
=
progressPct
;
emit
progressPctChanged
(
progressPct
);
}
}
src/MissionManager/MissionController.h
View file @
2157ba2a
...
...
@@ -66,6 +66,8 @@ public:
Q_PROPERTY
(
QStringList
complexMissionItemNames
READ
complexMissionItemNames
NOTIFY
complexMissionItemNamesChanged
)
Q_PROPERTY
(
QGeoCoordinate
plannedHomePosition
READ
plannedHomePosition
NOTIFY
plannedHomePositionChanged
)
Q_PROPERTY
(
double
progressPct
READ
progressPct
NOTIFY
progressPctChanged
)
Q_PROPERTY
(
int
resumeMissionIndex
READ
resumeMissionIndex
NOTIFY
resumeMissionIndexChanged
)
Q_PROPERTY
(
double
missionDistance
READ
missionDistance
NOTIFY
missionDistanceChanged
)
...
...
@@ -129,6 +131,7 @@ public:
QmlObjectListModel
*
cameraPoints
(
void
)
{
return
&
_cameraPoints
;
}
QStringList
complexMissionItemNames
(
void
)
const
;
QGeoCoordinate
plannedHomePosition
(
void
)
const
;
double
progressPct
(
void
)
const
{
return
_progressPct
;
}
/// Returns the item index two which a mission should be resumed. -1 indicates resume mission not available.
int
resumeMissionIndex
(
void
)
const
;
...
...
@@ -161,6 +164,7 @@ signals:
void
batteryChangePointChanged
(
int
batteryChangePoint
);
void
batteriesRequiredChanged
(
int
batteriesRequired
);
void
plannedHomePositionChanged
(
QGeoCoordinate
plannedHomePosition
);
void
progressPctChanged
(
double
progressPct
);
private
slots
:
void
_newMissionItemsAvailableFromVehicle
(
bool
removeAllRequested
);
...
...
@@ -172,6 +176,7 @@ private slots:
void
_recalcMissionFlightStatus
(
void
);
void
_updateContainsItems
(
void
);
void
_cameraFeedback
(
QGeoCoordinate
imageCoordinate
,
int
index
);
void
_progressPctChanged
(
double
progressPct
);
private:
void
_init
(
void
);
...
...
@@ -215,6 +220,7 @@ private:
QString
_surveyMissionItemName
;
QString
_fwLandingMissionItemName
;
AppSettings
*
_appSettings
;
double
_progressPct
;
static
const
char
*
_settingsGroup
;
...
...
src/MissionManager/MissionManager.cc
View file @
2157ba2a
...
...
@@ -49,6 +49,7 @@ void MissionManager::_writeMissionItemsWorker(void)
_lastMissionRequest
=
-
1
;
emit
newMissionItemsAvailable
(
_missionItems
.
count
()
==
0
);
emit
progressPct
(
0
);
qCDebug
(
MissionManagerLog
)
<<
"writeMissionItems count:"
<<
_missionItems
.
count
();
...
...
@@ -500,6 +501,8 @@ void MissionManager::_handleMissionItem(const mavlink_message_t& message, bool m
_startAckTimeout
(
AckMissionItem
);
return
;
}
emit
progressPct
((
double
)
seq
/
(
double
)
_missionItems
.
count
());
_retryCount
=
0
;
if
(
_itemIndicesToRead
.
count
()
==
0
)
{
...
...
@@ -532,6 +535,8 @@ void MissionManager::_handleMissionRequest(const mavlink_message_t& message, boo
return
;
}
emit
progressPct
((
double
)
missionRequest
.
seq
/
(
double
)
_missionItems
.
count
());
_lastMissionRequest
=
missionRequest
.
seq
;
if
(
!
_itemIndicesToWrite
.
contains
(
missionRequest
.
seq
))
{
qCDebug
(
MissionManagerLog
)
<<
"_handleMissionRequest sequence number requested which has already been sent, sending again:"
<<
missionRequest
.
seq
;
...
...
@@ -857,6 +862,8 @@ QString MissionManager::_missionResultToString(MAV_MISSION_RESULT result)
void
MissionManager
::
_finishTransaction
(
bool
success
)
{
emit
progressPct
(
1
);
if
(
!
success
&&
_transactionInProgress
==
TransactionRead
)
{
// Read from vehicle failed, clear partial list
_clearAndDeleteMissionItems
();
...
...
@@ -907,6 +914,8 @@ void MissionManager::_removeAllWorker(void)
qCDebug
(
MissionManagerLog
)
<<
"_removeAllWorker"
;
emit
progressPct
(
0
);
_dedicatedLink
=
_vehicle
->
priorityLink
();
mavlink_msg_mission_clear_all_pack_chan
(
qgcApp
()
->
toolbox
()
->
mavlinkProtocol
()
->
getSystemId
(),
qgcApp
()
->
toolbox
()
->
mavlinkProtocol
()
->
getComponentId
(),
...
...
src/MissionManager/MissionManager.h
View file @
2157ba2a
...
...
@@ -85,6 +85,7 @@ signals:
void
lastCurrentIndexChanged
(
int
lastCurrentIndex
);
void
resumeMissionReady
(
void
);
void
cameraFeedback
(
QGeoCoordinate
imageCoordinate
,
int
index
);
void
progressPct
(
double
progressPercentPct
);
private
slots
:
void
_mavlinkMessageReceived
(
const
mavlink_message_t
&
message
);
...
...
src/PlanView/PlanToolBar.qml
View file @
2157ba2a
...
...
@@ -57,6 +57,8 @@ Rectangle {
property
real
_missionTime
:
_missionValid
?
missionTime
:
NaN
property
int
_batteryChangePoint
:
_controllerValid
?
planMasterController
.
missionController
.
batteryChangePoint
:
-
1
property
int
_batteriesRequired
:
_controllerValid
?
planMasterController
.
missionController
.
batteriesRequired
:
-
1
property
real
_controllerProgressPct
:
_controllerValid
?
planMasterController
.
missionController
.
progressPct
:
0
property
bool
_syncInProgress
:
_controllerValid
?
planMasterController
.
missionController
.
syncInProgress
:
false
property
string
_distanceText
:
isNaN
(
_distance
)
?
"
-.-
"
:
QGroundControl
.
metersToAppSettingsDistanceUnits
(
_distance
).
toFixed
(
1
)
+
"
"
+
QGroundControl
.
appSettingsDistanceUnitsString
property
string
_altDifferenceText
:
isNaN
(
_altDifference
)
?
"
-.-
"
:
QGroundControl
.
metersToAppSettingsDistanceUnits
(
_altDifference
).
toFixed
(
1
)
+
"
"
+
QGroundControl
.
appSettingsDistanceUnitsString
...
...
@@ -110,6 +112,32 @@ Rectangle {
}
}
// Progress bar
on_ControllerProgressPctChanged
:
{
if
(
_controllerProgressPct
===
1
)
{
resetProgressTimer
.
start
()
}
else
if
(
_controllerProgressPct
>
0
)
{
progressBar
.
visible
=
true
}
}
Timer
{
id
:
resetProgressTimer
interval
:
1000
onTriggered
:
progressBar
.
visible
=
false
}
Rectangle
{
id
:
progressBar
anchors.left
:
parent
.
left
anchors.bottom
:
parent
.
bottom
height
:
2
width
:
_controllerProgressPct
*
parent
.
width
color
:
qgcPal
.
colorGreen
visible
:
false
}
RowLayout
{
anchors.top
:
parent
.
top
anchors.bottom
:
parent
.
bottom
...
...
src/ui/toolbar/MainToolBar.qml
View file @
2157ba2a
...
...
@@ -211,5 +211,4 @@ Rectangle {
width
:
_activeVehicle
?
_activeVehicle
.
parameterManager
.
loadProgress
*
parent
.
width
:
0
color
:
qgcPal
.
colorGreen
}
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment