ArduPilot / ardupilot

ArduPlane, ArduCopter, ArduRover, ArduSub source
http://ardupilot.org/
GNU General Public License v3.0
10.23k stars 16.82k forks source link

MAVlink library prevents OSD from receiving RSSI from 3DR modems #5275

Open night-ghost opened 7 years ago

night-ghost commented 7 years ago

Issue details

file https://github.com/ArduPilot/ardupilot/blob/master/libraries/GCS_MAVLink/MAVLink_routing.cpp

lines starting 103

if (msg->msgid == MAVLINK_MSG_ID_RADIO ||
        msg->msgid == MAVLINK_MSG_ID_RADIO_STATUS) {
        // don't forward RADIO packets
        return true;
    }

this code fully filters out MAVLINK_MSG_ID_RADIO_STATUS and MAVLINK_MSG_ID_RADIO messages so no one module (and OSD too) can't see RSSI from 3DR modems.

So in Copter 3.1 3DR RSSI is working, and definitely not working on Copter 3.3/3.4. All OSD users logically consider that it is problem of OSD itself

This messages should be filtered out only on port from which they are comes, and be routed to all another MAVlink ports. Or even better to route this message to all ports and filter them out in 3DR modem firmware.

imrj commented 7 years ago

can someone please reply to night-ghost? this is a long standing issue we would like to fix in MinimOSD

OXINARF commented 7 years ago

@imrj I'm not sure what you want us to answer. This filtering was certainly done on purpose but I can see why other components would like to have that information. For those reasons I marked this as an enhancement. As always PRs are welcomed, although I can't say if it would be accepted or not. In dev calls we usually discuss concrete opened PRs or an issue someone brings to know if he should proceed with implementation. So if someone wishes to implement this there are two possible courses of action:

night-ghost commented 7 years ago

As for me, this is the bug because that PR which brought these changes was not sufficiently tested

guiseco commented 7 years ago

what about this issue ?

tizianofiorenzani commented 6 years ago

I totally find this issue pretty important. As for now my companion PC cannot read the connection status.

tridge commented 6 years ago

we've decided to add a SERIAL_OPTIONS bitmask parameter with a bit to change this behaviour