diff --git a/dronekit/__init__.py b/dronekit/__init__.py index 9a573c9e1..0d6ab1d6b 100644 --- a/dronekit/__init__.py +++ b/dronekit/__init__.py @@ -2146,6 +2146,11 @@ def send_capabilties_request(self, vehicle, name, m): capability_msg = vehicle.message_factory.command_long_encode(0, 0, mavutil.mavlink.MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES, 0, 1, 0, 0, 0, 0, 0, 0) vehicle.send_mavlink(capability_msg) + def play_tune(self, tune): + '''Request an AUTOPILOT_VERSION packet''' + msg = self.message_factory.play_tune_encode(0, 0, tune) + self.send_mavlink(msg) + def wait_ready(self, *types, **kwargs): """ Waits for specified attributes to be populated from the vehicle (values are initially ``None``). diff --git a/examples/play_tune/play_tune.py b/examples/play_tune/play_tune.py new file mode 100644 index 000000000..df0995222 --- /dev/null +++ b/examples/play_tune/play_tune.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +© Copyright 2017, Peter Barker +play_tune.py: GUIDED mode "simple goto" example (Copter Only) + +Demonstrates how to play a custom tune on a vehicle using the vehicle's buzzer + +Full documentation is provided at http://python.dronekit.io/examples/play_tune.html +""" + +from __future__ import print_function +import time +from dronekit import connect + + +# Set up option parsing to get connection string +import argparse +parser = argparse.ArgumentParser(description='Play tune on vehicle buzzer.') +parser.add_argument('--connect', + help="Vehicle connection target string. If not specified, SITL automatically started and used.") +parser.add_argument('--tune', type=str, help="tune to play", default="AAAA") +args = parser.parse_args() + +connection_string = args.connect +sitl = None + + +# Start SITL if no connection string specified +if not connection_string: + print("SITL doesn't do tunes?!") + import dronekit_sitl + sitl = dronekit_sitl.start_default() + connection_string = sitl.connection_string() + + +# Connect to the Vehicle +print('Connecting to vehicle on: %s' % connection_string) +vehicle = connect(connection_string, wait_ready=True) + +vehicle.play_tune(args.tune)