diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2006-02-07 10:31:26 +0000 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2006-02-07 10:31:26 +0000 |
commit | 44461c016483dcbf2ae99ba2e5b041b4ff4cdf2e (patch) | |
tree | b151c1881a40e74317898db962f86484f84ff7af /hcid/dbus-test | |
parent | 71dc4067220c5b994885f63127b4b7eb947002fd (diff) |
Add support for modifying the scan enable setting
Diffstat (limited to 'hcid/dbus-test')
-rwxr-xr-x | hcid/dbus-test | 36 |
1 files changed, 30 insertions, 6 deletions
diff --git a/hcid/dbus-test b/hcid/dbus-test index 926be2fc..6c195fbb 100755 --- a/hcid/dbus-test +++ b/hcid/dbus-test @@ -9,10 +9,10 @@ import getopt from signal import * mgr_cmds = [ "DeviceList", "DefaultDevice" ] -dev_cmds = [ "Up", "Down", "SetProperty", "GetProperty", "Inquiry", +dev_cmds = [ "Up", "Down", "SetProperty", "GetProperty", "SetMode", "GetMode", "Inquiry", "CancelInquiry", "PeriodicInquiry","CancelPeriodic", "RemoteName", "Connections", "Authenticate", "RoleSwitch" ] -dev_setprop_bool = [ "auth", "encrypt", "discoverable", "connectable" ] +dev_setprop_bool = [ "auth", "encrypt" ] dev_setprop_byte = [ "incmode" ] dev_prop_filter = ["/org/bluez/Device/hci0", "/org/bluez/Device/hci1", "/org/bluez/Device/hci2", "/org/bluez/Device/hci3", @@ -88,6 +88,10 @@ class Tester: self.bus.add_signal_receiver(self.dev_property_changed, 'PropertyChanged','org.bluez.Device', 'org.bluez',path) + for path in dev_prop_filter: + self.bus.add_signal_receiver(self.dev_mode_changed, + 'ModeChanged','org.bluez.Device', + 'org.bluez',path) obj = self.bus.get_object('org.bluez', '%s/Controller' % self.dev_path) self.ctl = dbus.Interface(obj, 'org.bluez.Device.Controller') @@ -166,11 +170,12 @@ class Tester: dbus_message = keywords["dbus_message"] if property == 'name': print 'Device %s name changed: %s' % (dbus_message.get_path(), param) - elif property == 'connectable': - print 'Device %s connectable scan property changed: %d' % (dbus_message.get_path(), param) - elif property == 'discoverable': - print 'Device %s discoverable scan property changed: %d' % (dbus_message.get_path(), param) + @dbus.decorators.explicitly_pass_message + def dev_mode_changed(*args, **keywords): + mode = args[1] + dbus_message = keywords["dbus_message"] + print 'Device %s scan mode changed: %x' % (dbus_message.get_path(), mode) def signal_cb(self, sig, frame): print 'Caught signal, exiting' @@ -224,6 +229,25 @@ class Tester: except dbus.DBusException, e: print 'Sending %s failed: %s' % (self.cmd, e) sys.exit(1) + elif self.cmd == 'SetMode': + if len(self.cmd_args) != 1: + print 'Usage: %s -i <dev> SetMode scan_enable' % self.name + print 'scan_enable values: 0(no scan), 1(connectable), 2(connectable and discoverable)' % self.name + sys.exit(1) + try: + print self.dev.SetMode(dbus.Byte(self.cmd_args[0])) + except dbus.DBusException, e: + print 'Sending %s failed: %s' % (self.cmd, e) + sys.exit(1) + elif self.cmd == 'GetMode': + if len(self.cmd_args) != 0: + print 'Usage: %s -i <dev> GetMode' % self.name + sys.exit(1) + try: + print self.dev.GetMode() + except dbus.DBusException, e: + print 'Sending %s failed: %s' % (self.cmd, e) + sys.exit(1) # Device.Controller methods elif self.cmd == 'Inquiry': try: |