summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2012-11-07 13:28:14 +0100
committerHolger Hans Peter Freyther <zecke@selfish.org>2012-11-09 19:49:32 +0100
commita91e75bac65501ea00c31d04feec5f287c52d0f7 (patch)
tree1fa4e483dc3f24563b01c49ce483019785a0e0ab
parent5552afde479b227f48660e4e35f7481372eebbcc (diff)
ofono: Make the code class based to wrap ofono/dbus..
-rw-r--r--ofono-end-to-end/osmocom/modem.py56
-rw-r--r--ofono-end-to-end/osmocom/sim.py19
-rw-r--r--ofono-end-to-end/osmocom/sms.py32
-rwxr-xr-xofono-end-to-end/simple_test.py32
4 files changed, 99 insertions, 40 deletions
diff --git a/ofono-end-to-end/osmocom/modem.py b/ofono-end-to-end/osmocom/modem.py
index 9d40d78..203062f 100644
--- a/ofono-end-to-end/osmocom/modem.py
+++ b/ofono-end-to-end/osmocom/modem.py
@@ -15,11 +15,42 @@
import dbus
+class Modem:
+ def __init__(self, bus, name):
+ self.name = name
+ self.bus = bus
+ self.modem = dbus.Interface(bus.get_object('org.ofono', name), 'org.ofono.Modem')
+
+ def enable(self):
+ """
+ Enable the given modem on the Bus
+ """
+ self.modem.SetProperty("Powered", dbus.Boolean(1), timeout = 120)
+
+ def disable(self):
+ """
+ Enable the given modem on the Bus
+ """
+ self.modem.SetProperty("Powered", dbus.Boolean(0), timeout = 120)
+
+ def online(self):
+ """
+ Switch-on on the RF Modem
+ """
+ self.modem.SetProperty("Online", dbus.Boolean(1), timeout = 120)
+
+ def offline(self):
+ """
+ Switch-off on the RF Modem
+ """
+ self.modem.SetProperty("Online", dbus.Boolean(0), timeout = 120)
+
+
def get(bus, name):
"""
Find the modem
"""
- return dbus.Interface(bus.get_object('org.ofono', name), 'org.ofono.Modem')
+ return Modem(bus, name)
def getmodems(bus):
"""
@@ -28,26 +59,3 @@ def getmodems(bus):
obj = dbus.Interface(bus.get_object('org.ofono', '/'), 'org.ofono.Manager')
return obj.GetModems()
-def enable(modem):
- """
- Enable the given modem on the Bus
- """
- modem.SetProperty("Powered", dbus.Boolean(1), timeout = 120)
-
-def disable(modem):
- """
- Enable the given modem on the Bus
- """
- modem.SetProperty("Powered", dbus.Boolean(0), timeout = 120)
-
-def online(modem):
- """
- Switch-on on the RF Modem
- """
- modem.SetProperty("Online", dbus.Boolean(1), timeout = 120)
-
-def offline(modem):
- """
- Switch-off on the RF Modem
- """
- modem.SetProperty("Online", dbus.Boolean(0), timeout = 120)
diff --git a/ofono-end-to-end/osmocom/sim.py b/ofono-end-to-end/osmocom/sim.py
index 8c8d867..b248cde 100644
--- a/ofono-end-to-end/osmocom/sim.py
+++ b/ofono-end-to-end/osmocom/sim.py
@@ -15,12 +15,19 @@
import dbus
+class Sim:
+ def __init__(self, bus, path):
+ self.bus = bus
+ self.path = path
+ self.sim = dbus.Interface(bus.get_object('org.ofono', path), 'org.ofono.SimManager')
+
+ def present(self):
+ return bool(self.sim.GetProperties(timeout=120)['Present'])
+
+ def imsi(self):
+ return str(self.sim.GetProperties(timeout=120)['SubscriberIdentity'])
+
def get(bus, path):
"""Get the SIM manager"""
- return dbus.Interface(bus.get_object('org.ofono', path), 'org.ofono.SimManager')
-
-def present(sim):
- return bool(sim.GetProperties(timeout=120)['Present'])
+ return Sim(bus, path)
-def imsi(sim):
- return str(sim.GetProperties(timeout=120)['SubscriberIdentity'])
diff --git a/ofono-end-to-end/osmocom/sms.py b/ofono-end-to-end/osmocom/sms.py
index 37b9802..9b638b1 100644
--- a/ofono-end-to-end/osmocom/sms.py
+++ b/ofono-end-to-end/osmocom/sms.py
@@ -15,11 +15,41 @@
import dbus
+sms = []
+
+class SmsWatcher:
+ def __init__(self, sms):
+ self.sms = sms
+ self.watched = {}
+ self.sms.connect_to_signal("MessageAdded", self._msg_added)
+ self.sms.connect_to_signal("MessageRemoved", self._msg_removed)
+
+ def _msg_added(self, property, value):
+ self.watched[property] = 1
+ print "PROP: ", property
+ print "VA:: ", value
+
+ def _msg_removed(self, property):
+ try:
+ del self.watched[property]
+ except KeyError:
+ pass
+ print "PROP: ", property
+
def get(bus, name):
- return dbus.Interface(
+ sms = dbus.Interface(
bus.get_object('org.ofono', name),
'org.ofono.MessageManager')
+ return sms
def send_message(manager, number, text, delivery_report):
manager.SetProperty('UseDeliveryReports', dbus.Boolean(int(delivery_report)))
return manager.SendMessage(number, text)
+
+def wait_for_sent(sms):
+ pass
+
+def get_messages(manager):
+ messages = manager.GetMessages()
+ print messages[0]
+ print dir(messages[0])
diff --git a/ofono-end-to-end/simple_test.py b/ofono-end-to-end/simple_test.py
index d9ac5fd..fc3a1c3 100755
--- a/ofono-end-to-end/simple_test.py
+++ b/ofono-end-to-end/simple_test.py
@@ -16,19 +16,33 @@
import dbus
import dbus.mainloop.glib
+import gobject
+import time
from osmocom import modem, sms, sim
+messages = []
+MODEM = "/wavecom_4"
+
+dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = dbus.SystemBus()
mods = modem.getmodems(bus)
-mod = modem.get(bus, "/phonesim")
-modem.enable(mod)
-modem.online(mod)
+mod = modem.get(bus, MODEM)
+mod.enable()
+mod.online()
+
+s = sim.get(bus, MODEM)
+print s.present()
+print s.imsi()
+
+sm = sms.get(bus, MODEM)
+wartcher = sms.SmsWatcher(sm)
+for i in range(1, 2000):
+ messages.append(sms.send_message(sm, '39323', 'TEST %d' % i, False))
+ #time.sleep(2)
+ #sms.wait_for_sent(messages)
-sm = sms.get(bus, "/phonesim")
-for i in range(1, 10):
- print sms.send_message(sm, '+491234', 'TEST %d' % i, False)
-s = sim.get(bus, "/phonesim")
-print sim.present(s)
-print sim.imsi(s)
+mainloop = gobject.MainLoop()
+print dir(mainloop)
+mainloop.run()