blob: 7f2ac23246b0acace47eeb19b92433c65ceae3b2 [file] [log] [blame] [edit]
#!/usr/bin/python
import gobject
import dbus
import dbus.service
import dbus.mainloop.glib
from optparse import OptionParser
eir_test_data = [0x16,0x00\
,0x01,0x02,0x03,0x04,0x05,0x06\
,0x08,0x09,0x41,0x72,0x72,0x61,0x6b,0x69,0x73\
,0x04,0x0d,0x6e,0x01,0x00]
wsc_test_data = [0x10,0x4A,0x00,0x01,0x10\
,0x10,0x45,0x00,0x08\
,0x74,0x65,0x73,0x74,0x73,0x73,0x69,0x64\
,0x10,0x27,0x00,0x06\
,0x62,0x6C,0x61,0x62,0x6C,0x61]
power_state = None
def print_fields(fields):
if 'EIR' in fields:
s = ' '.join('{:#02x}'.format(i) for i in fields['EIR'])
print ' EIR: %s' % s
if 'nokia.com:bt' in fields:
s = ' '.join('{:#02x}'.format(i) for i in fields['nokia.com:bt'])
print ' nokia.com:bt: %s' % s
if 'State' in fields:
print ' State: %s' % fields['State']
if 'WSC' in fields:
s = ' '.join('{:#02x}'.format(i) for i in fields['WSC'])
print ' WSC: %s' % s
class BTHOAgent(dbus.service.Object):
@dbus.service.method('org.neard.HandoverAgent',
in_signature='',
out_signature='')
def Release(self):
print 'Release'
mainloop.quit()
@dbus.service.method('org.neard.HandoverAgent',
in_signature='a{sv}',
out_signature='')
def PushOOB(self, fields):
print 'PushOOB'
print_fields(fields)
@dbus.service.method('org.neard.HandoverAgent',
in_signature='a{sv}',
out_signature='a{sv}')
def RequestOOB(self, fields):
print 'RequestOOB'
print_fields(fields)
print ' Replying with'
s = ' '.join('{:#02x}'.format(i) for i in eir_test_data)
print ' EIR: %s' % s
if power_state != 'unknown':
print ' State: %s' % power_state
return {'EIR' : eir_test_data, 'State' : power_state}
else:
return {'EIR' : eir_test_data}
class WiFiHOAgent(dbus.service.Object):
@dbus.service.method('org.neard.HandoverAgent',
in_signature='',
out_signature='')
def Release(self):
print 'Release'
mainloop.quit()
@dbus.service.method('org.neard.HandoverAgent',
in_signature='a{sv}',
out_signature='')
def PushOOB(self, fields):
print 'PushOOB'
print_fields(fields)
@dbus.service.method('org.neard.HandoverAgent',
in_signature='a{sv}',
out_signature='a{sv}')
def RequestOOB(self, fields):
print 'RequestOOB'
print_fields(fields)
print ' Replying with'
s = ' '.join('{:#02x}'.format(i) for i in wsc_test_data)
print ' WSC: %s' % s
if power_state != 'unknown':
print ' State: %s' % power_state
return {'WSC' : wsc_test_data, 'State' : power_state}
else:
return {'WSC' : wsc_test_data}
if __name__ == '__main__':
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = dbus.SystemBus()
parser = OptionParser()
parser.add_option("-s", "--power-state", action="store", type="string",
dest="power_state", default="active",
help="active inactive activating unknown")
(options, args) = parser.parse_args()
power_state = options.power_state
obj = bus.get_object("org.neard", "/org/neard");
manager = dbus.Interface(obj, "org.neard.AgentManager")
btpath = '/test/handover/bt/agent'
btcarrier = 'bluetooth'
btobject = BTHOAgent(bus, btpath)
wifipath = '/test/handover/wifi/agent'
wificarrier = 'wifi'
wifiobject = WiFiHOAgent(bus, wifipath)
manager.RegisterHandoverAgent(btpath, btcarrier)
manager.RegisterHandoverAgent(wifipath, wificarrier)
mainloop = gobject.MainLoop()
try:
mainloop.run()
except (KeyboardInterrupt):
manager.UnregisterHandoverAgent(btpath, btcarrier)
manager.UnregisterHandoverAgent(wifipath, wificarrier)