mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-14 04:13:33 +08:00
feat (MAVLink): use RADIO_STATUS to fill input_rc data
Signed-off-by: Beniamino Pozzan <beniamino.pozzan@gmail.com>
This commit is contained in:
@@ -1393,6 +1393,17 @@ Mavlink::update_radio_status(const radio_status_s &radio_status)
|
||||
pthread_mutex_unlock(&_radio_status_mutex);
|
||||
}
|
||||
|
||||
bool
|
||||
Mavlink::get_radio_status(radio_status_s &radio_status) const
|
||||
{
|
||||
if (_radio_status_available) {
|
||||
radio_status = _rstatus;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
int
|
||||
Mavlink::configure_streams_to_default(const char *configure_single_stream)
|
||||
{
|
||||
|
||||
@@ -449,6 +449,8 @@ public:
|
||||
|
||||
void update_radio_status(const radio_status_s &radio_status);
|
||||
|
||||
bool get_radio_status(radio_status_s &radio_status) const;
|
||||
|
||||
unsigned get_system_type() { return _param_mav_type.get(); }
|
||||
|
||||
Protocol get_protocol() const { return _protocol; }
|
||||
|
||||
@@ -2006,7 +2006,20 @@ MavlinkReceiver::handle_message_rc_channels_override(mavlink_message_t *msg)
|
||||
input_rc_s rc{};
|
||||
// metadata
|
||||
rc.timestamp = rc.timestamp_last_signal = hrt_absolute_time();
|
||||
rc.rssi = input_rc_s::RSSI_MAX;
|
||||
|
||||
radio_status_s radio_status{};
|
||||
|
||||
if (_mavlink.get_radio_status(radio_status)) {
|
||||
rc.rssi_dbm = -(float)(radio_status.remote_rssi);
|
||||
rc.link_quality = (int8_t)(radio_status.rssi / 2.55); // convert to percentage
|
||||
|
||||
} else {
|
||||
rc.rssi_dbm = NAN;
|
||||
rc.link_quality = -1;
|
||||
}
|
||||
|
||||
rc.rssi = rc.link_quality;
|
||||
|
||||
rc.rc_failsafe = false;
|
||||
rc.rc_lost = false;
|
||||
rc.rc_lost_frame_count = 0;
|
||||
@@ -2071,9 +2084,6 @@ MavlinkReceiver::handle_message_rc_channels_override(mavlink_message_t *msg)
|
||||
}
|
||||
}
|
||||
|
||||
rc.link_quality = -1;
|
||||
rc.rssi_dbm = NAN;
|
||||
|
||||
// publish uORB message
|
||||
_rc_pub.publish(rc);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user