X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=sigrok-meter;h=dc34745445d63f9efc7642726154f73d2d767b65;hb=0e810ddf90595ae5269cf0e9b599426ffa7251a4;hp=546c8b28c8700f720efeca873a31c01f4511b3bb;hpb=4ce8c1c0b13d98e9929ea1ebe858da7d905a038b;p=sigrok-meter.git diff --git a/sigrok-meter b/sigrok-meter index 546c8b2..dc34745 100755 --- a/sigrok-meter +++ b/sigrok-meter @@ -1,5 +1,4 @@ #!/usr/bin/env python - ## ## This file is part of the sigrok-meter project. ## @@ -26,26 +25,41 @@ import sigrok.core as sr import sys import textwrap -default_drivers = ['demo:analog_channels=4'] +default_drivers = [('demo:analog_channels=4', 'samplerate=4')] default_loglevel = 2 def parse_cli(): parser = argparse.ArgumentParser( description='Simple sigrok GUI for multimeters and dataloggers.', epilog=textwrap.dedent('''\ - The DRIVER string is the same as for sigrok-cli(1). + The DRIVER string is the same as for sigrok-cli(1). Multiple + DRIVER and CONFIG items can be supplied. The nth CONFIG is applied + to the nth DRIVER. If there are more drivers than configs, the + remaining drivers use the default configuration. - examples: + Examples: %(prog)s --driver tecpel-dmm-8061-ser:conn=/dev/ttyUSB0 %(prog)s --driver uni-t-ut61e:conn=1a86.e008 + + %(prog)s --driver demo:analog_channels=1 \\ + --config samplerate=10 + + %(prog)s --driver voltcraft-k204:conn=/dev/ttyUSB0 \\ + --driver uni-t-ut61d:conn=1a86.e008 \\ + --driver uni-t-ut61e-ser:conn=/dev/ttyUSB1 '''), formatter_class=argparse.RawDescriptionHelpFormatter) parser.add_argument('-d', '--driver', action='append', + default=[], help='The driver to use') + parser.add_argument('-c', '--config', + action='append', + default=[], + help='Specify device configuration options') parser.add_argument('-l', '--loglevel', type=int, default=default_loglevel, @@ -56,8 +70,19 @@ def parse_cli(): help='Force use of PySide (default is to use PyQt4)') args = parser.parse_args() + if len(args.config) > len(args.driver): + sys.exit('Error: More configurations than drivers given.') + + # Merge drivers and configurations into a list of tuples. + setattr(args, 'drivers', []) if not args.driver: - args.driver = default_drivers + args.drivers = default_drivers + sys.stderr.write('No driver given, using demo driver.\n') + if args.driver: + args.config.extend([''] * (len(args.driver) - len(args.config))) + args.drivers = zip(args.driver, args.config) + del args.driver + del args.config return args @@ -75,10 +100,10 @@ if __name__ == '__main__': loglevel = sr.LogLevel.get(args.loglevel) context.log_level = loglevel except: - sys.exit('error: invalid log level') + sys.exit('Error: invalid log level.') app = QtGui.QApplication([]) - s = mainwindow.MainWindow(context, args.driver) + s = mainwindow.MainWindow(context, args.drivers) s.show() sys.exit(app.exec_())