From 6175cf562f3225ef7eed4a4f5a314d1322fb571f Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Mon, 21 Jun 2021 11:22:29 +0200 Subject: 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) --- examples/modem-watcher-python/ModemWatcher.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'examples/modem-watcher-python/ModemWatcher.py') 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()) -- cgit v1.2.3-70-g09d2