1

Using MAVLink Router, I created three local host endpoints (bottom left window of the image) and I am able to see the live data through QGroundControl ports 14550 in the MAVLink Inspector, but I can't seem to grab the data in my listen.py script. I don't see anything on wireshark going to the specified ports, but I think it may be because it comes in through the sik telemetry radio in mavlink protocol.

The listen script

The bottom left is my onboard computer running mavlink-router

oofmeister
  • 31
  • 3

1 Answers1

0

OP has probably solved this by now, but answering for others having this problem. In your listener script you passed a connection string "udp:localhost:14552". Your mavink router instance indicates that the UDP endpoints are clients. This means both your listener and your mavlink router udp endpoints are both listening for mavlink packets. Mavlink router will not send mavlink packets to those client endpoints until they receive mavlink heartbeats from the expected ip and port.

You should change your listeners pymavlink connection string to "udpout:localhost:14552 and have your script sending mavlink heartbeats either in a thread or just sending them every second in an infinite loop.

TL;DR Set your connection string to udpout so it is a "udp server" and send mavlink heartbeats. Mavlink router should start responding with messages as soon as those heartbeats come in.

Alternatively, you could set your mavlink router endpoints to be "udp server" endpoints by changing your mavlink-router conf file. Type "mavlink-routerd --help" to see how you can set up endpoints to "listen" or send mavlink messages without first receiving a heartbeat.

Hope that helps