Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qgroundcontrol
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Valentin Platzgummer
qgroundcontrol
Commits
93cbdea2
Commit
93cbdea2
authored
Aug 17, 2015
by
Don Gagne
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1778 from DonLakeFlyer/VehicleErrors
Show vehicle errors after parameters load
parents
a617e2d2
f1196e14
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
145 additions
and
66 deletions
+145
-66
ParameterLoader.cc
src/FactSystem/ParameterLoader.cc
+10
-5
QGCApplication.cc
src/QGCApplication.cc
+10
-0
QGCApplication.h
src/QGCApplication.h
+3
-0
QGCQmlWidgetHolder.cpp
src/QGCQmlWidgetHolder.cpp
+6
-1
QGCQmlWidgetHolder.h
src/QGCQmlWidgetHolder.h
+3
-0
MainToolBar.cc
src/ui/toolbar/MainToolBar.cc
+8
-0
MainToolBar.h
src/ui/toolbar/MainToolBar.h
+23
-14
MainToolBar.qml
src/ui/toolbar/MainToolBar.qml
+82
-46
No files found.
src/FactSystem/ParameterLoader.cc
View file @
93cbdea2
...
...
@@ -758,20 +758,25 @@ void ParameterLoader::_checkInitialLoadComplete(void)
UASMessageHandler
*
msgHandler
=
UASMessageHandler
::
instance
();
if
(
msgHandler
->
getErrorCountTotal
())
{
QString
errors
;
bool
firstError
=
true
;
msgHandler
->
lockAccess
();
foreach
(
UASMessage
*
msg
,
msgHandler
->
messages
())
{
if
(
msg
->
severityIsError
())
{
if
(
!
firstError
)
{
errors
+=
"
\n
"
;
}
errors
+=
" - "
;
errors
+=
msg
->
getText
();
errors
+=
"
\n
"
;
firstError
=
false
;
}
}
msgHandler
->
unlockAccess
();
QGCMessageBox
::
critical
(
"Vehicle startup errors"
,
QString
(
"Errors were detected during vehicle startup:
\n
"
"%1"
"You should resolve these prior to flight."
).
arg
(
errors
));
if
(
!
firstError
)
{
QString
errorMsg
=
QString
(
"Errors were detected during vehicle startup. You should resolve these prior to flight.
\n
%1"
).
arg
(
errors
);
qgcApp
()
->
showToolBarMessage
(
errorMsg
);
}
}
// Warn of parameter load failure
...
...
src/QGCApplication.cc
View file @
93cbdea2
...
...
@@ -772,3 +772,13 @@ MavManager* QGCApplication::getMavManager()
{
return
_pMavManager
;
}
void
QGCApplication
::
showToolBarMessage
(
const
QString
&
message
)
{
MainWindow
*
mainWindow
=
MainWindow
::
instance
();
if
(
mainWindow
)
{
mainWindow
->
getMainToolBar
()
->
showToolBarMessage
(
message
);
}
else
{
QGCMessageBox
::
information
(
""
,
message
);
}
}
src/QGCApplication.h
View file @
93cbdea2
...
...
@@ -107,6 +107,9 @@ public:
/// MavManager accessor
MavManager
*
getMavManager
();
/// Show a non-modal message to the user
void
showToolBarMessage
(
const
QString
&
message
);
public
slots
:
/// You can connect to this slot to show an information message box from a different thread.
void
informationMessageBoxOnMainThread
(
const
QString
&
title
,
const
QString
&
msg
);
...
...
src/QGCQmlWidgetHolder.cpp
View file @
93cbdea2
...
...
@@ -30,7 +30,7 @@ QGCQmlWidgetHolder::QGCQmlWidgetHolder(QWidget *parent) :
QWidget
(
parent
)
{
_ui
.
setupUi
(
this
);
_ui
.
qmlWidget
->
setResizeMode
(
QQuickWidget
::
SizeRootObjectToView
);
setResizeMode
(
QQuickWidget
::
SizeRootObjectToView
);
}
QGCQmlWidgetHolder
::~
QGCQmlWidgetHolder
()
...
...
@@ -62,3 +62,8 @@ QQuickItem* QGCQmlWidgetHolder::getRootObject(void)
{
return
_ui
.
qmlWidget
->
rootObject
();
}
void
QGCQmlWidgetHolder
::
setResizeMode
(
QQuickWidget
::
ResizeMode
resizeMode
)
{
_ui
.
qmlWidget
->
setResizeMode
(
resizeMode
);
}
\ No newline at end of file
src/QGCQmlWidgetHolder.h
View file @
93cbdea2
...
...
@@ -60,6 +60,9 @@ public:
bool
setSource
(
const
QUrl
&
qmlUrl
);
void
setContextPropertyObject
(
const
QString
&
name
,
QObject
*
object
);
/// Sets the resize mode for the QQuickWidget container
void
setResizeMode
(
QQuickWidget
::
ResizeMode
resizeMode
);
private:
Ui
::
QGCQmlWidgetHolder
_ui
;
...
...
src/ui/toolbar/MainToolBar.cc
View file @
93cbdea2
...
...
@@ -92,6 +92,8 @@ MainToolBar::MainToolBar(QWidget* parent)
SLOT
(
_telemetryChanged
(
LinkInterface
*
,
unsigned
,
unsigned
,
unsigned
,
unsigned
,
unsigned
,
unsigned
,
unsigned
)));
connect
(
UASManager
::
instance
(),
SIGNAL
(
activeUASSet
(
UASInterface
*
)),
this
,
SLOT
(
_setActiveUAS
(
UASInterface
*
)));
connect
(
UASManager
::
instance
(),
SIGNAL
(
UASDeleted
(
UASInterface
*
)),
this
,
SLOT
(
_forgetUAS
(
UASInterface
*
)));
connect
(
this
,
&
MainToolBar
::
heightChanged
,
this
,
&
MainToolBar
::
_heightChanged
);
}
MainToolBar
::~
MainToolBar
()
...
...
@@ -396,3 +398,9 @@ void MainToolBar::_setProgressBarValue(float value)
_progressBarValue
=
value
;
emit
progressBarValueChanged
(
value
);
}
void
MainToolBar
::
_heightChanged
(
double
height
)
{
setMinimumHeight
(
height
);
setMaximumHeight
(
height
);
}
src/ui/toolbar/MainToolBar.h
View file @
93cbdea2
...
...
@@ -69,19 +69,20 @@ public:
Q_INVOKABLE
void
onDisconnect
(
QString
conf
);
Q_INVOKABLE
void
onEnterMessageArea
(
int
x
,
int
y
);
Q_PROPERTY
(
ViewType_t
currentView
MEMBER
_currentView
NOTIFY
currentViewChanged
)
Q_PROPERTY
(
QStringList
configList
MEMBER
_linkConfigurations
NOTIFY
configListChanged
)
Q_PROPERTY
(
int
connectionCount
READ
connectionCount
NOTIFY
connectionCountChanged
)
Q_PROPERTY
(
QStringList
connectedList
MEMBER
_connectedList
NOTIFY
connectedListChanged
)
Q_PROPERTY
(
bool
showGPS
MEMBER
_showGPS
NOTIFY
showGPSChanged
)
Q_PROPERTY
(
bool
showMav
MEMBER
_showMav
NOTIFY
showMavChanged
)
Q_PROPERTY
(
bool
showMessages
MEMBER
_showMessages
NOTIFY
showMessagesChanged
)
Q_PROPERTY
(
bool
showBattery
MEMBER
_showBattery
NOTIFY
showBatteryChanged
)
Q_PROPERTY
(
bool
showRSSI
MEMBER
_showRSSI
NOTIFY
showRSSIChanged
)
Q_PROPERTY
(
float
progressBarValue
MEMBER
_progressBarValue
NOTIFY
progressBarValueChanged
)
Q_PROPERTY
(
int
remoteRSSI
READ
remoteRSSI
NOTIFY
remoteRSSIChanged
)
Q_PROPERTY
(
int
telemetryRRSSI
READ
telemetryRRSSI
NOTIFY
telemetryRRSSIChanged
)
Q_PROPERTY
(
int
telemetryLRSSI
READ
telemetryLRSSI
NOTIFY
telemetryLRSSIChanged
)
Q_PROPERTY
(
double
height
MEMBER
_toolbarHeight
NOTIFY
heightChanged
)
Q_PROPERTY
(
ViewType_t
currentView
MEMBER
_currentView
NOTIFY
currentViewChanged
)
Q_PROPERTY
(
QStringList
configList
MEMBER
_linkConfigurations
NOTIFY
configListChanged
)
Q_PROPERTY
(
int
connectionCount
READ
connectionCount
NOTIFY
connectionCountChanged
)
Q_PROPERTY
(
QStringList
connectedList
MEMBER
_connectedList
NOTIFY
connectedListChanged
)
Q_PROPERTY
(
bool
showGPS
MEMBER
_showGPS
NOTIFY
showGPSChanged
)
Q_PROPERTY
(
bool
showMav
MEMBER
_showMav
NOTIFY
showMavChanged
)
Q_PROPERTY
(
bool
showMessages
MEMBER
_showMessages
NOTIFY
showMessagesChanged
)
Q_PROPERTY
(
bool
showBattery
MEMBER
_showBattery
NOTIFY
showBatteryChanged
)
Q_PROPERTY
(
bool
showRSSI
MEMBER
_showRSSI
NOTIFY
showRSSIChanged
)
Q_PROPERTY
(
float
progressBarValue
MEMBER
_progressBarValue
NOTIFY
progressBarValueChanged
)
Q_PROPERTY
(
int
remoteRSSI
READ
remoteRSSI
NOTIFY
remoteRSSIChanged
)
Q_PROPERTY
(
int
telemetryRRSSI
READ
telemetryRRSSI
NOTIFY
telemetryRRSSIChanged
)
Q_PROPERTY
(
int
telemetryLRSSI
READ
telemetryLRSSI
NOTIFY
telemetryLRSSIChanged
)
void
setCurrentView
(
int
currentView
);
void
viewStateChanged
(
const
QString
&
key
,
bool
value
);
...
...
@@ -89,7 +90,9 @@ public:
int
telemetryRRSSI
()
{
return
_telemetryRRSSI
;
}
int
telemetryLRSSI
()
{
return
_telemetryLRSSI
;
}
int
connectionCount
()
{
return
_connectionCount
;
}
void
showToolBarMessage
(
const
QString
&
message
)
{
emit
showMessage
(
message
);
}
signals:
void
connectionCountChanged
(
int
count
);
void
currentViewChanged
();
...
...
@@ -104,6 +107,10 @@ signals:
void
remoteRSSIChanged
(
int
value
);
void
telemetryRRSSIChanged
(
int
value
);
void
telemetryLRSSIChanged
(
int
value
);
void
heightChanged
(
double
height
);
/// Shows a non-modal message below the toolbar
void
showMessage
(
const
QString
&
message
);
private
slots
:
void
_forgetUAS
(
UASInterface
*
uas
);
...
...
@@ -115,6 +122,7 @@ private slots:
void
_setProgressBarValue
(
float
value
);
void
_remoteControlRSSIChanged
(
uint8_t
rssi
);
void
_telemetryChanged
(
LinkInterface
*
link
,
unsigned
rxerrors
,
unsigned
fixed
,
unsigned
rssi
,
unsigned
remrssi
,
unsigned
txbuf
,
unsigned
noise
,
unsigned
remnoise
);
void
_heightChanged
(
double
height
);
private:
void
_updateConnection
(
LinkInterface
*
disconnectedLink
=
NULL
);
...
...
@@ -137,6 +145,7 @@ private:
double
_remoteRSSIstore
;
int
_telemetryRRSSI
;
int
_telemetryLRSSI
;
double
_toolbarHeight
;
UASMessageViewRollDown
*
_rollDownMessages
;
};
...
...
src/ui/toolbar/MainToolBar.qml
View file @
93cbdea2
...
...
@@ -43,14 +43,18 @@ Rectangle {
property
var
qgcPal
:
QGCPalette
{
id
:
palette
;
colorGroupEnabled
:
true
}
property
int
cellSpacerSize
:
ScreenTools
.
isMobile
?
getProportionalDimmension
(
6
)
:
getProportionalDimmension
(
4
)
property
int
cellHeight
:
getProportionalDimmension
(
30
)
readonly
property
real
toolBarHeight
:
ScreenTools
.
defaultFontPixelHeight
*
3
property
int
cellSpacerSize
:
ScreenTools
.
isMobile
?
getProportionalDimmension
(
6
)
:
getProportionalDimmension
(
4
)
readonly
property
int
cellHeight
:
toolBarHeight
*
0.75
property
var
colorBlue
:
"
#1a6eaa
"
property
var
colorGreen
:
"
#329147
"
property
var
colorRed
:
"
#942324
"
property
var
colorOrange
:
"
#a76f26
"
property
var
colorWhite
:
"
#f0f0f0
"
readonly
property
real
horizontalMargins
:
ScreenTools
.
defaultFontPixelWidth
/
2
readonly
property
real
verticalMargins
:
ScreenTools
.
defaultFontPixelHeight
/
4
readonly
property
var
colorBlue
:
"
#1a6eaa
"
readonly
property
var
colorGreen
:
"
#329147
"
readonly
property
var
colorRed
:
"
#942324
"
readonly
property
var
colorOrange
:
"
#a76f26
"
readonly
property
var
colorWhite
:
"
#f0f0f0
"
property
var
colorOrangeText
:
(
qgcPal
.
globalTheme
===
QGCPalette
.
Light
)
?
"
#b75711
"
:
"
#ea8225
"
property
var
colorRedText
:
(
qgcPal
.
globalTheme
===
QGCPalette
.
Light
)
?
"
#ee1112
"
:
"
#ef2526
"
...
...
@@ -59,8 +63,18 @@ Rectangle {
color
:
qgcPal
.
windowShade
Connections
{
target
:
mainToolBar
onShowMessage
:
{
toolBarMessage
.
text
=
message
mainToolBar
.
height
=
toolBarHeight
+
toolBarMessage
.
contentHeight
+
verticalMargins
toolBarMessageArea
.
visible
=
true
}
}
function
getProportionalDimmension
(
val
)
{
return
toolBarH
older
.
h
eight
*
val
/
40
return
toolBarHeight
*
val
/
40
}
function
getMessageColor
()
{
...
...
@@ -177,24 +191,24 @@ Rectangle {
mainToolBar
.
onFlyViewMenu
();
}
}
}
}
// Menu
Row
{
id
:
row1
height
:
cellHeight
anchors.left
:
parent
.
left
spacing
:
getProportionalDimmension
(
4
)
anchors.verticalCenter
:
parent
.
verticalCenter
anchors.leftMargin
:
getProportionalDimmension
(
10
)
id
:
toolRow
x
:
horizontalMargins
y
:
(
toolBarHeight
-
cellHeight
)
/
2
height
:
cellHeight
spacing
:
getProportionalDimmension
(
4
)
//---------------------------------------------------------------------
//-- Main menu for Non Mobile Devices (Chevron Buttons)
Row
{
id
:
row11
height
:
cellHeight
spacing
:
-
getProportionalDimmension
(
12
)
anchors.verticalCenter
:
parent
.
verticalCenter
visible
:
!
ScreenTools
.
isMobile
id
:
row11
height
:
cellHeight
spacing
:
-
getProportionalDimmension
(
12
)
anchors.top
:
parent
.
top
visible
:
!
ScreenTools
.
isMobile
Connections
{
target
:
ScreenTools
onRepaintRequested
:
{
...
...
@@ -213,7 +227,6 @@ Rectangle {
height
:
cellHeight
exclusiveGroup
:
mainActionGroup
text
:
qsTr
(
"
Setup
"
)
anchors.verticalCenter
:
parent
.
verticalCenter
checked
:
(
mainToolBar
.
currentView
===
MainToolBar
.
ViewSetup
)
onClicked
:
{
mainToolBar
.
onSetupView
();
...
...
@@ -227,7 +240,6 @@ Rectangle {
height
:
cellHeight
exclusiveGroup
:
mainActionGroup
text
:
qsTr
(
"
Plan
"
)
anchors.verticalCenter
:
parent
.
verticalCenter
checked
:
(
mainToolBar
.
currentView
===
MainToolBar
.
ViewPlan
)
onClicked
:
{
mainToolBar
.
onPlanView
();
...
...
@@ -241,7 +253,6 @@ Rectangle {
height
:
cellHeight
exclusiveGroup
:
mainActionGroup
text
:
qsTr
(
"
Fly
"
)
anchors.verticalCenter
:
parent
.
verticalCenter
checked
:
(
mainToolBar
.
currentView
===
MainToolBar
.
ViewFly
)
onClicked
:
{
mainToolBar
.
onFlyView
();
...
...
@@ -255,15 +266,13 @@ Rectangle {
height
:
cellHeight
exclusiveGroup
:
mainActionGroup
text
:
qsTr
(
"
Analyze
"
)
anchors.verticalCenter
:
parent
.
verticalCenter
checked
:
(
mainToolBar
.
currentView
===
MainToolBar
.
ViewAnalyze
)
onClicked
:
{
mainToolBar
.
onAnalyzeView
();
}
z
:
700
}
}
}
// Row
//---------------------------------------------------------------------
//-- Indicators
...
...
@@ -667,17 +676,17 @@ Rectangle {
color
:
colorRedText
}
}
}
}
}
// Row
}
// Row
Row
{
id
:
row2
height
:
cellHeight
spacing
:
cellSpacerSize
anchors.
right
:
parent
.
right
anchors.verticalCenter
:
parent
.
verticalCenter
anchors.leftMargin
:
getProportionalDimmension
(
10
)
anchors.rightMargin
:
getProportionalDimmension
(
10
)
id
:
connectRow
anchors.rightMargin
:
verticalMargins
anchors.right
:
parent
.
right
anchors.
top
:
toolRow
.
top
anchors.verticalCenter
:
toolRow
.
verticalCenter
height
:
toolRow
.
height
spacing
:
cellSpacerSize
Menu
{
id
:
connectMenu
...
...
@@ -712,7 +721,6 @@ Rectangle {
visible
:
mainToolBar
.
connectionCount
===
0
text
:
qsTr
(
"
Connect
"
)
menu
:
connectMenu
anchors.verticalCenter
:
parent
.
verticalCenter
}
QGCButton
{
...
...
@@ -720,7 +728,6 @@ Rectangle {
width
:
getProportionalDimmension
(
100
)
visible
:
mainToolBar
.
connectionCount
===
1
text
:
qsTr
(
"
Disconnect
"
)
anchors.verticalCenter
:
parent
.
verticalCenter
onClicked
:
{
mainToolBar
.
onDisconnect
(
""
);
}
...
...
@@ -750,18 +757,47 @@ Rectangle {
text
:
"
Disconnect
"
visible
:
mainToolBar
.
connectionCount
>
1
menu
:
disconnectMenu
anchors.verticalCenter
:
parent
.
verticalCenter
}
}
}
// Row
// Progress bar
Rectangle
{
readonly
property
int
progressBarHeight
:
getProportionalDimmension
(
3
)
y
:
parent
.
height
-
progressBarHeight
height
:
progressBarHeight
width
:
parent
.
width
*
mainToolBar
.
progressBarValue
color
:
qgcPal
.
text
id
:
progressBar
anchors.top
:
toolRow
.
bottom
height
:
getProportionalDimmension
(
3
)
width
:
parent
.
width
*
mainToolBar
.
progressBarValue
color
:
qgcPal
.
text
}
}
// Toolbar message area
Rectangle
{
id
:
toolBarMessageArea
anchors.margins
:
horizontalMargins
anchors.top
:
progressBar
.
bottom
anchors.bottom
:
parent
.
bottom
anchors.left
:
parent
.
left
anchors.right
:
parent
.
right
color
:
qgcPal
.
windowShadeDark
visible
:
false
QGCLabel
{
id
:
toolBarMessage
anchors.fill
:
parent
wrapMode
:
Text
.
WordWrap
}
QGCButton
{
id
:
toolBarMessageCloseButton
anchors.rightMargin
:
horizontalMargins
anchors.topMargin
:
verticalMargins
anchors.top
:
parent
.
top
anchors.right
:
parent
.
right
text
:
"
Close Message
"
onClicked
:
{
parent
.
visible
=
false
mainToolBar
.
height
=
toolBarHeight
}
}
}
}
// Rectangle
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a 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