diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2021-06-21 11:22:29 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2021-06-21 11:22:29 +0200 |
commit | 6175cf562f3225ef7eed4a4f5a314d1322fb571f (patch) | |
tree | 8e4333d9bfaecb5452094afd7795e4e3120987d8 /examples | |
parent | a357777d39c87da89c285d496a48b53f294f1e4b (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.py | 24 |
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()) |