X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=sigrok-meter;h=884ad2d08781a187db2f83f67615484166061ca8;hb=480cdb7bc04548aec46b7342d6fa1acafa60331c;hp=546c8b28c8700f720efeca873a31c01f4511b3bb;hpb=4ce8c1c0b13d98e9929ea1ebe858da7d905a038b;p=sigrok-meter.git diff --git a/sigrok-meter b/sigrok-meter index 546c8b2..884ad2d 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,36 @@ 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). 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 '''), 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 +65,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 +95,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_())