def get_argparser(): parser = argparse.ArgumentParser(description="ARTIQ Browser") parser.add_argument("--version", action="version", version="ARTIQ v{}".format(artiq_version), help="print the ARTIQ version number") parser.add_argument("--db-file", default=None, help="database file for local browser settings " "(default: %(default)s)") parser.add_argument("--browse-root", default="", help="root path for directory tree " "(default %(default)s)") parser.add_argument("-s", "--server", default="::1", help="hostname or IP of the master to connect to " "when uploading datasets") parser.add_argument("--port", default=3251, type=int, help="TCP port to use to connect to the master") parser.add_argument("select", metavar="SELECT", nargs="?", help="directory to browse or file to load") common_args.verbosity_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser(description="ARTIQ controller manager") common_args.verbosity_args(parser) parser.add_argument("-s", "--server", default="::1", help="hostname or IP of the master to connect to") parser.add_argument("--port-notify", default=3250, type=int, help="TCP port to connect to for notifications") parser.add_argument("--port-logging", default=1066, type=int, help="TCP port to connect to for logging") parser.add_argument("--retry-master", default=5.0, type=float, help="retry timer for reconnecting to master") parser.add_argument("--host-filter", default=None, help="IP address of controllers to launch " "(local address of master connection by default)") common_args.simple_network_args(parser, [("control", "control", 3249)]) return parser
def get_argparser(): parser = ArgumentParser( description="PI lock client with a Meilhaus RedLab analog out") wavemeter_pi_client_args(parser) group = parser.add_argument_group("channel selection") group.add_argument("-c", "--channel", default="ch1", help="wavemeter channel to read out (default: \"ch1\")") group = parser.add_argument_group("output configuration") group.add_argument("-b", "--board", default=0, help="board number") group.add_argument("-i", "--id", default=0, help="channel id") parser.set_defaults(aux_output=False) group.add_argument("--aux-output", dest="aux_output", action="store_true", help="enable additional output " "(independent of lock, but can be " "manually updated, e.g. to tweak " "the current)") group.add_argument("-b2", "--board2", default=0, help="board number (aux out)") group.add_argument("-i2", "--id2", default=0, help="channel id (aux out)") verbosity_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser(description="WAnD InfluxDB logger") verbosity_args(parser) parser.add_argument("-s", "--server", action="append", help="Add a WAnD server by IP address") parser.add_argument( "-poll", "--poll-time", help="time between log updates (s) (default: '%(default)s')", type=int, default=300) influx = parser.add_argument_group("InfluxDB") influx.add_argument( "-db", "--database", help="influxdb database to log to (default: '%(default)s')", default="lasers") influx.add_argument("--host-db", help="InfluxDB host name (default: '%(default)s')", default="10.255.6.4") influx.add_argument("--user-db", help="InfluxDB username (default: '%(default)s')", default="admin") influx.add_argument("--password-db", help="InfluxDB password (default: '%(default)s')", default="admin") parser.add_argument( "--timeout", help=("timeout for RPC connection to servers, in seconds " + "(default: %(default)s s)"), type=float, default=5.0) return parser
def get_argparser(): parser = argparse.ArgumentParser( description="ARTIQ schedule InfluxDB logger bridge", epilog="Listens to schedule updates on the master experiment schedule " "and submits schedule additions and removals to the InfluxDB " "database. Other schedule changes, such as transitions between " "pipeline states (prepare, prepare_done, running, etc.) are " "ignored. Typical high cardinality metadata is logged as " "fields while low cardinality data is logged as tags. " "The initially obtained complete state is logged as a 'clear' " "entry followed by the addition of all entries.") group = parser.add_argument_group("master") group.add_argument("--server-master", default="::1", help="hostname or IP of the master to connect to") group.add_argument("--port-master", default=3250, type=int, help="TCP port to use to connect to the master") group.add_argument("--retry-master", default=5.0, type=float, help="retry timer for reconnecting to master") group = parser.add_argument_group("database") group.add_argument( "--baseurl-db", default="http://localhost:8086", help="base URL to access InfluxDB (default: %(default)s)") group.add_argument("--user-db", default="", help="InfluxDB username") group.add_argument("--password-db", default="", help="InfluxDB password") group.add_argument("--database", default="db", help="database name to use") group.add_argument("--table", default="schedule", help="table name to use") common_args.simple_network_args(parser, [("control", "control", 3275)]) common_args.verbosity_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser( formatter_class=argparse.RawDescriptionHelpFormatter, description="ARTIQ flashing/deployment tool", epilog="""\ Valid actions: * gateware: write main gateware bitstream to flash * rtm_gateware: write RTM gateware bitstream to flash * bootloader: write bootloader to flash * storage: write storage image to flash * firmware: write firmware to flash * load: load main gateware bitstream into device (volatile but fast) * rtm_load: load RTM gateware bitstream into device * erase: erase flash memory * start: trigger the target to (re)load its gateware bitstream from flash Prerequisites: * Connect the board through its/a JTAG adapter. * Have OpenOCD installed and in your $PATH. * Have access to the JTAG adapter's devices. Udev rules from OpenOCD: 'sudo cp openocd/contrib/99-openocd.rules /etc/udev/rules.d' and replug the device. Ensure you are member of the plugdev group: 'sudo adduser $USER plugdev' and re-login. """) parser.add_argument("--version", action="version", version="ARTIQ v{}".format(artiq_version), help="print the ARTIQ version number") common_args.verbosity_args(parser) parser.add_argument("-n", "--dry-run", default=False, action="store_true", help="only show the openocd script that would be run") parser.add_argument("-H", "--host", metavar="HOSTNAME", type=str, default=None, help="SSH host where the board is located") parser.add_argument("-J", "--jump", type=str, default=None, help="SSH host to jump through") parser.add_argument("-t", "--target", default="kasli", help="target board, default: %(default)s, one of: " "kasli sayma metlino kc705") parser.add_argument("-V", "--variant", default=None, help="board variant. Autodetected if only one is installed.") parser.add_argument("-I", "--preinit-command", default=[], action="append", help="add a pre-initialization OpenOCD command. " "Useful for selecting a board when several are connected.") parser.add_argument("-f", "--storage", help="write file to storage area") parser.add_argument("-d", "--dir", help="look for board binaries in this directory") parser.add_argument("--srcbuild", help="board binaries directory is laid out as a source build tree", default=False, action="store_true") parser.add_argument("--force-rtm", help="force RTM actions on boards/variants that normally do not have a RTM", default=False, action="store_true") parser.add_argument("action", metavar="ACTION", nargs="*", default="gateware rtm_gateware bootloader firmware start".split(), help="actions to perform, default: %(default)s") return parser
def get_argparser(): parser = argparse.ArgumentParser(description="WAnD server") simple_network_args(parser, [ ("notify", "notifications", 3250), ("control", "control", 3251), ]) verbosity_args(parser) parser.add_argument("-n", "--name", default="test", help="server name, used to locate configuration file") parser.add_argument("--simulation", action='store_true', help="run in simulation mode") parser.add_argument("--fast-mode-timeout", default=1800, type=int, help="fast mode timeout (s) (default: '%(default)s')") parser.add_argument("-b", "--backup-dir", default="", type=str, help="directory containing backup copies of " "configuration files") return parser
def get_argparser(with_file=True): parser = argparse.ArgumentParser( description="Local experiment running tool") parser.add_argument("--version", action="version", version="ARTIQ v{}".format(artiq_version), help="print the ARTIQ version number") common_args.verbosity_args(parser) parser.add_argument("--device-db", default="device_db.py", help="device database file (default: '%(default)s')") parser.add_argument("--dataset-db", default="dataset_db.pyon", help="dataset file (default: '%(default)s')") parser.add_argument("-c", "--class-name", default=None, help="name of the class to run") parser.add_argument("-o", "--hdf5", default=None, help="write results to specified HDF5 file" " (default: print them)") if with_file: parser.add_argument("file", metavar="FILE", help="file containing the experiment to run") parser.add_argument("arguments", metavar="ARGUMENTS", nargs="*", help="run arguments") return parser
def get_argparser(): parser = argparse.ArgumentParser(description="ARTIQ static compiler") parser.add_argument("--version", action="version", version="ARTIQ v{}".format(artiq_version), help="print the ARTIQ version number") common_args.verbosity_args(parser) parser.add_argument("--device-db", default="device_db.py", help="device database file (default: '%(default)s')") parser.add_argument("--dataset-db", default="dataset_db.pyon", help="dataset file (default: '%(default)s')") parser.add_argument("-c", "--class-name", default=None, help="name of the class to compile") parser.add_argument("-o", "--output", default=None, help="output file") parser.add_argument("file", metavar="FILE", help="file containing the experiment to compile") parser.add_argument("arguments", metavar="ARGUMENTS", nargs="*", help="run arguments") return parser
def get_argparser(): parser = argparse.ArgumentParser(description="ARTIQ Dashboard") parser.add_argument("--version", action="version", version="ARTIQ v{}".format(artiq_version), help="print the ARTIQ version number") parser.add_argument("-s", "--server", default="::1", help="hostname or IP of the master to connect to") parser.add_argument("--port-notify", default=3250, type=int, help="TCP port to connect to for notifications") parser.add_argument("--port-control", default=3251, type=int, help="TCP port to connect to for control") parser.add_argument("--port-broadcast", default=1067, type=int, help="TCP port to connect to for broadcasts") parser.add_argument("--db-file", default=None, help="database file for local GUI settings") parser.add_argument("-p", "--load-plugin", dest="plugin_modules", action="append", help="Python module to load on startup") common_args.verbosity_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser( description="""PTB temperature sensor controller.""") parser.add_argument( "-d", "--device", default=None, help="Device host name or IP address.") simple_network_args(parser, 3266) verbosity_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser( description="""PTB voltage/current source controller.""") parser.add_argument( "-d", "--device", default=None, help="Device host name or IP address.") simple_network_args(parser, 3259) verbosity_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser( description="ARTIQ controller for core device logs") common_args.verbosity_args(parser) common_args.simple_network_args(parser, 1068) parser.add_argument("--simulation", action="store_true", help="Simulation - does not connect to device") parser.add_argument("core_addr", metavar="CORE_ADDR", help="hostname or IP address of the core device") return parser
def get_argparser(): parser = argparse.ArgumentParser(description="""HUT2 controller. Use this controller for Anel HUT2 power distribution devices.""") parser.add_argument("-d", "--device", default=None, help="Device host name or IP address.") common_args.simple_network_args(parser, 3271) common_args.verbosity_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser() parser.add_argument("--uri", help="target host uri (default: '%(default)s')", default="wss://ms1/core/") parser.add_argument("--user", default="guest") parser.add_argument("--password", default="") simple_network_args(parser, 3276) verbosity_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser( description="ARTIQ moninj proxy") common_args.verbosity_args(parser) common_args.simple_network_args(parser, [ ("proxy", "proxying", 1383), ("control", "control", 1384) ]) parser.add_argument("core_addr", metavar="CORE_ADDR", help="hostname or IP address of the core device") return parser
def get_argparser(): parser = argparse.ArgumentParser( description="ARTIQ controller for the Novatech 409B 4-channel DDS box") common_args.simple_network_args(parser, 3254) parser.add_argument( "-d", "--device", default=None, help="serial port.") parser.add_argument( "--simulation", action="store_true", help="Put the driver in simulation mode, even if --device is used.") common_args.verbosity_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser(description="""Rigol DP700 controller. Use this controller to drive DP700 series power supplies.""") common_args.simple_network_args(parser, 3251) parser.add_argument( "-s", "--serialPort", default=None, help="Serial port. See documentation for how to specify port.") common_args.verbosity_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser() parser.add_argument("--tcp", help="use TCP device, else use first " "USB device") parser.add_argument("--simulation", action="store_true", help="simulation device") common_args.simple_network_args(parser, 3257) common_args.verbosity_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser( description="ARTIQ data to InfluxDB bridge", epilog="Pattern matching works as follows. " "The default action on a key (dataset name) is to log it. " "Then the patterns are traversed in order and glob-matched " "with the key. " "Optional + and - pattern prefixes specify to either ignore or " "log keys matching the rest of the pattern. " "Default (in the absence of prefix) is to ignore. Last matched " "pattern takes precedence.") master_group = parser.add_argument_group("master") master_group.add_argument( "--server-master", default="::1", help="hostname or IP of the master to connect to") master_group.add_argument( "--port-master", default=3250, type=int, help="TCP port to use to connect to the master (default: %(default)s") master_group.add_argument("--retry-master", default=5.0, type=float, help="retry timer for reconnecting to master") database_group = parser.add_argument_group("database") database_group.add_argument( "--baseurl-db", default="http://localhost:8086", help="base URL to access InfluxDB (default: %(default)s)") database_group.add_argument("--user-db", default="", help="InfluxDB username") database_group.add_argument("--password-db", default="", help="InfluxDB password") database_group.add_argument("--database", default="db", help="database name to use") database_group.add_argument("--table", default="lab", help="table name to use") filter_group = parser.add_argument_group("filter") filter_group.add_argument( "--pattern-file", default="influxdb_patterns.cfg", help="file to load the patterns from (default: %(default)s). " "If the file is not found, no patterns are loaded " "(everything is logged).") common_args.simple_network_args(parser, [("control", "control", 3248)]) common_args.verbosity_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser( description="""HighFinesse Wavemeter controller""") parser.add_argument("-d", "--device", default=None, help="Device host name or IP address") parser.add_argument("-o", "--device-port", default=1234, help="Device TCP port number") common_args.simple_network_args(parser, 3273) common_args.verbosity_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser() parser.add_argument("-P", "--product", required=True, help="type of the Thorlabs T-Cube device to control: " "tdc001/tpz001") parser.add_argument("-d", "--device", default=None, help="serial device. See documentation for how to " "specify a USB Serial Number.") parser.add_argument("--simulation", action="store_true", help="Put the driver in simulation mode, even if " "--device is used.") common_args.simple_network_args(parser, 3255) common_args.verbosity_args(parser) return parser
def get_argparser(): parser = ArgumentParser( description= "PI lock client using ethernet communication with a Toptica DLC controller" ) wavemeter_pi_client_args(parser) group = parser.add_argument_group("channel selection") group.add_argument("-c", "--channel", default="ch1", help="wavemeter channel to read out (default: \"ch1\")") group = parser.add_argument_group("output configuration") group.add_argument("-d", "--dlc_address", default=0, help="Toptica DLC address") group.add_argument("-l", "--laser", type=int, default=1, help="Laser ID (1 or 2, default: 1)") group = parser.add_argument_group("output configuration") group.add_argument("--pzt_center", default=None, help="PZT center voltage in V (default: current value)") group.add_argument("--pzt_span", type=float, default=10., help="PZT voltage span in V (default: 10)") group.add_argument( "--current_center", type=float, default=None, help="center laser diode current in mA (default: current value)") # current_span intentionally defaults to 0 - users should know what they are doing if they adjust it group.add_argument("--current_span", type=float, default=0., help="laser diode current span in mA (default: 0)") parser.set_defaults(lock_current=False) group.add_argument( "--lock_current", dest="lock_current", action="store_true", help= "lock using the laser diode current (default: lock via PZT voltage, make LD current " "available as auxiliary output") verbosity_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser( description="""Laser SDK client controller. Use this controller for a TOPTICA DLC Pro. This exposes a low-level client (i.e. without knowledge of the parameter tree structure and types) as an ARTIQ device controller. Note: The param_type arguments to the get() method need to be passed as strings, not as types.""") parser.add_argument( "-d", "--device", default=None, help="Device host name or IP address.") common_args.simple_network_args(parser, 3272) common_args.verbosity_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser(description="WAnD laser locker") verbosity_args(parser) parser.add_argument("-s", "--server", action="append", help="Add a WAnD server by IP address") parser.add_argument("-poll", "--poll-time", help="time between log updates (s) (default: " "'%(default)s')", type=int, default=300) parser.add_argument("-db", "--database", help="influxdb database to log to '%(default)s')", default="lasers") return parser
def get_argparser(): parser = argparse.ArgumentParser(description="WAnD GUI") parser.add_argument("-n", "--name", default="test", help="server name, used to locate configuration file") parser.add_argument("-f", "--log-to-file", action="store_true", help="Save log output to file") parser.add_argument("-b", "--backup-dir", default="", type=str, help="directory containing backup copies of " "configuration files") verbosity_args(parser) return parser
def get_argparser(): parser = ArgumentParser(description="Wavemeter ARTIQ dataset updater") group = parser.add_argument_group("network arguments") group.add_argument("-w", "--wavemeter_server", default="::1", help="address of the host running the wavemeter" " server (default: ::1 (localhost))") group.add_argument("--wavemeter_port", type=int, default=3281, help="wavemeter server publisher port" " (default: 3281)") group.add_argument("-a", "--artiq_server", default="::1", help="address of the host running the artiq master" " (default: ::1 (localhost))") group.add_argument("--artiq_port", type=int, default=3251, help="artiq master RPC server port (default: 3251)") group = parser.add_argument_group("source and target") group.add_argument("-c", "--channel", nargs="*", default=[i for i in range(1, 9)], help="list of channels to read out (channel numbers, and/or T, p; default: 1 2 3 4 5 6 7 8)") group.add_argument("--dataset", default="wavemeter.", help="target dataset prefix (default: 'wavemeter.')") verbosity_args(parser) return parser
def get_argparser(): parser = ArgumentParser(description="Wavelength logging client. Specify a filename to start logging (Ch1 to Ch8 " "wavelengths by default) or leave filename blank to start GUI") group = parser.add_argument_group("network arguments") group.add_argument("-s", "--server", default="::1", help="address of the wavemeter server (default: ::1)") group.add_argument("-p", "--port", default=3280, help="port of the wavemeter server (default: 3280)") group = parser.add_argument_group("logging options") group.add_argument("-c", "--channel", nargs="*", default=[i for i in range(1, 9)], help="list of channels to log (channel numbers, T, or p; default: 1 2 3 4 5 6 7 8)") group.add_argument("-i", "--interval", default=1., help="Logging interval in seconds") parser.set_defaults(append=False) group.add_argument("-a", "--append", dest="append", action="store_true") group.add_argument("-f", "--file", default="", help="output filename") parser.set_defaults(T=False, p=False) verbosity_args(parser) return parser
def get_argparser(): parser = ArgumentParser(description="Wavemeter server") group = parser.add_argument_group("data readout") group.add_argument( "-c", "--channel", nargs="*", default=[i for i in range(1, 9)], help="list of channels to read out (default: 1 2 3 4 5 6 7 8)") group.add_argument("--nchannels", default=8, help="number of hardware channels (default: 8)") parser.set_defaults(T=False, p=False) group.add_argument( "-T", dest="T", action="store_true", help="enable temperature readout (available as channel \"T\")") group.add_argument( "-p", dest="p", action="store_true", help="enable pressure readout (available as channel \"p\")") group.add_argument( "-skip-thr", default=10., help="values are ignored if they differ by more than this (in nm) from" " the previous reading of the same channel (this discards the" " occasional values from a wrong channel) (default: 10.0)") group = parser.add_argument_group("startup options") group.add_argument( "--callback", default=True, help="install the wavemeter software callback at startup" " (default: True)") group.add_argument( "--start-pub", default=True, help="start the publisher (for new values and status updates)" " at startup (default: True)") simple_network_args( parser, [("rpc", "RPC", 3280), ("pub", "publisher (for new values and status updates)", 3281)]) verbosity_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser(description="""Thorlabs Camera controller. Use this controller to drive Thorlabs Scientific Imaging cameras.""") common_args.simple_network_args(parser, 3252) parser.add_argument( "-d", "--device", default=None, help= "Camera serial number. Connects to first available camera if not used." ) parser.add_argument( "-e", "--exposure", default=None, help="Exposure time in seconds. Defaults to minimum if not used.") common_args.verbosity_args(parser) return parser