rtl: keep rtl_status struct on stack

This commit is contained in:
Matthias Grob 2026-01-15 22:34:43 +01:00 committed by Silvan Fuhrer
parent 31c7d70342
commit 18c3d889fe
2 changed files with 9 additions and 10 deletions

View File

@ -357,15 +357,14 @@ void RTL::setRtlTypeAndDestination()
}
// Publish rtl status
_rtl_status_pub.get().timestamp = hrt_absolute_time();
_rtl_status_pub.get().safe_points_id = _safe_points_id;
_rtl_status_pub.get().is_evaluation_pending = _dataman_state != DatamanState::UpdateRequestWait;
_rtl_status_pub.get().has_vtol_approach = _home_has_land_approach || _one_rally_point_has_land_approach;
_rtl_status_pub.get().rtl_type = static_cast<uint8_t>(_rtl_type);
_rtl_status_pub.get().safe_point_index = safe_point_index;
_rtl_status_pub.update();
rtl_status_s rtl_status{};
rtl_status.safe_points_id = _safe_points_id;
rtl_status.is_evaluation_pending = _dataman_state != DatamanState::UpdateRequestWait;
rtl_status.has_vtol_approach = _home_has_land_approach || _one_rally_point_has_land_approach;
rtl_status.rtl_type = static_cast<uint8_t>(_rtl_type);
rtl_status.safe_point_index = safe_point_index;
rtl_status.timestamp = hrt_absolute_time();
_rtl_status_pub.publish(rtl_status);
}

View File

@ -257,5 +257,5 @@ private:
uORB::SubscriptionMultiArray<telemetry_status_s> _telemetry_status_subs{ORB_ID::telemetry_status};
uORB::Publication<rtl_time_estimate_s> _rtl_time_estimate_pub{ORB_ID(rtl_time_estimate)};
uORB::PublicationData<rtl_status_s> _rtl_status_pub{ORB_ID(rtl_status)};
uORB::Publication<rtl_status_s> _rtl_status_pub{ORB_ID(rtl_status)};
};