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
ab7869ce
Commit
ab7869ce
authored
Dec 28, 2010
by
Mariano Lizarraga
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'experimental' of git@github.com:pixhawk/qgroundcontrol into mergeRemote
parents
1059752a
cf1558b0
Changes
37
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
37 changed files
with
665 additions
and
213 deletions
+665
-213
qgroundcontrol.pro
qgroundcontrol.pro
+4
-2
Core.cc
src/Core.cc
+3
-0
QGC.h
src/QGC.h
+3
-0
LinkManager.cc
src/comm/LinkManager.cc
+26
-2
LinkManager.h
src/comm/LinkManager.h
+2
-0
MAVLinkSimulationLink.cc
src/comm/MAVLinkSimulationLink.cc
+8
-7
SerialLink.cc
src/comm/SerialLink.cc
+70
-21
Freenect.cc
src/input/Freenect.cc
+1
-1
PxQuadMAV.cc
src/uas/PxQuadMAV.cc
+1
-1
UAS.cc
src/uas/UAS.cc
+3
-5
UASManager.cc
src/uas/UASManager.cc
+5
-0
UASManager.h
src/uas/UASManager.h
+2
-0
CommConfigurationWindow.cc
src/ui/CommConfigurationWindow.cc
+18
-4
CommConfigurationWindow.h
src/ui/CommConfigurationWindow.h
+8
-1
CommSettings.ui
src/ui/CommSettings.ui
+2
-23
HUD.cc
src/ui/HUD.cc
+13
-0
HUD.h
src/ui/HUD.h
+2
-0
MainWindow.cc
src/ui/MainWindow.cc
+288
-18
MainWindow.h
src/ui/MainWindow.h
+4
-1
MainWindow.ui
src/ui/MainWindow.ui
+3
-8
MapWidget.cc
src/ui/MapWidget.cc
+0
-9
ParameterInterface.cc
src/ui/ParameterInterface.cc
+9
-0
QGCMainWindowAPConfigurator.cc
src/ui/QGCMainWindowAPConfigurator.cc
+6
-0
QGCMainWindowAPConfigurator.h
src/ui/QGCMainWindowAPConfigurator.h
+18
-0
SerialConfigurationWindow.cc
src/ui/SerialConfigurationWindow.cc
+1
-9
SerialConfigurationWindow.h
src/ui/SerialConfigurationWindow.h
+0
-6
XMLCommProtocolWidget.cc
src/ui/XMLCommProtocolWidget.cc
+6
-3
LinechartPlot.cc
src/ui/linechart/LinechartPlot.cc
+1
-1
LinechartWidget.cc
src/ui/linechart/LinechartWidget.cc
+9
-1
LinechartWidget.h
src/ui/linechart/LinechartWidget.h
+2
-0
Linecharts.cc
src/ui/linechart/Linecharts.cc
+13
-0
MAV2DIcon.cc
src/ui/map/MAV2DIcon.cc
+49
-40
GCManipulator.cc
src/ui/map3D/GCManipulator.cc
+4
-3
QGCGoogleEarthView.cc
src/ui/map3D/QGCGoogleEarthView.cc
+69
-46
QGCGoogleEarthView.h
src/ui/map3D/QGCGoogleEarthView.h
+6
-0
QMap3D.cc
src/ui/map3D/QMap3D.cc
+5
-0
UASControlWidget.cc
src/ui/uas/UASControlWidget.cc
+1
-1
No files found.
qgroundcontrol.pro
View file @
ab7869ce
...
...
@@ -249,7 +249,8 @@ HEADERS += src/MG.h \
src
/
ui
/
SlugsHilSim
.
h
\
src
/
ui
/
SlugsPIDControl
.
h
\
src
/
ui
/
SlugsVideoCamControl
.
h
\
src
/
ui
/
SlugsPadCameraControl
.
h
src
/
ui
/
SlugsPadCameraControl
.
h
\
src
/
ui
/
QGCMainWindowAPConfigurator
.
h
contains
(
DEPENDENCIES_PRESENT
,
osg
)
{
message
(
"Including headers for OpenSceneGraph"
)
...
...
@@ -359,7 +360,8 @@ SOURCES += src/main.cc \
src
/
ui
/
SlugsHilSim
.
cc
\
src
/
ui
/
SlugsPIDControl
.
cpp
\
src
/
ui
/
SlugsVideoCamControl
.
cpp
\
src
/
ui
/
SlugsPadCameraControl
.
cpp
src
/
ui
/
SlugsPadCameraControl
.
cpp
\
src
/
ui
/
QGCMainWindowAPConfigurator
.
cc
contains
(
DEPENDENCIES_PRESENT
,
osg
)
{
message
(
"Including sources for OpenSceneGraph"
)
...
...
src/Core.cc
View file @
ab7869ce
...
...
@@ -157,6 +157,9 @@ Core::Core(int &argc, char* argv[]) : QApplication(argc, argv)
**/
Core
::~
Core
()
{
//mainWindow->storeSettings();
mainWindow
->
hide
();
mainWindow
->
deleteLater
();
// Delete singletons
delete
LinkManager
::
instance
();
delete
UASManager
::
instance
();
...
...
src/QGC.h
View file @
ab7869ce
...
...
@@ -14,6 +14,9 @@ namespace QGC
/** @brief Get the current ground time in microseconds */
quint64
groundTimeUsecs
();
const
QString
APPNAME
=
"QGROUNDCONTROL"
;
const
QString
COMPANYNAME
=
"OPENMAV"
;
}
#endif // QGC_H
src/comm/LinkManager.cc
View file @
ab7869ce
...
...
@@ -32,6 +32,7 @@ This file is part of the QGROUNDCONTROL project
#include <QList>
#include <QApplication>
#include "LinkManager.h"
#include <iostream>
#include <QDebug>
...
...
@@ -65,6 +66,7 @@ LinkManager::~LinkManager()
void
LinkManager
::
add
(
LinkInterface
*
link
)
{
if
(
!
link
)
return
;
links
.
append
(
link
);
emit
newLink
(
link
);
}
...
...
@@ -73,6 +75,7 @@ void LinkManager::addProtocol(LinkInterface* link, ProtocolInterface* protocol)
{
// Connect link to protocol
// the protocol will receive new bytes from the link
if
(
!
link
||
!
protocol
)
return
;
connect
(
link
,
SIGNAL
(
bytesReceived
(
LinkInterface
*
,
QByteArray
)),
protocol
,
SLOT
(
receiveBytes
(
LinkInterface
*
,
QByteArray
)));
// Store the connection information in the protocol links map
protocolLinks
.
insertMulti
(
protocol
,
link
);
...
...
@@ -91,7 +94,8 @@ bool LinkManager::connectAll()
foreach
(
LinkInterface
*
link
,
links
)
{
if
(
!
link
->
connect
())
allConnected
=
false
;
if
(
!
link
)
{}
else
if
(
!
link
->
connect
())
allConnected
=
false
;
}
return
allConnected
;
...
...
@@ -103,7 +107,9 @@ bool LinkManager::disconnectAll()
foreach
(
LinkInterface
*
link
,
links
)
{
if
(
!
link
->
disconnect
())
allDisconnected
=
false
;
//static int i=0;
if
(
!
link
){}
else
if
(
!
link
->
disconnect
())
allDisconnected
=
false
;
}
return
allDisconnected
;
...
...
@@ -111,14 +117,32 @@ bool LinkManager::disconnectAll()
bool
LinkManager
::
connectLink
(
LinkInterface
*
link
)
{
if
(
!
link
)
return
false
;
return
link
->
connect
();
}
bool
LinkManager
::
disconnectLink
(
LinkInterface
*
link
)
{
if
(
!
link
)
return
false
;
return
link
->
disconnect
();
}
bool
LinkManager
::
removeLink
(
LinkInterface
*
link
)
{
if
(
link
)
{
for
(
int
i
=
0
;
i
<
QList
<
LinkInterface
*>
(
links
).
size
();
i
++
)
{
if
(
link
==
links
.
at
(
i
))
{
links
.
removeAt
(
i
);
//remove from link list
}
}
return
true
;
}
return
false
;
}
/**
* The access time is linear in the number of links.
*
...
...
src/comm/LinkManager.h
View file @
ab7869ce
...
...
@@ -67,6 +67,8 @@ public slots:
void
add
(
LinkInterface
*
link
);
void
addProtocol
(
LinkInterface
*
link
,
ProtocolInterface
*
protocol
);
bool
removeLink
(
LinkInterface
*
link
);
bool
connectAll
();
bool
connectLink
(
LinkInterface
*
link
);
...
...
src/comm/MAVLinkSimulationLink.cc
View file @
ab7869ce
...
...
@@ -559,16 +559,17 @@ void MAVLinkSimulationLink::mainloop()
// Send controller states
// uint8_t attControl = 1;
// uint8_t posXYControl = 1;
// uint8_t posZControl = 0;
// uint8_t posYawControl = 1;
// uint8_t gpsLock = 2;
// uint8_t visLock = 3;
//uint8_t posLock = qMax(gpsLock, visLock);
#ifdef MAVLINK_ENABLED_PIXHAWK
uint8_t
attControl
=
1
;
uint8_t
posXYControl
=
1
;
uint8_t
posZControl
=
0
;
uint8_t
posYawControl
=
1
;
uint8_t
gpsLock
=
2
;
uint8_t
visLock
=
3
;
uint8_t
posLock
=
qMax
(
gpsLock
,
visLock
);
messageSize
=
mavlink_msg_control_status_pack
(
systemId
,
componentId
,
&
msg
,
posLock
,
visLock
,
gpsLock
,
attControl
,
posXYControl
,
posZControl
,
posYawControl
);
#endif
...
...
src/comm/SerialLink.cc
View file @
ab7869ce
...
...
@@ -30,10 +30,13 @@ This file is part of the QGROUNDCONTROL project
#include <QTimer>
#include <QDebug>
#include <QSettings>
#include <QMutexLocker>
#include "SerialLink.h"
#include "LinkManager.h"
#include "QGC.h"
#include <MG.h>
#include <iostream>
#ifdef _WIN32
#include "windows.h"
#endif
...
...
@@ -54,12 +57,41 @@ SerialLink::SerialLink(QString portname, BaudRateType baudrate, FlowType flow, P
#endif
// Set unique ID and add link to the list of links
this
->
id
=
getNextLinkId
();
this
->
baudrate
=
baudrate
;
this
->
flow
=
flow
;
this
->
parity
=
parity
;
this
->
dataBits
=
dataBits
;
this
->
stopBits
=
stopBits
;
this
->
timeout
=
1
;
///< The timeout controls how long the program flow should wait for new serial bytes. As we're polling, we don't want to wait at all.
// Load defaults from settings
QSettings
settings
(
QGC
::
COMPANYNAME
,
QGC
::
APPNAME
);
settings
.
sync
();
if
(
settings
.
contains
(
"SERIALLINK_COMM_PORT"
))
{
this
->
porthandle
=
settings
.
value
(
"SERIALLINK_COMM_PORT"
).
toString
();
}
// *nix (Linux, MacOS tested) serial port support
port
=
new
QextSerialPort
(
porthandle
,
QextSerialPort
::
Polling
);
//port = new QextSerialPort(porthandle, QextSerialPort::EventDriven);
if
(
settings
.
contains
(
"SERIALLINK_COMM_PORT"
))
{
setBaudRate
(
settings
.
value
(
"SERIALLINK_COMM_BAUD"
).
toInt
());
setParityType
(
settings
.
value
(
"SERIALLINK_COMM_PARITY"
).
toInt
());
setStopBitsType
(
settings
.
value
(
"SERIALLINK_COMM_STOPBITS"
).
toInt
());
setDataBitsType
(
settings
.
value
(
"SERIALLINK_COMM_DATABITS"
).
toInt
());
}
else
{
this
->
baudrate
=
baudrate
;
this
->
flow
=
flow
;
this
->
parity
=
parity
;
this
->
dataBits
=
dataBits
;
this
->
stopBits
=
stopBits
;
this
->
timeout
=
1
;
///< The timeout controls how long the program flow should wait for new serial bytes. As we're polling, we don't want to wait at all.
}
port
->
setTimeout
(
timeout
);
// Timeout of 0 ms, we don't want to wait for data, we just poll again next time
port
->
setBaudRate
(
baudrate
);
port
->
setFlowControl
(
flow
);
port
->
setParity
(
parity
);
port
->
setDataBits
(
dataBits
);
port
->
setStopBits
(
stopBits
);
// Set the port name
if
(
porthandle
==
""
)
...
...
@@ -88,15 +120,7 @@ SerialLink::SerialLink(QString portname, BaudRateType baudrate, FlowType flow, P
//some other error occurred. Inform user.
}
#else
// *nix (Linux, MacOS tested) serial port support
port
=
new
QextSerialPort
(
porthandle
,
QextSerialPort
::
Polling
);
//port = new QextSerialPort(porthandle, QextSerialPort::EventDriven);
port
->
setTimeout
(
timeout
);
// Timeout of 0 ms, we don't want to wait for data, we just poll again next time
port
->
setBaudRate
(
baudrate
);
port
->
setFlowControl
(
flow
);
port
->
setParity
(
parity
);
port
->
setDataBits
(
dataBits
);
port
->
setStopBits
(
stopBits
);
#endif
// Link is setup, register it with link manager
...
...
@@ -106,7 +130,7 @@ SerialLink::SerialLink(QString portname, BaudRateType baudrate, FlowType flow, P
SerialLink
::~
SerialLink
()
{
disconnect
();
delete
port
;
if
(
port
)
delete
port
;
port
=
NULL
;
}
...
...
@@ -239,6 +263,8 @@ bool SerialLink::disconnect()
port
->
close
();
dataMutex
.
unlock
();
if
(
this
->
isRunning
())
this
->
terminate
();
//stop running the thread, restart it upon connect
bool
closed
=
true
;
//port->isOpen();
...
...
@@ -298,6 +324,15 @@ bool SerialLink::hardwareConnect()
if
(
connectionUp
)
{
emit
connected
();
emit
connected
(
true
);
// Store settings
QSettings
settings
(
QGC
::
COMPANYNAME
,
QGC
::
APPNAME
);
settings
.
setValue
(
"SERIALLINK_COMM_PORT"
,
this
->
porthandle
);
settings
.
setValue
(
"SERIALLINK_COMM_BAUD"
,
getBaudRate
());
settings
.
setValue
(
"SERIALLINK_COMM_PARITY"
,
getParityType
());
settings
.
setValue
(
"SERIALLINK_COMM_STOPBITS"
,
getStopBitsType
());
settings
.
setValue
(
"SERIALLINK_COMM_DATABITS"
,
getDataBitsType
());
settings
.
sync
();
}
return
connectionUp
;
...
...
@@ -311,7 +346,14 @@ bool SerialLink::hardwareConnect()
**/
bool
SerialLink
::
isConnected
()
{
return
port
->
isOpen
();
if
(
port
)
{
return
port
->
isOpen
();
}
else
{
return
false
;
}
}
int
SerialLink
::
getId
()
...
...
@@ -516,7 +558,7 @@ bool SerialLink::setPortName(QString portName)
this
->
porthandle
=
"
\\\\
.
\\
"
+
this
->
porthandle
;
}
#endif
delete
port
;
if
(
port
)
delete
port
;
port
=
new
QextSerialPort
(
porthandle
,
QextSerialPort
::
Polling
);
port
->
setBaudRate
(
baudrate
);
...
...
@@ -707,9 +749,16 @@ bool SerialLink::setBaudRate(int rate)
break
;
}
port
->
setBaudRate
(
this
->
baudrate
);
if
(
reconnect
)
connect
();
return
accepted
;
if
(
port
)
{
port
->
setBaudRate
(
this
->
baudrate
);
if
(
reconnect
)
connect
();
return
accepted
;
}
else
{
return
false
;
}
}
bool
SerialLink
::
setFlowType
(
int
flow
)
...
...
src/input/Freenect.cc
View file @
ab7869ce
...
...
@@ -341,7 +341,7 @@ Freenect::readConfigFile(void)
settings
.
value
(
"transform/R33"
).
toDouble
(),
settings
.
value
(
"transform/Tz"
).
toDouble
(),
0.0
,
0.0
,
0.0
,
1.0
);
transformMatrix
=
transformMatrix
.
transpos
ed
();
transformMatrix
=
transformMatrix
.
invert
ed
();
baseline
=
settings
.
value
(
"transform/baseline"
).
toDouble
();
disparityOffset
=
settings
.
value
(
"transform/disparity_offset"
).
toDouble
();
...
...
src/uas/PxQuadMAV.cc
View file @
ab7869ce
...
...
@@ -41,12 +41,12 @@ void PxQuadMAV::receiveMessage(LinkInterface* link, mavlink_message_t message)
{
// Let UAS handle the default message set
UAS
::
receiveMessage
(
link
,
message
);
// mavlink_message_t* msg = &message;
//qDebug() << "PX RECEIVED" << msg->sysid << msg->compid << msg->msgid;
// Only compile this portion if matching MAVLink packets have been compiled
#ifdef MAVLINK_ENABLED_PIXHAWK
mavlink_message_t
*
msg
=
&
message
;
if
(
message
.
sysid
==
uasId
)
{
...
...
src/uas/UAS.cc
View file @
ab7869ce
...
...
@@ -95,6 +95,7 @@ UAS::UAS(MAVLinkProtocol* protocol, int id) : UASInterface(),
UAS
::~
UAS
()
{
delete
links
;
links
=
NULL
;
}
int
UAS
::
getUASID
()
const
...
...
@@ -126,6 +127,7 @@ void UAS::setSelected()
void
UAS
::
receiveMessage
(
LinkInterface
*
link
,
mavlink_message_t
message
)
{
if
(
!
link
)
return
;
if
(
!
links
->
contains
(
link
))
{
addLink
(
link
);
...
...
@@ -371,11 +373,6 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message)
GAudioOutput
::
instance
()
->
notifyPositive
();
}
positionLock
=
true
;
// Send to patch antenna
mavlink_message_t
msg
;
mavlink_msg_global_position_pack
(
MG
::
SYSTEM
::
ID
,
MG
::
SYSTEM
::
COMPID
,
&
msg
,
pos
.
usec
,
pos
.
lat
,
pos
.
lon
,
pos
.
alt
,
pos
.
vx
,
pos
.
vy
,
pos
.
vz
);
sendMessage
(
msg
);
}
break
;
case
MAVLINK_MSG_ID_GPS_RAW
:
...
...
@@ -839,6 +836,7 @@ void UAS::sendMessage(mavlink_message_t message)
void
UAS
::
sendMessage
(
LinkInterface
*
link
,
mavlink_message_t
message
)
{
if
(
!
link
)
return
;
// Create buffer
uint8_t
buffer
[
MAVLINK_MAX_PACKET_LEN
];
// Write message into buffer, prepending start sign
...
...
src/uas/UASManager.cc
View file @
ab7869ce
...
...
@@ -85,6 +85,11 @@ void UASManager::addUAS(UASInterface* uas)
}
}
QList
<
UASInterface
*>
UASManager
::
getUASList
()
{
return
systems
.
values
();
}
UASInterface
*
UASManager
::
getActiveUAS
()
{
if
(
!
activeUAS
)
...
...
src/uas/UASManager.h
View file @
ab7869ce
...
...
@@ -69,6 +69,8 @@ public:
**/
UASInterface
*
getUASForId
(
int
id
);
QList
<
UASInterface
*>
getUASList
();
public
slots
:
...
...
src/ui/CommConfigurationWindow.cc
View file @
ab7869ce
...
...
@@ -47,6 +47,7 @@ This file is part of the QGROUNDCONTROL project
#endif
#include "MAVLinkProtocol.h"
#include "MAVLinkSettingsWidget.h"
#include "LinkManager.h"
CommConfigurationWindow
::
CommConfigurationWindow
(
LinkInterface
*
link
,
ProtocolInterface
*
protocol
,
QWidget
*
parent
,
Qt
::
WindowFlags
flags
)
:
QWidget
(
parent
,
flags
)
{
...
...
@@ -58,6 +59,10 @@ CommConfigurationWindow::CommConfigurationWindow(LinkInterface* link, ProtocolIn
// add link types
ui
.
linkType
->
addItem
(
"Serial"
,
QGC_LINK_SERIAL
);
ui
.
linkType
->
addItem
(
"UDP"
,
QGC_LINK_UDP
);
ui
.
linkType
->
addItem
(
"Simulation"
,
QGC_LINK_SIMULATION
);
ui
.
linkType
->
addItem
(
"Serial Forwarding"
,
QGC_LINK_FORWARDING
);
ui
.
connectionType
->
addItem
(
"MAVLink"
,
QGC_PROTOCOL_MAVLINK
);
// Create action to open this menu
// Create configuration action for this link
...
...
@@ -195,11 +200,20 @@ void CommConfigurationWindow::setLinkName(QString name)
void
CommConfigurationWindow
::
remove
()
{
link
->
disconnect
();
//delete link;
//delete action;
if
(
action
)
delete
action
;
//delete action first since it has a pointer to link
action
=
NULL
;
if
(
link
)
{
LinkManager
::
instance
()
->
removeLink
(
link
);
//remove link from LinkManager list
link
->
disconnect
();
//disconnect port, and also calls terminate() to stop the thread
if
(
link
->
isRunning
())
link
->
terminate
();
// terminate() the serial thread just in case it is still running
link
->
wait
();
// wait() until thread is stoped before deleting
delete
link
;
}
link
=
NULL
;
this
->
window
()
->
close
();
qDebug
()
<<
"TODO: Link cannot be deleted: CommConfigurationWindow::remove() NOT IMPLEMENTED!"
;
}
void
CommConfigurationWindow
::
connectionState
(
bool
connect
)
...
...
src/ui/CommConfigurationWindow.h
View file @
ab7869ce
...
...
@@ -42,7 +42,14 @@ This file is part of the QGROUNDCONTROL project
enum
qgc_link_t
{
QGC_LINK_SERIAL
,
QGC_LINK_UDP
QGC_LINK_UDP
,
QGC_LINK_SIMULATION
,
QGC_LINK_FORWARDING
};
enum
qgc_protocol_t
{
QGC_PROTOCOL_MAVLINK
};
#ifdef OPAL_RT
...
...
src/ui/CommSettings.ui
View file @
ab7869ce
...
...
@@ -43,23 +43,7 @@
</widget>
</item>
<item
row=
"0"
column=
"1"
>
<widget
class=
"QComboBox"
name=
"linkType"
>
<item>
<property
name=
"text"
>
<string>
Serial Link
</string>
</property>
</item>
<item>
<property
name=
"text"
>
<string>
UDP
</string>
</property>
</item>
<item>
<property
name=
"text"
>
<string>
Simulation
</string>
</property>
</item>
</widget>
<widget
class=
"QComboBox"
name=
"linkType"
/>
</item>
<item
row=
"1"
column=
"0"
>
<widget
class=
"QLabel"
name=
"label_5"
>
...
...
@@ -71,13 +55,8 @@
<item
row=
"1"
column=
"1"
>
<widget
class=
"QComboBox"
name=
"connectionType"
>
<property
name=
"currentIndex"
>
<number>
0
</number>
<number>
-1
</number>
</property>
<item>
<property
name=
"text"
>
<string>
MAVLink
</string>
</property>
</item>
</widget>
</item>
</layout>
...
...
src/ui/HUD.cc
View file @
ab7869ce
...
...
@@ -165,6 +165,19 @@ HUD::~HUD()
}
void
HUD
::
showEvent
(
QShowEvent
*
event
)
{
Q_UNUSED
(
event
);
if
(
isVisible
())
{
refreshTimer
->
start
();
}
else
{
refreshTimer
->
stop
();
}
}
void
HUD
::
start
()
{
refreshTimer
->
start
();
...
...
src/ui/HUD.h
View file @
ab7869ce
...
...
@@ -123,6 +123,8 @@ protected:
float
refLineWidthToPen
(
float
line
);
/** @brief Rotate a polygon around a point clockwise */
void
rotatePolygonClockWiseRad
(
QPolygonF
&
p
,
float
angle
,
QPointF
origin
);
/** @brief Override base class show */
virtual
void
showEvent
(
QShowEvent
*
event
);
QImage
*
image
;
///< Double buffer image
QImage
glImage
;
///< The background / camera image
...
...
src/ui/MainWindow.cc
View file @
ab7869ce
This diff is collapsed.
Click to expand it.
src/ui/MainWindow.h
View file @
ab7869ce
...
...
@@ -87,6 +87,9 @@ public:
~
MainWindow
();
public
slots
:
// /** @brief Store the mainwindow settings */
// void storeSettings();
/**
* @brief Shows a status message on the bottom status bar
*
...
...
@@ -324,7 +327,6 @@ protected:
void
configureWindowName
();
// TODO Should be moved elsewhere, as the protocol does not belong to the UI
MAVLinkProtocol
*
mavlink
;
AS4Protocol
*
as4link
;
...
...
@@ -367,6 +369,7 @@ protected:
QPointer
<
QDockWidget
>
hsiDockWidget
;
QPointer
<
QDockWidget
>
rcViewDockWidget
;
QPointer
<
QDockWidget
>
hudDockWidget
;
QPointer
<
QDockWidget
>
slugsDataWidget
;
QPointer
<
QDockWidget
>
slugsPIDControlWidget
;
QPointer
<
QDockWidget
>
slugsHilSimWidget
;
...
...
src/ui/MainWindow.ui
View file @
ab7869ce
...
...
@@ -108,14 +108,7 @@
<addaction
name=
"menuPerspectives"
/>
<addaction
name=
"menuHelp"
/>
</widget>
<widget
class=
"QToolBar"
name=
"mainToolBar"
>
<attribute
name=
"toolBarArea"
>
<enum>
TopToolBarArea
</enum>
</attribute>
<attribute
name=
"toolBarBreak"
>
<bool>
false
</bool>
</attribute>
</widget>
<widget
class=
"QStatusBar"
name=
"statusBar"
/>
<action
name=
"actionExit"
>
<property
name=
"icon"
>
...
...
@@ -461,3 +454,5 @@
</connection>
</connections>
</ui>
src/ui/MapWidget.cc
View file @
ab7869ce
...
...
@@ -593,21 +593,12 @@ void MapWidget::updateGlobalPosition(UASInterface* uas, double lat, double lon,
uasTrails
.
value
(
uas
->
getUASID
())
->
addPoint
(
new
qmapcontrol
::
Point
(
lat
,
lon
,
QString
(
"lat: %1 lon: %2"
).
arg
(
lat
,
lon
)));
}
// points.append(new CirclePoint(8.275145, 50.016992, 15, "Wiesbaden-Mainz-Kastel, Johannes-Goßner-Straße", Point::Middle, pointpen));
// points.append(new CirclePoint(8.270476, 50.021426, 15, "Wiesbaden-Mainz-Kastel, Ruthof", Point::Middle, pointpen));
// // "Blind" Points
// points.append(new Point(8.266445, 50.025913, "Wiesbaden-Mainz-Kastel, Mudra Kaserne"));
// points.append(new Point(8.260378, 50.030345, "Wiesbaden-Mainz-Amoneburg, Dyckerhoffstraße"));
// Connect click events of the layer to this object
// connect(osmLayer, SIGNAL(geometryClicked(Geometry*, QPoint)),
// this, SLOT(geometryClicked(Geometry*, QPoint)));
// Sets the view to the interesting area
//QList<QPointF> view;
//view.append(QPointF(8.24764, 50.0319));
//view.append(QPointF(8.28412, 49.9998));
// mc->setView(view);
updatePosition
(
0
,
lat
,
lon
);
}
}
...
...
src/ui/ParameterInterface.cc
View file @
ab7869ce
...
...
@@ -51,6 +51,15 @@ ParameterInterface::ParameterInterface(QWidget *parent) :
// Setup UI connections
connect
(
m_ui
->
vehicleComboBox
,
SIGNAL
(
activated
(
int
)),
this
,
SLOT
(
selectUAS
(
int
)));
// Get current MAV list
QList
<
UASInterface
*>
systems
=
UASManager
::
instance
()
->
getUASList
();
// Add each of them
foreach
(
UASInterface
*
sys
,
systems
)
{
addUAS
(
sys
);
}
// Setup MAV connections
connect
(
UASManager
::
instance
(),
SIGNAL
(
UASCreated
(
UASInterface
*
)),
this
,
SLOT
(
addUAS
(
UASInterface
*
)));
this
->
setVisible
(
false
);
...
...
src/ui/QGCMainWindowAPConfigurator.cc
0 → 100644
View file @
ab7869ce
#include "QGCMainWindowAPConfigurator.h"
QGCMainWindowAPConfigurator
::
QGCMainWindowAPConfigurator
(
QObject
*
parent
)
:
QObject
(
parent
)
{
}
src/ui/QGCMainWindowAPConfigurator.h
0 → 100644
View file @
ab7869ce
#ifndef QGCMAINWINDOWAPCONFIGURATOR_H
#define QGCMAINWINDOWAPCONFIGURATOR_H
#include <QObject>
class
QGCMainWindowAPConfigurator
:
public
QObject
{
Q_OBJECT
public:
explicit
QGCMainWindowAPConfigurator
(
QObject
*
parent
=
0
);
signals:
public
slots
:
};
#endif // QGCMAINWINDOWAPCONFIGURATOR_H
src/ui/SerialConfigurationWindow.cc
View file @
ab7869ce
...
...
@@ -33,6 +33,7 @@ This file is part of the QGROUNDCONTROL project
#include <SerialConfigurationWindow.h>
#include <SerialLinkInterface.h>
#include <QDir>
#include <QSettings>
#include <QFileInfoList>
#ifdef _WIN32
#include <QextSerialEnumerator.h>
...
...
@@ -509,12 +510,3 @@ void SerialConfigurationWindow::setLinkName(QString name)
setWindowTitle
(
tr
(
"Configuration of "
)
+
link
->
getName
());
}
void
SerialConfigurationWindow
::
remove
()
{
link
->
disconnect
();
//delete link;
//delete action;
this
->
window
()
->
close
();
qDebug
()
<<
"TODO: Link cannot be deleted: SerialConfigurationWindow::remove() NOT IMPLEMENTED!"
;
}
src/ui/SerialConfigurationWindow.h
View file @
ab7869ce
...
...
@@ -60,12 +60,6 @@ public slots:
void
setParityEven
();
void
setPortName
(
QString
port
);
void
setLinkName
(
QString
name
);
/**
* @brief Remove this link
*
* Disconnects the associated link, removes it from all menus and closes the window.
*/
void
remove
();
void
setupPortList
();
protected
slots
:
...
...
src/ui/XMLCommProtocolWidget.cc
View file @
ab7869ce
...
...
@@ -7,6 +7,7 @@
#include "ui_XMLCommProtocolWidget.h"
#include "MAVLinkXMLParser.h"
#include "MAVLinkSyntaxHighlighter.h"
#include "QGC.h"
#include <QDebug>
#include <iostream>
...
...
@@ -31,7 +32,7 @@ XMLCommProtocolWidget::XMLCommProtocolWidget(QWidget *parent) :
void
XMLCommProtocolWidget
::
selectXMLFile
()
{
//QString fileName = QFileDialog::getOpenFileName(this, tr("Load Protocol Definition File"), ".", "*.xml");
QSettings
settings
;
QSettings
settings
(
QGC
::
COMPANYNAME
,
QGC
::
APPNAME
)
;
const
QString
mavlinkXML
=
"MAVLINK_XML_FILE"
;
QString
dirPath
=
settings
.
value
(
mavlinkXML
,
QCoreApplication
::
applicationDirPath
()
+
"../"
).
toString
();
QFileDialog
dialog
;
...
...
@@ -56,6 +57,7 @@ void XMLCommProtocolWidget::selectXMLFile()
setXML
(
instanceText
);
// Store filename for next time
settings
.
setValue
(
mavlinkXML
,
QFileInfo
(
file
).
absoluteFilePath
());
settings
.
sync
();
}
else
{
...
...
@@ -92,7 +94,7 @@ void XMLCommProtocolWidget::setXML(const QString& xml)
void
XMLCommProtocolWidget
::
selectOutputDirectory
()
{
QSettings
settings
;
QSettings
settings
(
QGC
::
COMPANYNAME
,
QGC
::
APPNAME
)
;
const
QString
mavlinkOutputDir
=
"MAVLINK_OUTPUT_DIR"
;
QString
dirPath
=
settings
.
value
(
mavlinkOutputDir
,
QCoreApplication
::
applicationDirPath
()
+
"../"
).
toString
();
QFileDialog
dialog
;
...
...
@@ -110,7 +112,8 @@ void XMLCommProtocolWidget::selectOutputDirectory()
{
m_ui
->
outputDirNameLabel
->
setText
(
fileNames
.
first
());
// Store directory for next time
settings
.
setValue
(
mavlinkOutputDir
,
fileNames
.
first
());
settings
.
setValue
(
mavlinkOutputDir
,
QFileInfo
(
fileNames
.
first
()).
absoluteFilePath
());
settings
.
sync
();
//QFile file(fileName);
}
}
...
...
src/ui/linechart/LinechartPlot.cc
View file @
ab7869ce
...
...
@@ -56,7 +56,7 @@ maxInterval(MAX_STORAGE_INTERVAL),
timeScaleStep
(
DEFAULT_SCALE_INTERVAL
),
// 10 seconds
automaticScrollActive
(
false
),
m_active
(
true
),
m_groundTime
(
fals
e
),
m_groundTime
(
tru
e
),
d_data
(
NULL
),
d_curve
(
NULL
)
{
...
...
src/ui/linechart/LinechartWidget.cc
View file @
ab7869ce
...
...
@@ -159,7 +159,9 @@ void LinechartWidget::createLayout()
QToolButton
*
timeButton
=
new
QToolButton
(
this
);
timeButton
->
setText
(
tr
(
"Ground Time"
));
timeButton
->
setCheckable
(
true
);
timeButton
->
setChecked
(
false
);
bool
gTimeDefault
=
true
;
if
(
activePlot
)
activePlot
->
enforceGroundTime
(
gTimeDefault
);
timeButton
->
setChecked
(
gTimeDefault
);
layout
->
addWidget
(
timeButton
,
1
,
4
);
layout
->
setColumnStretch
(
4
,
0
);
connect
(
timeButton
,
SIGNAL
(
clicked
(
bool
)),
activePlot
,
SLOT
(
enforceGroundTime
(
bool
)));
...
...
@@ -442,6 +444,12 @@ void LinechartWidget::removeCurve(QString curve)
// Remove name
}
void
LinechartWidget
::
showEvent
(
QShowEvent
*
event
)
{
Q_UNUSED
(
event
);
setActive
(
isVisible
());
}
void
LinechartWidget
::
setActive
(
bool
active
)
{
if
(
activePlot
)
...
...
src/ui/linechart/LinechartWidget.h
View file @
ab7869ce
...
...
@@ -77,6 +77,8 @@ public slots:
void
setPlotWindowPosition
(
int
scrollBarValue
);
void
setPlotWindowPosition
(
quint64
position
);
void
setPlotInterval
(
quint64
interval
);
/** @brief Override base class show */
virtual
void
showEvent
(
QShowEvent
*
event
);
void
setActive
(
bool
active
);
/** @brief Set the number of values to average over */
void
setAverageWindow
(
int
windowSize
);
...
...
src/ui/linechart/Linecharts.cc
View file @
ab7869ce
#include "Linecharts.h"
#include "UASManager.h"
Linecharts
::
Linecharts
(
QWidget
*
parent
)
:
QStackedWidget
(
parent
),
...
...
@@ -6,6 +7,18 @@ Linecharts::Linecharts(QWidget *parent) :
active
(
true
)
{
this
->
setVisible
(
false
);
// Get current MAV list
QList
<
UASInterface
*>
systems
=
UASManager
::
instance
()
->
getUASList
();
// Add each of them
foreach
(
UASInterface
*
sys
,
systems
)
{
addSystem
(
sys
);
}
connect
(
UASManager
::
instance
(),
SIGNAL
(
UASCreated
(
UASInterface
*
)),
this
,
SLOT
(
addSystem
(
UASInterface
*
)));
connect
(
UASManager
::
instance
(),
SIGNAL
(
activeUASSet
(
int
)),
this
,
SLOT
(
selectSystem
(
int
)));
}
...
...
src/ui/map/MAV2DIcon.cc
View file @
ab7869ce
...
...
@@ -14,7 +14,10 @@ MAV2DIcon::MAV2DIcon(qreal x, qreal y, QString name, Alignment alignment, QPen*
{
int
radius
=
10
;
size
=
QSize
(
radius
,
radius
);
drawIcon
(
pen
);
if
(
pen
)
{
drawIcon
(
pen
);
}
}
MAV2DIcon
::~
MAV2DIcon
()
...
...
@@ -24,8 +27,11 @@ MAV2DIcon::~MAV2DIcon()
void
MAV2DIcon
::
setPen
(
QPen
*
pen
)
{
mypen
=
pen
;
drawIcon
(
pen
);
if
(
pen
)
{
mypen
=
pen
;
drawIcon
(
pen
);
}
}
/**
...
...
@@ -38,46 +44,49 @@ void MAV2DIcon::setYaw(float yaw)
void
MAV2DIcon
::
drawIcon
(
QPen
*
pen
)
{
mypixmap
=
new
QPixmap
(
radius
+
1
,
radius
+
1
);
mypixmap
->
fill
(
Qt
::
transparent
);
QPainter
painter
(
mypixmap
);
if
(
pen
)
{
mypixmap
=
new
QPixmap
(
radius
+
1
,
radius
+
1
);
mypixmap
->
fill
(
Qt
::
transparent
);
QPainter
painter
(
mypixmap
);
// DRAW MICRO AIR VEHICLE
QPointF
p
(
radius
/
2
,
radius
/
2
);
// DRAW MICRO AIR VEHICLE
QPointF
p
(
radius
/
2
,
radius
/
2
);
float
waypointSize
=
radius
;
QPolygonF
poly
(
3
);
// Top point
poly
.
replace
(
0
,
QPointF
(
p
.
x
(),
p
.
y
()
+
waypointSize
/
2.0
f
));
// Right point
poly
.
replace
(
1
,
QPointF
(
p
.
x
()
-
waypointSize
/
2.0
f
,
p
.
y
()
-
waypointSize
/
2.0
f
));
// Left point
poly
.
replace
(
2
,
QPointF
(
p
.
x
()
+
waypointSize
/
2.0
f
,
p
.
y
()
+
waypointSize
/
2.0
f
));
float
waypointSize
=
radius
;
QPolygonF
poly
(
3
);
// Top point
poly
.
replace
(
0
,
QPointF
(
p
.
x
(),
p
.
y
()
+
waypointSize
/
2.0
f
));
// Right point
poly
.
replace
(
1
,
QPointF
(
p
.
x
()
-
waypointSize
/
2.0
f
,
p
.
y
()
-
waypointSize
/
2.0
f
));
// Left point
poly
.
replace
(
2
,
QPointF
(
p
.
x
()
+
waypointSize
/
2.0
f
,
p
.
y
()
+
waypointSize
/
2.0
f
));
// // Select color based on if this is the current waypoint
// if (list.at(i)->getCurrent())
// {
// color = QGC::colorCyan;//uas->getColor();
// pen.setWidthF(refLineWidthToPen(0.8f));
// }
// else
// {
// color = uas->getColor();
// pen.setWidthF(refLineWidthToPen(0.4f));
// }
// // Select color based on if this is the current waypoint
// if (list.at(i)->getCurrent())
// {
// color = QGC::colorCyan;//uas->getColor();
// pen.setWidthF(refLineWidthToPen(0.8f));
// }
// else
// {
// color = uas->getColor();
// pen.setWidthF(refLineWidthToPen(0.4f));
// }
//pen.setColor(color);
if
(
pen
)
{
pen
->
setWidthF
(
2
);
painter
.
setPen
(
*
pen
);
}
else
{
QPen
pen2
(
Qt
::
yellow
);
pen2
.
setWidth
(
2
);
painter
.
setPen
(
pen2
);
//pen.setColor(color);
if
(
pen
)
{
pen
->
setWidthF
(
2
);
painter
.
setPen
(
*
pen
);
}
else
{
QPen
pen2
(
Qt
::
yellow
);
pen2
.
setWidth
(
2
);
painter
.
setPen
(
pen2
);
}
painter
.
setBrush
(
Qt
::
NoBrush
);
painter
.
drawPolygon
(
poly
);
}
painter
.
setBrush
(
Qt
::
NoBrush
);
painter
.
drawPolygon
(
poly
);
}
src/ui/map3D/GCManipulator.cc
View file @
ab7869ce
...
...
@@ -30,6 +30,7 @@ This file is part of the QGROUNDCONTROL project
*/
#include "GCManipulator.h"
#include <osg/Version>
GCManipulator
::
GCManipulator
()
{
...
...
@@ -254,10 +255,10 @@ GCManipulator::calcMovement(void)
if
(
buttonMask
==
GUIEventAdapter
::
LEFT_MOUSE_BUTTON
)
{
// rotate camera
#ifdef __WIN32__
osg
::
Vec3
axis
;
#else
#if ((OPENSCENEGRAPH_MAJOR_VERSION == 2) & (OPENSCENEGRAPH_MINOR_VERSION > 8)) | (OPENSCENEGRAPH_MAJOR_VERSION > 2)
osg
::
Vec3d
axis
;
#else
osg
::
Vec3
axis
;
#endif
float
angle
;
...
...
src/ui/map3D/QGCGoogleEarthView.cc
View file @
ab7869ce
...
...
@@ -16,9 +16,11 @@
QGCGoogleEarthView
::
QGCGoogleEarthView
(
QWidget
*
parent
)
:
QWidget
(
parent
),
updateTimer
(
new
QTimer
(
this
)),
refreshRateMs
(
200
),
mav
(
NULL
),
followCamera
(
true
),
trailEnabled
(
true
),
webViewInitialized
(
false
),
#if (defined Q_OS_MAC)
webViewMac
(
new
QWebView
(
this
)),
#endif
...
...
@@ -34,22 +36,14 @@ QGCGoogleEarthView::QGCGoogleEarthView(QWidget *parent) :
#endif
ui
->
setupUi
(
this
);
#if (defined Q_OS_MAC)
ui
->
webViewLayout
->
addWidget
(
webViewMac
);
webViewMac
->
setPage
(
new
QGCWebPage
(
webViewMac
));
webViewMac
->
settings
()
->
setAttribute
(
QWebSettings
::
PluginsEnabled
,
true
);
webViewMac
->
load
(
QUrl
(
"earth.html"
));
#endif
#if (defined Q_OS_WIN) & !(defined __MINGW32__)
webViewWin
->
load
(
QUrl
(
"earth.html"
));
#endif
#if ((defined Q_OS_MAC) | ((defined Q_OS_WIN) & !(defined __MINGW32__)))
connect
(
UASManager
::
instance
(),
SIGNAL
(
activeUASSet
(
UASInterface
*
)),
this
,
SLOT
(
setActiveUAS
(
UASInterface
*
)));
connect
(
updateTimer
,
SIGNAL
(
timeout
()),
this
,
SLOT
(
updateState
()));
updateTimer
->
start
(
200
);
updateTimer
->
start
(
refreshRateMs
);
#endif
// Follow checkbox
...
...
@@ -94,53 +88,82 @@ void QGCGoogleEarthView::follow(bool follow)
followCamera
=
follow
;
}
void
QGCGoogleEarthView
::
updateStat
e
()
void
QGCGoogleEarthView
::
hid
e
()
{
#ifdef Q_OS_MAC
if
(
webViewMac
->
page
()
->
currentFrame
()
->
evaluateJavaScript
(
"isInitialized();"
).
toBool
())
updateTimer
->
stop
();
QWidget
::
hide
();
}
void
QGCGoogleEarthView
::
show
()
{
if
(
!
webViewInitialized
)
{
static
bool
initialized
=
false
;
if
(
!
initialized
)
{
webViewMac
->
page
()
->
currentFrame
()
->
evaluateJavaScript
(
"setGCSHome(22.679833,8.549444, 470);"
);
initialized
=
true
;
}
int
uasId
=
0
;
double
lat
=
22.679833
;
double
lon
=
8.549444
;
double
alt
=
470.0
;
#if (defined Q_OS_MAC)
webViewMac
->
setPage
(
new
QGCWebPage
(
webViewMac
));
webViewMac
->
settings
()
->
setAttribute
(
QWebSettings
::
PluginsEnabled
,
true
);
webViewMac
->
load
(
QUrl
(
"earth.html"
));
#endif
float
roll
=
0.0
f
;
float
pitch
=
0.0
f
;
float
yaw
=
0.0
f
;
#if (defined Q_OS_WIN) & !(defined __MINGW32__)
webViewWin
->
load
(
QUrl
(
"earth.html"
));
#endif
webViewInitialized
=
true
;
}
updateTimer
->
start
();
QWidget
::
show
();
}
if
(
mav
)
{
uasId
=
mav
->
getUASID
();
lat
=
mav
->
getLatitude
();
lon
=
mav
->
getLongitude
();
alt
=
mav
->
getAltitude
();
roll
=
mav
->
getRoll
();
pitch
=
mav
->
getPitch
();
yaw
=
mav
->
getYaw
();
}
webViewMac
->
page
()
->
currentFrame
()
->
evaluateJavaScript
(
QString
(
"setAircraftPositionAttitude(%1, %2, %3, %4, %6, %7, %8);"
)
.
arg
(
uasId
)
.
arg
(
lat
)
.
arg
(
lon
)
.
arg
(
alt
+
500
)
.
arg
(
roll
)
.
arg
(
pitch
)
.
arg
(
yaw
));
if
(
followCamera
)
void
QGCGoogleEarthView
::
updateState
()
{
#ifdef Q_OS_MAC
if
(
isVisible
())
{
if
(
webViewMac
->
page
()
->
currentFrame
()
->
evaluateJavaScript
(
"isInitialized();"
).
toBool
())
{
webViewMac
->
page
()
->
currentFrame
()
->
evaluateJavaScript
(
QString
(
"updateFollowAircraft()"
));
static
bool
initialized
=
false
;
if
(
!
initialized
)
{
webViewMac
->
page
()
->
currentFrame
()
->
evaluateJavaScript
(
"setGCSHome(22.679833,8.549444, 470);"
);
initialized
=
true
;
}
int
uasId
=
0
;
double
lat
=
22.679833
;
double
lon
=
8.549444
;
double
alt
=
470.0
;
float
roll
=
0.0
f
;
float
pitch
=
0.0
f
;
float
yaw
=
0.0
f
;
if
(
mav
)
{
uasId
=
mav
->
getUASID
();
lat
=
mav
->
getLatitude
();
lon
=
mav
->
getLongitude
();
alt
=
mav
->
getAltitude
();
roll
=
mav
->
getRoll
();
pitch
=
mav
->
getPitch
();
yaw
=
mav
->
getYaw
();
}
webViewMac
->
page
()
->
currentFrame
()
->
evaluateJavaScript
(
QString
(
"setAircraftPositionAttitude(%1, %2, %3, %4, %6, %7, %8);"
)
.
arg
(
uasId
)
.
arg
(
lat
)
.
arg
(
lon
)
.
arg
(
alt
+
500
)
.
arg
(
roll
)
.
arg
(
pitch
)
.
arg
(
yaw
));
if
(
followCamera
)
{
webViewMac
->
page
()
->
currentFrame
()
->
evaluateJavaScript
(
QString
(
"updateFollowAircraft()"
));
}
}
}
#endif
}
void
QGCGoogleEarthView
::
changeEvent
(
QEvent
*
e
)
{
QWidget
::
changeEvent
(
e
);
...
...
src/ui/map3D/QGCGoogleEarthView.h
View file @
ab7869ce
...
...
@@ -62,13 +62,19 @@ public slots:
void
showWaypoints
(
bool
state
);
/** @brief Follow the aircraft during flight */
void
follow
(
bool
follow
);
/** @brief Hide and deactivate */
void
hide
();
/** @brief Show and activate */
void
show
();
protected:
void
changeEvent
(
QEvent
*
e
);
QTimer
*
updateTimer
;
int
refreshRateMs
;
UASInterface
*
mav
;
bool
followCamera
;
bool
trailEnabled
;
bool
webViewInitialized
;
#if (defined Q_OS_WIN) && !(defined __MINGW32__)
WebAxWidget
*
webViewWin
;
#endif
...
...
src/ui/map3D/QMap3D.cc
View file @
ab7869ce
...
...
@@ -38,8 +38,13 @@ This file is part of the QGROUNDCONTROL project
QMap3D
::
QMap3D
(
QWidget
*
parent
,
const
char
*
name
,
WindowFlags
f
)
:
QWidget
(
parent
,
f
)
{
Q_UNUSED
(
name
);
setupUi
(
this
);
#if ((OPENSCENEGRAPH_MAJOR_VERSION == 2) & (OPENSCENEGRAPH_MINOR_VERSION > 8)) | (OPENSCENEGRAPH_MAJOR_VERSION > 2)
graphicsView
->
setCameraManipulator
(
new
osgEarth
::
Util
::
EarthManipulator
);
#else
graphicsView
->
setCameraManipulator
(
new
osgEarthUtil
::
EarthManipulator
);
#endif
graphicsView
->
setSceneData
(
new
osg
::
Group
);
graphicsView
->
updateCamera
();
show
();
...
...
src/ui/uas/UASControlWidget.cc
View file @
ab7869ce
...
...
@@ -50,7 +50,7 @@ This file is part of the PIXHAWK project
#define CONTROL_MODE_TEST2 "MODE TEST2"
#define CONTROL_MODE_TEST3 "MODE TEST3"
#define CONTROL_MODE_READY "MODE TEST3"
#define CONTROL_MODE_RC_TRAINING "
MODE RC TRAINING
"
#define CONTROL_MODE_RC_TRAINING "
RC SIMULATION
"
#define CONTROL_MODE_LOCKED_INDEX 1
#define CONTROL_MODE_MANUAL_INDEX 2
...
...
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