mavlink_receiver: vtol_vehicle_status changed to vehicle_status subscription

This commit is contained in:
Ildar Sadykov
2019-10-09 18:00:09 +03:00
committed by Nuno Marques
parent d2f0100e5e
commit 65ed068bbd
2 changed files with 19 additions and 9 deletions
+17 -6
View File
@@ -1423,17 +1423,28 @@ MavlinkReceiver::handle_message_set_attitude_target(mavlink_message_t *msg)
case MAV_TYPE_VTOL_RESERVED3: case MAV_TYPE_VTOL_RESERVED3:
case MAV_TYPE_VTOL_RESERVED4: case MAV_TYPE_VTOL_RESERVED4:
case MAV_TYPE_VTOL_RESERVED5: case MAV_TYPE_VTOL_RESERVED5:
if (_vtol_vehicle_status_sub.updated()) { if (_vehicle_status_sub.updated()) {
_vtol_vehicle_status_sub.copy(&_vtol_vehicle_status); _vehicle_status_sub.copy(&_vehicle_status);
} }
if (_vtol_vehicle_status.vtol_in_rw_mode) { switch (_vehicle_status.vehicle_type) {
case vehicle_status_s::VEHICLE_TYPE_FIXED_WING:
att_sp.thrust_body[0] = set_attitude_target.thrust;
_fw_virtual_att_sp_pub.publish(att_sp);
break;
case vehicle_status_s::VEHICLE_TYPE_ROTARY_WING:
att_sp.thrust_body[2] = -set_attitude_target.thrust; att_sp.thrust_body[2] = -set_attitude_target.thrust;
_mc_virtual_att_sp_pub.publish(att_sp); _mc_virtual_att_sp_pub.publish(att_sp);
} else { break;
att_sp.thrust_body[0] = set_attitude_target.thrust;
_fw_virtual_att_sp_pub.publish(att_sp); default:
// This should never happen
break;
} }
break; break;
+2 -3
View File
@@ -97,7 +97,6 @@
#include <uORB/topics/vehicle_rates_setpoint.h> #include <uORB/topics/vehicle_rates_setpoint.h>
#include <uORB/topics/vehicle_status.h> #include <uORB/topics/vehicle_status.h>
#include <uORB/topics/vehicle_trajectory_waypoint.h> #include <uORB/topics/vehicle_trajectory_waypoint.h>
#include <uORB/topics/vtol_vehicle_status.h>
class Mavlink; class Mavlink;
@@ -265,7 +264,7 @@ private:
uORB::Subscription _parameter_update_sub{ORB_ID(parameter_update)}; uORB::Subscription _parameter_update_sub{ORB_ID(parameter_update)};
uORB::Subscription _vehicle_attitude_sub{ORB_ID(vehicle_attitude)}; uORB::Subscription _vehicle_attitude_sub{ORB_ID(vehicle_attitude)};
uORB::Subscription _vehicle_local_position_sub{ORB_ID(vehicle_local_position)}; uORB::Subscription _vehicle_local_position_sub{ORB_ID(vehicle_local_position)};
uORB::Subscription _vtol_vehicle_status_sub{ORB_ID(vtol_vehicle_status)}; uORB::Subscription _vehicle_status_sub{ORB_ID(vehicle_status)};
static constexpr unsigned int MOM_SWITCH_COUNT{8}; static constexpr unsigned int MOM_SWITCH_COUNT{8};
uint8_t _mom_switch_pos[MOM_SWITCH_COUNT] {}; uint8_t _mom_switch_pos[MOM_SWITCH_COUNT] {};
@@ -279,7 +278,7 @@ private:
hrt_abstime _last_utm_global_pos_com{0}; hrt_abstime _last_utm_global_pos_com{0};
vtol_vehicle_status_s _vtol_vehicle_status{}; vehicle_status_s _vehicle_status{};
DEFINE_PARAMETERS( DEFINE_PARAMETERS(
(ParamFloat<px4::params::BAT_CRIT_THR>) _param_bat_crit_thr, (ParamFloat<px4::params::BAT_CRIT_THR>) _param_bat_crit_thr,