From 1e44d5d468af5521c1a1ea6ee7ea3eb513e95046 Mon Sep 17 00:00:00 2001 From: Daniele Nicolodi <daniele.nicolodi@ptb.de> Date: Wed, 17 Aug 2022 18:12:25 +0200 Subject: [PATCH] Improve error reporting when no device is found --- dtdaq/__main__.py | 11 ++++++++--- dtdaq/enumerate.py | 11 ++++++++--- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/dtdaq/__main__.py b/dtdaq/__main__.py index 0ec7555..d29ea26 100644 --- a/dtdaq/__main__.py +++ b/dtdaq/__main__.py @@ -6,7 +6,7 @@ import time import click import colorama -from .dtdaq import DTDaq +from . import dtdaq @click.command() @@ -18,8 +18,13 @@ from .dtdaq import DTDaq def main(device, fsampl, channel, gain, filename): colorama.init() - daq = DTDaq(device.encode('ascii')) - print(f'{daq.name} {daq.version} 0x{daq.hwinfo.serial:X}') + try: + daq = dtdaq.DTDaq(device.encode('ascii')) + print(f'{daq.name} {daq.version} 0x{daq.hwinfo.serial:X}') + except dtdaq.DTDaqError as exc: + if exc.errno == dtdaq.errno.OLCANNOTOPENDRIVER: + return click.echo(f'Error: {exc.message}. Device "{device}" not found.', err=True) + raise if len(gain) == 1: gain = list(gain) * len(channel) diff --git a/dtdaq/enumerate.py b/dtdaq/enumerate.py index 761b95c..3fa4708 100644 --- a/dtdaq/enumerate.py +++ b/dtdaq/enumerate.py @@ -1,11 +1,16 @@ import click -from .dtdaq import enum_boards +from . import dtdaq @click.command() def main(): - for board in enum_boards(): - print(board.name) + try: + for board in dtdaq.enumerate_devices(): + print(board.name) + except dtdaq.DTDaqError as exc: + if exc.errno == dtdaq.errno.OLNOBOARDSINSTALLED: + return print(f'{exc.message}.') + raise if __name__ == '__main__': -- GitLab