Hauptinhalt

listConnections

R2026b

List all active MAVLink connections

Description

connectionTable = listConnections(mavlink) lists all active connections for the mavlinkio client connection.

example

Examples

collapse all

Connect a local MAVLink client to QGroundControl by exchanging heartbeat messages over UDP,

Open QGroundControl.

QGroundControl main menu showing that it is not connected to MATLAB

Create a mavlinkdialect object using the common.xml file.

dialect = mavlinkdialect("common.xml");

Create a local MAVLink client that represents a simulated UAV by creating a mavlinkio object with these settings:

  • MAVLink message definition — dialect

  • MAVLink system ID — 1

  • MAVLink component ID — 1

  • MAVLink component type — MAV_TYPE_QUADROTOR

  • MAVLink autopilot type — MAV_AUTOPILOT_GENERIC

uav = mavlinkio(dialect,SystemID=1,ComponentID=1,AutopilotType="MAV_AUTOPILOT_GENERIC", ...
    ComponentType="MAV_TYPE_QUADROTOR");

Store the remote MAVLink client information that represents QGroundControl. By default, QGroundControl has a system ID of 255 and a component ID of 190.

qgc = mavlinkclient(uav,255,190);

Connect the local MAVLink client to a UDP port by using the connect function.

connect(uav,"UDP");

Verify that the local MAVLink client has connected to a UDP port by using the listConnections function.

connectionTable = listConnections(uav)
connectionTable = 
   1x2 table
       ConnectionName         ConnectionInfo     
       ______________      ___________________ 
   
        "Connection1"      "UDP@0.0.0.0:55371"

Create a heartbeat microservice object.

heartbeat = mavlinkmicroservice(uav,"heartbeat");

Specify the host address and port of QGroundControl.

qgcHost = "127.0.0.1";
qgcPort = 14550;

Start sending heartbeat messages to QGroundControl by using the start function.

start(heartbeat,qgc,"UDP",RemoteHost=qgcHost,RemotePort=qgcPort);

If QGroundControl replies with heartbeat messages, the local MAVLink client establishes a connection to it.

QGroundControl main menu showing that it is connected to MATLAB

Verify that the connection has been established by using the listClients function.

listClients(uav)
ans = 2×4 table
    SystemID    ComponentID       ComponentType             AutopilotType     
    ________    ___________    ____________________    _______________________

      255           190          "MAV_TYPE_GCS"        "MAV_AUTOPILOT_INVALID"
       1             1        "MAV_TYPE_QUADROTOR"     "MAV_AUTOPILOT_GENERIC"

To stop the connection, first stop the heartbeat message stream.

stop(heartbeat,gcs)

Then, disconnect the local MAVLink client from the UDP port.

disconnect(uav)

Input Arguments

collapse all

Local MAVLink client, specified as a mavlinkio object.

Output Arguments

collapse all

Active connection info, returned as a table with ConnectionName and ConnectionInfo fields for each active connection.

Version History

Introduced in R2019a