summaryrefslogtreecommitdiff
path: root/test/test-oob
blob: 87c558f6308e95d19b21496689be0510cf41e4dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/usr/bin/python

from __future__ import absolute_import, print_function, unicode_literals

import gobject

import dbus.mainloop.glib
import bluezutils

def create_device_reply(device):
	print("Pairing succeed!")
	mainloop.quit()

def create_device_error(error):
	print("Pairing failed.")
	mainloop.quit()

if __name__ == '__main__':
	dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)

	mainloop = gobject.MainLoop()

	bus = dbus.SystemBus()

	managed_objects = bluezutils.get_managed_objects()
	adapter0 = bluezutils.find_adapter_in_objects(managed_objects, "hci0")
	adapter1 = bluezutils.find_adapter_in_objects(managed_objects, "hci1")

	adapter0_path = adapter0.object_path
	adapter1_path = adapter1.object_path

	adapter0_address = managed_objects[adapter0_path][
					bluezutils.ADAPTER_INTERFACE]["Address"]
	adapter1_address = managed_objects[adapter1_path][
					bluezutils.ADAPTER_INTERFACE]["Address"]

	print("Adapters:")
	print("    hci0: " + adapter0_address)
	print("    hci1: " + adapter1_address)
	print()

	print("Removing any existing bond...")

	try:
		dev = bluezutils.find_device_in_objects(managed_objects,
							adapter1_address,
							adapter0_address)
		adapter0.RemoveDevice(dev.object_path)
	except:
		pass

	try:
		dev = bluezutils.find_device_in_objects(managed_objects,
							adapter0_address,
							adapter1_address)
		adapter1.RemoveDevice(dev.object_path)
	except:
		pass

	print("Done.")
	print()
	print("Reading local Out of Band data...")

	oob_adapter0 = dbus.Interface(bus.get_object("org.bluez",
					adapter0_path), "org.bluez.OutOfBand")
	oob_adapter1 = dbus.Interface(bus.get_object("org.bluez",
					adapter1_path), "org.bluez.OutOfBand")

	oob0 = oob_adapter0.ReadLocalData()
	oob1 = oob_adapter1.ReadLocalData()

	print("Done.")
	print()
	print("Exchanging Out of Band data...")

	oob_adapter0.AddRemoteData(adapter1_address, oob1)
	oob_adapter1.AddRemoteData(adapter0_address, oob0)

	print("Done.")
	print()
	print("Starting to pair.")
	adapter1.CreatePairedDevice(adapter0_address, "/test/agent_oob",
					"DisplayYesNo",
					reply_handler=create_device_reply,
					error_handler=create_device_error)

	mainloop.run()