diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2005-11-24 04:10:46 +0000 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2005-11-24 04:10:46 +0000 |
commit | 64ff01e4de2931c0092cd927330e95d82aa413ad (patch) | |
tree | 57374de3fcd05d4ebe363f064dce7302d52bac49 /hcid/dbus-test | |
parent | dd5f6c5572b954ea569a918a1612820d3c7b8318 (diff) |
Add support for device properties
Diffstat (limited to 'hcid/dbus-test')
-rwxr-xr-x | hcid/dbus-test | 42 |
1 files changed, 38 insertions, 4 deletions
diff --git a/hcid/dbus-test b/hcid/dbus-test index 0d20ae7d..00cdfeda 100755 --- a/hcid/dbus-test +++ b/hcid/dbus-test @@ -1,6 +1,7 @@ #!/usr/bin/env python import dbus +import dbus.decorators import dbus.glib import gobject import sys @@ -8,9 +9,11 @@ import getopt from signal import * mgr_cmds = [ "DeviceList", "DefaultDevice" ] -dev_cmds = [ "Up", "Down", "Inquiry", "CancelInquiry", "PeriodicInquiry", - "CancelPeriodic", "RemoteName", "Connections", "Authenticate", - "RoleSwitch" ] +dev_cmds = [ "Up", "Down", "SetProperty", "GetProperty", "Inquiry", + "CancelInquiry", "PeriodicInquiry","CancelPeriodic", "RemoteName", + "Connections", "Authenticate", "RoleSwitch" ] +dev_setprop_bool = [ "auth", "encrypt", "discoverable", "connectable" ] +dev_setprop_byte = [ "incmode" ] class Tester: exit_events = [] @@ -78,6 +81,9 @@ class Tester: self.dev.connect_to_signal('Up', self.dev_up) self.dev.connect_to_signal('Down', self.dev_down) + self.bus.add_signal_receiver(self.dev_name_changed, 'DeviceNameChanged', + 'org.bluez.Device', 'org.bluez', + '/org/bluez/Device/hci0') obj = self.bus.get_object('org.bluez', '%s/Controller' % self.dev_path) self.ctl = dbus.Interface(obj, 'org.bluez.Device.Controller') @@ -150,6 +156,12 @@ class Tester: def dev_down(self): print 'Down' + @dbus.decorators.explicitly_pass_message + def dev_name_changed(*args, **keywords): + name = args[1] + dbus_message = keywords["dbus_message"] + print 'Device %s name changed: %s' % (dbus_message.get_path(), name) + def signal_cb(self, sig, frame): print 'Caught signal, exiting' if self.at_interrupt: @@ -179,7 +191,29 @@ class Tester: except dbus.DBusException, e: print 'Sending %s failed: %s' % (self.cmd, e) sys.exit(1) - + elif self.cmd == 'SetProperty': + if len(self.cmd_args) < 2: + print 'Usage: %s -i <dev> SetProperty strPropName arg' % self.name + sys.exit(1) + try: + if self.cmd_args[0].lower() in dev_setprop_bool: + self.dev.SetProperty(self.cmd_args[0], dbus.Boolean(self.cmd_args[1])) + elif self.cmd_args[0].lower() in dev_setprop_byte: + self.dev.SetProperty(self.cmd_args[0], dbus.Byte(self.cmd_args[1])) + else: + self.dev.SetProperty(self.cmd_args[0], self.cmd_args[1]) + except dbus.DBusException, e: + print 'Sending %s failed: %s' % (self.cmd, e) + sys.exit(1) + elif self.cmd == 'GetProperty': + if len(self.cmd_args) < 1: + print 'Usage: %s -i <dev> GetProperty strPropName' % self.name + sys.exit(1) + try: + print self.dev.GetProperty(self.cmd_args[0]) + except dbus.DBusException, e: + print 'Sending %s failed: %s' % (self.cmd, e) + sys.exit(1) # Device.Controller methods elif self.cmd == 'Inquiry': try: |