diff options
Diffstat (limited to 'bindings/python/examples/iio_info.py')
-rwxr-xr-x | bindings/python/examples/iio_info.py | 89 |
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() |