summaryrefslogtreecommitdiff
path: root/bindings/python/examples/iio_info.py
diff options
context:
space:
mode:
Diffstat (limited to 'bindings/python/examples/iio_info.py')
-rwxr-xr-xbindings/python/examples/iio_info.py89
1 files changed, 89 insertions, 0 deletions
diff --git a/bindings/python/examples/iio_info.py b/bindings/python/examples/iio_info.py
new file mode 100755
index 0000000..e29b297
--- /dev/null
+++ b/bindings/python/examples/iio_info.py
@@ -0,0 +1,89 @@
+#!/usr/bin/env python
+#
+# Copyright (C) 2015 Analog Devices, Inc.
+# Author: Paul Cercueil <paul.cercueil@analog.com>
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+
+import iio
+from sys import argv
+
+def main():
+ print('Library version: %u.%u (git tag: %s)' % iio.version)
+
+ if len(argv) == 3 and argv[1] == '--uri':
+ uri = argv[2]
+ else:
+ contexts = iio.scan_contexts()
+ if len(contexts) > 1:
+ print('Multiple contexts found. Please select one using --uri:')
+ for index, each in enumerate(contexts):
+ print('\t%d: %s [%s]' % (index, contexts[each], each))
+ return
+
+ uri = next(iter(contexts), None)
+
+ ctx = iio.Context(uri)
+
+ if uri is not None:
+ print('Using auto-detected IIO context at URI \"%s\"' % uri)
+
+ print('IIO context created: ' + ctx.name)
+ print('Backend version: %u.%u (git tag: %s)' % ctx.version)
+ print('Backend description string: ' + ctx.description)
+
+ if len(ctx.attrs) > 0:
+ print('IIO context has %u attributes:' % len(ctx.attrs))
+ for attr, value in ctx.attrs.items():
+ print('\t' + attr + ': ' + value)
+
+ print('IIO context has %u devices:' % len(ctx.devices))
+
+ for dev in ctx.devices:
+ print('\t' + dev.id + ': ' + dev.name)
+
+ if dev is iio.Trigger:
+ print('Found trigger! Rate: %u Hz' % dev.frequency)
+
+ print('\t\t%u channels found:' % len(dev.channels))
+
+ for chn in dev.channels:
+ print('\t\t\t%s: %s (%s)' % (chn.id, chn.name or "", 'output' if chn.output else 'input'))
+
+ if len(chn.attrs) != 0:
+ print('\t\t\t%u channel-specific attributes found:' % len(chn.attrs))
+
+ for attr in chn.attrs:
+ try:
+ print('\t\t\t\t' + attr + ', value: ' + chn.attrs[attr].value)
+ except OSError as e:
+ print('Unable to read ' + attr + ': ' + e.strerror)
+
+ if len(dev.attrs) != 0:
+ print('\t\t%u device-specific attributes found:' % len(dev.attrs))
+
+ for attr in dev.attrs:
+ try:
+ print('\t\t\t' + attr + ', value: ' + dev.attrs[attr].value)
+ except OSError as e:
+ print('Unable to read ' + attr + ': ' + e.strerror)
+
+ if len(dev.debug_attrs) != 0:
+ print('\t\t%u debug attributes found:' % len(dev.debug_attrs))
+
+ for attr in dev.debug_attrs:
+ try:
+ print('\t\t\t' + attr + ', value: ' + dev.debug_attrs[attr].value)
+ except OSError as e:
+ print('Unable to read ' + attr + ': ' + e.strerror)
+
+if __name__ == '__main__':
+ main()