diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2012-11-07 13:28:14 +0100 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2012-11-09 19:49:32 +0100 |
commit | a91e75bac65501ea00c31d04feec5f287c52d0f7 (patch) | |
tree | 1fa4e483dc3f24563b01c49ce483019785a0e0ab | |
parent | 5552afde479b227f48660e4e35f7481372eebbcc (diff) |
ofono: Make the code class based to wrap ofono/dbus..
-rw-r--r-- | ofono-end-to-end/osmocom/modem.py | 56 | ||||
-rw-r--r-- | ofono-end-to-end/osmocom/sim.py | 19 | ||||
-rw-r--r-- | ofono-end-to-end/osmocom/sms.py | 32 | ||||
-rwxr-xr-x | ofono-end-to-end/simple_test.py | 32 |
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() |