|
QGroundControl
Ground Control Station for MAVLink Drones
|
Manage communication links The Link Manager organizes the physical Links. It can manage arbitrary links and takes care of connecting them as well assigning the correct protocol instance to transport the link data into the application. More...
#include <LinkManager.h>
Inheritance diagram for LinkManager:
Collaboration diagram for LinkManager:Signals | |
| void | mavlinkSupportForwardingEnabledChanged () |
| void | isBluetoothAvailableChanged () |
| void | commPortStringsChanged () |
| void | commPortsChanged () |
Public Member Functions | |
| LinkManager (QObject *parent=nullptr) | |
| ~LinkManager () | |
| void | init () |
| Q_INVOKABLE LinkConfiguration * | createConfiguration (int type, const QString &name) |
| Create/Edit Link Configuration. | |
| Q_INVOKABLE LinkConfiguration * | startConfigurationEditing (LinkConfiguration *config) |
| Q_INVOKABLE void | cancelConfigurationEditing (LinkConfiguration *config) const |
| Q_INVOKABLE void | endConfigurationEditing (LinkConfiguration *config, LinkConfiguration *editedConfig) |
| Q_INVOKABLE void | endCreateConfiguration (LinkConfiguration *config) |
| Q_INVOKABLE void | removeConfiguration (LinkConfiguration *config) |
| Q_INVOKABLE void | createConnectedLink (const LinkConfiguration *config) |
| This should only be used by Qml code. | |
| Q_INVOKABLE void | createMavlinkForwardingSupportLink () |
| Q_INVOKABLE void | shutdown () |
| Called to signal app shutdown. Disconnects all links while turning off auto-connect. | |
| Q_INVOKABLE LogReplayLink * | startLogReplay (const QString &logFile) |
| QList< SharedLinkInterfacePtr > | links () |
| QStringList | linkTypeStrings () const |
| bool | mavlinkSupportForwardingEnabled () const |
| void | loadLinkConfigurationList () |
| void | saveLinkConfigurationList () |
| void | setConnectionsSuspended (const QString &reason) |
| void | setConnectionsAllowed () |
| Sets the flag to allow new connections to be made. | |
| bool | createConnectedLink (SharedLinkConfigurationPtr &config) |
| Creates, connects (and adds) a link based on the given configuration instance. | |
| SharedLinkInterfacePtr | mavlinkForwardingLink () |
| Returns pointer to the mavlink forwarding link, or nullptr if it does not exist. | |
| SharedLinkInterfacePtr | mavlinkForwardingSupportLink () |
| Returns pointer to the mavlink support forwarding link, or nullptr if it does not exist. | |
| void | disconnectAll () |
| uint8_t | allocateMavlinkChannel () |
| void | freeMavlinkChannel (uint8_t channel) |
| SharedLinkInterfacePtr | sharedLinkInterfacePointerForLink (const LinkInterface *link) |
| bool | containsLink (const LinkInterface *link) |
| SharedLinkConfigurationPtr | addConfiguration (LinkConfiguration *config) |
| void | startAutoConnectedLinks () |
| QStringList | serialPortStrings () |
| QStringList | serialPorts () |
Static Public Member Functions | |
| static LinkManager * | instance () |
| static bool | isBluetoothAvailable () |
| static bool | isLinkUSBDirect (const LinkInterface *link) |
| static constexpr uint8_t | invalidMavlinkChannel () |
| static QStringList | serialBaudRates () |
Manage communication links The Link Manager organizes the physical Links. It can manage arbitrary links and takes care of connecting them as well assigning the correct protocol instance to transport the link data into the application.
Definition at line 31 of file LinkManager.h.
|
explicit |
Definition at line 38 of file LinkManager.cc.
| LinkManager::~LinkManager | ( | ) |
Definition at line 53 of file LinkManager.cc.
| SharedLinkConfigurationPtr LinkManager::addConfiguration | ( | LinkConfiguration * | config | ) |
Definition at line 604 of file LinkManager.cc.
References QmlObjectListModel::append().
Referenced by endCreateConfiguration(), loadLinkConfigurationList(), and startLogReplay().
| uint8_t LinkManager::allocateMavlinkChannel | ( | ) |
Allocates a mavlink channel for use
Definition at line 621 of file LinkManager.cc.
References invalidMavlinkChannel(), MAVLINK_COMM_NUM_BUFFERS, and mavlink_get_channel_status().
Referenced by LinkInterface::_allocateMavlinkChannel().
|
inline |
Definition at line 54 of file LinkManager.h.
|
signal |
|
signal |
| bool LinkManager::containsLink | ( | const LinkInterface * | link | ) |
Definition at line 591 of file LinkManager.cc.
| LinkConfiguration * LinkManager::createConfiguration | ( | int | type, |
| const QString & | name | ||
| ) |
Create/Edit Link Configuration.
Definition at line 521 of file LinkManager.cc.
References LinkConfiguration::createSettings(), and LinkConfiguration::TypeSerial.
| void LinkManager::createConnectedLink | ( | const LinkConfiguration * | config | ) |
This should only be used by Qml code.
Definition at line 84 of file LinkManager.cc.
References createConnectedLink().
Referenced by createConnectedLink(), startAutoConnectedLinks(), and startLogReplay().
| bool LinkManager::createConnectedLink | ( | SharedLinkConfigurationPtr & | config | ) |
Creates, connects (and adds) a link based on the given configuration instance.
Definition at line 93 of file LinkManager.cc.
References LinkInterface::bytesReceived(), LinkInterface::bytesSent(), LinkInterface::communicationError(), LinkInterface::disconnected(), MAVLinkProtocol::instance(), MAVLinkProtocol::logSentBytes(), MAVLinkProtocol::receiveBytes(), MAVLinkProtocol::resetMetadataForLink(), LinkConfiguration::TypeBluetooth, LinkConfiguration::TypeLast, LinkConfiguration::TypeLogReplay, LinkConfiguration::TypeSerial, LinkConfiguration::TypeTcp, and LinkConfiguration::TypeUdp.
| void LinkManager::createMavlinkForwardingSupportLink | ( | ) |
Definition at line 564 of file LinkManager.cc.
References SettingsManager::instance(), SettingsManager::mavlinkSettings(), and mavlinkSupportForwardingEnabledChanged().
| void LinkManager::disconnectAll | ( | ) |
Definition at line 195 of file LinkManager.cc.
References links().
Referenced by shutdown(), and FirmwareUpgradeController::startBoardSearch().
| void LinkManager::endConfigurationEditing | ( | LinkConfiguration * | config, |
| LinkConfiguration * | editedConfig | ||
| ) |
Definition at line 496 of file LinkManager.cc.
References LinkConfiguration::copyFrom(), LinkConfiguration::name(), LinkConfiguration::nameChanged(), and saveLinkConfigurationList().
| void LinkManager::endCreateConfiguration | ( | LinkConfiguration * | config | ) |
Definition at line 510 of file LinkManager.cc.
References addConfiguration(), and saveLinkConfigurationList().
| void LinkManager::freeMavlinkChannel | ( | uint8_t | channel | ) |
Definition at line 640 of file LinkManager.cc.
References invalidMavlinkChannel().
Referenced by LinkInterface::_freeMavlinkChannel().
| void LinkManager::init | ( | ) |
Definition at line 63 of file LinkManager.cc.
References SettingsManager::autoConnectSettings(), SettingsManager::instance(), and QGC::runningUnitTests().
|
static |
Definition at line 58 of file LinkManager.cc.
Referenced by LinkInterface::_allocateMavlinkChannel(), LinkInterface::_freeMavlinkChannel(), LogReplayWorker::pause(), LogReplayWorker::play(), MAVLinkProtocol::receiveBytes(), FirmwareUpgradeController::startBoardSearch(), QGroundControlQmlGlobal::stopOneMockLink(), and FirmwareUpgradeController::~FirmwareUpgradeController().
|
inlinestaticconstexpr |
Definition at line 109 of file LinkManager.h.
Referenced by LinkInterface::_freeMavlinkChannel(), allocateMavlinkChannel(), freeMavlinkChannel(), and LinkInterface::mavlinkChannelIsSet().
|
static |
Definition at line 586 of file LinkManager.cc.
References QGCNetworkHelper::isBluetoothAvailable().
|
signal |
|
static |
Definition at line 679 of file LinkManager.cc.
References LinkInterface::linkConfiguration(), and SerialConfiguration::usbDirect().
| QList< SharedLinkInterfacePtr > LinkManager::links | ( | ) |
Definition at line 73 of file LinkManager.cc.
Referenced by disconnectAll(), and QGroundControlQmlGlobal::stopOneMockLink().
| QStringList LinkManager::linkTypeStrings | ( | ) | const |
Definition at line 470 of file LinkManager.cc.
References LinkConfiguration::TypeLast.
| void LinkManager::loadLinkConfigurationList | ( | ) |
Definition at line 305 of file LinkManager.cc.
References addConfiguration(), LinkConfiguration::loadSettings(), LinkConfiguration::setAutoConnect(), LinkConfiguration::setHighLatency(), LinkConfiguration::settingsRoot(), LinkConfiguration::TypeBluetooth, LinkConfiguration::TypeLast, LinkConfiguration::TypeLogReplay, LinkConfiguration::TypeSerial, LinkConfiguration::TypeTcp, and LinkConfiguration::TypeUdp.
| SharedLinkInterfacePtr LinkManager::mavlinkForwardingLink | ( | ) |
Returns pointer to the mavlink forwarding link, or nullptr if it does not exist.
Definition at line 167 of file LinkManager.cc.
References LinkConfiguration::TypeUdp.
| SharedLinkInterfacePtr LinkManager::mavlinkForwardingSupportLink | ( | ) |
Returns pointer to the mavlink support forwarding link, or nullptr if it does not exist.
Definition at line 181 of file LinkManager.cc.
References LinkConfiguration::TypeUdp.
|
inline |
Definition at line 67 of file LinkManager.h.
|
signal |
Referenced by createMavlinkForwardingSupportLink().
| void LinkManager::removeConfiguration | ( | LinkConfiguration * | config | ) |
Definition at line 548 of file LinkManager.cc.
References LinkInterface::disconnect(), LinkConfiguration::link(), and saveLinkConfigurationList().
| void LinkManager::saveLinkConfigurationList | ( | ) |
Definition at line 276 of file LinkManager.cc.
References LinkConfiguration::settingsRoot().
Referenced by endConfigurationEditing(), endCreateConfiguration(), and removeConfiguration().
|
static |
Definition at line 922 of file LinkManager.cc.
References SerialConfiguration::supportedBaudRates().
| QStringList LinkManager::serialPorts | ( | ) |
Definition at line 913 of file LinkManager.cc.
| QStringList LinkManager::serialPortStrings | ( | ) |
Definition at line 904 of file LinkManager.cc.
|
inline |
Sets the flag to allow new connections to be made.
Definition at line 77 of file LinkManager.h.
Referenced by LogReplayWorker::pause(), and FirmwareUpgradeController::~FirmwareUpgradeController().
|
inline |
Sets the flag to suspend the all new connections
| reason | User visible reason to suspend connections |
Definition at line 74 of file LinkManager.h.
Referenced by LogReplayWorker::play(), shutdown(), and FirmwareUpgradeController::startBoardSearch().
| SharedLinkInterfacePtr LinkManager::sharedLinkInterfacePointerForLink | ( | const LinkInterface * | link | ) |
If you are going to hold a reference to a LinkInterface* in your object you must reference count it by using this method to get access to the shared pointer.
Definition at line 250 of file LinkManager.cc.
Referenced by MAVLinkProtocol::receiveBytes().
| void LinkManager::shutdown | ( | ) |
Called to signal app shutdown. Disconnects all links while turning off auto-connect.
Definition at line 459 of file LinkManager.cc.
References disconnectAll(), MultiVehicleManager::instance(), and setConnectionsSuspended().
| void LinkManager::startAutoConnectedLinks | ( | ) |
Definition at line 612 of file LinkManager.cc.
References createConnectedLink().
| LinkConfiguration * LinkManager::startConfigurationEditing | ( | LinkConfiguration * | config | ) |
Definition at line 532 of file LinkManager.cc.
References LinkConfiguration::duplicateSettings(), LinkConfiguration::type(), and LinkConfiguration::TypeSerial.
| LogReplayLink * LinkManager::startLogReplay | ( | const QString & | logFile | ) |
Definition at line 651 of file LinkManager.cc.
References addConfiguration(), createConnectedLink(), LogReplayConfiguration::logFilenameShort(), LogReplayConfiguration::setLogFilename(), and LinkConfiguration::setName().