9 import dbus.mainloop.glib
11 GNSS_INTERFACE = "org.ofono.AssistedSatelliteNavigation"
12 AGENT_INTERFACE = "org.ofono.PositioningRequestAgent"
14 class PositioningAgent(dbus.service.Object):
15 @dbus.service.method(AGENT_INTERFACE,
16 in_signature="", out_signature="")
21 @dbus.service.method(AGENT_INTERFACE,
22 in_signature="s", out_signature="")
23 def Request(self, xml):
24 print "positioning data: %s" % (xml)
26 @dbus.service.method(AGENT_INTERFACE,
27 in_signature="", out_signature="")
28 def ResetAssistanceData(self):
29 print "Reset Assistance Data request received"
32 print "Select test case"
33 print "-----------------------------------------------------------"
34 print "[0] SendPositioningElement"
35 print "[1] RegisterPositioningRequestAgent"
36 print "[2] UnregisterPositioningRequestAgent"
38 print "-----------------------------------------------------------"
40 def stdin_handler(fd, condition, gnss, path):
41 in_key = os.read(fd.fileno(), 8).rstrip()
43 xml = raw_input('type the element and press enter: ')
45 gnss.SendPositioningElement(dbus.String(xml))
47 except dbus.DBusException, e:
48 print "Unable to send positioning element"
52 gnss.RegisterPositioningRequestAgent("/test/posagent")
54 except dbus.DBusException, e:
55 print "Unable to register positioning agent"
59 gnss.UnregisterPositioningRequestAgent(path)
61 except dbus.DBusException, e:
62 print "Unable to unregister positioning agent"
68 if __name__ == "__main__":
72 dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
73 bus = dbus.SystemBus()
74 manager = dbus.Interface(bus.get_object('org.ofono', '/'),
77 modems = manager.GetModems()
78 for path, properties in modems:
79 if GNSS_INTERFACE not in properties["Interfaces"]:
82 gnss = dbus.Interface(bus.get_object('org.ofono', path),
85 path = "/test/posagent"
86 agent = PositioningAgent(bus, path)
90 gobject.io_add_watch(sys.stdin, gobject.IO_IN, stdin_handler,
92 mainloop = gobject.MainLoop()