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
ad0fb3da
Commit
ad0fb3da
authored
Dec 16, 2010
by
lm
Browse files
Options
Browse Files
Download
Plain Diff
Merged
parents
6e00bdcc
6f8998fa
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
65 additions
and
53 deletions
+65
-53
LinkManager.cc
src/comm/LinkManager.cc
+26
-2
LinkManager.h
src/comm/LinkManager.h
+2
-0
SerialLink.cc
src/comm/SerialLink.cc
+5
-2
UAS.cc
src/uas/UAS.cc
+3
-6
CommConfigurationWindow.cc
src/ui/CommConfigurationWindow.cc
+18
-4
CommConfigurationWindow.h
src/ui/CommConfigurationWindow.h
+8
-1
CommSettings.ui
src/ui/CommSettings.ui
+2
-23
SerialConfigurationWindow.cc
src/ui/SerialConfigurationWindow.cc
+0
-9
SerialConfigurationWindow.h
src/ui/SerialConfigurationWindow.h
+0
-6
QMap3D.cc
src/ui/map3D/QMap3D.cc
+1
-0
No files found.
src/comm/LinkManager.cc
View file @
ad0fb3da
...
...
@@ -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 @
ad0fb3da
...
...
@@ -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/SerialLink.cc
View file @
ad0fb3da
...
...
@@ -36,6 +36,7 @@ This file is part of the QGROUNDCONTROL project
#include "LinkManager.h"
#include "QGC.h"
#include <MG.h>
#include <iostream>
#ifdef _WIN32
#include "windows.h"
#endif
...
...
@@ -122,7 +123,7 @@ SerialLink::SerialLink(QString portname, BaudRateType baudrate, FlowType flow, P
SerialLink
::~
SerialLink
()
{
disconnect
();
delete
port
;
if
(
port
)
delete
port
;
port
=
NULL
;
}
...
...
@@ -255,6 +256,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();
...
...
@@ -541,7 +544,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
);
...
...
src/uas/UAS.cc
View file @
ad0fb3da
...
...
@@ -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,12 +373,6 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message)
GAudioOutput
::
instance
()
->
notifyPositive
();
}
positionLock
=
true
;
// Send to patch antenna
// FIXME Message re-routing should be implemented differently
//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
:
...
...
@@ -840,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/ui/CommConfigurationWindow.cc
View file @
ad0fb3da
...
...
@@ -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 @
ad0fb3da
...
...
@@ -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 @
ad0fb3da
...
...
@@ -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/SerialConfigurationWindow.cc
View file @
ad0fb3da
...
...
@@ -510,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 @
ad0fb3da
...
...
@@ -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/map3D/QMap3D.cc
View file @
ad0fb3da
...
...
@@ -38,6 +38,7 @@ 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
);
...
...
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