test-adapter 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. #!/usr/bin/python
  2. # SPDX-License-Identifier: LGPL-2.1-or-later
  3. from __future__ import absolute_import, print_function, unicode_literals
  4. from optparse import OptionParser, make_option
  5. import sys
  6. import time
  7. import dbus
  8. import bluezutils
  9. bus = dbus.SystemBus()
  10. option_list = [
  11. make_option("-i", "--device", action="store",
  12. type="string", dest="dev_id"),
  13. ]
  14. parser = OptionParser(option_list=option_list)
  15. (options, args) = parser.parse_args()
  16. adapter_path = bluezutils.find_adapter(options.dev_id).object_path
  17. adapter = dbus.Interface(bus.get_object("org.bluez", adapter_path),
  18. "org.freedesktop.DBus.Properties")
  19. if (len(args) < 1):
  20. print("Usage: %s <command>" % (sys.argv[0]))
  21. print("")
  22. print(" address")
  23. print(" list")
  24. print(" name")
  25. print(" alias [alias]")
  26. print(" powered [on/off]")
  27. print(" pairable [on/off]")
  28. print(" pairabletimeout [timeout]")
  29. print(" discoverable [on/off]")
  30. print(" discoverabletimeout [timeout]")
  31. print(" discovering")
  32. sys.exit(1)
  33. if (args[0] == "address"):
  34. addr = adapter.Get("org.bluez.Adapter1", "Address")
  35. print(addr)
  36. sys.exit(0)
  37. if (args[0] == "name"):
  38. name = adapter.Get("org.bluez.Adapter1", "Name")
  39. print(name)
  40. sys.exit(0)
  41. if (args[0] == "alias"):
  42. if (len(args) < 2):
  43. alias = adapter.Get("org.bluez.Adapter1", "Alias")
  44. print(alias)
  45. else:
  46. adapter.Set("org.bluez.Adapter1", "Alias", args[1])
  47. sys.exit(0)
  48. if (args[0] == "list"):
  49. if (len(args) < 2):
  50. om = dbus.Interface(bus.get_object("org.bluez", "/"),
  51. "org.freedesktop.DBus.ObjectManager")
  52. objects = om.GetManagedObjects()
  53. for path, interfaces in objects.iteritems():
  54. if "org.bluez.Adapter1" not in interfaces:
  55. continue
  56. print(" [ %s ]" % (path))
  57. props = interfaces["org.bluez.Adapter1"]
  58. for (key, value) in props.items():
  59. if (key == "Class"):
  60. print(" %s = 0x%06x" % (key, value))
  61. else:
  62. print(" %s = %s" % (key, value))
  63. print()
  64. sys.exit(0)
  65. if (args[0] == "powered"):
  66. if (len(args) < 2):
  67. powered = adapter.Get("org.bluez.Adapter1", "Powered")
  68. print(powered)
  69. else:
  70. if (args[1] == "on"):
  71. value = dbus.Boolean(1)
  72. elif (args[1] == "off"):
  73. value = dbus.Boolean(0)
  74. else:
  75. value = dbus.Boolean(args[1])
  76. adapter.Set("org.bluez.Adapter1", "Powered", value)
  77. sys.exit(0)
  78. if (args[0] == "pairable"):
  79. if (len(args) < 2):
  80. pairable = adapter.Get("org.bluez.Adapter1", "Pairable")
  81. print(pairable)
  82. else:
  83. if (args[1] == "on"):
  84. value = dbus.Boolean(1)
  85. elif (args[1] == "off"):
  86. value = dbus.Boolean(0)
  87. else:
  88. value = dbus.Boolean(args[1])
  89. adapter.Set("org.bluez.Adapter1", "Pairable", value)
  90. sys.exit(0)
  91. if (args[0] == "pairabletimeout"):
  92. if (len(args) < 2):
  93. pt = adapter.Get("org.bluez.Adapter1", "PairableTimeout")
  94. print(pt)
  95. else:
  96. timeout = dbus.UInt32(args[1])
  97. adapter.Set("org.bluez.Adapter1", "PairableTimeout", timeout)
  98. sys.exit(0)
  99. if (args[0] == "discoverable"):
  100. if (len(args) < 2):
  101. discoverable = adapter.Get("org.bluez.Adapter1", "Discoverable")
  102. print(discoverable)
  103. else:
  104. if (args[1] == "on"):
  105. value = dbus.Boolean(1)
  106. elif (args[1] == "off"):
  107. value = dbus.Boolean(0)
  108. else:
  109. value = dbus.Boolean(args[1])
  110. adapter.Set("org.bluez.Adapter1", "Discoverable", value)
  111. sys.exit(0)
  112. if (args[0] == "discoverabletimeout"):
  113. if (len(args) < 2):
  114. dt = adapter.Get("org.bluez.Adapter1", "DiscoverableTimeout")
  115. print(dt)
  116. else:
  117. to = dbus.UInt32(args[1])
  118. adapter.Set("org.bluez.Adapter1", "DiscoverableTimeout", to)
  119. sys.exit(0)
  120. if (args[0] == "discovering"):
  121. discovering = adapter.Get("org.bluez.Adapter1", "Discovering")
  122. print(discovering)
  123. sys.exit(0)
  124. print("Unknown command")
  125. sys.exit(1)