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
bb350243
Commit
bb350243
authored
Aug 31, 2010
by
Bryan Godbolt
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
git://github.com/pixhawk/qgroundcontrol
into dev
parents
7cee3ba2
1755f202
Changes
14
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
588 additions
and
263 deletions
+588
-263
style-mission.css
images/style-mission.css
+1
-0
Core.cc
src/Core.cc
+6
-2
PxQuadMAV.cc
src/uas/PxQuadMAV.cc
+0
-1
UAS.cc
src/uas/UAS.cc
+38
-0
UAS.h
src/uas/UAS.h
+7
-0
UASInterface.h
src/uas/UASInterface.h
+8
-0
MainWindow.cc
src/ui/MainWindow.cc
+449
-196
MainWindow.h
src/ui/MainWindow.h
+20
-21
QGCParamWidget.cc
src/ui/QGCParamWidget.cc
+1
-4
QGCRemoteControlView.cc
src/ui/QGCRemoteControlView.cc
+18
-18
QGCRemoteControlView.h
src/ui/QGCRemoteControlView.h
+1
-1
QGCSensorSettingsWidget.cc
src/ui/QGCSensorSettingsWidget.cc
+6
-0
QGCSensorSettingsWidget.ui
src/ui/QGCSensorSettingsWidget.ui
+26
-13
UASControlWidget.cc
src/ui/uas/UASControlWidget.cc
+7
-7
No files found.
images/style-mission.css
View file @
bb350243
*
{
font-family
:
"Bitstream Vera Sans"
;
font
:
"Roman"
;
font-size
:
12px
;
}
QWidget
#colorIcon
{}
QWidget
#colorIcon
{}
QWidget
{
QWidget
{
...
...
src/Core.cc
View file @
bb350243
...
@@ -72,6 +72,8 @@ Core::Core(int &argc, char* argv[]) : QApplication(argc, argv)
...
@@ -72,6 +72,8 @@ Core::Core(int &argc, char* argv[]) : QApplication(argc, argv)
// Show splash screen
// Show splash screen
QPixmap
splashImage
(
":images/splash.png"
);
QPixmap
splashImage
(
":images/splash.png"
);
QSplashScreen
*
splashScreen
=
new
QSplashScreen
(
splashImage
,
Qt
::
WindowStaysOnTopHint
);
QSplashScreen
*
splashScreen
=
new
QSplashScreen
(
splashImage
,
Qt
::
WindowStaysOnTopHint
);
// Delete splash screen after mainWindow was displayed
splashScreen
->
setAttribute
(
Qt
::
WA_DeleteOnClose
);
splashScreen
->
show
();
splashScreen
->
show
();
splashScreen
->
showMessage
(
tr
(
"Loading application fonts"
),
Qt
::
AlignLeft
|
Qt
::
AlignBottom
,
QColor
(
62
,
93
,
141
));
splashScreen
->
showMessage
(
tr
(
"Loading application fonts"
),
Qt
::
AlignLeft
|
Qt
::
AlignBottom
,
QColor
(
62
,
93
,
141
));
...
@@ -79,13 +81,15 @@ Core::Core(int &argc, char* argv[]) : QApplication(argc, argv)
...
@@ -79,13 +81,15 @@ Core::Core(int &argc, char* argv[]) : QApplication(argc, argv)
// Exit main application when last window is closed
// Exit main application when last window is closed
connect
(
this
,
SIGNAL
(
lastWindowClosed
()),
this
,
SLOT
(
quit
()));
connect
(
this
,
SIGNAL
(
lastWindowClosed
()),
this
,
SLOT
(
quit
()));
//
Set
application font
//
Load
application font
QFontDatabase
fontDatabase
=
QFontDatabase
();
QFontDatabase
fontDatabase
=
QFontDatabase
();
const
QString
fontFileName
=
":/general/vera.ttf"
;
///< Font file is part of the QRC file and compiled into the app
const
QString
fontFileName
=
":/general/vera.ttf"
;
///< Font file is part of the QRC file and compiled into the app
const
QString
fontFamilyName
=
"Bitstream Vera Sans"
;
const
QString
fontFamilyName
=
"Bitstream Vera Sans"
;
if
(
!
QFile
::
exists
(
fontFileName
))
printf
(
"ERROR! font file: %s DOES NOT EXIST!
\n
"
,
fontFileName
.
toStdString
().
c_str
());
if
(
!
QFile
::
exists
(
fontFileName
))
printf
(
"ERROR! font file: %s DOES NOT EXIST!
\n
"
,
fontFileName
.
toStdString
().
c_str
());
fontDatabase
.
addApplicationFont
(
fontFileName
);
fontDatabase
.
addApplicationFont
(
fontFileName
);
setFont
(
fontDatabase
.
font
(
fontFamilyName
,
"Roman"
,
12
));
// Avoid Using setFont(). In the Qt docu you can read the following:
// "Warning: Do not use this function in conjunction with Qt Style Sheets."
// setFont(fontDatabase.font(fontFamilyName, "Roman", 12));
// Start the comm link manager
// Start the comm link manager
splashScreen
->
showMessage
(
tr
(
"Starting Communication Links"
),
Qt
::
AlignLeft
|
Qt
::
AlignBottom
,
QColor
(
62
,
93
,
141
));
splashScreen
->
showMessage
(
tr
(
"Starting Communication Links"
),
Qt
::
AlignLeft
|
Qt
::
AlignBottom
,
QColor
(
62
,
93
,
141
));
...
...
src/uas/PxQuadMAV.cc
View file @
bb350243
...
@@ -139,7 +139,6 @@ void PxQuadMAV::receiveMessage(LinkInterface* link, mavlink_message_t message)
...
@@ -139,7 +139,6 @@ void PxQuadMAV::receiveMessage(LinkInterface* link, mavlink_message_t message)
emit
errCountChanged
(
uasId
,
"IMU"
,
"SPI0"
,
status
.
spi0_err_count
);
emit
errCountChanged
(
uasId
,
"IMU"
,
"SPI0"
,
status
.
spi0_err_count
);
emit
errCountChanged
(
uasId
,
"IMU"
,
"SPI1"
,
status
.
spi1_err_count
);
emit
errCountChanged
(
uasId
,
"IMU"
,
"SPI1"
,
status
.
spi1_err_count
);
emit
errCountChanged
(
uasId
,
"IMU"
,
"UART"
,
status
.
uart_total_err_count
);
emit
errCountChanged
(
uasId
,
"IMU"
,
"UART"
,
status
.
uart_total_err_count
);
qDebug
()
<<
"System Load:"
<<
status
.
load
;
emit
UAS
::
valueChanged
(
this
,
"Load"
,
((
float
)
status
.
load
)
/
1000.0
f
,
MG
::
TIME
::
getGroundTimeNow
());
emit
UAS
::
valueChanged
(
this
,
"Load"
,
((
float
)
status
.
load
)
/
1000.0
f
,
MG
::
TIME
::
getGroundTimeNow
());
}
}
break
;
break
;
...
...
src/uas/UAS.cc
View file @
bb350243
...
@@ -391,6 +391,7 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message)
...
@@ -391,6 +391,7 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message)
{
{
mavlink_rc_channels_t
channels
;
mavlink_rc_channels_t
channels
;
mavlink_msg_rc_channels_decode
(
&
message
,
&
channels
);
mavlink_msg_rc_channels_decode
(
&
message
,
&
channels
);
emit
remoteControlRSSIChanged
(
channels
.
rssi
/
255.0
f
);
for
(
int
i
=
0
;
i
<
8
;
i
++
)
for
(
int
i
=
0
;
i
<
8
;
i
++
)
{
{
switch
(
i
)
switch
(
i
)
...
@@ -576,6 +577,43 @@ void UAS::setLocalPositionSetpoint(float x, float y, float z, float yaw)
...
@@ -576,6 +577,43 @@ void UAS::setLocalPositionSetpoint(float x, float y, float z, float yaw)
#endif
#endif
}
}
void
UAS
::
setLocalPositionOffset
(
float
x
,
float
y
,
float
z
,
float
yaw
)
{
#ifdef MAVLINK_ENABLED_PIXHAWK_MESSAGES
mavlink_message_t
msg
;
mavlink_msg_position_control_offset_set_pack
(
mavlink
->
getSystemId
(),
mavlink
->
getComponentId
(),
&
msg
,
uasId
,
0
,
x
,
y
,
z
,
yaw
);
sendMessage
(
msg
);
#endif
}
void
UAS
::
startRadioControlCalibration
()
{
mavlink_message_t
msg
;
mavlink_msg_action_pack
(
mavlink
->
getSystemId
(),
mavlink
->
getComponentId
(),
&
msg
,
uasId
,
MAV_COMP_ID_IMU
,
MAV_ACTION_CALIBRATE_RC
);
sendMessage
(
msg
);
}
void
UAS
::
startMagnetometerCalibration
()
{
mavlink_message_t
msg
;
mavlink_msg_action_pack
(
mavlink
->
getSystemId
(),
mavlink
->
getComponentId
(),
&
msg
,
uasId
,
MAV_COMP_ID_IMU
,
MAV_ACTION_CALIBRATE_MAG
);
sendMessage
(
msg
);
}
void
UAS
::
startGyroscopeCalibration
()
{
mavlink_message_t
msg
;
mavlink_msg_action_pack
(
mavlink
->
getSystemId
(),
mavlink
->
getComponentId
(),
&
msg
,
uasId
,
MAV_COMP_ID_IMU
,
MAV_ACTION_CALIBRATE_GYRO
);
sendMessage
(
msg
);
}
void
UAS
::
startPressureCalibration
()
{
mavlink_message_t
msg
;
mavlink_msg_action_pack
(
mavlink
->
getSystemId
(),
mavlink
->
getComponentId
(),
&
msg
,
uasId
,
MAV_COMP_ID_IMU
,
MAV_ACTION_CALIBRATE_PRESSURE
);
sendMessage
(
msg
);
}
quint64
UAS
::
getUnixTime
(
quint64
time
)
quint64
UAS
::
getUnixTime
(
quint64
time
)
{
{
if
(
time
==
0
)
if
(
time
==
0
)
...
...
src/uas/UAS.h
View file @
bb350243
...
@@ -221,6 +221,13 @@ public slots:
...
@@ -221,6 +221,13 @@ public slots:
/** @brief Set local position setpoint */
/** @brief Set local position setpoint */
void
setLocalPositionSetpoint
(
float
x
,
float
y
,
float
z
,
float
yaw
);
void
setLocalPositionSetpoint
(
float
x
,
float
y
,
float
z
,
float
yaw
);
/** @brief Add an offset in body frame to the setpoint */
void
setLocalPositionOffset
(
float
x
,
float
y
,
float
z
,
float
yaw
);
void
startRadioControlCalibration
();
void
startMagnetometerCalibration
();
void
startGyroscopeCalibration
();
void
startPressureCalibration
();
signals:
signals:
...
...
src/uas/UASInterface.h
View file @
bb350243
...
@@ -211,6 +211,12 @@ public slots:
...
@@ -211,6 +211,12 @@ public slots:
virtual
void
enableRawSensorFusionTransmission
(
bool
enabled
)
=
0
;
virtual
void
enableRawSensorFusionTransmission
(
bool
enabled
)
=
0
;
virtual
void
setLocalPositionSetpoint
(
float
x
,
float
y
,
float
z
,
float
yaw
)
=
0
;
virtual
void
setLocalPositionSetpoint
(
float
x
,
float
y
,
float
z
,
float
yaw
)
=
0
;
virtual
void
setLocalPositionOffset
(
float
x
,
float
y
,
float
z
,
float
yaw
)
=
0
;
virtual
void
startRadioControlCalibration
()
=
0
;
virtual
void
startMagnetometerCalibration
()
=
0
;
virtual
void
startGyroscopeCalibration
()
=
0
;
virtual
void
startPressureCalibration
()
=
0
;
protected:
protected:
QColor
color
;
QColor
color
;
...
@@ -331,6 +337,8 @@ signals:
...
@@ -331,6 +337,8 @@ signals:
void
positionYawControlEnabled
(
bool
enabled
);
void
positionYawControlEnabled
(
bool
enabled
);
/** @brief Value of a remote control channel */
/** @brief Value of a remote control channel */
void
remoteControlChannelChanged
(
int
channelId
,
float
raw
,
float
normalized
);
void
remoteControlChannelChanged
(
int
channelId
,
float
raw
,
float
normalized
);
/** @brief Remote control RSSI changed */
void
remoteControlRSSIChanged
(
float
rssi
);
/**
/**
* @brief Localization quality changed
* @brief Localization quality changed
...
...
src/ui/MainWindow.cc
View file @
bb350243
...
@@ -108,6 +108,7 @@ MainWindow::~MainWindow()
...
@@ -108,6 +108,7 @@ MainWindow::~MainWindow()
void
MainWindow
::
buildWidgets
()
void
MainWindow
::
buildWidgets
()
{
{
//FIXME: memory of acceptList will never be freed again
QStringList
*
acceptList
=
new
QStringList
();
QStringList
*
acceptList
=
new
QStringList
();
acceptList
->
append
(
"roll IMU"
);
acceptList
->
append
(
"roll IMU"
);
acceptList
->
append
(
"pitch IMU"
);
acceptList
->
append
(
"pitch IMU"
);
...
@@ -116,50 +117,93 @@ void MainWindow::buildWidgets()
...
@@ -116,50 +117,93 @@ void MainWindow::buildWidgets()
acceptList
->
append
(
"pitchspeed IMU"
);
acceptList
->
append
(
"pitchspeed IMU"
);
acceptList
->
append
(
"yawspeed IMU"
);
acceptList
->
append
(
"yawspeed IMU"
);
//FIXME: memory of acceptList2 will never be freed again
QStringList
*
acceptList2
=
new
QStringList
();
QStringList
*
acceptList2
=
new
QStringList
();
acceptList2
->
append
(
"Battery"
);
acceptList2
->
append
(
"Battery"
);
acceptList2
->
append
(
"Pressure"
);
acceptList2
->
append
(
"Pressure"
);
//TODO: move protocol outside UI
mavlink
=
new
MAVLinkProtocol
();
mavlink
=
new
MAVLinkProtocol
();
linechart
=
new
Linecharts
(
this
);
control
=
new
UASControlWidget
(
this
);
// Center widgets
list
=
new
UASListWidget
(
this
);
linechartWidget
=
new
Linecharts
(
this
);
waypoints
=
new
WaypointList
(
this
,
NULL
);
hudWidget
=
new
HUD
(
640
,
480
,
this
);
info
=
new
UASInfoWidget
(
this
);
mapWidget
=
new
MapWidget
(
this
);
detection
=
new
ObjectDetectionView
(
"images/patterns"
,
this
);
protocolWidget
=
new
XMLCommProtocolWidget
(
this
);
hud
=
new
HUD
(
640
,
480
,
this
);
dataplotWidget
=
new
QGCDataPlot2D
(
this
);
debugConsole
=
new
DebugConsole
(
this
);
map
=
new
MapWidget
(
this
);
// Dock widgets
protocol
=
new
XMLCommProtocolWidget
(
this
);
controlDockWidget
=
new
QDockWidget
(
tr
(
"Control"
),
this
);
parameters
=
new
ParameterInterface
(
this
);
controlDockWidget
->
setWidget
(
new
UASControlWidget
(
this
)
);
watchdogControl
=
new
WatchdogControl
(
this
);
hsi
=
new
HSIDisplay
(
this
);
listDockWidget
=
new
QDockWidget
(
tr
(
"Unmanned Systems"
),
this
);
headDown1
=
new
HDDisplay
(
acceptList
,
this
);
listDockWidget
->
setWidget
(
new
UASListWidget
(
this
)
);
headDown2
=
new
HDDisplay
(
acceptList2
,
this
);
waypointsDockWidget
=
new
QDockWidget
(
tr
(
"Waypoint List"
),
this
);
waypointsDockWidget
->
setWidget
(
new
WaypointList
(
this
,
NULL
)
);
infoDockWidget
=
new
QDockWidget
(
tr
(
"Status Details"
),
this
);
infoDockWidget
->
setWidget
(
new
UASInfoWidget
(
this
)
);
detectionDockWidget
=
new
QDockWidget
(
tr
(
"Object Recognition"
),
this
);
detectionDockWidget
->
setWidget
(
new
ObjectDetectionView
(
"images/patterns"
,
this
)
);
debugConsoleDockWidget
=
new
QDockWidget
(
tr
(
"Communication Console"
),
this
);
debugConsoleDockWidget
->
setWidget
(
new
DebugConsole
(
this
)
);
parametersDockWidget
=
new
QDockWidget
(
tr
(
"Onboard Parameters"
),
this
);
parametersDockWidget
->
setWidget
(
new
ParameterInterface
(
this
)
);
watchdogControlDockWidget
=
new
QDockWidget
(
tr
(
"Process Control"
),
this
);
watchdogControlDockWidget
->
setWidget
(
new
WatchdogControl
(
this
)
);
hsiDockWidget
=
new
QDockWidget
(
tr
(
"Horizontal Situation Indicator"
),
this
);
hsiDockWidget
->
setWidget
(
new
HSIDisplay
(
this
)
);
headDown1DockWidget
=
new
QDockWidget
(
tr
(
"Primary Flight Display"
),
this
);
headDown1DockWidget
->
setWidget
(
new
HDDisplay
(
acceptList
,
this
)
);
headDown2DockWidget
=
new
QDockWidget
(
tr
(
"Payload Status"
),
this
);
headDown2DockWidget
->
setWidget
(
new
HDDisplay
(
acceptList2
,
this
)
);
rcViewDockWidget
=
new
QDockWidget
(
tr
(
"Radio Control"
),
this
);
rcViewDockWidget
->
setWidget
(
new
QGCRemoteControlView
(
this
)
);
// Dialogue widgets
//FIXME: free memory in destructor
joystick
=
new
JoystickInput
();
joystick
=
new
JoystickInput
();
dataplot
=
new
QGCDataPlot2D
(
this
);
rcView
=
new
QGCRemoteControlView
(
this
);
}
}
void
MainWindow
::
connectWidgets
()
void
MainWindow
::
connectWidgets
()
{
{
connect
(
UASManager
::
instance
(),
SIGNAL
(
UASCreated
(
UASInterface
*
)),
linechart
,
SLOT
(
addSystem
(
UASInterface
*
)));
if
(
linechartWidget
)
connect
(
UASManager
::
instance
(),
SIGNAL
(
activeUASSet
(
int
)),
linechart
,
SLOT
(
selectSystem
(
int
)));
{
connect
(
linechart
,
SIGNAL
(
logfileWritten
(
QString
)),
this
,
SLOT
(
loadDataView
(
QString
)));
connect
(
UASManager
::
instance
(),
SIGNAL
(
UASCreated
(
UASInterface
*
)),
connect
(
mavlink
,
SIGNAL
(
receiveLossChanged
(
int
,
float
)),
info
,
SLOT
(
updateSendLoss
(
int
,
float
)));
linechartWidget
,
SLOT
(
addSystem
(
UASInterface
*
)));
connect
(
UASManager
::
instance
(),
SIGNAL
(
activeUASSet
(
int
)),
linechartWidget
,
SLOT
(
selectSystem
(
int
)));
connect
(
linechartWidget
,
SIGNAL
(
logfileWritten
(
QString
)),
this
,
SLOT
(
loadDataView
(
QString
)));
}
if
(
infoDockWidget
&&
infoDockWidget
->
widget
())
{
connect
(
mavlink
,
SIGNAL
(
receiveLossChanged
(
int
,
float
)),
infoDockWidget
->
widget
(),
SLOT
(
updateSendLoss
(
int
,
float
)));
}
}
}
void
MainWindow
::
arrangeCenterStack
()
void
MainWindow
::
arrangeCenterStack
()
{
{
centerStack
=
new
QStackedWidget
(
this
);
QStackedWidget
*
centerStack
=
new
QStackedWidget
(
this
);
if
(
!
centerStack
)
return
;
centerStack
->
addWidget
(
linechar
t
);
if
(
linechartWidget
)
centerStack
->
addWidget
(
linechartWidge
t
);
centerStack
->
addWidget
(
protocol
);
if
(
protocolWidget
)
centerStack
->
addWidget
(
protocolWidget
);
centerStack
->
addWidget
(
map
);
if
(
mapWidget
)
centerStack
->
addWidget
(
mapWidget
);
centerStack
->
addWidget
(
hud
);
if
(
hudWidget
)
centerStack
->
addWidget
(
hudWidget
);
centerStack
->
addWidget
(
dataplo
t
);
if
(
dataplotWidget
)
centerStack
->
addWidget
(
dataplotWidge
t
);
setCentralWidget
(
centerStack
);
setCentralWidget
(
centerStack
);
}
}
...
@@ -425,13 +469,35 @@ void MainWindow::UASCreated(UASInterface* uas)
...
@@ -425,13 +469,35 @@ void MainWindow::UASCreated(UASInterface* uas)
ui
.
menuConnected_Systems
->
addAction
(
icon
,
tr
(
"Select %1 for control"
).
arg
(
uas
->
getUASName
()),
uas
,
SLOT
(
setSelected
()));
ui
.
menuConnected_Systems
->
addAction
(
icon
,
tr
(
"Select %1 for control"
).
arg
(
uas
->
getUASName
()),
uas
,
SLOT
(
setSelected
()));
// FIXME Should be not inside the mainwindow
// FIXME Should be not inside the mainwindow
connect
(
uas
,
SIGNAL
(
textMessageReceived
(
int
,
int
,
int
,
QString
)),
debugConsole
,
SLOT
(
receiveTextMessage
(
int
,
int
,
int
,
QString
)));
if
(
debugConsoleDockWidget
)
{
DebugConsole
*
debugConsole
=
dynamic_cast
<
DebugConsole
*>
(
debugConsoleDockWidget
->
widget
());
if
(
debugConsole
)
{
connect
(
uas
,
SIGNAL
(
textMessageReceived
(
int
,
int
,
int
,
QString
)),
debugConsole
,
SLOT
(
receiveTextMessage
(
int
,
int
,
int
,
QString
)));
}
}
// Health / System status indicator
// Health / System status indicator
info
->
addUAS
(
uas
);
if
(
infoDockWidget
)
{
UASInfoWidget
*
infoWidget
=
dynamic_cast
<
UASInfoWidget
*>
(
infoDockWidget
->
widget
());
if
(
infoWidget
)
{
infoWidget
->
addUAS
(
uas
);
}
}
// UAS List
// UAS List
list
->
addUAS
(
uas
);
if
(
listDockWidget
)
{
UASListWidget
*
listWidget
=
dynamic_cast
<
UASListWidget
*>
(
listDockWidget
->
widget
());
if
(
listWidget
)
{
listWidget
->
addUAS
(
uas
);
}
}
// Camera view
// Camera view
//camera->addUAS(uas);
//camera->addUAS(uas);
...
@@ -455,27 +521,42 @@ void MainWindow::UASCreated(UASInterface* uas)
...
@@ -455,27 +521,42 @@ void MainWindow::UASCreated(UASInterface* uas)
void
MainWindow
::
clearView
()
void
MainWindow
::
clearView
()
{
{
// Halt HUD
// Halt HUD
hud
->
stop
();
if
(
hudWidget
)
hudWidget
->
stop
();
linechart
->
setActive
(
false
);
// Disable linechart
headDown1
->
stop
();
if
(
linechartWidget
)
linechartWidget
->
setActive
(
false
);
headDown2
->
stop
();
// Halt HDDs
hsi
->
stop
();
if
(
headDown1DockWidget
)
{
HDDisplay
*
hddWidget
=
dynamic_cast
<
HDDisplay
*>
(
headDown1DockWidget
->
widget
()
);
if
(
hddWidget
)
hddWidget
->
stop
();
}
if
(
headDown2DockWidget
)
{
HDDisplay
*
hddWidget
=
dynamic_cast
<
HDDisplay
*>
(
headDown2DockWidget
->
widget
()
);
if
(
hddWidget
)
hddWidget
->
stop
();
}
// Halt HSI
if
(
hsiDockWidget
)
{
HSIDisplay
*
hsi
=
dynamic_cast
<
HSIDisplay
*>
(
hsiDockWidget
->
widget
()
);
if
(
hsi
)
hsi
->
stop
();
}
// Remove all dock widgets
// Remove all dock widgets
from main window
Q
List
<
QObject
*>
list
=
this
->
children
(
);
Q
ObjectList
childList
(
this
->
children
()
);
QList
<
QObject
*>::
iterator
i
;
QObjectList
::
iterator
i
;
for
(
i
=
list
.
begin
();
i
!=
list
.
end
();
++
i
)
QDockWidget
*
dockWidget
;
for
(
i
=
childList
.
begin
();
i
!=
childList
.
end
();
++
i
)
{
{
QDockWidget
*
w
idget
=
dynamic_cast
<
QDockWidget
*>
(
*
i
);
dockW
idget
=
dynamic_cast
<
QDockWidget
*>
(
*
i
);
if
(
w
idget
)
if
(
dockW
idget
)
{
{
// Hide widgets
// Remove dock widget from main window
QWidget
*
childWidget
=
dynamic_cast
<
QWidget
*>
(
widget
->
widget
());
this
->
removeDockWidget
(
dockWidget
);
if
(
childWidget
)
childWidget
->
setVisible
(
false
);
// Deletion of dockWidget would also delete all child
// Remove dock widget
// widgets of dockWidget
this
->
removeDockWidget
(
widget
);
// Is there a way to unset a widget from QDockWidget?
//delete widget;
}
}
}
}
}
}
...
@@ -486,45 +567,69 @@ void MainWindow::loadSlugsView()
...
@@ -486,45 +567,69 @@ void MainWindow::loadSlugsView()
// Engineer view, used in EMAV2009
// Engineer view, used in EMAV2009
// LINE CHART
// LINE CHART
linechart
->
setActive
(
true
);
if
(
linechartWidget
)
centerStack
->
setCurrentWidget
(
linechart
);
{
QStackedWidget
*
centerStack
=
dynamic_cast
<
QStackedWidget
*>
(
centralWidget
());
if
(
centerStack
)
{
linechartWidget
->
setActive
(
true
);
centerStack
->
setCurrentWidget
(
linechartWidget
);
}
}
// UAS CONTROL
// UAS CONTROL
QDockWidget
*
container1
=
new
QDockWidget
(
tr
(
"Control"
),
this
);
if
(
controlDockWidget
)
container1
->
setWidget
(
control
);
{
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
container1
);
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
controlDockWidget
);
controlDockWidget
->
show
();
}
// UAS LIST
// UAS LIST
QDockWidget
*
container4
=
new
QDockWidget
(
tr
(
"Unmanned Systems"
),
this
);
if
(
listDockWidget
)
container4
->
setWidget
(
list
);
{
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
container4
);
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
listDockWidget
);
listDockWidget
->
show
();
}
// UAS STATUS
// UAS STATUS
QDockWidget
*
container3
=
new
QDockWidget
(
tr
(
"Status Details"
),
this
);
if
(
infoDockWidget
)
container3
->
setWidget
(
info
);
{
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
container3
);
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
infoDockWidget
);
infoDockWidget
->
show
();
}
// HORIZONTAL SITUATION INDICATOR
// HORIZONTAL SITUATION INDICATOR
QDockWidget
*
container6
=
new
QDockWidget
(
tr
(
"Horizontal Situation Indicator"
),
this
);
if
(
hsiDockWidget
)
container6
->
setWidget
(
hsi
);
{
HSIDisplay
*
hsi
=
dynamic_cast
<
HSIDisplay
*>
(
hsiDockWidget
->
widget
()
);
if
(
hsi
)
{
hsi
->
start
();
hsi
->
start
();
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
container6
);
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
hsiDockWidget
);
hsiDockWidget
->
show
();
}
}
// WAYPOINT LIST
// WAYPOINT LIST
QDockWidget
*
container5
=
new
QDockWidget
(
tr
(
"Waypoint List"
),
this
);
if
(
waypointsDockWidget
)
container5
->
setWidget
(
waypoints
);
{
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
container5
);
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
waypointsDockWidget
);
waypointsDockWidget
->
show
();
}
// DEBUG CONSOLE
// DEBUG CONSOLE
QDockWidget
*
container7
=
new
QDockWidget
(
tr
(
"Communication Console"
),
this
);
if
(
debugConsoleDockWidget
)
container7
->
setWidget
(
debugConsole
);
{
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
container7
);
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
debugConsoleDockWidget
);
debugConsoleDockWidget
->
show
();
}
// ONBOARD PARAMETERS
// ONBOARD PARAMETERS
QDockWidget
*
containerParams
=
new
QDockWidget
(
tr
(
"Onboard Parameters"
),
this
);
if
(
parametersDockWidget
)
containerParams
->
setWidget
(
parameters
);
{
addDockWidget
(
Qt
::
RightDockWidgetArea
,
containerParams
);
addDockWidget
(
Qt
::
RightDockWidgetArea
,
parametersDockWidget
);
parametersDockWidget
->
show
();
}
this
->
show
();
this
->
show
();
}
}
...
@@ -535,44 +640,64 @@ void MainWindow::loadPixhawkView()
...
@@ -535,44 +640,64 @@ void MainWindow::loadPixhawkView()
// Engineer view, used in EMAV2009
// Engineer view, used in EMAV2009
// LINE CHART
// LINE CHART
linechart
->
setActive
(
true
);
if
(
linechartWidget
)
centerStack
->
setCurrentWidget
(
linechart
);
{
QStackedWidget
*
centerStack
=
dynamic_cast
<
QStackedWidget
*>
(
centralWidget
());
if
(
centerStack
)
{
linechartWidget
->
setActive
(
true
);
centerStack
->
setCurrentWidget
(
linechartWidget
);
}
}
// UAS CONTROL
// UAS CONTROL
QDockWidget
*
container1
=
new
QDockWidget
(
tr
(
"Control"
),
this
);
if
(
controlDockWidget
)
container1
->
setWidget
(
control
);
{
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
container1
);
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
controlDockWidget
);
controlDockWidget
->
show
();
}
// UAS LIST
// UAS LIST
QDockWidget
*
container4
=
new
QDockWidget
(
tr
(
"Unmanned Systems"
),
this
);
if
(
listDockWidget
)
container4
->
setWidget
(
list
);
{
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
container4
);
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
listDockWidget
);
listDockWidget
->
show
();
}
// UAS STATUS
// UAS STATUS
QDockWidget
*
container3
=
new
QDockWidget
(
tr
(
"Status Details"
),
this
);
if
(
infoDockWidget
)
container3
->
setWidget
(
info
);
{
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
container3
);
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
infoDockWidget
);
infoDockWidget
->
show
();
}
// WAYPOINT LIST
// WAYPOINT LIST
QDockWidget
*
container5
=
new
QDockWidget
(
tr
(
"Waypoint List"
),
this
);
if
(
waypointsDockWidget
)
container5
->
setWidget
(
waypoints
);
{
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
container5
);
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
waypointsDockWidget
);
waypointsDockWidget
->
show
();
}
// DEBUG CONSOLE
// DEBUG CONSOLE
QDockWidget
*
container7
=
new
QDockWidget
(
tr
(
"Communication Console"
),
this
);
if
(
debugConsoleDockWidget
)
container7
->
setWidget
(
debugConsole
);
{
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
container7
);
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
debugConsoleDockWidget
);
debugConsoleDockWidget
->
show
();
}
// RADIO CONTROL VIEW
// RADIO CONTROL VIEW
QDockWidget
*
rcContainer
=
new
QDockWidget
(
tr
(
"Radio Control"
),
this
);
if
(
rcViewDockWidget
)
rcContainer
->
setWidget
(
rcView
);
{
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
rcContainer
);
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
rcViewDockWidget
);
rcViewDockWidget
->
show
();
}
// ONBOARD PARAMETERS
// ONBOARD PARAMETERS
QDockWidget
*
containerParams
=
new
QDockWidget
(
tr
(
"Onboard Parameters"
),
this
);
if
(
parametersDockWidget
)
containerParams
->
setWidget
(
parameters
);
{
addDockWidget
(
Qt
::
RightDockWidgetArea
,
containerParams
);
addDockWidget
(
Qt
::
RightDockWidgetArea
,
parametersDockWidget
);
parametersDockWidget
->
show
();
}
this
->
show
();
this
->
show
();
}
}
...
@@ -580,14 +705,30 @@ void MainWindow::loadPixhawkView()
...
@@ -580,14 +705,30 @@ void MainWindow::loadPixhawkView()
void
MainWindow
::
loadDataView
()
void
MainWindow
::
loadDataView
()
{
{
clearView
();
clearView
();
centerStack
->
setCurrentWidget
(
dataplot
);
// DATAPLOT
if
(
dataplotWidget
)
{
QStackedWidget
*
centerStack
=
dynamic_cast
<
QStackedWidget
*>
(
centralWidget
());
if
(
centerStack
)
centerStack
->
setCurrentWidget
(
dataplotWidget
);
}
}
}
void
MainWindow
::
loadDataView
(
QString
fileName
)
void
MainWindow
::
loadDataView
(
QString
fileName
)
{
{
clearView
();
clearView
();
centerStack
->
setCurrentWidget
(
dataplot
);
dataplot
->
loadFile
(
fileName
);
// DATAPLOT
if
(
dataplotWidget
)
{
QStackedWidget
*
centerStack
=
dynamic_cast
<
QStackedWidget
*>
(
centralWidget
());
if
(
centerStack
)
{
centerStack
->
setCurrentWidget
(
dataplotWidget
);
dataplotWidget
->
loadFile
(
fileName
);
}
}
}
}
void
MainWindow
::
loadPilotView
()
void
MainWindow
::
loadPilotView
()
...
@@ -595,20 +736,38 @@ void MainWindow::loadPilotView()
...
@@ -595,20 +736,38 @@ void MainWindow::loadPilotView()
clearView
();
clearView
();
// HEAD UP DISPLAY
// HEAD UP DISPLAY
centerStack
->
setCurrentWidget
(
hud
);
if
(
hudWidget
)
hud
->
start
();
{
QStackedWidget
*
centerStack
=
dynamic_cast
<
QStackedWidget
*>
(
centralWidget
());
if
(
centerStack
)
{
centerStack
->
setCurrentWidget
(
hudWidget
);
hudWidget
->
start
();
}
}
//connect(UASManager::instance(), SIGNAL(activeUASSet(UASInterface*)), pfd, SLOT(setActiveUAS(UASInterface*)));
//connect(UASManager::instance(), SIGNAL(activeUASSet(UASInterface*)), pfd, SLOT(setActiveUAS(UASInterface*)));
QDockWidget
*
container1
=
new
QDockWidget
(
tr
(
"Primary Flight Display"
),
this
);
if
(
headDown1DockWidget
)
container1
->
setWidget
(
headDown1
);
{
addDockWidget
(
Qt
::
RightDockWidgetArea
,
container1
);
HDDisplay
*
hdd
=
dynamic_cast
<
HDDisplay
*>
(
headDown1DockWidget
->
widget
());
if
(
hdd
)
QDockWidget
*
container2
=
new
QDockWidget
(
tr
(
"Payload Status"
),
this
);
{
container2
->
setWidget
(
headDown2
);
addDockWidget
(
Qt
::
RightDockWidgetArea
,
headDown1DockWidget
);
addDockWidget
(
Qt
::
RightDockWidgetArea
,
container2
);
headDown1DockWidget
->
show
();
hdd
->
start
();
}
headDown1
->
start
();
}
headDown2
->
start
();
if
(
headDown2DockWidget
)
{
HDDisplay
*
hdd
=
dynamic_cast
<
HDDisplay
*>
(
headDown2DockWidget
->
widget
());
if
(
hdd
)
{
addDockWidget
(
Qt
::
RightDockWidgetArea
,
headDown2DockWidget
);
headDown2DockWidget
->
show
();
hdd
->
start
();
}
}
this
->
show
();
this
->
show
();
}
}
...
@@ -618,43 +777,68 @@ void MainWindow::loadOperatorView()
...
@@ -618,43 +777,68 @@ void MainWindow::loadOperatorView()
clearView
();
clearView
();
// MAP
// MAP
centerStack
->
setCurrentWidget
(
map
);
if
(
mapWidget
)
{
QStackedWidget
*
centerStack
=
dynamic_cast
<
QStackedWidget
*>
(
centralWidget
());
if
(
centerStack
)
{
centerStack
->
setCurrentWidget
(
mapWidget
);
}
}
// UAS CONTROL
// UAS CONTROL
QDockWidget
*
container1
=
new
QDockWidget
(
tr
(
"Control"
),
this
);
if
(
controlDockWidget
)
container1
->
setWidget
(
control
);
{
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
container1
);
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
controlDockWidget
);
controlDockWidget
->
show
();
}
// UAS LIST
// UAS LIST
QDockWidget
*
container4
=
new
QDockWidget
(
tr
(
"Unmanned Systems"
),
this
);
if
(
listDockWidget
)
container4
->
setWidget
(
list
);
{
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
container4
);
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
listDockWidget
);
listDockWidget
->
show
();
}
// UAS STATUS
// UAS STATUS
QDockWidget
*
container3
=
new
QDockWidget
(
tr
(
"Status Details"
),
this
);
if
(
infoDockWidget
)
container3
->
setWidget
(
info
);
{
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
container3
);
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
infoDockWidget
);
infoDockWidget
->
show
();
}
// WAYPOINT LIST
// WAYPOINT LIST
QDockWidget
*
container5
=
new
QDockWidget
(
tr
(
"Waypoint List"
),
this
);
if
(
waypointsDockWidget
)
container5
->
setWidget
(
waypoints
);
{
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
container5
);
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
waypointsDockWidget
);
waypointsDockWidget
->
show
();
}
// HORIZONTAL SITUATION INDICATOR
// HORIZONTAL SITUATION INDICATOR
QDockWidget
*
container7
=
new
QDockWidget
(
tr
(
"Horizontal Situation Indicator"
),
this
);
if
(
hsiDockWidget
)
container7
->
setWidget
(
hsi
);
{
HSIDisplay
*
hsi
=
dynamic_cast
<
HSIDisplay
*>
(
hsiDockWidget
->
widget
()
);
if
(
hsi
)
{
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
hsiDockWidget
);
hsiDockWidget
->
show
();
hsi
->
start
();
hsi
->
start
();
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
container7
);
}
}
// OBJECT DETECTION
// OBJECT DETECTION
QDockWidget
*
container6
=
new
QDockWidget
(
tr
(
"Object Recognition"
),
this
);
if
(
detectionDockWidget
)
container6
->
setWidget
(
detection
);
{
addDockWidget
(
Qt
::
RightDockWidgetArea
,
container6
);
addDockWidget
(
Qt
::
RightDockWidgetArea
,
detectionDockWidget
);
detectionDockWidget
->
show
();
}
// PROCESS CONTROL
// PROCESS CONTROL
QDockWidget
*
pControl
=
new
QDockWidget
(
tr
(
"Process Control"
),
this
);
if
(
watchdogControlDockWidget
)
pControl
->
setWidget
(
watchdogControl
);
{
addDockWidget
(
Qt
::
RightDockWidgetArea
,
pControl
);
addDockWidget
(
Qt
::
RightDockWidgetArea
,
watchdogControlDockWidget
);
watchdogControlDockWidget
->
show
();
}
this
->
show
();
this
->
show
();
}
}
...
@@ -663,8 +847,15 @@ void MainWindow::loadSettingsView()
...
@@ -663,8 +847,15 @@ void MainWindow::loadSettingsView()
clearView
();
clearView
();
// LINE CHART
// LINE CHART
linechart
->
setActive
(
true
);
if
(
linechartWidget
)
centerStack
->
setCurrentWidget
(
linechart
);
{
QStackedWidget
*
centerStack
=
dynamic_cast
<
QStackedWidget
*>
(
centralWidget
());
if
(
centerStack
)
{
linechartWidget
->
setActive
(
true
);
centerStack
->
setCurrentWidget
(
linechartWidget
);
}
}
/*
/*
// COMM XML
// COMM XML
...
@@ -673,9 +864,12 @@ void MainWindow::loadSettingsView()
...
@@ -673,9 +864,12 @@ void MainWindow::loadSettingsView()
addDockWidget(Qt::LeftDockWidgetArea, container1);*/
addDockWidget(Qt::LeftDockWidgetArea, container1);*/
// ONBOARD PARAMETERS
// ONBOARD PARAMETERS
QDockWidget
*
container6
=
new
QDockWidget
(
tr
(
"Onboard Parameters"
),
this
);
if
(
parametersDockWidget
)
container6
->
setWidget
(
parameters
);
{
addDockWidget
(
Qt
::
RightDockWidgetArea
,
container6
);
addDockWidget
(
Qt
::
RightDockWidgetArea
,
parametersDockWidget
);
parametersDockWidget
->
show
();
}
this
->
show
();
this
->
show
();
}
}
...
@@ -685,39 +879,57 @@ void MainWindow::loadEngineerView()
...
@@ -685,39 +879,57 @@ void MainWindow::loadEngineerView()
// Engineer view, used in EMAV2009
// Engineer view, used in EMAV2009
// LINE CHART
// LINE CHART
linechart
->
setActive
(
true
);
if
(
linechartWidget
)
centerStack
->
setCurrentWidget
(
linechart
);
{
QStackedWidget
*
centerStack
=
dynamic_cast
<
QStackedWidget
*>
(
centralWidget
());
if
(
centerStack
)
{
linechartWidget
->
setActive
(
true
);
centerStack
->
setCurrentWidget
(
linechartWidget
);
}
}
// UAS CONTROL
// UAS CONTROL
QDockWidget
*
container1
=
new
QDockWidget
(
tr
(
"Control"
),
this
);
if
(
controlDockWidget
)
container1
->
setWidget
(
control
);
{
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
container1
);
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
controlDockWidget
);
controlDockWidget
->
show
();
}
// UAS LIST
// UAS LIST
QDockWidget
*
container4
=
new
QDockWidget
(
tr
(
"Unmanned Systems"
),
this
);
if
(
listDockWidget
)
container4
->
setWidget
(
list
);
{
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
container4
);
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
listDockWidget
);
listDockWidget
->
show
();
}
// UAS STATUS
// UAS STATUS
QDockWidget
*
container3
=
new
QDockWidget
(
tr
(
"Status Details"
),
this
);
if
(
infoDockWidget
)
container3
->
setWidget
(
info
);
{
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
container3
);
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
infoDockWidget
);
infoDockWidget
->
show
();
}
// WAYPOINT LIST
// WAYPOINT LIST
QDockWidget
*
container5
=
new
QDockWidget
(
tr
(
"Waypoint List"
),
this
);
if
(
waypointsDockWidget
)
container5
->
setWidget
(
waypoints
);
{
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
container5
);
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
waypointsDockWidget
);
waypointsDockWidget
->
show
();
}
// DEBUG CONSOLE
// DEBUG CONSOLE
QDockWidget
*
container7
=
new
QDockWidget
(
tr
(
"Communication Console"
),
this
);
if
(
debugConsoleDockWidget
)
container7
->
setWidget
(
debugConsole
);
{
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
container7
);
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
debugConsoleDockWidget
);
debugConsoleDockWidget
->
show
();
}
// ONBOARD PARAMETERS
// ONBOARD PARAMETERS
QDockWidget
*
containerParams
=
new
QDockWidget
(
tr
(
"Onboard Parameters"
),
this
);
if
(
parametersDockWidget
)
containerParams
->
setWidget
(
parameters
);
{
addDockWidget
(
Qt
::
RightDockWidgetArea
,
containerParams
);
addDockWidget
(
Qt
::
RightDockWidgetArea
,
parametersDockWidget
);
parametersDockWidget
->
show
();
}
this
->
show
();
this
->
show
();
}
}
...
@@ -725,7 +937,16 @@ void MainWindow::loadEngineerView()
...
@@ -725,7 +937,16 @@ void MainWindow::loadEngineerView()
void
MainWindow
::
loadMAVLinkView
()
void
MainWindow
::
loadMAVLinkView
()
{
{
clearView
();
clearView
();
centerStack
->
setCurrentWidget
(
protocol
);
if
(
protocolWidget
)
{
QStackedWidget
*
centerStack
=
dynamic_cast
<
QStackedWidget
*>
(
centralWidget
());
if
(
centerStack
)
{
centerStack
->
setCurrentWidget
(
protocolWidget
);
}
}
this
->
show
();
this
->
show
();
}
}
...
@@ -733,55 +954,87 @@ void MainWindow::loadAllView()
...
@@ -733,55 +954,87 @@ void MainWindow::loadAllView()
{
{
clearView
();
clearView
();
QDockWidget
*
containerPFD
=
new
QDockWidget
(
tr
(
"Primary Flight Display"
),
this
);
if
(
headDown1DockWidget
)
containerPFD
->
setWidget
(
headDown1
);
{
addDockWidget
(
Qt
::
RightDockWidgetArea
,
containerPFD
);
HDDisplay
*
hdd
=
dynamic_cast
<
HDDisplay
*>
(
headDown1DockWidget
->
widget
());
if
(
hdd
)
QDockWidget
*
containerPayload
=
new
QDockWidget
(
tr
(
"Payload Status"
),
this
);
{
containerPayload
->
setWidget
(
headDown2
);
addDockWidget
(
Qt
::
RightDockWidgetArea
,
headDown1DockWidget
);
addDockWidget
(
Qt
::
RightDockWidgetArea
,
containerPayload
);
headDown1DockWidget
->
show
();
hdd
->
start
();
}
headDown1
->
start
();
}
headDown2
->
start
();
if
(
headDown2DockWidget
)
{
HDDisplay
*
hdd
=
dynamic_cast
<
HDDisplay
*>
(
headDown2DockWidget
->
widget
());
if
(
hdd
)
{
addDockWidget
(
Qt
::
RightDockWidgetArea
,
headDown2DockWidget
);
headDown2DockWidget
->
show
();
hdd
->
start
();
}
}
// UAS CONTROL
// UAS CONTROL
QDockWidget
*
containerControl
=
new
QDockWidget
(
tr
(
"Control"
),
this
);
if
(
controlDockWidget
)
containerControl
->
setWidget
(
control
);
{
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
containerControl
);
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
controlDockWidget
);
controlDockWidget
->
show
();
}
// UAS LIST
// UAS LIST
QDockWidget
*
containerUASList
=
new
QDockWidget
(
tr
(
"Unmanned Systems"
),
this
);
if
(
listDockWidget
)
containerUASList
->
setWidget
(
list
);
{
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
containerUASList
);
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
listDockWidget
);
listDockWidget
->
show
();
}
// UAS STATUS
// UAS STATUS
QDockWidget
*
containerStatus
=
new
QDockWidget
(
tr
(
"Status Details"
),
this
);
if
(
infoDockWidget
)
containerStatus
->
setWidget
(
info
);
{
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
containerStatus
);
addDockWidget
(
Qt
::
LeftDockWidgetArea
,
infoDockWidget
);
infoDockWidget
->
show
();
}
// WAYPOINT LIST
// WAYPOINT LIST
QDockWidget
*
containerWaypoints
=
new
QDockWidget
(
tr
(
"Waypoint List"
),
this
);
if
(
waypointsDockWidget
)
containerWaypoints
->
setWidget
(
waypoints
);
{
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
containerWaypoints
);
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
waypointsDockWidget
);
waypointsDockWidget
->
show
();
}
// DEBUG CONSOLE
// DEBUG CONSOLE
QDockWidget
*
containerComm
=
new
QDockWidget
(
tr
(
"Communication Console"
),
this
);
if
(
debugConsoleDockWidget
)
containerComm
->
setWidget
(
debugConsole
);
{
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
containerComm
);
addDockWidget
(
Qt
::
BottomDockWidgetArea
,
debugConsoleDockWidget
);
debugConsoleDockWidget
->
show
();
}
// OBJECT DETECTION
// OBJECT DETECTION
QDockWidget
*
containerObjRec
=
new
QDockWidget
(
tr
(
"Object Recognition"
),
this
);
if
(
detectionDockWidget
)
containerObjRec
->
setWidget
(
detection
);
{
addDockWidget
(
Qt
::
RightDockWidgetArea
,
containerObjRec
);
addDockWidget
(
Qt
::
RightDockWidgetArea
,
detectionDockWidget
);
detectionDockWidget
->
show
();
}
// LINE CHART
// LINE CHART
linechart
->
setActive
(
true
);
if
(
linechartWidget
)
centerStack
->
setCurrentWidget
(
linechart
);
{
QStackedWidget
*
centerStack
=
dynamic_cast
<
QStackedWidget
*>
(
centralWidget
());
if
(
centerStack
)
{
linechartWidget
->
setActive
(
true
);
centerStack
->
setCurrentWidget
(
linechartWidget
);
}
}
// ONBOARD PARAMETERS
// ONBOARD PARAMETERS
QDockWidget
*
containerParams
=
new
QDockWidget
(
tr
(
"Onboard Parameters"
),
this
);
if
(
parametersDockWidget
)
containerParams
->
setWidget
(
parameters
);
{
addDockWidget
(
Qt
::
RightDockWidgetArea
,
containerParams
);
addDockWidget
(
Qt
::
RightDockWidgetArea
,
parametersDockWidget
);
parametersDockWidget
->
show
();
}
this
->
show
();
this
->
show
();
}
}
...
...
src/ui/MainWindow.h
View file @
bb350243
...
@@ -154,24 +154,26 @@ protected:
...
@@ -154,24 +154,26 @@ protected:
LinkInterface
*
udpLink
;
LinkInterface
*
udpLink
;
QSettings
settings
;
QSettings
settings
;
UASControlWidget
*
control
;
// Center widgets
Linecharts
*
linechart
;
QPointer
<
Linecharts
>
linechartWidget
;
UASInfoWidget
*
info
;
QPointer
<
HUD
>
hudWidget
;
CameraView
*
camera
;
QPointer
<
MapWidget
>
mapWidget
;
UASListWidget
*
list
;
QPointer
<
XMLCommProtocolWidget
>
protocolWidget
;
WaypointList
*
waypoints
;
QPointer
<
QGCDataPlot2D
>
dataplotWidget
;
ObjectDetectionView
*
detection
;
// Dock widgets
HUD
*
hud
;
QPointer
<
QDockWidget
>
controlDockWidget
;
DebugConsole
*
debugConsole
;
QPointer
<
QDockWidget
>
infoDockWidget
;
MapWidget
*
map
;
QPointer
<
QDockWidget
>
cameraDockWidget
;
ParameterInterface
*
parameters
;
QPointer
<
QDockWidget
>
listDockWidget
;
XMLCommProtocolWidget
*
protocol
;
QPointer
<
QDockWidget
>
waypointsDockWidget
;
HDDisplay
*
headDown1
;
QPointer
<
QDockWidget
>
detectionDockWidget
;
HDDisplay
*
headDown2
;
QPointer
<
QDockWidget
>
debugConsoleDockWidget
;
WatchdogControl
*
watchdogControl
;
QPointer
<
QDockWidget
>
parametersDockWidget
;
HSIDisplay
*
hsi
;
QPointer
<
QDockWidget
>
headDown1DockWidget
;
QGCDataPlot2D
*
dataplot
;
QPointer
<
QDockWidget
>
headDown2DockWidget
;
QGCRemoteControlView
*
rcView
;
QPointer
<
QDockWidget
>
watchdogControlDockWidget
;
QPointer
<
QDockWidget
>
hsiDockWidget
;
QPointer
<
QDockWidget
>
rcViewDockWidget
;
// Popup widgets
// Popup widgets
JoystickWidget
*
joystickWidget
;
JoystickWidget
*
joystickWidget
;
...
@@ -187,9 +189,6 @@ protected:
...
@@ -187,9 +189,6 @@ protected:
QAction
*
killUASAct
;
QAction
*
killUASAct
;
QAction
*
simulateUASAct
;
QAction
*
simulateUASAct
;
QDockWidget
*
controlDock
;
QStackedWidget
*
centerStack
;
LogCompressor
*
comp
;
LogCompressor
*
comp
;
QString
screenFileName
;
QString
screenFileName
;
QTimer
*
videoTimer
;
QTimer
*
videoTimer
;
...
...
src/ui/QGCParamWidget.cc
View file @
bb350243
...
@@ -2,9 +2,7 @@
...
@@ -2,9 +2,7 @@
QGroundControl Open Source Ground Control Station
QGroundControl Open Source Ground Control Station
(c) 2009, 2010 QGROUNDCONTROL/PIXHAWK PROJECT
(c) 2009, 2010 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
<http://www.qgroundcontrol.org>
<http://pixhawk.ethz.ch>
This file is part of the QGROUNDCONTROL project
This file is part of the QGROUNDCONTROL project
...
@@ -22,7 +20,6 @@ This file is part of the QGROUNDCONTROL project
...
@@ -22,7 +20,6 @@ This file is part of the QGROUNDCONTROL project
along with QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.
along with QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.
======================================================================*/
======================================================================*/
/**
/**
* @file
* @file
* @brief Implementation of class QGCParamWidget
* @brief Implementation of class QGCParamWidget
...
...
src/ui/QGCRemoteControlView.cc
View file @
bb350243
...
@@ -52,18 +52,21 @@ QGCRemoteControlView::QGCRemoteControlView(QWidget *parent) :
...
@@ -52,18 +52,21 @@ QGCRemoteControlView::QGCRemoteControlView(QWidget *parent) :
nameLabel
=
new
QLabel
(
this
);
nameLabel
=
new
QLabel
(
this
);
nameLabel
->
setText
(
"No MAV selected yet.."
);
nameLabel
->
setText
(
"No MAV selected yet.."
);
layout
->
addWidget
(
nameLabel
,
0
,
0
,
1
,
2
);
layout
->
addWidget
(
nameLabel
,
0
,
0
,
1
,
2
);
// Add spacer left of button
layout
->
addItem
(
new
QSpacerItem
(
0
,
0
,
QSizePolicy
::
Expanding
,
QSizePolicy
::
Expanding
),
2
,
0
);
// RSSI bar
// Set stretch to maximize spacer, not button
// Create new layout
layout
->
setColumnStretch
(
0
,
100
);
QHBoxLayout
*
rssiLayout
=
new
QHBoxLayout
();
layout
->
setColumnStretch
(
1
,
1
);
rssiLayout
->
setSpacing
(
5
);
// Calibrate button
// Add content
QPushButton
*
calibrateButton
=
new
QPushButton
(
this
);
rssiLayout
->
addWidget
(
new
QLabel
(
tr
(
"Signal"
),
this
));
calibrateButton
->
setText
(
tr
(
"Calibrate"
));
// Append raw label
// Connect to calibration slot
// Append progress bar
connect
(
calibrateButton
,
SIGNAL
(
clicked
()),
this
,
SLOT
(
calibrate
()));
rssiBar
=
new
QProgressBar
(
this
);
// Add button
rssiBar
->
setMinimum
(
0
);
layout
->
addWidget
(
calibrateButton
,
2
,
1
);
rssiBar
->
setMaximum
(
100
);
rssiBar
->
setValue
(
0
);
rssiLayout
->
addWidget
(
rssiBar
);
layout
->
addItem
(
rssiLayout
,
2
,
0
,
1
,
2
);
setVisible
(
false
);
setVisible
(
false
);
connect
(
UASManager
::
instance
(),
SIGNAL
(
activeUASSet
(
int
)),
this
,
SLOT
(
setUASId
(
int
)));
connect
(
UASManager
::
instance
(),
SIGNAL
(
activeUASSet
(
int
)),
this
,
SLOT
(
setUASId
(
int
)));
...
@@ -75,11 +78,6 @@ QGCRemoteControlView::~QGCRemoteControlView()
...
@@ -75,11 +78,6 @@ QGCRemoteControlView::~QGCRemoteControlView()
delete
channelLayout
;
delete
channelLayout
;
}
}
void
QGCRemoteControlView
::
calibrate
()
{
// Run auto-calibration
}
void
QGCRemoteControlView
::
setUASId
(
int
id
)
void
QGCRemoteControlView
::
setUASId
(
int
id
)
{
{
if
(
uasId
!=
-
1
)
if
(
uasId
!=
-
1
)
...
@@ -89,6 +87,7 @@ void QGCRemoteControlView::setUASId(int id)
...
@@ -89,6 +87,7 @@ void QGCRemoteControlView::setUASId(int id)
{
{
// The UAS exists, disconnect any existing connections
// The UAS exists, disconnect any existing connections
disconnect
(
uas
,
SIGNAL
(
remoteControlChannelChanged
(
int
,
float
,
float
)),
this
,
SLOT
(
setChannel
(
int
,
float
,
float
)));
disconnect
(
uas
,
SIGNAL
(
remoteControlChannelChanged
(
int
,
float
,
float
)),
this
,
SLOT
(
setChannel
(
int
,
float
,
float
)));
disconnect
(
uas
,
SIGNAL
(
remoteControlRSSIChanged
(
float
)),
this
,
SLOT
(
setRemoteRSSI
(
float
)));
}
}
}
}
...
@@ -99,6 +98,7 @@ void QGCRemoteControlView::setUASId(int id)
...
@@ -99,6 +98,7 @@ void QGCRemoteControlView::setUASId(int id)
// New UAS exists, connect
// New UAS exists, connect
nameLabel
->
setText
(
QString
(
"RC Input of %1"
).
arg
(
newUAS
->
getUASName
()));
nameLabel
->
setText
(
QString
(
"RC Input of %1"
).
arg
(
newUAS
->
getUASName
()));
connect
(
newUAS
,
SIGNAL
(
remoteControlChannelChanged
(
int
,
float
,
float
)),
this
,
SLOT
(
setChannel
(
int
,
float
,
float
)));
connect
(
newUAS
,
SIGNAL
(
remoteControlChannelChanged
(
int
,
float
,
float
)),
this
,
SLOT
(
setChannel
(
int
,
float
,
float
)));
connect
(
newUAS
,
SIGNAL
(
remoteControlRSSIChanged
(
float
)),
this
,
SLOT
(
setRemoteRSSI
(
float
)));
}
}
}
}
...
@@ -132,7 +132,7 @@ void QGCRemoteControlView::setRemoteRSSI(float rssiNormalized)
...
@@ -132,7 +132,7 @@ void QGCRemoteControlView::setRemoteRSSI(float rssiNormalized)
void
QGCRemoteControlView
::
appendChannelWidget
(
int
channelId
)
void
QGCRemoteControlView
::
appendChannelWidget
(
int
channelId
)
{
{
// Create new layout
// Create new layout
QHBoxLayout
*
layout
=
new
QHBoxLayout
(
this
);
QHBoxLayout
*
layout
=
new
QHBoxLayout
();
// Add content
// Add content
layout
->
addWidget
(
new
QLabel
(
QString
(
"Channel %1"
).
arg
(
channelId
+
1
),
this
));
layout
->
addWidget
(
new
QLabel
(
QString
(
"Channel %1"
).
arg
(
channelId
+
1
),
this
));
QLabel
*
raw
=
new
QLabel
(
this
);
QLabel
*
raw
=
new
QLabel
(
this
);
...
...
src/ui/QGCRemoteControlView.h
View file @
bb350243
...
@@ -51,7 +51,6 @@ public slots:
...
@@ -51,7 +51,6 @@ public slots:
void
setUASId
(
int
id
);
void
setUASId
(
int
id
);
void
setChannel
(
int
channelId
,
float
raw
,
float
normalized
);
void
setChannel
(
int
channelId
,
float
raw
,
float
normalized
);
void
setRemoteRSSI
(
float
rssiNormalized
);
void
setRemoteRSSI
(
float
rssiNormalized
);
void
calibrate
();
void
redraw
();
void
redraw
();
protected
slots
:
protected
slots
:
...
@@ -67,6 +66,7 @@ protected:
...
@@ -67,6 +66,7 @@ protected:
QVector
<
float
>
normalized
;
QVector
<
float
>
normalized
;
QVector
<
QLabel
*>
rawLabels
;
QVector
<
QLabel
*>
rawLabels
;
QVector
<
QProgressBar
*>
progressBars
;
QVector
<
QProgressBar
*>
progressBars
;
QProgressBar
*
rssiBar
;
QLabel
*
nameLabel
;
QLabel
*
nameLabel
;
private:
private:
...
...
src/ui/QGCSensorSettingsWidget.cc
View file @
bb350243
...
@@ -46,6 +46,12 @@ QGCSensorSettingsWidget::QGCSensorSettingsWidget(UASInterface* uas, QWidget *par
...
@@ -46,6 +46,12 @@ QGCSensorSettingsWidget::QGCSensorSettingsWidget(UASInterface* uas, QWidget *par
connect
(
ui
->
sendExtra1CheckBox
,
SIGNAL
(
toggled
(
bool
)),
mav
,
SLOT
(
enableExtra1Transmission
(
bool
)));
connect
(
ui
->
sendExtra1CheckBox
,
SIGNAL
(
toggled
(
bool
)),
mav
,
SLOT
(
enableExtra1Transmission
(
bool
)));
connect
(
ui
->
sendExtra2CheckBox
,
SIGNAL
(
toggled
(
bool
)),
mav
,
SLOT
(
enableExtra2Transmission
(
bool
)));
connect
(
ui
->
sendExtra2CheckBox
,
SIGNAL
(
toggled
(
bool
)),
mav
,
SLOT
(
enableExtra2Transmission
(
bool
)));
connect
(
ui
->
sendExtra3CheckBox
,
SIGNAL
(
toggled
(
bool
)),
mav
,
SLOT
(
enableExtra3Transmission
(
bool
)));
connect
(
ui
->
sendExtra3CheckBox
,
SIGNAL
(
toggled
(
bool
)),
mav
,
SLOT
(
enableExtra3Transmission
(
bool
)));
// Calibration
connect
(
ui
->
rcCalButton
,
SIGNAL
(
clicked
()),
mav
,
SLOT
(
startRadioControlCalibration
()));
connect
(
ui
->
magCalButton
,
SIGNAL
(
clicked
()),
mav
,
SLOT
(
startMagnetometerCalibration
()));
connect
(
ui
->
pressureCalButton
,
SIGNAL
(
clicked
()),
mav
,
SLOT
(
startPressureCalibration
()));
connect
(
ui
->
gyroCalButton
,
SIGNAL
(
clicked
()),
mav
,
SLOT
(
startGyroscopeCalibration
()));
}
}
QGCSensorSettingsWidget
::~
QGCSensorSettingsWidget
()
QGCSensorSettingsWidget
::~
QGCSensorSettingsWidget
()
...
...
src/ui/QGCSensorSettingsWidget.ui
View file @
bb350243
...
@@ -90,38 +90,51 @@
...
@@ -90,38 +90,51 @@
<property
name=
"title"
>
<property
name=
"title"
>
<string>
Calibration Wizards
</string>
<string>
Calibration Wizards
</string>
</property>
</property>
<layout
class=
"QGridLayout"
name=
"gridLayout"
>
<layout
class=
"QGridLayout"
name=
"gridLayout"
columnstretch=
"0,50"
>
<property
name=
"margin"
>
<property
name=
"margin"
>
<number>
6
</number>
<number>
6
</number>
</property>
</property>
<item
row=
"
0
"
column=
"0"
>
<item
row=
"
1
"
column=
"0"
>
<widget
class=
"QPushButton"
name=
"
gyro
CalButton"
>
<widget
class=
"QPushButton"
name=
"
mag
CalButton"
>
<property
name=
"text"
>
<property
name=
"text"
>
<string>
Start
dynamic c
alibration
</string>
<string>
Start
Mag. C
alibration
</string>
</property>
</property>
</widget>
</widget>
</item>
</item>
<item
row=
"
0"
column=
"1
"
>
<item
row=
"
4"
column=
"0
"
>
<widget
class=
"Q
Label"
name=
"gyroCalDate
"
>
<widget
class=
"Q
PushButton"
name=
"gyroCalButton
"
>
<property
name=
"text"
>
<property
name=
"text"
>
<string>
Date unknow
n
</string>
<string>
Start Gyro Calibratio
n
</string>
</property>
</property>
</widget>
</widget>
</item>
</item>
<item
row=
"
1
"
column=
"0"
>
<item
row=
"
0
"
column=
"0"
>
<widget
class=
"QPushButton"
name=
"
mag
CalButton"
>
<widget
class=
"QPushButton"
name=
"
rc
CalButton"
>
<property
name=
"text"
>
<property
name=
"text"
>
<string>
Start
static c
alibration
</string>
<string>
Start
RC C
alibration
</string>
</property>
</property>
</widget>
</widget>
</item>
</item>
<item
row=
"
1"
column=
"1
"
>
<item
row=
"
2"
column=
"0
"
>
<widget
class=
"Q
Label"
name=
"magCalLabel
"
>
<widget
class=
"Q
PushButton"
name=
"pressureCalButton
"
>
<property
name=
"text"
>
<property
name=
"text"
>
<string>
Date unknow
n
</string>
<string>
Start Pressure Calibratio
n
</string>
</property>
</property>
</widget>
</widget>
</item>
</item>
<item
row=
"0"
column=
"1"
>
<spacer
name=
"horizontalSpacer"
>
<property
name=
"orientation"
>
<enum>
Qt::Horizontal
</enum>
</property>
<property
name=
"sizeHint"
stdset=
"0"
>
<size>
<width>
0
</width>
<height>
0
</height>
</size>
</property>
</spacer>
</item>
</layout>
</layout>
</widget>
</widget>
</item>
</item>
...
...
src/ui/uas/UASControlWidget.cc
View file @
bb350243
...
@@ -51,13 +51,13 @@ This file is part of the PIXHAWK project
...
@@ -51,13 +51,13 @@ This file is part of the PIXHAWK project
#define CONTROL_MODE_TEST2 "MODE TEST2"
#define CONTROL_MODE_TEST2 "MODE TEST2"
#define CONTROL_MODE_TEST3 "MODE TEST3"
#define CONTROL_MODE_TEST3 "MODE TEST3"
#define CONTROL_MODE_LOCKED_INDEX
2
#define CONTROL_MODE_LOCKED_INDEX
1
#define CONTROL_MODE_MANUAL_INDEX
3
#define CONTROL_MODE_MANUAL_INDEX
2
#define CONTROL_MODE_GUIDED_INDEX
4
#define CONTROL_MODE_GUIDED_INDEX
3
#define CONTROL_MODE_AUTO_INDEX
5
#define CONTROL_MODE_AUTO_INDEX
4
#define CONTROL_MODE_TEST1_INDEX
6
#define CONTROL_MODE_TEST1_INDEX
5
#define CONTROL_MODE_TEST2_INDEX
7
#define CONTROL_MODE_TEST2_INDEX
6
#define CONTROL_MODE_TEST3_INDEX
8
#define CONTROL_MODE_TEST3_INDEX
7
UASControlWidget
::
UASControlWidget
(
QWidget
*
parent
)
:
QWidget
(
parent
),
UASControlWidget
::
UASControlWidget
(
QWidget
*
parent
)
:
QWidget
(
parent
),
uas
(
0
),
uas
(
0
),
...
...
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