Allow sending a param with a different component ID

This commit is contained in:
Lorenz Meier
2016-11-13 18:43:15 +01:00
committed by Lorenz Meier
parent 83e9e1c382
commit 9866ff8959
2 changed files with 13 additions and 3 deletions
+12 -2
View File
@@ -407,7 +407,7 @@ MavlinkParametersManager::send(const hrt_abstime t)
}
int
MavlinkParametersManager::send_param(param_t param)
MavlinkParametersManager::send_param(param_t param, int component_id)
{
if (param == PARAM_INVALID) {
return 1;
@@ -446,7 +446,17 @@ MavlinkParametersManager::send_param(param_t param)
msg.param_type = MAVLINK_TYPE_FLOAT;
}
mavlink_msg_param_value_send_struct(_mavlink->get_channel(), &msg);
/* default component ID */
if (component_id < 0) {
mavlink_msg_param_value_send_struct(_mavlink->get_channel(), &msg);
} else {
// Re-pack the message with a different component ID
mavlink_message_t mavlink_packet;
mavlink_msg_param_value_encode_chan(mavlink_system.sysid, component_id, _mavlink->get_channel(), &mavlink_packet, &msg);
_mavlink_resend_uart(_mavlink->get_channel(), &mavlink_packet);
}
return 0;
}
+1 -1
View File
@@ -90,7 +90,7 @@ protected:
void send(const hrt_abstime t);
int send_param(param_t param);
int send_param(param_t param, int component_id=-1);
orb_advert_t _rc_param_map_pub;
struct rc_parameter_map_s _rc_param_map;