QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
LinkManager Class Reference

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 LinkConfigurationcreateConfiguration (int type, const QString &name)
 Create/Edit Link Configuration.
 
Q_INVOKABLE LinkConfigurationstartConfigurationEditing (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 LogReplayLinkstartLogReplay (const QString &logFile)
 
QList< SharedLinkInterfacePtrlinks ()
 
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 LinkManagerinstance ()
 
static bool isBluetoothAvailable ()
 
static bool isLinkUSBDirect (const LinkInterface *link)
 
static constexpr uint8_t invalidMavlinkChannel ()
 
static QStringList serialBaudRates ()
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ LinkManager()

LinkManager::LinkManager ( QObject *  parent = nullptr)
explicit

Definition at line 38 of file LinkManager.cc.

◆ ~LinkManager()

LinkManager::~LinkManager ( )

Definition at line 53 of file LinkManager.cc.

Member Function Documentation

◆ addConfiguration()

SharedLinkConfigurationPtr LinkManager::addConfiguration ( LinkConfiguration config)

◆ allocateMavlinkChannel()

uint8_t LinkManager::allocateMavlinkChannel ( )

Allocates a mavlink channel for use

Returns
Mavlink channel index, invalidMavlinkChannel() for no channels available

Definition at line 621 of file LinkManager.cc.

References invalidMavlinkChannel(), MAVLINK_COMM_NUM_BUFFERS, and mavlink_get_channel_status().

Referenced by LinkInterface::_allocateMavlinkChannel().

◆ cancelConfigurationEditing()

Q_INVOKABLE void LinkManager::cancelConfigurationEditing ( LinkConfiguration config) const
inline

Definition at line 54 of file LinkManager.h.

◆ commPortsChanged

void LinkManager::commPortsChanged ( )
signal

◆ commPortStringsChanged

void LinkManager::commPortStringsChanged ( )
signal

◆ containsLink()

bool LinkManager::containsLink ( const LinkInterface link)

Definition at line 591 of file LinkManager.cc.

◆ createConfiguration()

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.

◆ createConnectedLink() [1/2]

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().

◆ createConnectedLink() [2/2]

◆ createMavlinkForwardingSupportLink()

void LinkManager::createMavlinkForwardingSupportLink ( )

◆ disconnectAll()

void LinkManager::disconnectAll ( )

Definition at line 195 of file LinkManager.cc.

References links().

Referenced by shutdown(), and FirmwareUpgradeController::startBoardSearch().

◆ endConfigurationEditing()

void LinkManager::endConfigurationEditing ( LinkConfiguration config,
LinkConfiguration editedConfig 
)

◆ endCreateConfiguration()

void LinkManager::endCreateConfiguration ( LinkConfiguration config)

Definition at line 510 of file LinkManager.cc.

References addConfiguration(), and saveLinkConfigurationList().

◆ freeMavlinkChannel()

void LinkManager::freeMavlinkChannel ( uint8_t  channel)

Definition at line 640 of file LinkManager.cc.

References invalidMavlinkChannel().

Referenced by LinkInterface::_freeMavlinkChannel().

◆ init()

void LinkManager::init ( )

◆ instance()

◆ invalidMavlinkChannel()

static constexpr uint8_t LinkManager::invalidMavlinkChannel ( )
inlinestaticconstexpr

◆ isBluetoothAvailable()

bool LinkManager::isBluetoothAvailable ( )
static

Definition at line 586 of file LinkManager.cc.

References QGCNetworkHelper::isBluetoothAvailable().

◆ isBluetoothAvailableChanged

void LinkManager::isBluetoothAvailableChanged ( )
signal

◆ isLinkUSBDirect()

bool LinkManager::isLinkUSBDirect ( const LinkInterface link)
static

◆ links()

QList< SharedLinkInterfacePtr > LinkManager::links ( )

Definition at line 73 of file LinkManager.cc.

Referenced by disconnectAll(), and QGroundControlQmlGlobal::stopOneMockLink().

◆ linkTypeStrings()

QStringList LinkManager::linkTypeStrings ( ) const

Definition at line 470 of file LinkManager.cc.

References LinkConfiguration::TypeLast.

◆ loadLinkConfigurationList()

◆ mavlinkForwardingLink()

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.

◆ mavlinkForwardingSupportLink()

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.

◆ mavlinkSupportForwardingEnabled()

bool LinkManager::mavlinkSupportForwardingEnabled ( ) const
inline

Definition at line 67 of file LinkManager.h.

◆ mavlinkSupportForwardingEnabledChanged

void LinkManager::mavlinkSupportForwardingEnabledChanged ( )
signal

◆ removeConfiguration()

void LinkManager::removeConfiguration ( LinkConfiguration config)

◆ saveLinkConfigurationList()

void LinkManager::saveLinkConfigurationList ( )

◆ serialBaudRates()

QStringList LinkManager::serialBaudRates ( )
static

Definition at line 922 of file LinkManager.cc.

References SerialConfiguration::supportedBaudRates().

◆ serialPorts()

QStringList LinkManager::serialPorts ( )

Definition at line 913 of file LinkManager.cc.

◆ serialPortStrings()

QStringList LinkManager::serialPortStrings ( )

Definition at line 904 of file LinkManager.cc.

◆ setConnectionsAllowed()

void LinkManager::setConnectionsAllowed ( )
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().

◆ setConnectionsSuspended()

void LinkManager::setConnectionsSuspended ( const QString &  reason)
inline

Sets the flag to suspend the all new connections

Parameters
reasonUser visible reason to suspend connections

Definition at line 74 of file LinkManager.h.

Referenced by LogReplayWorker::play(), shutdown(), and FirmwareUpgradeController::startBoardSearch().

◆ sharedLinkInterfacePointerForLink()

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().

◆ shutdown()

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().

◆ startAutoConnectedLinks()

void LinkManager::startAutoConnectedLinks ( )

Definition at line 612 of file LinkManager.cc.

References createConnectedLink().

◆ startConfigurationEditing()

LinkConfiguration * LinkManager::startConfigurationEditing ( LinkConfiguration config)

◆ startLogReplay()


The documentation for this class was generated from the following files: