diff options
author | Tambet Ingo <tambet@gmail.com> | 2008-07-31 14:03:37 +0300 |
---|---|---|
committer | Tambet Ingo <tambet@gmail.com> | 2008-07-31 14:03:37 +0300 |
commit | f0a2dc606c20a65a45152127b0450ae31476adbf (patch) | |
tree | 9b32a5b100945652f1cc48f65393c1584eaa2d07 /test | |
parent | fa9c303d98cc933f0daa35f0e2182dd63f361d90 (diff) |
Add an example testing program.
Diffstat (limited to 'test')
-rw-r--r-- | test/Makefile.am | 3 | ||||
-rwxr-xr-x | test/mm-test.py | 141 |
2 files changed, 144 insertions, 0 deletions
diff --git a/test/Makefile.am b/test/Makefile.am new file mode 100644 index 00000000..b2259348 --- /dev/null +++ b/test/Makefile.am @@ -0,0 +1,3 @@ +EXTRA_DIST = \ + mm-test.py + diff --git a/test/mm-test.py b/test/mm-test.py new file mode 100755 index 00000000..73ee0499 --- /dev/null +++ b/test/mm-test.py @@ -0,0 +1,141 @@ +#!/usr/bin/python + +import sys +import dbus + +DBUS_INTERFACE_PROPERTIES='org.freedesktop.DBus.Properties' +MM_DBUS_SERVICE='org.freedesktop.ModemManager' +MM_DBUS_PATH='/org/freedesktop/ModemManager' +MM_DBUS_INTERFACE='org.freedesktop.ModemManager' +MM_DBUS_INTERFACE_MODEM='org.freedesktop.ModemManager.Modem' + +bus = dbus.SystemBus() +manager_proxy = bus.get_object(MM_DBUS_SERVICE, MM_DBUS_PATH) +manager_iface = dbus.Interface(manager_proxy, dbus_interface=MM_DBUS_INTERFACE) + +def enumerate_devices(manager): + modems = manager_iface.EnumerateDevices() + if not modems: + print "No modems found." + return + + for modem_path in modems: + proxy = bus.get_object(MM_DBUS_SERVICE, modem_path) + modem = dbus.Interface(proxy, dbus_interface=DBUS_INTERFACE_PROPERTIES) + + type = modem.Get(MM_DBUS_INTERFACE_MODEM, "Type") + if type == 1: + type = "GSM" + elif type == 2: + type = "CDMA" + else: + type = "(Unknown)" + + print "%s\t%s\t%s" % (modem.Get(MM_DBUS_INTERFACE_MODEM, "DataDevice"), + modem.Get(MM_DBUS_INTERFACE_MODEM, "Driver"), + type) + +def get_modem(manager): + modems = manager_iface.EnumerateDevices() + if not modems: + print "No modems found." + sys.exit(1) + dev_proxy = bus.get_object(MM_DBUS_SERVICE, modems[0]) + return dbus.Interface(dev_proxy, dbus_interface=MM_DBUS_INTERFACE_MODEM) + +def scan(modem): + results = modem.Scan() + for r in results: + status = r['status'] + if status == "1": + status = "available" + elif status == "2": + status = "current" + elif status == "3": + status = "forbidden" + else: + status = "(Unknown)" + + print "%s: %s" % (r['operator-long'], status) + +def get_quality(modem): + print "Signal Quality: %d%%" % modem.GetSignalQuality() + +def get_network_mode(modem): + mode = modem.GetNetworkMode() + if mode == 1: + mode = "GPRS" + elif mode == 2: + mode = "EDGE" + elif mode == 3: + mode = "3G" + elif mode == 4: + mode = "HSDPA" + else: + mode = "(Unknown)" + + print "Mode: %s" % mode + +def get_band(modem): + band = modem.GetBand() + if band == 0: + band = "Any" + elif band == 1: + band = "EGSM (900 MHz)" + elif band == 2: + band = "DCS (1800 MHz)" + elif band == 3: + band = "PCS (1900 MHz)" + elif band == 4: + band = "G850 (850 MHz)" + elif band == 5: + band = "U2100 (WCSMA 2100 MHZ, Class I)" + elif band == 6: + band = "U1700 (WCDMA 3GPP UMTS1800 MHz, Class III)" + elif band == 7: + band = "17IV (WCDMA 3GPP AWS 1700/2100 MHz, Class IV)" + elif band == 8: + band = "U800 (WCDMA 3GPP UMTS800 MHz, Class VI)" + elif band == 9: + band = "U850 (WCDMA 3GPP UMT850 MHz, Class V)" + elif band == 10: + band = "U900 (WCDMA 3GPP UMTS900 MHz, Class VIII)" + elif band == 11: + band = "U17IX (WCDMA 3GPP UMTS MHz, Class IX)" + else: + band = "(Unknown)" + + print "Band: %s" % band + +def connect(modem): + need_pin = False + + try: + modem.Enable(True) + except dbus.exceptions.DBusException, e: + need_pin = True + + if need_pin: + modem.SetPin("1234") + + modem.Register("") + modem.Connect('"*99#', '') + + +if '--list' in sys.argv: + enumerate_devices(manager_iface) +elif '--scan' in sys.argv: + scan(get_modem(manager_iface)) +elif '--quality' in sys.argv: + get_quality(get_modem(manager_iface)) +elif '--mode' in sys.argv: + get_network_mode(get_modem(manager_iface)) +elif '--band' in sys.argv: + get_band(get_modem(manager_iface)) +elif '--disable' in sys.argv: + get_modem(manager_iface).Enable(False) +elif '--disconnect' in sys.argv: + modem = get_modem(manager_iface) + modem.Disconnect() +elif '--connect' in sys.argv: + connect(get_modem(manager_iface)) |