diff --git a/dtdaq/__main__.py b/dtdaq/__main__.py index 0ec7555bb9b39f80194a8cd005105321170f697e..d29ea265dca8d1edeb3bdd016450115885ac4b0f 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 761b95c867efd2a95d69fc3a0fa1e8aeb2381068..3fa4708962a4eaad31fd44986340ff1c8ff51466 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__':