39 Q_MOC_INCLUDE(
"QmlObjectListModel.h")
40 Q_MOC_INCLUDE(
"LogReplayLink.h")
42 Q_PROPERTY(
QmlObjectListModel *linkConfigurations READ _qmlLinkConfigurations CONSTANT)
43 Q_PROPERTY(QStringList linkTypeStrings READ linkTypeStrings CONSTANT)
55 Q_INVOKABLE
LinkConfiguration *createConfiguration(
int type,
const QString &name);
57 Q_INVOKABLE
void cancelConfigurationEditing(
LinkConfiguration *config)
const {
delete config; }
63 Q_INVOKABLE
void createMavlinkForwardingSupportLink();
65 Q_INVOKABLE
void shutdown();
66 Q_INVOKABLE
LogReplayLink *startLogReplay(
const QString &logFile);
68 QList<SharedLinkInterfacePtr> links();
69 QStringList linkTypeStrings()
const;
70 bool mavlinkSupportForwardingEnabled()
const {
return _mavlinkSupportForwardingEnabled; }
72 void loadLinkConfigurationList();
73 void saveLinkConfigurationList();
77 void setConnectionsSuspended(
const QString &reason) { _connectionsSuspended =
true; _connectionsSuspendedReason = reason; }
80 void setConnectionsAllowed() { _connectionsSuspended =
false; }
92 void resetMavlinkSigning();
98 uint8_t allocateMavlinkChannel();
99 void freeMavlinkChannel(uint8_t channel);
109 void startAutoConnectedLinks();
111 static bool isBluetoothAvailable();
115 static constexpr uint8_t invalidMavlinkChannel() {
return std::numeric_limits<uint8_t>::max(); }
122 void _linkDisconnected();
123 void _communicationError(
const QString &title,
const QString &
error);
128 bool _connectionsSuspendedMsg()
const;
129 void _updateAutoConnectLinks();
131 void _addUDPAutoConnectLink();
132 void _addMAVLinkForwardingLink();
133 void _createDynamicForwardLink(
const char *linkName,
const QString &hostName);
134#ifdef QGC_ZEROCONF_ENABLED
135 void _addZeroConfAutoConnectLink();
138 QTimer *_portListTimer =
nullptr;
142 bool _configUpdateSuspended =
false;
143 bool _configurationsLoaded =
false;
144 bool _connectionsSuspended =
false;
145 bool _mavlinkSupportForwardingEnabled =
false;
146 uint32_t _mavlinkChannelsUsedBitMask = 1;
147 QString _connectionsSuspendedReason;
150 QList<SharedLinkInterfacePtr> _rgLinks;
151 QList<SharedLinkConfigurationPtr> _rgLinkConfigs;
153 static constexpr const char *_defaultUDPLinkName =
"UDP Link (AutoConnect)";
154 static constexpr const char *_mavlinkForwardingLinkName =
"MAVLink Forwarding Link";
155 static constexpr const char *_mavlinkForwardingSupportLinkName =
"MAVLink Support Forwarding Link";
157 static constexpr int _autoconnectUpdateTimerMSecs = 1000;
160 static constexpr int _autoconnectConnectDelayMSecs = 6000;
162 static constexpr int _autoconnectConnectDelayMSecs = 1000;
165#ifndef QGC_NO_SERIAL_LINK
167 Q_PROPERTY(QStringList serialBaudRates READ serialBaudRates CONSTANT)
169 Q_PROPERTY(QStringList serialPorts READ serialPorts NOTIFY
commPortsChanged)
172 static QStringList serialBaudRates();
173 QStringList serialPortStrings();
174 QStringList serialPorts();
181 bool _isSerialPortConnected();
182 void _updateSerialPorts();
184 void _addSerialAutoConnectLink();
185 bool _portAlreadyConnected(
const QString &portName);
186 void _filterCompositePorts(QList<QGCSerialPortInfo> &portList);
189 QMap<QString, int> _autoconnectPortWaitList;
190 QList<SerialLink*> _activeLinkCheckList;
191 QStringList _commPortList;
192 QStringList _commPortDisplayList;
193 QString _autoConnectRTKPort;
194 QString _nmeaDeviceName;
195 uint32_t _nmeaBaud = 0;