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()