Get stuck in wait_heartbeat() in Pymavlink

Hi. I am quite new to HereLink and Pymavlink. I am not sure if this is the right place to ask this question. If not, please advise accordingly.

I have a HereLink Airunit connected to firmware sending sensor status data to HereLink RC controller. RC controller is connected to a Linux machine:

Firmware ↔ Air-unit ← - - - - - - → RC ↔ Linux machine (with pymavlink running)

Inside the Linux machine, I have a very simple Python script:

master = mavutil.mavlink_connection('udp:192.168.144.3:14550', baud=57600)

master.wait_heartbeat()

while True:
    try:
        print(master.recv_match().to_dict())
    except:
        pass
    time.sleep(0.1)

My code gets stuck at wait_heartbeat() function. If I open QGC app on my Linux machine, this wait_heartbeat() function starts working and then I start receiving messages. Looks like QGC is doing a magic behind the scene that I am not aware of.

I would highly appreciate if anyone can help to spot the reason and logic behind this :slight_smile: