7 import dbus.mainloop.glib
8 from optparse import OptionParser
10 eir_test_data = [0x16,0x00\
11 ,0x01,0x02,0x03,0x04,0x05,0x06\
12 ,0x08,0x09,0x41,0x72,0x72,0x61,0x6b,0x69,0x73\
13 ,0x04,0x0d,0x6e,0x01,0x00]
15 wsc_test_data = [0x10,0x4A,0x00,0x01,0x10\
17 ,0x74,0x65,0x73,0x74,0x73,0x73,0x69,0x64\
19 ,0x62,0x6C,0x61,0x62,0x6C,0x61]
23 def print_fields(fields):
25 s = ' '.join('{:#02x}'.format(i) for i in fields['EIR'])
28 if 'nokia.com:bt' in fields:
29 s = ' '.join('{:#02x}'.format(i) for i in fields['nokia.com:bt'])
30 print ' nokia.com:bt: %s' % s
33 print ' State: %s' % fields['State']
36 s = ' '.join('{:#02x}'.format(i) for i in fields['WSC'])
39 class BTHOAgent(dbus.service.Object):
41 @dbus.service.method('org.neard.HandoverAgent',
48 @dbus.service.method('org.neard.HandoverAgent',
51 def PushOOB(self, fields):
55 @dbus.service.method('org.neard.HandoverAgent',
57 out_signature='a{sv}')
59 def RequestOOB(self, fields):
63 print ' Replying with'
64 s = ' '.join('{:#02x}'.format(i) for i in eir_test_data)
67 if power_state != 'unknown':
68 print ' State: %s' % power_state
69 return {'EIR' : eir_test_data, 'State' : power_state}
71 return {'EIR' : eir_test_data}
73 class WiFiHOAgent(dbus.service.Object):
75 @dbus.service.method('org.neard.HandoverAgent',
82 @dbus.service.method('org.neard.HandoverAgent',
85 def PushOOB(self, fields):
89 @dbus.service.method('org.neard.HandoverAgent',
91 out_signature='a{sv}')
93 def RequestOOB(self, fields):
97 print ' Replying with'
98 s = ' '.join('{:#02x}'.format(i) for i in wsc_test_data)
101 if power_state != 'unknown':
102 print ' State: %s' % power_state
103 return {'WSC' : wsc_test_data, 'State' : power_state}
105 return {'WSC' : wsc_test_data}
107 if __name__ == '__main__':
108 dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
110 bus = dbus.SystemBus()
112 parser = OptionParser()
113 parser.add_option("-s", "--power-state", action="store", type="string",
114 dest="power_state", default="active",
115 help="active inactive activating unknown")
116 (options, args) = parser.parse_args()
118 power_state = options.power_state
120 manager = dbus.Interface(bus.get_object('org.neard', '/'),
123 btpath = '/test/handover/bt/agent'
124 btcarrier = 'bluetooth'
125 btobject = BTHOAgent(bus, btpath)
127 wifipath = '/test/handover/wifi/agent'
129 wifiobject = WiFiHOAgent(bus, wifipath)
131 manager.RegisterHandoverAgent(btpath, btcarrier)
132 manager.RegisterHandoverAgent(wifipath, wificarrier)
134 mainloop = gobject.MainLoop()
138 except (KeyboardInterrupt):
139 manager.UnregisterHandoverAgent(btpath, btcarrier)
140 manager.UnregisterHandoverAgent(wifipath, wificarrier)