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
59856660
Commit
59856660
authored
Mar 29, 2015
by
Don Gagne
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1398 from DonLakeFlyer/MavlinkChannel
Remove link ids and add link mavlink channel
parents
709fecd0
4f30caab
Changes
20
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
59 additions
and
96 deletions
+59
-96
LinkInterface.h
src/comm/LinkInterface.h
+14
-14
LinkManager.cc
src/comm/LinkManager.cc
+14
-0
LinkManager.h
src/comm/LinkManager.h
+2
-0
MAVLinkProtocol.cc
src/comm/MAVLinkProtocol.cc
+18
-20
MAVLinkProtocol.h
src/comm/MAVLinkProtocol.h
+3
-3
MAVLinkSimulationLink.cc
src/comm/MAVLinkSimulationLink.cc
+1
-7
MAVLinkSimulationLink.h
src/comm/MAVLinkSimulationLink.h
+0
-2
SerialLink.cc
src/comm/SerialLink.cc
+0
-7
SerialLink.h
src/comm/SerialLink.h
+0
-2
TCPLink.cc
src/comm/TCPLink.cc
+0
-6
TCPLink.h
src/comm/TCPLink.h
+0
-2
UDPLink.cc
src/comm/UDPLink.cc
+0
-7
UDPLink.h
src/comm/UDPLink.h
+0
-2
XbeeLink.cpp
src/comm/XbeeLink.cpp
+0
-13
XbeeLink.h
src/comm/XbeeLink.h
+2
-3
MockLink.cc
src/qgcunittest/MockLink.cc
+1
-2
MockLink.h
src/qgcunittest/MockLink.h
+0
-2
UAS.cc
src/uas/UAS.cc
+1
-1
DebugConsole.cc
src/ui/DebugConsole.cc
+2
-2
QGCMAVLinkLogPlayer.cc
src/ui/QGCMAVLinkLogPlayer.cc
+1
-1
No files found.
src/comm/LinkInterface.h
View file @
59856660
...
...
@@ -39,6 +39,8 @@ along with PIXHAWK. If not, see <http://www.gnu.org/licenses/>.
#include <QMetaType>
#include <QSharedPointer>
#include "QGCMAVLink.h"
class
LinkManager
;
class
LinkConfiguration
;
...
...
@@ -63,14 +65,6 @@ public:
/* Connection management */
/**
* @brief Get the ID of this link
*
* The ID is an unsigned integer, starting at 0
* @return ID of this link
**/
virtual
int
getId
()
const
=
0
;
/**
* @brief Get the human readable name of this link
*/
...
...
@@ -123,6 +117,10 @@ public:
{
return
getCurrentDataRate
(
outDataIndex
,
outDataWriteTimes
,
outDataWriteAmounts
);
}
/// mavlink channel to use for this link, as used by mavlink_parse_char. The mavlink channel is only
/// set into the link when it is added to LinkManager
uint8_t
getMavlinkChannel
(
void
)
const
{
Q_ASSERT
(
_mavlinkChannelSet
);
return
_mavlinkChannel
;
}
// These are left unimplemented in order to cause linker errors which indicate incorrect usage of
// connect/disconnect on link directly. All connect/disconnect calls should be made through LinkManager.
...
...
@@ -146,7 +144,8 @@ public slots:
protected:
// Links are only created by LinkManager so constructor is not public
LinkInterface
()
:
QThread
(
0
)
QThread
(
0
),
_mavlinkChannelSet
(
false
)
{
// Initialize everything for the data rate calculation buffers.
inDataIndex
=
0
;
...
...
@@ -300,11 +299,6 @@ protected:
return
dataRate
;
}
static
int
getNextLinkId
()
{
static
int
nextId
=
1
;
return
nextId
++
;
}
protected
slots
:
/**
...
...
@@ -329,6 +323,12 @@ private:
* @return True if connection could be terminated, false otherwise
**/
virtual
bool
_disconnect
(
void
)
=
0
;
/// Sets the mavlink channel to use for this link
void
_setMavlinkChannel
(
uint8_t
channel
)
{
Q_ASSERT
(
!
_mavlinkChannelSet
);
_mavlinkChannelSet
=
true
;
_mavlinkChannel
=
channel
;
}
bool
_mavlinkChannelSet
;
///< true: _mavlinkChannel has been set
uint8_t
_mavlinkChannel
;
///< mavlink channel to use for this link, as used by mavlink_parse_char
};
typedef
QSharedPointer
<
LinkInterface
>
SharedLinkInterface
;
...
...
src/comm/LinkManager.cc
View file @
59856660
...
...
@@ -52,6 +52,7 @@ LinkManager::LinkManager(QObject* parent)
,
_configUpdateSuspended
(
false
)
,
_configurationsLoaded
(
false
)
,
_connectionsSuspended
(
false
)
,
_mavlinkChannelsUsedBitMask
(
0
)
,
_nullSharedLink
(
NULL
)
{
connect
(
&
_portListTimer
,
&
QTimer
::
timeout
,
this
,
&
LinkManager
::
_updateConfigurationList
);
...
...
@@ -114,6 +115,16 @@ void LinkManager::_addLink(LinkInterface* link)
_linkListMutex
.
lock
();
if
(
!
containsLink
(
link
))
{
// Find a mavlink channel to use for this link
for
(
int
i
=
0
;
i
<
32
;
i
++
)
{
if
(
!
(
_mavlinkChannelsUsedBitMask
&&
1
<<
i
))
{
mavlink_reset_channel_status
(
i
);
link
->
_setMavlinkChannel
(
i
);
_mavlinkChannelsUsedBitMask
|=
i
<<
i
;
break
;
}
}
_links
.
append
(
QSharedPointer
<
LinkInterface
>
(
link
));
_linkListMutex
.
unlock
();
emit
newLink
(
link
);
...
...
@@ -203,6 +214,9 @@ void LinkManager::_deleteLink(LinkInterface* link)
Q_ASSERT
(
link
);
_linkListMutex
.
lock
();
// Free up the mavlink channel associated with this link
_mavlinkChannelsUsedBitMask
&=
~
(
1
<<
link
->
getMavlinkChannel
());
bool
found
=
false
;
for
(
int
i
=
0
;
i
<
_links
.
count
();
i
++
)
{
...
...
src/comm/LinkManager.h
View file @
59856660
...
...
@@ -173,6 +173,8 @@ private:
QString
_connectionsSuspendedReason
;
///< User visible reason for suspension
QTimer
_portListTimer
;
uint32_t
_mavlinkChannelsUsedBitMask
;
SharedLinkInterface
_nullSharedLink
;
};
...
...
src/comm/MAVLinkProtocol.cc
View file @
59856660
...
...
@@ -145,12 +145,12 @@ void MAVLinkProtocol::storeSettings()
void
MAVLinkProtocol
::
resetMetadataForLink
(
const
LinkInterface
*
link
)
{
int
linkId
=
link
->
getId
();
totalReceiveCounter
[
linkId
]
=
0
;
totalLossCounter
[
linkId
]
=
0
;
totalErrorCounter
[
linkId
]
=
0
;
currReceiveCounter
[
linkId
]
=
0
;
currLossCounter
[
linkId
]
=
0
;
int
channel
=
link
->
getMavlinkChannel
();
totalReceiveCounter
[
channel
]
=
0
;
totalLossCounter
[
channel
]
=
0
;
totalErrorCounter
[
channel
]
=
0
;
currReceiveCounter
[
channel
]
=
0
;
currLossCounter
[
channel
]
=
0
;
}
void
MAVLinkProtocol
::
linkConnected
(
void
)
...
...
@@ -227,8 +227,7 @@ void MAVLinkProtocol::receiveBytes(LinkInterface* link, QByteArray b)
mavlink_message_t
message
;
mavlink_status_t
status
;
// Cache the link ID for common use.
int
linkId
=
link
->
getId
();
int
mavlinkChannel
=
link
->
getMavlinkChannel
();
static
int
mavlink09Count
=
0
;
static
int
nonmavlinkCount
=
0
;
...
...
@@ -237,9 +236,8 @@ void MAVLinkProtocol::receiveBytes(LinkInterface* link, QByteArray b)
static
bool
checkedUserNonMavlink
=
false
;
static
bool
warnedUserNonMavlink
=
false
;
// FIXME: Add check for if link->getId() >= MAVLINK_COMM_NUM_BUFFERS
for
(
int
position
=
0
;
position
<
b
.
size
();
position
++
)
{
unsigned
int
decodeState
=
mavlink_parse_char
(
linkId
,
(
uint8_t
)(
b
[
position
]),
&
message
,
&
status
);
unsigned
int
decodeState
=
mavlink_parse_char
(
mavlinkChannel
,
(
uint8_t
)(
b
[
position
]),
&
message
,
&
status
);
if
((
uint8_t
)
b
[
position
]
==
0x55
)
mavlink09Count
++
;
if
((
mavlink09Count
>
100
)
&&
!
decodedFirstPacket
&&
!
warnedUser
)
...
...
@@ -381,8 +379,8 @@ void MAVLinkProtocol::receiveBytes(LinkInterface* link, QByteArray b)
}
// Increase receive counter
totalReceiveCounter
[
linkId
]
++
;
currReceiveCounter
[
linkId
]
++
;
totalReceiveCounter
[
mavlinkChannel
]
++
;
currReceiveCounter
[
mavlinkChannel
]
++
;
// Determine what the next expected sequence number is, accounting for
// never having seen a message for this system/component pair.
...
...
@@ -403,22 +401,22 @@ void MAVLinkProtocol::receiveBytes(LinkInterface* link, QByteArray b)
}
// And log how many were lost for all time and just this timestep
totalLossCounter
[
linkId
]
+=
lostMessages
;
currLossCounter
[
linkId
]
+=
lostMessages
;
totalLossCounter
[
mavlinkChannel
]
+=
lostMessages
;
currLossCounter
[
mavlinkChannel
]
+=
lostMessages
;
}
// And update the last sequence number for this system/component pair
lastIndex
[
message
.
sysid
][
message
.
compid
]
=
expectedSeq
;
// Update on every 32th packet
if
((
totalReceiveCounter
[
linkId
]
&
0x1F
)
==
0
)
if
((
totalReceiveCounter
[
mavlinkChannel
]
&
0x1F
)
==
0
)
{
// Calculate new loss ratio
// Receive loss
float
receiveLoss
=
(
double
)
currLossCounter
[
linkId
]
/
(
double
)(
currReceiveCounter
[
linkId
]
+
currLossCounter
[
linkId
]);
float
receiveLoss
=
(
double
)
currLossCounter
[
mavlinkChannel
]
/
(
double
)(
currReceiveCounter
[
mavlinkChannel
]
+
currLossCounter
[
mavlinkChannel
]);
receiveLoss
*=
100.0
f
;
currLossCounter
[
linkId
]
=
0
;
currReceiveCounter
[
linkId
]
=
0
;
currLossCounter
[
mavlinkChannel
]
=
0
;
currReceiveCounter
[
mavlinkChannel
]
=
0
;
emit
receiveLossChanged
(
message
.
sysid
,
receiveLoss
);
}
...
...
@@ -497,7 +495,7 @@ void MAVLinkProtocol::sendMessage(LinkInterface* link, mavlink_message_t message
static
uint8_t
buffer
[
MAVLINK_MAX_PACKET_LEN
];
// Rewriting header to ensure correct link ID is set
static
uint8_t
messageKeys
[
256
]
=
MAVLINK_MESSAGE_CRCS
;
if
(
link
->
getId
()
!=
0
)
mavlink_finalize_message_chan
(
&
message
,
this
->
getSystemId
(),
this
->
getComponentId
(),
link
->
getId
(),
message
.
len
,
messageKeys
[
message
.
msgid
]);
mavlink_finalize_message_chan
(
&
message
,
this
->
getSystemId
(),
this
->
getComponentId
(),
link
->
getMavlinkChannel
(),
message
.
len
,
messageKeys
[
message
.
msgid
]);
// Write message into buffer, prepending start sign
int
len
=
mavlink_msg_to_send_buffer
(
buffer
,
&
message
);
// If link is connected
...
...
@@ -520,7 +518,7 @@ void MAVLinkProtocol::sendMessage(LinkInterface* link, mavlink_message_t message
static
uint8_t
buffer
[
MAVLINK_MAX_PACKET_LEN
];
// Rewriting header to ensure correct link ID is set
static
uint8_t
messageKeys
[
256
]
=
MAVLINK_MESSAGE_CRCS
;
if
(
link
->
getId
()
!=
0
)
mavlink_finalize_message_chan
(
&
message
,
systemid
,
componentid
,
link
->
getId
(),
message
.
len
,
messageKeys
[
message
.
msgid
]);
mavlink_finalize_message_chan
(
&
message
,
systemid
,
componentid
,
link
->
getMavlinkChannel
(),
message
.
len
,
messageKeys
[
message
.
msgid
]);
// Write message into buffer, prepending start sign
int
len
=
mavlink_msg_to_send_buffer
(
buffer
,
&
message
);
// If link is connected
...
...
src/comm/MAVLinkProtocol.h
View file @
59856660
...
...
@@ -121,21 +121,21 @@ public:
* @returns -1 if this is not available for this protocol, # of packets otherwise.
*/
qint32
getReceivedPacketCount
(
const
LinkInterface
*
link
)
const
{
return
totalReceiveCounter
[
link
->
get
Id
()];
return
totalReceiveCounter
[
link
->
get
MavlinkChannel
()];
}
/**
* Retrieve a total of all parsing errors for the specified link.
* @returns -1 if this is not available for this protocol, # of errors otherwise.
*/
qint32
getParsingErrorCount
(
const
LinkInterface
*
link
)
const
{
return
totalErrorCounter
[
link
->
get
Id
()];
return
totalErrorCounter
[
link
->
get
MavlinkChannel
()];
}
/**
* Retrieve a total of all dropped packets for the specified link.
* @returns -1 if this is not available for this protocol, # of packets otherwise.
*/
qint32
getDroppedPacketCount
(
const
LinkInterface
*
link
)
const
{
return
totalLossCounter
[
link
->
get
Id
()];
return
totalLossCounter
[
link
->
get
MavlinkChannel
()];
}
/**
* Reset the counters for all metadata for this link.
...
...
src/comm/MAVLinkSimulationLink.cc
View file @
59856660
...
...
@@ -105,7 +105,6 @@ MAVLinkSimulationLink::MAVLinkSimulationLink(QString readFile, QString writeFile
// Initialize the pseudo-random number generator
srand
(
QTime
::
currentTime
().
msec
());
maxTimeNoise
=
0
;
this
->
id
=
getNextLinkId
();
LinkManager
::
instance
()
->
_addLink
(
this
);
}
...
...
@@ -595,7 +594,7 @@ void MAVLinkSimulationLink::writeBytes(const char* data, qint64 size)
// Output all bytes as hex digits
for
(
int
i
=
0
;
i
<
size
;
i
++
)
{
if
(
mavlink_parse_char
(
this
->
id
,
data
[
i
],
&
msg
,
&
comm
))
if
(
mavlink_parse_char
(
getMavlinkChannel
()
,
data
[
i
],
&
msg
,
&
comm
))
{
// MESSAGE RECEIVED!
// qDebug() << "SIMULATION LINK RECEIVED MESSAGE!";
...
...
@@ -839,11 +838,6 @@ bool MAVLinkSimulationLink::isConnected() const
return
_isConnected
;
}
int
MAVLinkSimulationLink
::
getId
()
const
{
return
id
;
}
QString
MAVLinkSimulationLink
::
getName
()
const
{
return
name
;
...
...
src/comm/MAVLinkSimulationLink.h
View file @
59856660
...
...
@@ -61,7 +61,6 @@ public:
qint64
getCurrentOutDataRate
()
const
;
QString
getName
()
const
;
int
getId
()
const
;
int
getBaudRate
()
const
;
int
getBaudRateType
()
const
;
int
getFlowType
()
const
;
...
...
@@ -114,7 +113,6 @@ protected:
int
readyBytes
;
QQueue
<
uint8_t
>
readyBuffer
;
int
id
;
QString
name
;
qint64
timeOffset
;
mavlink_sys_status_t
status
;
...
...
src/comm/SerialLink.cc
View file @
59856660
...
...
@@ -34,8 +34,6 @@ SerialLink::SerialLink(SerialConfiguration* config)
// We're doing it wrong - because the Qt folks got the API wrong:
// http://blog.qt.digia.com/blog/2010/06/17/youre-doing-it-wrong/
moveToThread
(
this
);
// Set unique ID and add link to the list of links
_id
=
getNextLinkId
();
qCDebug
(
SerialLinkLog
)
<<
"Create SerialLink "
<<
config
->
portName
()
<<
config
->
baud
()
<<
config
->
flowControl
()
<<
config
->
parity
()
<<
config
->
dataBits
()
<<
config
->
stopBits
();
...
...
@@ -391,11 +389,6 @@ bool SerialLink::isConnected() const
return
isConnected
;
}
int
SerialLink
::
getId
()
const
{
return
_id
;
}
QString
SerialLink
::
getName
()
const
{
return
_config
->
portName
();
...
...
src/comm/SerialLink.h
View file @
59856660
...
...
@@ -110,7 +110,6 @@ public:
// LinkInterface
LinkConfiguration
*
getLinkConfiguration
();
int
getId
()
const
;
QString
getName
()
const
;
void
requestReset
();
bool
isConnected
()
const
;
...
...
@@ -144,7 +143,6 @@ protected:
QSerialPort
*
_port
;
quint64
_bytesRead
;
int
_timeout
;
int
_id
;
QMutex
_dataMutex
;
// Mutex for reading data from _port
QMutex
_writeMutex
;
// Mutex for accessing the _transmitBuffer.
QString
_type
;
...
...
src/comm/TCPLink.cc
View file @
59856660
...
...
@@ -46,7 +46,6 @@ TCPLink::TCPLink(TCPConfiguration *config)
// We're doing it wrong - because the Qt folks got the API wrong:
// http://blog.qt.digia.com/blog/2010/06/17/youre-doing-it-wrong/
moveToThread
(
this
);
_linkId
=
getNextLinkId
();
qDebug
()
<<
"TCP Created "
<<
_config
->
name
();
}
...
...
@@ -200,11 +199,6 @@ bool TCPLink::isConnected() const
return
_socketIsConnected
;
}
int
TCPLink
::
getId
()
const
{
return
_linkId
;
}
QString
TCPLink
::
getName
()
const
{
return
_config
->
name
();
...
...
src/comm/TCPLink.h
View file @
59856660
...
...
@@ -126,7 +126,6 @@ public:
void
signalBytesWritten
(
void
);
// LinkInterface methods
virtual
int
getId
(
void
)
const
;
virtual
QString
getName
(
void
)
const
;
virtual
bool
isConnected
(
void
)
const
;
virtual
void
requestReset
(
void
)
{};
...
...
@@ -174,7 +173,6 @@ private:
void
_writeDebugBytes
(
const
char
*
data
,
qint16
size
);
#endif
int
_linkId
;
TCPConfiguration
*
_config
;
QTcpSocket
*
_socket
;
bool
_socketIsConnected
;
...
...
src/comm/UDPLink.cc
View file @
59856660
...
...
@@ -51,8 +51,6 @@ UDPLink::UDPLink(UDPConfiguration* config)
// http://blog.qt.digia.com/blog/2010/06/17/youre-doing-it-wrong/
moveToThread
(
this
);
// Set unique ID and add link to the list of links
_id
=
getNextLinkId
();
qDebug
()
<<
"UDP Created "
<<
_config
->
name
();
}
...
...
@@ -240,11 +238,6 @@ bool UDPLink::isConnected() const
return
_connectState
;
}
int
UDPLink
::
getId
()
const
{
return
_id
;
}
qint64
UDPLink
::
getConnectionSpeed
()
const
{
return
54000000
;
// 54 Mbit
...
...
src/comm/UDPLink.h
View file @
59856660
...
...
@@ -158,7 +158,6 @@ public:
qint64
getCurrentOutDataRate
()
const
;
void
run
();
int
getId
()
const
;
// These are left unimplemented in order to cause linker errors which indicate incorrect usage of
// connect/disconnect on link directly. All connect/disconnect calls should be made through LinkManager.
...
...
@@ -189,7 +188,6 @@ protected:
QUdpSocket
*
_socket
;
UDPConfiguration
*
_config
;
bool
_connectState
;
int
_id
;
private:
// Links are only created/destroyed by LinkManager so constructor/destructor is not public
...
...
src/comm/XbeeLink.cpp
View file @
59856660
...
...
@@ -8,7 +8,6 @@
XbeeLink
::
XbeeLink
(
QString
portName
,
int
baudRate
)
:
m_xbeeCon
(
NULL
),
m_id
(
-
1
),
m_portName
(
NULL
),
m_portNameLength
(
0
),
m_baudRate
(
baudRate
),
...
...
@@ -19,13 +18,6 @@ XbeeLink::XbeeLink(QString portName, int baudRate) :
/* setup the xbee */
this
->
setPortName
(
portName
);
//this->connect();
// Set unique ID and add link to the list of links
this
->
m_id
=
getNextLinkId
();
// set the Name
this
->
m_name
=
tr
(
"xbee link"
)
+
QString
::
number
(
this
->
m_id
);
emit
nameChanged
(
this
->
m_name
);
}
XbeeLink
::~
XbeeLink
()
...
...
@@ -110,11 +102,6 @@ bool XbeeLink::setBaudRate(int rate)
return
retVal
;
}
int
XbeeLink
::
getId
()
const
{
return
this
->
m_id
;
}
QString
XbeeLink
::
getName
()
const
{
return
this
->
m_name
;
...
...
src/comm/XbeeLink.h
View file @
59856660
...
...
@@ -35,8 +35,8 @@ public slots: // virtual functions from XbeeLinkInterface
bool
setRemoteAddressHigh
(
quint32
high
);
bool
setRemoteAddressLow
(
quint32
low
);
public:
// virtual functions from LinkInterface
int
getId
()
const
;
public:
// virtual functions from LinkInterface
QString
getName
()
const
;
bool
isConnected
()
const
;
...
...
@@ -56,7 +56,6 @@ public:
protected:
xbee_con
*
m_xbeeCon
;
int
m_id
;
char
*
m_portName
;
unsigned
int
m_portNameLength
;
int
m_baudRate
;
...
...
src/qgcunittest/MockLink.cc
View file @
59856660
...
...
@@ -67,7 +67,6 @@ union px4_custom_mode {
};
MockLink
::
MockLink
(
MockConfiguration
*
config
)
:
_linkId
(
getNextLinkId
()),
_name
(
"MockLink"
),
_connected
(
false
),
_vehicleSystemId
(
128
),
// FIXME: Pull from eventual parameter manager
...
...
@@ -287,7 +286,7 @@ void MockLink::_handleIncomingMavlinkBytes(const uint8_t* bytes, int cBytes)
for
(
qint64
i
=
0
;
i
<
cBytes
;
i
++
)
{
if
(
!
mavlink_parse_char
(
_linkId
,
bytes
[
i
],
&
msg
,
&
comm
))
{
if
(
!
mavlink_parse_char
(
getMavlinkChannel
()
,
bytes
[
i
],
&
msg
,
&
comm
))
{
continue
;
}
...
...
src/qgcunittest/MockLink.h
View file @
59856660
...
...
@@ -61,7 +61,6 @@ public:
~
MockLink
(
void
);
// Virtuals from LinkInterface
virtual
int
getId
(
void
)
const
{
return
_linkId
;
}
virtual
QString
getName
(
void
)
const
{
return
_name
;
}
virtual
void
requestReset
(
void
){
}
virtual
bool
isConnected
(
void
)
const
{
return
_connected
;
}
...
...
@@ -123,7 +122,6 @@ private:
MockLinkMissionItemHandler
*
_missionItemHandler
;
int
_linkId
;
QString
_name
;
bool
_connected
;
...
...
src/uas/UAS.cc
View file @
59856660
...
...
@@ -1749,7 +1749,7 @@ void UAS::sendMessage(LinkInterface* link, mavlink_message_t message)
// Write message into buffer, prepending start sign
int
len
=
mavlink_msg_to_send_buffer
(
buffer
,
&
message
);
static
uint8_t
messageKeys
[
256
]
=
MAVLINK_MESSAGE_CRCS
;
mavlink_finalize_message_chan
(
&
message
,
mavlink
->
getSystemId
(),
mavlink
->
getComponentId
(),
link
->
get
Id
(),
message
.
len
,
messageKeys
[
message
.
msgid
]);
mavlink_finalize_message_chan
(
&
message
,
mavlink
->
getSystemId
(),
mavlink
->
getComponentId
(),
link
->
get
MavlinkChannel
(),
message
.
len
,
messageKeys
[
message
.
msgid
]);
// If link is connected
if
(
link
->
isConnected
())
...
...
src/ui/DebugConsole.cc
View file @
59856660
...
...
@@ -172,9 +172,9 @@ void DebugConsole::uasCreated(UASInterface* uas)
void
DebugConsole
::
addLink
(
LinkInterface
*
link
)
{
// Add link to link list
links
.
insert
(
link
->
get
Id
(),
link
);
links
.
insert
(
link
->
get
MavlinkChannel
(),
link
);
m_ui
->
linkComboBox
->
insertItem
(
link
->
get
Id
(),
link
->
getName
());
m_ui
->
linkComboBox
->
insertItem
(
link
->
get
MavlinkChannel
(),
link
->
getName
());
// Set new item as current
m_ui
->
linkComboBox
->
setCurrentIndex
(
qMax
(
0
,
links
.
size
()
-
1
));
linkSelected
(
m_ui
->
linkComboBox
->
currentIndex
());
...
...
src/ui/QGCMAVLinkLogPlayer.cc
View file @
59856660
...
...
@@ -576,7 +576,7 @@ quint64 QGCMAVLinkLogPlayer::findNextMavlinkMessage(mavlink_message_t *msg)
char
nextByte
;
mavlink_status_t
comm
;
while
(
logFile
.
getChar
(
&
nextByte
))
{
// Loop over every byte
bool
messageFound
=
mavlink_parse_char
(
logLink
->
get
Id
(),
nextByte
,
msg
,
&
comm
);
bool
messageFound
=
mavlink_parse_char
(
logLink
->
get
MavlinkChannel
(),
nextByte
,
msg
,
&
comm
);
// If we've found a message, jump back to the start of the message, grab the timestamp,
// and go back to the end of this file.
...
...
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