|
|
|
@ -238,6 +238,10 @@ MavlinkReceiver::handle_message(mavlink_message_t *msg)
@@ -238,6 +238,10 @@ MavlinkReceiver::handle_message(mavlink_message_t *msg)
|
|
|
|
|
handle_message_play_tune(msg); |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
case MAVLINK_MSG_ID_PLAY_TUNE_V2: |
|
|
|
|
handle_message_play_tune_v2(msg); |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
case MAVLINK_MSG_ID_OBSTACLE_DISTANCE: |
|
|
|
|
handle_message_obstacle_distance(msg); |
|
|
|
|
break; |
|
|
|
@ -1762,13 +1766,34 @@ MavlinkReceiver::handle_message_play_tune(mavlink_message_t *msg)
@@ -1762,13 +1766,34 @@ MavlinkReceiver::handle_message_play_tune(mavlink_message_t *msg)
|
|
|
|
|
if ((mavlink_system.sysid == play_tune.target_system || play_tune.target_system == 0) && |
|
|
|
|
(mavlink_system.compid == play_tune.target_component || play_tune.target_component == 0)) { |
|
|
|
|
|
|
|
|
|
// Let's make sure the input is 0 terminated and we don't ever overrun it.
|
|
|
|
|
// Let's make sure the input is 0 terminated, so we don't ever overrun it.
|
|
|
|
|
play_tune.tune2[sizeof(play_tune.tune2) - 1] = '\0'; |
|
|
|
|
|
|
|
|
|
publish_tune(play_tune.tune); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void |
|
|
|
|
MavlinkReceiver::handle_message_play_tune_v2(mavlink_message_t *msg) |
|
|
|
|
{ |
|
|
|
|
mavlink_play_tune_v2_t play_tune_v2; |
|
|
|
|
mavlink_msg_play_tune_v2_decode(msg, &play_tune_v2); |
|
|
|
|
|
|
|
|
|
if ((mavlink_system.sysid == play_tune_v2.target_system || play_tune_v2.target_system == 0) && |
|
|
|
|
(mavlink_system.compid == play_tune_v2.target_component || play_tune_v2.target_component == 0)) { |
|
|
|
|
|
|
|
|
|
if (play_tune_v2.format != TUNE_FORMAT_QBASIC1_1) { |
|
|
|
|
PX4_ERR("Tune format %d not supported", play_tune_v2.format); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Let's make sure the input is 0 terminated, so we don't ever overrun it.
|
|
|
|
|
play_tune_v2.tune[sizeof(play_tune_v2.tune) - 1] = '\0'; |
|
|
|
|
|
|
|
|
|
publish_tune(play_tune_v2.tune); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void MavlinkReceiver::publish_tune(const char *tune) |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|