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
32fc12c5
Commit
32fc12c5
authored
Jun 12, 2017
by
DonLakeFlyer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Allow UDP auto connect to be controlled through settings
parent
d1c2f3fb
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
83 additions
and
13 deletions
+83
-13
AutoConnect.SettingsGroup.json
src/Settings/AutoConnect.SettingsGroup.json
+18
-0
AutoConnectSettings.cc
src/Settings/AutoConnectSettings.cc
+39
-6
AutoConnectSettings.h
src/Settings/AutoConnectSettings.h
+12
-0
LinkManager.cc
src/comm/LinkManager.cc
+1
-1
UDPLink.cc
src/comm/UDPLink.cc
+13
-3
UDPLink.h
src/comm/UDPLink.h
+0
-3
No files found.
src/Settings/AutoConnect.SettingsGroup.json
View file @
32fc12c5
...
...
@@ -40,5 +40,23 @@
"longDescription"
:
"If this option is enabled GroundControl will automatically connect to a LibrePilot board which is connected via USB."
,
"type"
:
"bool"
,
"defaultValue"
:
true
},
{
"name"
:
"AutoconnectUDPListenPort"
,
"shortDescription"
:
"UDP port for autoconnect"
,
"type"
:
"uint32"
,
"defaultValue"
:
14550
},
{
"name"
:
"AutoconnectUDPTargetHostIP"
,
"shortDescription"
:
"UDP target host IP for autoconnect"
,
"type"
:
"string"
,
"defaultValue"
:
""
},
{
"name"
:
"AutoconnectUDPTargetHostPort"
,
"shortDescription"
:
"UDP target host port for autoconnect"
,
"type"
:
"uint32"
,
"defaultValue"
:
14550
}
]
src/Settings/AutoConnectSettings.cc
View file @
32fc12c5
...
...
@@ -21,17 +21,23 @@ const char* AutoConnectSettings:: autoConnectSiKRadioSettingsName = "Autocon
const
char
*
AutoConnectSettings
::
autoConnectPX4FlowSettingsName
=
"AutoconnectPX4Flow"
;
const
char
*
AutoConnectSettings
::
autoConnectRTKGPSSettingsName
=
"AutoconnectRTKGPS"
;
const
char
*
AutoConnectSettings
::
autoConnectLibrePilotSettingsName
=
"AutoconnectLibrePilot"
;
const
char
*
AutoConnectSettings
::
udpListenPortName
=
"AutoconnectUDPListenPort"
;
const
char
*
AutoConnectSettings
::
udpTargetHostIPName
=
"AutoconnectUDPTargetHostIP"
;
const
char
*
AutoConnectSettings
::
udpTargetHostPortName
=
"AutoconnectUDPTargetHostPort"
;
const
char
*
AutoConnectSettings
::
autoConnectSettingsGroupName
=
"AutoConnect"
;
AutoConnectSettings
::
AutoConnectSettings
(
QObject
*
parent
)
:
SettingsGroup
(
autoConnectSettingsGroupName
,
_settingsGroup
,
parent
)
,
_autoConnectUDPFact
(
NULL
)
,
_autoConnectPixhawkFact
(
NULL
)
,
_autoConnectSiKRadioFact
(
NULL
)
,
_autoConnectPX4FlowFact
(
NULL
)
,
_autoConnectRTKGPSFact
(
NULL
)
:
SettingsGroup
(
autoConnectSettingsGroupName
,
_settingsGroup
,
parent
)
,
_autoConnectUDPFact
(
NULL
)
,
_autoConnectPixhawkFact
(
NULL
)
,
_autoConnectSiKRadioFact
(
NULL
)
,
_autoConnectPX4FlowFact
(
NULL
)
,
_autoConnectRTKGPSFact
(
NULL
)
,
_autoConnectLibrePilotFact
(
NULL
)
,
_udpListenPortFact
(
NULL
)
,
_udpTargetHostIPFact
(
NULL
)
,
_udpTargetHostPortFact
(
NULL
)
{
QQmlEngine
::
setObjectOwnership
(
this
,
QQmlEngine
::
CppOwnership
);
qmlRegisterUncreatableType
<
AutoConnectSettings
>
(
"QGroundControl.SettingsManager"
,
1
,
0
,
"AutoConnectSettings"
,
"Reference only"
);
...
...
@@ -90,3 +96,30 @@ Fact* AutoConnectSettings::autoConnectLibrePilot(void)
return
_autoConnectLibrePilotFact
;
}
Fact
*
AutoConnectSettings
::
udpListenPort
(
void
)
{
if
(
!
_udpListenPortFact
)
{
_udpListenPortFact
=
_createSettingsFact
(
udpListenPortName
);
}
return
_udpListenPortFact
;
}
Fact
*
AutoConnectSettings
::
udpTargetHostIP
(
void
)
{
if
(
!
_udpTargetHostIPFact
)
{
_udpTargetHostIPFact
=
_createSettingsFact
(
udpTargetHostIPName
);
}
return
_udpTargetHostIPFact
;
}
Fact
*
AutoConnectSettings
::
udpTargetHostPort
(
void
)
{
if
(
!
_udpTargetHostPortFact
)
{
_udpTargetHostPortFact
=
_createSettingsFact
(
udpTargetHostPortName
);
}
return
_udpTargetHostPortFact
;
}
src/Settings/AutoConnectSettings.h
View file @
32fc12c5
...
...
@@ -25,6 +25,9 @@ public:
Q_PROPERTY
(
Fact
*
autoConnectPX4Flow
READ
autoConnectPX4Flow
CONSTANT
)
Q_PROPERTY
(
Fact
*
autoConnectRTKGPS
READ
autoConnectRTKGPS
CONSTANT
)
Q_PROPERTY
(
Fact
*
autoConnectLibrePilot
READ
autoConnectLibrePilot
CONSTANT
)
Q_PROPERTY
(
Fact
*
udpListenPort
READ
udpListenPort
CONSTANT
)
///< Port to listen on for UDP autoconnect
Q_PROPERTY
(
Fact
*
udpTargetHostIP
READ
udpTargetHostIP
CONSTANT
)
///< Target host IP for UDP autoconnect, empty string for none
Q_PROPERTY
(
Fact
*
udpTargetHostPort
READ
udpTargetHostPort
CONSTANT
)
///< Target host post for UDP autoconnect
Fact
*
autoConnectUDP
(
void
);
Fact
*
autoConnectPixhawk
(
void
);
...
...
@@ -32,6 +35,9 @@ public:
Fact
*
autoConnectPX4Flow
(
void
);
Fact
*
autoConnectRTKGPS
(
void
);
Fact
*
autoConnectLibrePilot
(
void
);
Fact
*
udpListenPort
(
void
);
Fact
*
udpTargetHostIP
(
void
);
Fact
*
udpTargetHostPort
(
void
);
static
const
char
*
autoConnectSettingsGroupName
;
...
...
@@ -41,6 +47,9 @@ public:
static
const
char
*
autoConnectPX4FlowSettingsName
;
static
const
char
*
autoConnectRTKGPSSettingsName
;
static
const
char
*
autoConnectLibrePilotSettingsName
;
static
const
char
*
udpListenPortName
;
static
const
char
*
udpTargetHostIPName
;
static
const
char
*
udpTargetHostPortName
;
private:
SettingsFact
*
_autoConnectUDPFact
;
...
...
@@ -49,6 +58,9 @@ private:
SettingsFact
*
_autoConnectPX4FlowFact
;
SettingsFact
*
_autoConnectRTKGPSFact
;
SettingsFact
*
_autoConnectLibrePilotFact
;
SettingsFact
*
_udpListenPortFact
;
SettingsFact
*
_udpTargetHostIPFact
;
SettingsFact
*
_udpTargetHostPortFact
;
static
const
char
*
_settingsGroup
;
};
...
...
src/comm/LinkManager.cc
View file @
32fc12c5
...
...
@@ -459,8 +459,8 @@ void LinkManager::_updateAutoConnectLinks(void)
}
if
(
!
foundUDP
&&
_autoConnectSettings
->
autoConnectUDP
()
->
rawValue
().
toBool
())
{
qCDebug
(
LinkManagerLog
)
<<
"New auto-connect UDP port added"
;
// Default UDPConfiguration is set up for autoconnect
UDPConfiguration
*
udpConfig
=
new
UDPConfiguration
(
_defaultUPDLinkName
);
udpConfig
->
setLocalPort
(
QGC_UDP_LOCAL_PORT
);
udpConfig
->
setDynamic
(
true
);
SharedLinkConfigurationPointer
config
=
addConfiguration
(
udpConfig
);
createConnectedLink
(
config
);
...
...
src/comm/UDPLink.cc
View file @
32fc12c5
...
...
@@ -23,10 +23,13 @@
#include <QNetworkProxy>
#include <QNetworkInterface>
#include <iostream>
#include <QHostInfo>
#include "UDPLink.h"
#include "QGC.h"
#include <QHostInfo>
#include "QGCApplication.h"
#include "SettingsManager.h"
#include "AutoConnectSettings.h"
#define REMOVE_GONE_HOSTS 0
...
...
@@ -329,7 +332,12 @@ void UDPLink::_deregisterZeroconf()
UDPConfiguration
::
UDPConfiguration
(
const
QString
&
name
)
:
LinkConfiguration
(
name
)
{
_localPort
=
QGC_UDP_LOCAL_PORT
;
AutoConnectSettings
*
settings
=
qgcApp
()
->
toolbox
()
->
settingsManager
()
->
autoConnectSettings
();
_localPort
=
settings
->
udpListenPort
()
->
rawValue
().
toInt
();
QString
targetHostIP
=
settings
->
udpTargetHostIP
()
->
rawValue
().
toString
();
if
(
!
targetHostIP
.
isEmpty
())
{
addHost
(
targetHostIP
,
settings
->
udpTargetHostPort
()
->
rawValue
().
toInt
());
}
}
UDPConfiguration
::
UDPConfiguration
(
UDPConfiguration
*
source
)
:
LinkConfiguration
(
source
)
...
...
@@ -499,11 +507,13 @@ void UDPConfiguration::saveSettings(QSettings& settings, const QString& root)
void
UDPConfiguration
::
loadSettings
(
QSettings
&
settings
,
const
QString
&
root
)
{
AutoConnectSettings
*
acSettings
=
qgcApp
()
->
toolbox
()
->
settingsManager
()
->
autoConnectSettings
();
_confMutex
.
lock
();
_hosts
.
clear
();
_confMutex
.
unlock
();
settings
.
beginGroup
(
root
);
_localPort
=
(
quint16
)
settings
.
value
(
"port"
,
QGC_UDP_LOCAL_PORT
).
toUInt
();
_localPort
=
(
quint16
)
settings
.
value
(
"port"
,
acSettings
->
udpListenPort
()
->
rawValue
().
toInt
()
).
toUInt
();
int
hostCount
=
settings
.
value
(
"hostCount"
,
0
).
toInt
();
for
(
int
i
=
0
;
i
<
hostCount
;
i
++
)
{
QString
hkey
=
QString
(
"host%1"
).
arg
(
i
);
...
...
src/comm/UDPLink.h
View file @
32fc12c5
...
...
@@ -34,9 +34,6 @@
#include "QGCConfig.h"
#include "LinkManager.h"
#define QGC_UDP_LOCAL_PORT 14550
#define QGC_UDP_TARGET_PORT 14555
class
UDPConfiguration
:
public
LinkConfiguration
{
Q_OBJECT
...
...
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