aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2021-06-21 11:22:29 +0200
committerAleksander Morgado <aleksander@aleksander.es>2021-06-21 11:22:29 +0200
commit6175cf562f3225ef7eed4a4f5a314d1322fb571f (patch)
tree8e4333d9bfaecb5452094afd7795e4e3120987d8 /examples
parenta357777d39c87da89c285d496a48b53f294f1e4b (diff)
examples,modem-watcher-python: also monitor modem state updates
$ sudo ./modem-watcher-python [ModemWatcher] ModemManager 1.16.6 service is available in bus [ModemWatcher] /org/freedesktop/ModemManager1/Modem/0: modem managed by ModemManager [015805000283080]: foxconn (MBIM [105B:E0AB]) [ModemWatcher] /org/freedesktop/ModemManager1/Modem/0: modem state updated: disabled -> enabling (user-requested) [ModemWatcher] /org/freedesktop/ModemManager1/Modem/0: modem state updated: enabling -> enabled (user-requested) [ModemWatcher] /org/freedesktop/ModemManager1/Modem/0: modem state updated: enabled -> registered (unknown)
Diffstat (limited to 'examples')
-rw-r--r--examples/modem-watcher-python/ModemWatcher.py24
1 files changed, 18 insertions, 6 deletions
diff --git a/examples/modem-watcher-python/ModemWatcher.py b/examples/modem-watcher-python/ModemWatcher.py
index 7ee8939b..b7cf4e7c 100644
--- a/examples/modem-watcher-python/ModemWatcher.py
+++ b/examples/modem-watcher-python/ModemWatcher.py
@@ -84,23 +84,35 @@ class ModemWatcher:
else:
self.set_unavailable()
+ def on_modem_state_updated(self, modem, old, new, reason):
+ """
+ Modem state updated
+ """
+ print('[ModemWatcher] %s: modem state updated: %s -> %s (%s) ' %
+ (modem.get_object_path(),
+ ModemManager.ModemState.get_string (old),
+ ModemManager.ModemState.get_string (new),
+ ModemManager.ModemStateChangeReason.get_string (reason)))
+
def on_object_added(self, manager, obj):
"""
Object added.
"""
modem = obj.get_modem()
- print('[ModemWatcher] %s (%s) modem managed by ModemManager [%s]: %s' %
- (modem.get_manufacturer(),
- modem.get_model(),
+ print('[ModemWatcher] %s: modem managed by ModemManager [%s]: %s (%s)' %
+ (obj.get_object_path(),
modem.get_equipment_identifier(),
- obj.get_object_path()))
+ modem.get_manufacturer(),
+ modem.get_model()))
if modem.get_state() == ModemManager.ModemState.FAILED:
- print('[ModemWatcher] ignoring failed modem: %s' %
+ print('[ModemWatcher] %s: ignoring failed modem' %
obj.get_object_path())
+ else:
+ modem.connect('state-changed', self.on_modem_state_updated)
def on_object_removed(self, manager, obj):
"""
Object removed.
"""
- print('[ModemWatcher] modem unmanaged by ModemManager: %s' %
+ print('[ModemWatcher] %s: modem unmanaged by ModemManager' %
obj.get_object_path())