#!/usr/bin/python3.8 import sys, logging, os, argparse parser = argparse.ArgumentParser( description='Acquire data and store to a measurement file.' ) parser.add_argument('filename', type=str, help='File name to record to.' ' Extension is automatically added.') parser.add_argument('--duration', '-d', type=float, help='The recording duration in [s]') device_help = 'DAQ Device to record from' parser.add_argument('--input-daq', '-i', help=device_help, type=str, default='Default') parser.add_argument('--log', '-l', help='Specify log level [info, debug, warning, ...]', type=str, default='info') args = parser.parse_args() numeric_level = getattr(logging, args.log.upper(), None) if not isinstance(numeric_level, int): raise ValueError('Invalid log level: %s' % args.loglevel) FORMAT = "[%(filename)s:%(lineno)s - %(funcName)20s() ] %(message)s" logging.basicConfig(format=FORMAT, level=numeric_level) import multiprocessing from lasp.device import DaqConfigurations from lasp import AvType, StreamManager, Recording# configureLogging def main(args): try: streammgr = StreamManager() configs = DaqConfigurations.loadAllConfigs() config_keys = [key for key in configs.keys()] for i, key in enumerate(config_keys): print(f'{i:2} : {key}') choosen_index = input('Number of configuration to use: ') try: daqindex = int(choosen_index) except: print('Invalid configuration number. Exiting.') sys.exit(0) choosen_key = config_keys[daqindex] config = configs[choosen_key].input_config print(f'Choosen configuration: {choosen_key}') streammgr.startStream(AvType.audio_input, config, wait=True) rec = Recording(args.filename, streammgr, args.duration) streammgr.stopStream(AvType.audio_output) finally: try: streammgr.cleanup() del stream except NameError: pass if __name__ == '__main__': multiprocessing.set_start_method('forkserver', force=True) main(args)