ofono: Make the code class based to wrap ofono/dbus..
This commit is contained in:
parent
5552afde47
commit
a91e75bac6
|
@ -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)
|
||||
|
|
|
@ -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')
|
||||
return Sim(bus, path)
|
||||
|
||||
def present(sim):
|
||||
return bool(sim.GetProperties(timeout=120)['Present'])
|
||||
|
||||
def imsi(sim):
|
||||
return str(sim.GetProperties(timeout=120)['SubscriberIdentity'])
|
||||
|
|
|
@ -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])
|
||||
|
|
|
@ -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()
|
||||
|
||||
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, MODEM)
|
||||
print s.present()
|
||||
print s.imsi()
|
||||
|
||||
s = sim.get(bus, "/phonesim")
|
||||
print sim.present(s)
|
||||
print sim.imsi(s)
|
||||
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)
|
||||
|
||||
|
||||
mainloop = gobject.MainLoop()
|
||||
print dir(mainloop)
|
||||
mainloop.run()
|
||||
|
|
Reference in New Issue