mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-08 03:38:53 +08:00
navigator: unroll two small publication functions
This commit is contained in:
@@ -63,10 +63,11 @@ px4_add_module(
|
||||
MAIN navigator
|
||||
SRCS ${NAVIGATOR_SOURCES}
|
||||
DEPENDS
|
||||
adsb
|
||||
dataman_client
|
||||
geo
|
||||
adsb
|
||||
geofence_breach_avoidance
|
||||
hysteresis
|
||||
motion_planning
|
||||
mission_feasibility_checker
|
||||
rtl_time_estimator
|
||||
|
||||
@@ -397,16 +397,6 @@ private:
|
||||
// update subscriptions
|
||||
void params_update();
|
||||
|
||||
/**
|
||||
* Publish a new position setpoint triplet for position controllers
|
||||
*/
|
||||
void publish_position_setpoint_triplet();
|
||||
|
||||
/**
|
||||
* Publish the mission result so commander and mavlink know what is going on
|
||||
*/
|
||||
void publish_mission_result();
|
||||
|
||||
void publish_navigator_status();
|
||||
|
||||
void publish_vehicle_command_ack(const vehicle_command_s &cmd, uint8_t result);
|
||||
|
||||
@@ -920,11 +920,18 @@ void Navigator::run()
|
||||
}
|
||||
|
||||
if (_pos_sp_triplet_updated) {
|
||||
publish_position_setpoint_triplet();
|
||||
_pos_sp_triplet.timestamp = hrt_absolute_time();
|
||||
_pos_sp_triplet_pub.publish(_pos_sp_triplet);
|
||||
_pos_sp_triplet_updated = false;
|
||||
}
|
||||
|
||||
if (_mission_result_updated) {
|
||||
publish_mission_result();
|
||||
_mission_result.timestamp = hrt_absolute_time();
|
||||
_mission_result_pub.publish(_mission_result);
|
||||
_mission_result.item_do_jump_changed = false;
|
||||
_mission_result.item_changed_index = 0;
|
||||
_mission_result.item_do_jump_remaining = 0;
|
||||
_mission_result_updated = false;
|
||||
}
|
||||
|
||||
// Set gimbal neutral if requested and delay is over
|
||||
@@ -1144,13 +1151,6 @@ int Navigator::print_status()
|
||||
return 0;
|
||||
}
|
||||
|
||||
void Navigator::publish_position_setpoint_triplet()
|
||||
{
|
||||
_pos_sp_triplet.timestamp = hrt_absolute_time();
|
||||
_pos_sp_triplet_pub.publish(_pos_sp_triplet);
|
||||
_pos_sp_triplet_updated = false;
|
||||
}
|
||||
|
||||
float Navigator::get_default_acceptance_radius()
|
||||
{
|
||||
return _param_nav_acc_rad.get();
|
||||
@@ -1369,21 +1369,6 @@ int Navigator::custom_command(int argc, char *argv[])
|
||||
return print_usage("unknown command");
|
||||
}
|
||||
|
||||
void Navigator::publish_mission_result()
|
||||
{
|
||||
_mission_result.timestamp = hrt_absolute_time();
|
||||
|
||||
/* lazily publish the mission result only once available */
|
||||
_mission_result_pub.publish(_mission_result);
|
||||
|
||||
/* reset some of the flags */
|
||||
_mission_result.item_do_jump_changed = false;
|
||||
_mission_result.item_changed_index = 0;
|
||||
_mission_result.item_do_jump_remaining = 0;
|
||||
|
||||
_mission_result_updated = false;
|
||||
}
|
||||
|
||||
void Navigator::set_mission_failure_heading_timeout()
|
||||
{
|
||||
if (!_mission_result.failure) {
|
||||
|
||||
Reference in New Issue
Block a user