remoteid: add SelfID message

This commit is contained in:
Julian Oes
2024-07-19 14:12:22 +12:00
parent 04ea4f9b3a
commit 7d1d398984
6 changed files with 56 additions and 0 deletions
+20
View File
@@ -284,6 +284,10 @@ MavlinkReceiver::handle_message(mavlink_message_t *msg)
handle_message_open_drone_id_operator_id(msg);
break;
case MAVLINK_MSG_ID_OPEN_DRONE_ID_SELF_ID:
handle_message_open_drone_id_self_id(msg);
break;
#if !defined(CONSTRAINED_FLASH)
case MAVLINK_MSG_ID_NAMED_VALUE_FLOAT:
@@ -3105,6 +3109,22 @@ void MavlinkReceiver::handle_message_open_drone_id_operator_id(
_open_drone_id_operator_id_pub.publish(odid_operator_id);
}
void MavlinkReceiver::handle_message_open_drone_id_self_id(mavlink_message_t *msg)
{
mavlink_open_drone_id_self_id_t odid_module;
mavlink_msg_open_drone_id_self_id_decode(msg, &odid_module);
open_drone_id_self_id_s odid_self_id{};
memset(&odid_self_id, 0, sizeof(odid_self_id));
odid_self_id.timestamp = hrt_absolute_time();
memcpy(odid_self_id.id_or_mac, odid_module.id_or_mac, sizeof(odid_self_id.id_or_mac));
odid_self_id.description_type = odid_module.description_type;
memcpy(odid_self_id.description, odid_module.description, sizeof(odid_self_id.description));
_open_drone_id_self_id_pub.publish(odid_self_id);
}
void
MavlinkReceiver::run()
{
+2
View File
@@ -88,6 +88,7 @@
#include <uORB/topics/offboard_control_mode.h>
#include <uORB/topics/onboard_computer_status.h>
#include <uORB/topics/open_drone_id_operator_id.h>
#include <uORB/topics/open_drone_id_self_id.h>
#include <uORB/topics/ping.h>
#include <uORB/topics/position_setpoint_triplet.h>
#include <uORB/topics/radio_status.h>
@@ -317,6 +318,7 @@ private:
uORB::Publication<onboard_computer_status_s> _onboard_computer_status_pub{ORB_ID(onboard_computer_status)};
uORB::Publication<velocity_limits_s> _velocity_limits_pub{ORB_ID(velocity_limits)};
uORB::Publication<open_drone_id_operator_id_s> _open_drone_id_operator_id_pub{ORB_ID(open_drone_id_operator_id)};
uORB::Publication<open_drone_id_self_id_s> _open_drone_id_self_id_pub{ORB_ID(open_drone_id_self_id)};
uORB::Publication<generator_status_s> _generator_status_pub{ORB_ID(generator_status)};
uORB::Publication<vehicle_attitude_s> _attitude_pub{ORB_ID(vehicle_attitude)};
uORB::Publication<vehicle_attitude_setpoint_s> _att_sp_pub{ORB_ID(vehicle_attitude_setpoint)};