mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-11-13 14:51:37 +08:00
precland: support receiving LANDING_TARGET message
This commit is contained in:
committed by
Kabir Mohammed
parent
5b030535c8
commit
8d6bff08bb
@@ -132,6 +132,7 @@ MavlinkReceiver::MavlinkReceiver(Mavlink *parent) :
|
||||
_land_detector_pub(nullptr),
|
||||
_time_offset_pub(nullptr),
|
||||
_follow_target_pub(nullptr),
|
||||
_landing_target_pose_pub(nullptr),
|
||||
_transponder_report_pub(nullptr),
|
||||
_collision_report_pub(nullptr),
|
||||
_debug_key_value_pub(nullptr),
|
||||
@@ -294,6 +295,10 @@ MavlinkReceiver::handle_message(mavlink_message_t *msg)
|
||||
handle_message_follow_target(msg);
|
||||
break;
|
||||
|
||||
case MAVLINK_MSG_ID_LANDING_TARGET:
|
||||
handle_message_landing_target(msg);
|
||||
break;
|
||||
|
||||
case MAVLINK_MSG_ID_ADSB_VEHICLE:
|
||||
handle_message_adsb_vehicle(msg);
|
||||
break;
|
||||
@@ -2059,6 +2064,29 @@ void MavlinkReceiver::handle_message_follow_target(mavlink_message_t *msg)
|
||||
}
|
||||
}
|
||||
|
||||
void MavlinkReceiver::handle_message_landing_target(mavlink_message_t *msg)
|
||||
{
|
||||
mavlink_landing_target_t landing_target;
|
||||
|
||||
mavlink_msg_landing_target_decode(msg, &landing_target);
|
||||
|
||||
if (landing_target.position_valid && landing_target.frame == MAV_FRAME_LOCAL_NED) {
|
||||
landing_target_pose_s landing_target_pose = {};
|
||||
landing_target_pose.timestamp = sync_stamp(landing_target.time_usec);
|
||||
landing_target_pose.abs_pos_valid = true;
|
||||
landing_target_pose.x_abs = landing_target.x;
|
||||
landing_target_pose.y_abs = landing_target.y;
|
||||
landing_target_pose.z_abs = landing_target.z;
|
||||
|
||||
if (_landing_target_pose_pub == nullptr) {
|
||||
_landing_target_pose_pub = orb_advertise(ORB_ID(landing_target_pose), &landing_target_pose);
|
||||
|
||||
} else {
|
||||
orb_publish(ORB_ID(landing_target_pose), _landing_target_pose_pub, &landing_target_pose);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MavlinkReceiver::handle_message_adsb_vehicle(mavlink_message_t *msg)
|
||||
{
|
||||
mavlink_adsb_vehicle_t adsb;
|
||||
|
||||
Reference in New Issue
Block a user