ADS-B heartbeat message

Does anyone know where in the code the UAVIONIX_ADSB_TRANSCEIVER_HEALTH_REPORT message is sent to the ground station? I’ve tried commenting out everwhere in AP_ADSB.h and AP_ADSB.cpp where it’s referred to but it still gets sent. I’d like to change this so that it doesn’t keep unnecessarily send these messages when everything is fine.

It’s almost certainly generated by the Ping itself, not ArduPilot.

Thanks for your reply, you’re probably right. The message is used by AP_ADSB.cpp to find the channel of the receiver, but it doesn’t call anything to send the message on.

Is there any way to catch the message before it gets sent from the Pixhawk to the GCS? Would adding a function to only send it when unhealthy values are used work?

Ok, I believe I understand this a bit better now. The Ping is sending a packet without a specified target ID so that the message is sent to all available channels, so it comes to the GCS. Is there any way to prevent it here without altering the Ping? Thanks

Fixed it! I had to add an exception for it to GCS_mavlink.cpp along with the radio packets to stop it being forwarded

1 Like