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
0c6b6556
Unverified
Commit
0c6b6556
authored
Aug 14, 2020
by
Don Gagne
Committed by
GitHub
Aug 14, 2020
Browse files
Merge pull request #8988 from DonLakeFlyer/InspectorMultiSystem
Mavlink Inspector: Support displaying messages from multiple systems
parents
22f4f7c5
d10e89f4
Changes
6
Hide whitespace changes
Inline
Side-by-side
src/AnalyzeView/AnalyzePage.qml
View file @
0c6b6556
...
...
@@ -26,7 +26,7 @@ Item {
property
alias
headerComponent
:
headerLoader
.
sourceComponent
property
real
availableWidth
:
width
-
pageLoader
.
x
property
real
availableHeight
:
height
-
mainContent
.
y
property
bool
poped
:
false
property
bool
pop
p
ed
:
false
property
real
_margins
:
ScreenTools
.
defaultFontPixelHeight
*
0.5
signal
popout
()
...
...
@@ -47,13 +47,13 @@ Item {
anchors.top
:
parent
.
top
anchors.left
:
parent
.
left
anchors.rightMargin
:
_margins
anchors.right
:
floatIcon
.
lef
t
anchors.right
:
floatIcon
.
visible
?
floatIcon
.
left
:
parent
.
righ
t
spacing
:
_margins
visible
:
!
ScreenTools
.
isShortScreen
&&
headerLoader
.
sourceComponent
===
null
QGCLabel
{
id
:
pageNameLabel
font.pointSize
:
ScreenTools
.
largeFontPointSize
visible
:
!
poped
visible
:
!
pop
p
ed
}
QGCLabel
{
id
:
pageDescriptionLabel
...
...
@@ -86,13 +86,10 @@ Item {
source
:
"
/qmlimages/FloatingWindow.svg
"
fillMode
:
Image
.
PreserveAspectFit
color
:
qgcPal
.
text
visible
:
!
poped
&&
!
ScreenTools
.
isMobile
visible
:
!
pop
p
ed
&&
!
ScreenTools
.
isMobile
MouseArea
{
anchors.fill
:
parent
onClicked
:
{
popout
()
}
anchors.fill
:
parent
onClicked
:
popout
()
}
}
}
src/AnalyzeView/AnalyzeView.qml
View file @
0c6b6556
...
...
@@ -7,11 +7,6 @@
*
****************************************************************************/
/// @file
/// @brief Setup View
/// @author Don Gagne <don@thegagnes.com>
import
QtQuick
2.3
import
QtQuick
.
Window
2.2
import
QtQuick
.
Controls
1.2
...
...
@@ -23,10 +18,12 @@ import QGroundControl.Controllers 1.0
import
QGroundControl
.
ScreenTools
1.0
Rectangle
{
id
:
setupView
id
:
_root
color
:
qgcPal
.
window
z
:
QGroundControl
.
zOrderTopMost
signal
popout
()
ExclusiveGroup
{
id
:
setupButtonGroup
}
readonly
property
real
_defaultTextHeight
:
ScreenTools
.
defaultFontPixelHeight
...
...
@@ -147,7 +144,8 @@ Rectangle {
panelLoader
.
source
=
""
buttonRepeater
.
itemAt
(
_curIndex
).
loader
.
source
=
source
buttonRepeater
.
itemAt
(
_curIndex
).
visible
=
false
buttonRepeater
.
itemAt
(
_curIndex
).
loader
.
item
.
poped
=
true
buttonRepeater
.
itemAt
(
_curIndex
).
loader
.
item
.
popped
=
true
_root
.
popout
()
}
}
...
...
src/AnalyzeView/MAVLinkInspectorController.cc
View file @
0c6b6556
...
...
@@ -179,6 +179,7 @@ QGCMAVLinkMessage::QGCMAVLinkMessage(QObject *parent, mavlink_message_t* message
QGCMAVLinkMessageField
*
f
=
new
QGCMAVLinkMessageField
(
this
,
msgInfo
->
fields
[
i
].
name
,
type
);
_fields
.
append
(
f
);
}
update
(
message
);
}
//-----------------------------------------------------------------------------
...
...
@@ -222,10 +223,7 @@ void
QGCMAVLinkMessage
::
update
(
mavlink_message_t
*
message
)
{
_count
++
;
//-- If we are not consuming this message, no need to parse it
if
(
!
_selected
&&
!
_fieldSelected
)
{
return
;
}
_message
=
*
message
;
const
mavlink_message_info_t
*
msgInfo
=
mavlink_get_message_info
(
message
);
if
(
!
msgInfo
)
{
...
...
@@ -454,7 +452,7 @@ QGCMAVLinkMessage::update(mavlink_message_t* message)
}
//-----------------------------------------------------------------------------
QGCMAVLink
Vehicle
::
QGCMAVLink
Vehicle
(
QObject
*
parent
,
quint8
id
)
QGCMAVLink
System
::
QGCMAVLink
System
(
QObject
*
parent
,
quint8
id
)
:
QObject
(
parent
)
,
_id
(
id
)
{
...
...
@@ -462,14 +460,14 @@ QGCMAVLinkVehicle::QGCMAVLinkVehicle(QObject* parent, quint8 id)
}
//-----------------------------------------------------------------------------
QGCMAVLink
Vehicle
::~
QGCMAVLink
Vehicle
()
QGCMAVLink
System
::~
QGCMAVLink
System
()
{
_messages
.
clearAndDeleteContents
();
}
//-----------------------------------------------------------------------------
QGCMAVLinkMessage
*
QGCMAVLink
Vehicle
::
findMessage
(
uint32_t
id
,
uint8_t
cid
)
QGCMAVLink
System
::
findMessage
(
uint32_t
id
,
uint8_t
cid
)
{
for
(
int
i
=
0
;
i
<
_messages
.
count
();
i
++
)
{
QGCMAVLinkMessage
*
m
=
qobject_cast
<
QGCMAVLinkMessage
*>
(
_messages
.
get
(
i
));
...
...
@@ -484,7 +482,7 @@ QGCMAVLinkVehicle::findMessage(uint32_t id, uint8_t cid)
//-----------------------------------------------------------------------------
int
QGCMAVLink
Vehicle
::
findMessage
(
QGCMAVLinkMessage
*
message
)
QGCMAVLink
System
::
findMessage
(
QGCMAVLinkMessage
*
message
)
{
for
(
int
i
=
0
;
i
<
_messages
.
count
();
i
++
)
{
QGCMAVLinkMessage
*
m
=
qobject_cast
<
QGCMAVLinkMessage
*>
(
_messages
.
get
(
i
));
...
...
@@ -497,7 +495,7 @@ QGCMAVLinkVehicle::findMessage(QGCMAVLinkMessage* message)
//-----------------------------------------------------------------------------
void
QGCMAVLink
Vehicle
::
_resetSelection
()
QGCMAVLink
System
::
_resetSelection
()
{
for
(
int
i
=
0
;
i
<
_messages
.
count
();
i
++
)
{
QGCMAVLinkMessage
*
m
=
qobject_cast
<
QGCMAVLinkMessage
*>
(
_messages
.
get
(
i
));
...
...
@@ -510,7 +508,7 @@ QGCMAVLinkVehicle::_resetSelection()
//-----------------------------------------------------------------------------
void
QGCMAVLink
Vehicle
::
setSelected
(
int
sel
)
QGCMAVLink
System
::
setSelected
(
int
sel
)
{
if
(
sel
<
_messages
.
count
())
{
_selected
=
sel
;
...
...
@@ -537,7 +535,7 @@ messages_sort(QObject* a, QObject* b)
//-----------------------------------------------------------------------------
void
QGCMAVLink
Vehicle
::
append
(
QGCMAVLinkMessage
*
message
)
QGCMAVLink
System
::
append
(
QGCMAVLinkMessage
*
message
)
{
//-- Save selected message
QGCMAVLinkMessage
*
selectedMsg
=
nullptr
;
...
...
@@ -572,15 +570,15 @@ QGCMAVLinkVehicle::append(QGCMAVLinkMessage* message)
//-----------------------------------------------------------------------------
void
QGCMAVLink
Vehicle
::
_checkCompID
(
QGCMAVLinkMessage
*
message
)
QGCMAVLink
System
::
_checkCompID
(
QGCMAVLinkMessage
*
message
)
{
if
(
_compIDsStr
.
isEmpty
())
{
_compIDsStr
<<
tr
(
"All"
);
_compIDsStr
<<
tr
(
"
Comp
All"
);
}
if
(
!
_compIDs
.
contains
(
static_cast
<
int
>
(
message
->
cid
())))
{
int
cid
=
static_cast
<
int
>
(
message
->
cid
());
_compIDs
.
append
(
cid
);
_compIDsStr
<<
QString
::
number
(
cid
);
_compIDsStr
<<
tr
(
"Comp %1"
).
arg
(
cid
);
emit
compIDsChanged
();
}
}
...
...
@@ -748,7 +746,7 @@ MAVLinkInspectorController::MAVLinkInspectorController()
MAVLinkInspectorController
::~
MAVLinkInspectorController
()
{
_charts
.
clearAndDeleteContents
();
_
vehicle
s
.
clearAndDeleteContents
();
_
system
s
.
clearAndDeleteContents
();
}
//----------------------------------------------------------------------------------------
...
...
@@ -780,24 +778,24 @@ void
MAVLinkInspectorController
::
_setActiveVehicle
(
Vehicle
*
vehicle
)
{
if
(
vehicle
)
{
QGCMAVLink
Vehicle
*
v
=
_findVehicle
(
static_cast
<
uint8_t
>
(
vehicle
->
id
()));
QGCMAVLink
System
*
v
=
_findVehicle
(
static_cast
<
uint8_t
>
(
vehicle
->
id
()));
if
(
v
)
{
_active
Vehicle
=
v
;
_active
System
=
v
;
}
else
{
_active
Vehicle
=
nullptr
;
_active
System
=
nullptr
;
}
}
else
{
_active
Vehicle
=
nullptr
;
_active
System
=
nullptr
;
}
emit
active
Vehicles
Changed
();
emit
active
System
Changed
();
}
//-----------------------------------------------------------------------------
QGCMAVLink
Vehicle
*
QGCMAVLink
System
*
MAVLinkInspectorController
::
_findVehicle
(
uint8_t
id
)
{
for
(
int
i
=
0
;
i
<
_
vehicle
s
.
count
();
i
++
)
{
QGCMAVLink
Vehicle
*
v
=
qobject_cast
<
QGCMAVLink
Vehicle
*>
(
_vehicle
s
.
get
(
i
));
for
(
int
i
=
0
;
i
<
_
system
s
.
count
();
i
++
)
{
QGCMAVLink
System
*
v
=
qobject_cast
<
QGCMAVLink
System
*>
(
_system
s
.
get
(
i
));
if
(
v
)
{
if
(
v
->
id
()
==
id
)
{
return
v
;
...
...
@@ -811,8 +809,8 @@ MAVLinkInspectorController::_findVehicle(uint8_t id)
void
MAVLinkInspectorController
::
_refreshFrequency
()
{
for
(
int
i
=
0
;
i
<
_
vehicle
s
.
count
();
i
++
)
{
QGCMAVLink
Vehicle
*
v
=
qobject_cast
<
QGCMAVLink
Vehicle
*>
(
_vehicle
s
.
get
(
i
));
for
(
int
i
=
0
;
i
<
_
system
s
.
count
();
i
++
)
{
QGCMAVLink
System
*
v
=
qobject_cast
<
QGCMAVLink
System
*>
(
_system
s
.
get
(
i
));
if
(
v
)
{
for
(
int
i
=
0
;
i
<
v
->
messages
()
->
count
();
i
++
)
{
QGCMAVLinkMessage
*
m
=
qobject_cast
<
QGCMAVLinkMessage
*>
(
v
->
messages
()
->
get
(
i
));
...
...
@@ -828,29 +826,29 @@ MAVLinkInspectorController::_refreshFrequency()
void
MAVLinkInspectorController
::
_vehicleAdded
(
Vehicle
*
vehicle
)
{
QGCMAVLink
Vehicle
*
v
=
_findVehicle
(
static_cast
<
uint8_t
>
(
vehicle
->
id
()));
QGCMAVLink
System
*
v
=
_findVehicle
(
static_cast
<
uint8_t
>
(
vehicle
->
id
()));
if
(
v
)
{
v
->
messages
()
->
clearAndDeleteContents
();
emit
v
->
messagesChanged
();
}
else
{
v
=
new
QGCMAVLink
Vehicle
(
this
,
static_cast
<
uint8_t
>
(
vehicle
->
id
()));
_
vehicle
s
.
append
(
v
);
_
vehicle
Names
.
append
(
tr
(
"
Vehicle
%1"
).
arg
(
vehicle
->
id
()));
v
=
new
QGCMAVLink
System
(
this
,
static_cast
<
uint8_t
>
(
vehicle
->
id
()));
_
system
s
.
append
(
v
);
_
system
Names
.
append
(
tr
(
"
System
%1"
).
arg
(
vehicle
->
id
()));
}
emit
vehicle
sChanged
();
emit
system
sChanged
();
}
//-----------------------------------------------------------------------------
void
MAVLinkInspectorController
::
_vehicleRemoved
(
Vehicle
*
vehicle
)
{
QGCMAVLink
Vehicle
*
v
=
_findVehicle
(
static_cast
<
uint8_t
>
(
vehicle
->
id
()));
QGCMAVLink
System
*
v
=
_findVehicle
(
static_cast
<
uint8_t
>
(
vehicle
->
id
()));
if
(
v
)
{
v
->
deleteLater
();
_
vehicle
s
.
removeOne
(
v
);
QString
vs
=
tr
(
"
Vehicle
%1"
).
arg
(
vehicle
->
id
());
_
vehicle
Names
.
removeOne
(
vs
);
emit
vehicle
sChanged
();
_
system
s
.
removeOne
(
v
);
QString
vs
=
tr
(
"
System
%1"
).
arg
(
vehicle
->
id
());
_
system
Names
.
removeOne
(
vs
);
emit
system
sChanged
();
}
}
...
...
@@ -859,15 +857,15 @@ void
MAVLinkInspectorController
::
_receiveMessage
(
LinkInterface
*
,
mavlink_message_t
message
)
{
QGCMAVLinkMessage
*
m
=
nullptr
;
QGCMAVLink
Vehicle
*
v
=
_findVehicle
(
message
.
sysid
);
QGCMAVLink
System
*
v
=
_findVehicle
(
message
.
sysid
);
if
(
!
v
)
{
v
=
new
QGCMAVLink
Vehicle
(
this
,
message
.
sysid
);
_
vehicle
s
.
append
(
v
);
_
vehicle
Names
.
append
(
tr
(
"
Vehicle
%1"
).
arg
(
message
.
sysid
));
emit
vehicle
sChanged
();
if
(
!
_active
Vehicle
)
{
_active
Vehicle
=
v
;
emit
active
Vehicles
Changed
();
v
=
new
QGCMAVLink
System
(
this
,
message
.
sysid
);
_
system
s
.
append
(
v
);
_
system
Names
.
append
(
tr
(
"
System
%1"
).
arg
(
message
.
sysid
));
emit
system
sChanged
();
if
(
!
_active
System
)
{
_active
System
=
v
;
emit
active
System
Changed
();
}
}
else
{
m
=
v
->
findMessage
(
message
.
msgid
,
message
.
compid
);
...
...
@@ -924,3 +922,12 @@ MAVLinkInspectorController::Range_st::Range_st(QObject* parent, const QString& l
{
}
void
MAVLinkInspectorController
::
setActiveSystem
(
int
systemId
)
{
QGCMAVLinkSystem
*
v
=
_findVehicle
(
systemId
);
if
(
v
!=
_activeSystem
)
{
_activeSystem
=
v
;
emit
activeSystemChanged
();
}
}
src/AnalyzeView/MAVLinkInspectorController.h
View file @
0c6b6556
...
...
@@ -27,7 +27,7 @@ Q_DECLARE_LOGGING_CATEGORY(MAVLinkInspectorLog)
QT_CHARTS_USE_NAMESPACE
class
QGCMAVLinkMessage
;
class
QGCMAVLink
Vehicle
;
class
QGCMAVLink
System
;
class
MAVLinkChartController
;
class
MAVLinkInspectorController
;
...
...
@@ -137,7 +137,7 @@ private:
//-----------------------------------------------------------------------------
/// Vehicle MAVLink message belongs to
class
QGCMAVLink
Vehicle
:
public
QObject
{
class
QGCMAVLink
System
:
public
QObject
{
Q_OBJECT
public:
Q_PROPERTY
(
quint8
id
READ
id
CONSTANT
)
...
...
@@ -147,8 +147,8 @@ public:
Q_PROPERTY
(
int
selected
READ
selected
WRITE
setSelected
NOTIFY
selectedChanged
)
QGCMAVLink
Vehicle
(
QObject
*
parent
,
quint8
id
);
~
QGCMAVLink
Vehicle
();
QGCMAVLink
System
(
QObject
*
parent
,
quint8
id
);
~
QGCMAVLink
System
();
quint8
id
()
{
return
_id
;
}
QmlObjectListModel
*
messages
()
{
return
&
_messages
;
}
...
...
@@ -248,22 +248,23 @@ public:
MAVLinkInspectorController
();
~
MAVLinkInspectorController
();
Q_PROPERTY
(
QStringList
vehicle
Names
READ
vehicleNames
NOTIFY
vehicle
sChanged
)
Q_PROPERTY
(
QmlObjectListModel
*
vehicle
s
READ
vehicles
NOTIFY
vehicle
sChanged
)
Q_PROPERTY
(
QmlObjectListModel
*
charts
READ
charts
NOTIFY
chartsChanged
)
Q_PROPERTY
(
QGCMAVLink
Vehicle
*
active
Vehicle
READ
active
Vehicle
NOTIFY
active
Vehicles
Changed
)
Q_PROPERTY
(
QStringList
timeScales
READ
timeScales
NOTIFY
timeScalesChanged
)
Q_PROPERTY
(
QStringList
rangeList
READ
rangeList
NOTIFY
rangeListChanged
)
Q_PROPERTY
(
QStringList
system
Names
READ
systemNames
NOTIFY
system
sChanged
)
Q_PROPERTY
(
QmlObjectListModel
*
system
s
READ
systems
NOTIFY
system
sChanged
)
Q_PROPERTY
(
QmlObjectListModel
*
charts
READ
charts
NOTIFY
chartsChanged
)
Q_PROPERTY
(
QGCMAVLink
System
*
active
System
READ
active
System
NOTIFY
active
System
Changed
)
Q_PROPERTY
(
QStringList
timeScales
READ
timeScales
NOTIFY
timeScalesChanged
)
Q_PROPERTY
(
QStringList
rangeList
READ
rangeList
NOTIFY
rangeListChanged
)
Q_INVOKABLE
MAVLinkChartController
*
createChart
();
Q_INVOKABLE
void
deleteChart
(
MAVLinkChartController
*
chart
);
Q_INVOKABLE
void
setActiveSystem
(
int
systemId
);
QmlObjectListModel
*
vehicles
()
{
return
&
_
vehicle
s
;
}
QmlObjectListModel
*
charts
()
{
return
&
_charts
;
}
QGCMAVLink
Vehicle
*
activeVehicle
()
{
return
_active
Vehicle
;
}
QStringList
vehicleNames
()
{
return
_
vehicle
Names
;
}
QStringList
timeScales
();
QStringList
rangeList
();
QmlObjectListModel
*
systems
()
{
return
&
_
system
s
;
}
QmlObjectListModel
*
charts
()
{
return
&
_charts
;
}
QGCMAVLink
System
*
activeSystem
()
{
return
_active
System
;
}
QStringList
systemNames
()
{
return
_
system
Names
;
}
QStringList
timeScales
();
QStringList
rangeList
();
class
TimeScale_st
:
public
QObject
{
public:
...
...
@@ -283,33 +284,33 @@ public:
const
QList
<
Range_st
*>&
rangeSt
()
{
return
_rangeSt
;
}
signals:
void
vehicle
sChanged
();
void
chartsChanged
();
void
active
Vehicles
Changed
();
void
timeScalesChanged
();
void
rangeListChanged
();
void
system
sChanged
();
void
chartsChanged
();
void
active
System
Changed
();
void
timeScalesChanged
();
void
rangeListChanged
();
private
slots
:
void
_receiveMessage
(
LinkInterface
*
link
,
mavlink_message_t
message
);
void
_vehicleAdded
(
Vehicle
*
vehicle
);
void
_vehicleRemoved
(
Vehicle
*
vehicle
);
void
_setActiveVehicle
(
Vehicle
*
vehicle
);
void
_refreshFrequency
();
void
_receiveMessage
(
LinkInterface
*
link
,
mavlink_message_t
message
);
void
_vehicleAdded
(
Vehicle
*
vehicle
);
void
_vehicleRemoved
(
Vehicle
*
vehicle
);
void
_setActiveVehicle
(
Vehicle
*
vehicle
);
void
_refreshFrequency
();
private:
QGCMAVLink
Vehicle
*
_findVehicle
(
uint8_t
id
);
QGCMAVLink
System
*
_findVehicle
(
uint8_t
id
);
private:
int
_selectedSystemID
=
0
;
///< Currently selected system
int
_selectedComponentID
=
0
;
///< Currently selected component
int
_selectedSystemID
=
0
;
///< Currently selected system
int
_selectedComponentID
=
0
;
///< Currently selected component
QStringList
_timeScales
;
QStringList
_rangeList
;
QGCMAVLink
Vehicle
*
_active
Vehicle
=
nullptr
;
QGCMAVLink
System
*
_active
System
=
nullptr
;
QTimer
_updateFrequencyTimer
;
QStringList
_
vehicle
Names
;
QmlObjectListModel
_
vehicles
;
///< List of QGCMAVLink
Vehicle
QmlObjectListModel
_charts
;
///< List of MAVLinkCharts
QStringList
_
system
Names
;
QmlObjectListModel
_
systems
;
///< List of QGCMAVLink
System
QmlObjectListModel
_charts
;
///< List of MAVLinkCharts
QList
<
TimeScale_st
*>
_timeScaleSt
;
QList
<
Range_st
*>
_rangeSt
;
...
...
src/AnalyzeView/MAVLinkInspectorPage.qml
View file @
0c6b6556
...
...
@@ -24,8 +24,8 @@ AnalyzePage {
headerComponent
:
headerComponent
pageComponent
:
pageComponent
property
var
cur
Vehicle
:
controller
?
controller
.
active
Vehicle
:
null
property
var
curMessage
:
cur
Vehicle
&&
curVehicle
.
messages
.
count
?
cur
Vehicle
.
messages
.
get
(
cur
Vehicle
.
selected
)
:
null
property
var
cur
System
:
controller
?
controller
.
active
System
:
null
property
var
curMessage
:
cur
System
&&
curSystem
.
messages
.
count
?
cur
System
.
messages
.
get
(
cur
System
.
selected
)
:
null
property
int
curCompID
:
0
property
real
maxButtonWidth
:
0
...
...
@@ -45,21 +45,39 @@ AnalyzePage {
}
RowLayout
{
Layout.alignment
:
Qt
.
AlignRight
visible
:
curVehicle
?
curVehicle
.
compIDsStr
.
length
>
2
:
false
QGCLabel
{
text
:
qsTr
(
"
Component ID:
"
)
visible
:
curSystem
?
controller
.
systemNames
.
length
>
1
||
curSystem
.
compIDsStr
.
length
>
2
:
false
QGCComboBox
{
id
:
systemCombo
model
:
controller
.
systemNames
sizeToContents
:
true
visible
:
controller
.
systemNames
.
length
>
1
onActivated
:
controller
.
setActiveSystem
(
controller
.
systems
.
get
(
index
).
id
);
Connections
{
target
:
controller
onActiveSystemChanged
:
{
for
(
var
systemIndex
=
0
;
systemIndex
<
controller
.
systems
.
count
;
systemIndex
++
)
{
if
(
controller
.
systems
.
get
(
systemIndex
)
==
curSystem
)
{
systemCombo
.
currentIndex
=
systemIndex
curCompID
=
0
cidCombo
.
currentIndex
=
0
break
}
}
}
}
}
QGCComboBox
{
id
:
cidCombo
model
:
cur
Vehicle
?
curVehicle
.
compIDsStr
:
[]
Layout.minimumWidth
:
ScreenTools
.
defaultFontPixelWidth
*
10
currentIndex
:
0
model
:
cur
System
?
curSystem
.
compIDsStr
:
[]
sizeToContents
:
true
visible
:
curSystem
?
curSystem
.
compIDsStr
.
length
>
2
:
false
onActivated
:
{
if
(
cur
Vehicle
&&
curVehicle
.
compIDsStr
.
length
>
1
)
{
if
(
cur
System
&&
curSystem
.
compIDsStr
.
length
>
1
)
{
if
(
index
<
1
)
curCompID
=
0
else
curCompID
=
cur
Vehicle
.
compIDs
[
index
-
1
]
curCompID
=
cur
System
.
compIDs
[
index
-
1
]
}
}
}
...
...
@@ -87,15 +105,15 @@ AnalyzePage {
anchors.right
:
parent
.
right
spacing
:
ScreenTools
.
defaultFontPixelHeight
*
0.25
Repeater
{
model
:
cur
Vehicle
?
curVehicle
.
messages
:
[]
model
:
cur
System
?
curSystem
.
messages
:
[]
delegate
:
MAVLinkMessageButton
{
text
:
object
.
name
+
(
object
.
fieldSelected
?
"
*
"
:
""
)
compID
:
object
.
cid
checked
:
cur
Vehicle
?
(
curVehicle
.
selected
===
index
)
:
false
checked
:
cur
System
?
(
curSystem
.
selected
===
index
)
:
false
messageHz
:
object
.
messageHz
visible
:
curCompID
===
0
||
curCompID
===
compID
onClicked
:
{
cur
Vehicle
.
selected
=
index
cur
System
.
selected
=
index
}
Layout.fillWidth
:
true
}
...
...
src/ui/MainRootWindow.qml
View file @
0c6b6556
...
...
@@ -522,6 +522,12 @@ ApplicationWindow {
anchors.right
:
parent
.
right
anchors.top
:
toolDrawerToolbar
.
bottom
anchors.bottom
:
parent
.
bottom
Connections
{
target
:
toolDrawerLoader
.
item
ignoreUnknownSignals
:
true
onPopout
:
toolDrawer
.
visible
=
false
}
}
}
...
...
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