summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2012-11-09 19:16:36 +0100
committerHolger Hans Peter Freyther <zecke@selfish.org>2012-11-09 19:49:32 +0100
commit62004b3e26104dc58c3d41b13f3d58f666e43ac3 (patch)
tree85c93922291db0204a05d44b1ca68909b5862385
parente13ebca30a901d368dcbff2e0bb96cd33099baa6 (diff)
osmocom: Enable access to sms and sim functions in preparation for the test
-rw-r--r--ofono-end-to-end/osmocom/modem.py11
-rw-r--r--ofono-end-to-end/osmocom/sim.py4
-rw-r--r--ofono-end-to-end/osmocom/sms.py47
-rwxr-xr-xofono-end-to-end/simple_test.py36
4 files changed, 67 insertions, 31 deletions
diff --git a/ofono-end-to-end/osmocom/modem.py b/ofono-end-to-end/osmocom/modem.py
index d083fbd..f200acc 100644
--- a/ofono-end-to-end/osmocom/modem.py
+++ b/ofono-end-to-end/osmocom/modem.py
@@ -14,7 +14,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import dbus
-import sim
+import sim, sms
class Modem(object):
def __init__(self, bus, name):
@@ -71,6 +71,9 @@ class Modem(object):
def sim(self):
return sim.Sim(self.bus, self.name)
+ def sms(self):
+ return sms.SmsManager(self.bus, self.name)
+
def __repr__(self):
return "<Modem('%s')>" % self.name
@@ -88,7 +91,7 @@ def getmodems(bus):
obj = dbus.Interface(bus.get_object('org.ofono', '/'), 'org.ofono.Manager')
return [Modem(bus, str(x[0])) for x in obj.GetModems()]
-def detect_modems(bus):
+def detect_modems(bus, sleep=True, poweroff=True):
"""
Detect the modems that can be used for the test...
"""
@@ -110,7 +113,7 @@ def detect_modems(bus):
wait.append(mod)
# Now... wait a bit for the modem to do some init
- if len(wait) > 0:
+ if len(wait) >0 and sleep:
import time
print("I need to sleep some time for the modem to wake up")
time.sleep(20)
@@ -132,7 +135,7 @@ def detect_modems(bus):
# TODO: We could now disable all modems without a SIMcard
for mod in modems:
- if mod in on:
+ if mod in on or not poweroff:
continue
print("Modem %s is wihtout SIM card. Powering it down." % mod.name)
mod.disable()
diff --git a/ofono-end-to-end/osmocom/sim.py b/ofono-end-to-end/osmocom/sim.py
index fd86315..f09dbd3 100644
--- a/ofono-end-to-end/osmocom/sim.py
+++ b/ofono-end-to-end/osmocom/sim.py
@@ -28,6 +28,10 @@ class Sim(object):
except:
return None
+ def present(self):
+ """The Wavecom driver is broken and 'detects' a SIM when there is None"""
+ return self.imsi() != None
+
def __repr__(self):
return "<Sim(imsi=%s) of '%s'>" % (self.imsi(), self.path)
diff --git a/ofono-end-to-end/osmocom/sms.py b/ofono-end-to-end/osmocom/sms.py
index 9b638b1..d4dbda5 100644
--- a/ofono-end-to-end/osmocom/sms.py
+++ b/ofono-end-to-end/osmocom/sms.py
@@ -36,20 +36,43 @@ class SmsWatcher:
pass
print "PROP: ", property
-def get(bus, name):
- sms = dbus.Interface(
+class Sms(object):
+ def __init__(self, bus, name):
+ self.bus = bus
+ self.name = name
+ self.sms = dbus.Interface(
+ bus.get_object('org.ofono', name),
+ 'org.ofono.Message')
+ def cancel(self):
+ self.sms.Cancel()
+
+ def state(self):
+ return str(self.sms.GetProperties()['State'])
+
+ def __repr__(self):
+ return "<Sms('%s')>" % self.name
+
+class SmsManager(object):
+ def __init__(self, bus, name):
+ self.sms = dbus.Interface(
bus.get_object('org.ofono', name),
'org.ofono.MessageManager')
- return sms
+ self.bus = bus
+ self.name = name
+
+ def send_message(self, number, text, delivery_report):
+ self.sms.SetProperty('UseDeliveryReports', dbus.Boolean(int(delivery_report)))
+ return self.sms.SendMessage(number, text)
-def send_message(manager, number, text, delivery_report):
- manager.SetProperty('UseDeliveryReports', dbus.Boolean(int(delivery_report)))
- return manager.SendMessage(number, text)
+ def all_message_names(self):
+ messages = self.sms.GetMessages()
+ return map(lambda x: str(x[0]), messages)
-def wait_for_sent(sms):
- pass
+ def get_message(self, path):
+ return Sms(self.bus, path)
-def get_messages(manager):
- messages = manager.GetMessages()
- print messages[0]
- print dir(messages[0])
+ def __repr__(self):
+ return "<SmsManager for Modem('%s')>" % self.name
+
+def get(bus, name):
+ return SmsManager(bus, name)
diff --git a/ofono-end-to-end/simple_test.py b/ofono-end-to-end/simple_test.py
index fc3a1c3..3b4a65d 100755
--- a/ofono-end-to-end/simple_test.py
+++ b/ofono-end-to-end/simple_test.py
@@ -19,26 +19,32 @@ import dbus.mainloop.glib
import gobject
import time
-from osmocom import modem, sms, sim
+from osmocom import modem
messages = []
-MODEM = "/wavecom_4"
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = dbus.SystemBus()
-mods = modem.getmodems(bus)
-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))
+mod = modem.detect_modems(bus, sleep=False, poweroff=False)[0]
+
+print mod.name
+
+sim = mod.sim()
+print sim.present()
+print sim.imsi()
+
+sms = mod.sms()
+sms.send_message('2233', 'BLA', False)
+print sms.all_message_names()
+for name in sms.all_message_names():
+ msg = sms.get_message(name)
+ print msg.state()
+ print msg
+ msg.cancel()
+
+#watcher = sms.SmsWatcher(sm)
+#for i in range(1, 2000):
+# messages.append(sms.sendessage(sm, '39323', 'TEST %d' % i, False))
#time.sleep(2)
#sms.wait_for_sent(messages)