Turns out the mavlink shell also works as a valid datalink.
I’ve been able to identify the responsible passages and came up with a little “datalink thread”, which solves my issue. It goes like this:
import threading
from pymavlink import mavutil
class MavHeartbeatThread(threading.Thread):
def __init__(self, interval=1.):
super(MavHeartbeatThread, self).__init__()
self.interval = interval
self.running = False
def run(self):
self.running = True
self.mavlink_connection = mavutil.mavlink_connection('0.0.0.0:14550', autoreconnect=True, baud=57600)
self.mavlink_connection.wait_heartbeat()
while self.running:
self.mavlink_connection.mav.heartbeat_send(mavutil.mavlink.MAV_TYPE_GCS,
mavutil.mavlink.MAV_AUTOPILOT_GENERIC, 0, 0, 0)
time.sleep(self.interval)
def stop(self):
self.running = False