From 65ed068bbd412de655cba431dded6ba617e22281 Mon Sep 17 00:00:00 2001 From: Ildar Sadykov Date: Wed, 9 Oct 2019 18:00:09 +0300 Subject: [PATCH] mavlink_receiver: vtol_vehicle_status changed to vehicle_status subscription --- src/modules/mavlink/mavlink_receiver.cpp | 23 +++++++++++++++++------ src/modules/mavlink/mavlink_receiver.h | 5 ++--- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/modules/mavlink/mavlink_receiver.cpp b/src/modules/mavlink/mavlink_receiver.cpp index d8321715be..21843d1cab 100644 --- a/src/modules/mavlink/mavlink_receiver.cpp +++ b/src/modules/mavlink/mavlink_receiver.cpp @@ -1423,17 +1423,28 @@ MavlinkReceiver::handle_message_set_attitude_target(mavlink_message_t *msg) case MAV_TYPE_VTOL_RESERVED3: case MAV_TYPE_VTOL_RESERVED4: case MAV_TYPE_VTOL_RESERVED5: - if (_vtol_vehicle_status_sub.updated()) { - _vtol_vehicle_status_sub.copy(&_vtol_vehicle_status); + if (_vehicle_status_sub.updated()) { + _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; + _mc_virtual_att_sp_pub.publish(att_sp); - } else { - att_sp.thrust_body[0] = set_attitude_target.thrust; - _fw_virtual_att_sp_pub.publish(att_sp); + break; + + default: + // This should never happen + break; } break; diff --git a/src/modules/mavlink/mavlink_receiver.h b/src/modules/mavlink/mavlink_receiver.h index f253d1da58..4254a02201 100644 --- a/src/modules/mavlink/mavlink_receiver.h +++ b/src/modules/mavlink/mavlink_receiver.h @@ -97,7 +97,6 @@ #include #include #include -#include class Mavlink; @@ -265,7 +264,7 @@ private: uORB::Subscription _parameter_update_sub{ORB_ID(parameter_update)}; uORB::Subscription _vehicle_attitude_sub{ORB_ID(vehicle_attitude)}; 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}; uint8_t _mom_switch_pos[MOM_SWITCH_COUNT] {}; @@ -279,7 +278,7 @@ private: hrt_abstime _last_utm_global_pos_com{0}; - vtol_vehicle_status_s _vtol_vehicle_status{}; + vehicle_status_s _vehicle_status{}; DEFINE_PARAMETERS( (ParamFloat) _param_bat_crit_thr,