@@ -288,6 +288,18 @@ MavlinkReceiver::handle_message(mavlink_message_t *msg)
288288 handle_message_open_drone_id_arm_status (msg);
289289 break ;
290290
291+ case MAVLINK_MSG_ID_OPEN_DRONE_ID_OPERATOR_ID:
292+ handle_message_open_drone_id_operator_id (msg);
293+ break ;
294+
295+ case MAVLINK_MSG_ID_OPEN_DRONE_ID_SELF_ID:
296+ handle_message_open_drone_id_self_id (msg);
297+ break ;
298+
299+ case MAVLINK_MSG_ID_OPEN_DRONE_ID_SYSTEM:
300+ handle_message_open_drone_id_system (msg);
301+ break ;
302+
291303#if !defined(CONSTRAINED_FLASH)
292304
293305 case MAVLINK_MSG_ID_NAMED_VALUE_FLOAT:
@@ -3088,6 +3100,72 @@ void MavlinkReceiver::handle_message_open_drone_id_arm_status(
30883100
30893101 _open_drone_id_arm_status_pub.publish (odid_arm);
30903102}
3103+
3104+ void MavlinkReceiver::handle_message_open_drone_id_operator_id (
3105+ mavlink_message_t *msg)
3106+ {
3107+
3108+ mavlink_open_drone_id_operator_id_t odid_module;
3109+ mavlink_msg_open_drone_id_operator_id_decode (msg, &odid_module);
3110+
3111+ open_drone_id_operator_id_s odid_operator_id{};
3112+ memset (&odid_operator_id, 0 , sizeof (odid_operator_id));
3113+
3114+ odid_operator_id.timestamp = hrt_absolute_time ();
3115+ odid_operator_id.target_system = odid_module.target_system ;
3116+ odid_operator_id.target_component = odid_module.target_component ;
3117+ memcpy (odid_operator_id.id_or_mac , odid_module.id_or_mac , sizeof (odid_operator_id.id_or_mac ));
3118+ odid_operator_id.operator_id_type = odid_module.operator_id_type ;
3119+ memcpy (odid_operator_id.operator_id , odid_module.operator_id , sizeof (odid_operator_id.operator_id ));
3120+
3121+ _open_drone_id_operator_id_pub.publish (odid_operator_id);
3122+ }
3123+
3124+ void MavlinkReceiver::handle_message_open_drone_id_self_id (
3125+ mavlink_message_t *msg)
3126+ {
3127+ mavlink_open_drone_id_self_id_t odid_module;
3128+ mavlink_msg_open_drone_id_self_id_decode (msg, &odid_module);
3129+
3130+ open_drone_id_self_id_s odid_self_id{};
3131+ memset (&odid_self_id, 0 , sizeof (odid_self_id));
3132+
3133+ odid_self_id.timestamp = hrt_absolute_time ();
3134+ odid_self_id.target_system = odid_module.target_system ;
3135+ odid_self_id.target_component = odid_module.target_component ;
3136+ memcpy (odid_self_id.id_or_mac , odid_module.id_or_mac , sizeof (odid_self_id.id_or_mac ));
3137+ odid_self_id.description_type = odid_module.description_type ;
3138+ memcpy (odid_self_id.description , odid_module.description , sizeof (odid_self_id.description ));
3139+
3140+ _open_drone_id_self_id_pub.publish (odid_self_id);
3141+ }
3142+
3143+ void MavlinkReceiver::handle_message_open_drone_id_system (
3144+ mavlink_message_t *msg)
3145+ {
3146+ mavlink_open_drone_id_system_t odid_module;
3147+ mavlink_msg_open_drone_id_system_decode (msg, &odid_module);
3148+
3149+ open_drone_id_system_s odid_system{};
3150+ memset (&odid_system, 0 , sizeof (odid_system));
3151+
3152+ odid_system.timestamp = hrt_absolute_time ();
3153+ odid_system.target_system = odid_module.target_system ;
3154+ odid_system.target_component = odid_module.target_component ;
3155+ memcpy (odid_system.id_or_mac , odid_module.id_or_mac , sizeof (odid_system.id_or_mac ));
3156+ odid_system.operator_location_type = odid_module.operator_location_type ;
3157+ odid_system.classification_type = odid_module.classification_type ;
3158+ odid_system.operator_latitude = odid_module.operator_latitude ;
3159+ odid_system.operator_longitude = odid_module.operator_longitude ;
3160+ odid_system.area_count = odid_module.area_count ;
3161+ odid_system.area_radius = odid_module.area_radius ;
3162+ odid_system.area_ceiling = odid_module.area_ceiling ;
3163+ odid_system.area_floor = odid_module.area_floor ;
3164+ odid_system.category_eu = odid_module.category_eu ;
3165+ odid_system.class_eu = odid_module.class_eu ;
3166+ odid_system.operator_altitude_geo = odid_module.operator_altitude_geo ;
3167+ }
3168+
30913169void
30923170MavlinkReceiver::run ()
30933171{
0 commit comments