diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2012-11-09 19:16:36 +0100 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2012-11-09 19:49:32 +0100 |
commit | 62004b3e26104dc58c3d41b13f3d58f666e43ac3 (patch) | |
tree | 85c93922291db0204a05d44b1ca68909b5862385 | |
parent | e13ebca30a901d368dcbff2e0bb96cd33099baa6 (diff) |
osmocom: Enable access to sms and sim functions in preparation for the test
-rw-r--r-- | ofono-end-to-end/osmocom/modem.py | 11 | ||||
-rw-r--r-- | ofono-end-to-end/osmocom/sim.py | 4 | ||||
-rw-r--r-- | ofono-end-to-end/osmocom/sms.py | 47 | ||||
-rwxr-xr-x | ofono-end-to-end/simple_test.py | 36 |
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) |