def get_argparser(): parser = argparse.ArgumentParser(description="ARTIQ master") simple_network_args(parser, [ ("notify", "notifications", 3250), ("control", "control", 3251), ("logging", "remote logging", 1066), ("broadcast", "broadcasts", 1067) ]) group = parser.add_argument_group("databases") group.add_argument("--device-db", default="device_db.py", help="device database file (default: '%(default)s')") group.add_argument("--dataset-db", default="dataset_db.pyon", help="dataset file (default: '%(default)s')") group = parser.add_argument_group("repository") group.add_argument( "-g", "--git", default=False, action="store_true", help="use the Git repository backend") group.add_argument( "-r", "--repository", default="repository", help="path to the repository (default: '%(default)s')") log_args(parser) parser.add_argument("--name", help="friendly name, displayed in dashboards " "to identify master instead of server address") return parser
def get_argparser(): parser = argparse.ArgumentParser(description="ARTIQ controller for the Thorlabs DDR05 motorised rotation mount") simple_network_args(parser, 4010) parser.add_argument("-s", "--serial", default=None, help="serial number of device. Uses first device if not provided") add_common_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser(description="ARTIQ master") simple_network_args(parser, [ ("notify", "notifications", 3250), ("control", "control", 3251), ("logging", "remote logging", 1066) ]) group = parser.add_argument_group("databases") group.add_argument("--device-db", default="device_db.pyon", help="device database file (default: '%(default)s')") group.add_argument("--dataset-db", default="dataset_db.pyon", help="dataset file (default: '%(default)s')") group = parser.add_argument_group("repository") group.add_argument( "-g", "--git", default=False, action="store_true", help="use the Git repository backend") group.add_argument( "-r", "--repository", default="repository", help="path to the repository (default: '%(default)s')") log_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser(description="ARTIQ controller for the Agilent N8241A 2 channel AWG") parser.add_argument("-i", "--ipaddr", default=None, help="IP address of synth") simple_network_args(parser, 4000) add_common_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser(description="ARTIQ controller for TTI QL355P (TP) single (triple) channel power supplies") simple_network_args(parser, 4006) parser.add_argument("-d", "--device", default=None, help="serial device. See documentation for how to " "specify a USB Serial Number.") verbosity_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser(description="ARTIQ controller for SCPI synths") parser.add_argument("-i", "--ipaddr", default=None, help="IP address of synth") simple_network_args(parser, 4004) add_common_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser() parser.add_argument("-s", "--simulation", default=False, action="store_true", help="Put the driver in simulation mode") parser.add_argument("--allow-long-pulses", default=False, action="store_true") simple_network_args(parser, 4007) add_common_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser() parser.add_argument("--trapDacDevice", default=None, help="Trap DC Dac serial device") parser.add_argument("--trapRFDevice", default=None, help="Trap RF serial device") simple_network_args(parser, 4005) add_common_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser(description="ARTIQ controller for the Thorlabs MDT693B or MDT694B 3 (1) channel open-loop piezo controller") simple_network_args(parser, 4002) 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.") add_common_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser(description="ARTIQ controller for the Rohde&Schwarz SMA100A synthesiser") parser.add_argument("-i", "--ipaddr", default=None, help="IP address of synth") parser.add_argument("--simulation", action="store_true", help="Put the driver in simulation mode, even if " "--ipaddress is used.") simple_network_args(parser, 4004) add_common_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser() 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.") simple_network_args(parser, 4001) verbosity_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser( description="ARTIQ controller for the Novatech 409B 4-channel DDS box") 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.") verbosity_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser(description="NI PXI 6733 controller") simple_network_args(parser, 3256) parser.add_argument("-C", "--channels", default=None, help="List of channels (e.g. Dev1/ao0, Dev1/ao1:3).") parser.add_argument("-c", "--clock", default="PFI5", help="Input clock pin name (default: PFI5)") parser.add_argument("--simulation", action='store_true', help="Put the driver in simulation mode, even if " "--channels is used.") verbosity_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser() 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.") parser.add_argument("--clockfreq", default=1e9, type=float, help="clock frequency provided to DDS") simple_network_args(parser, 4003) add_common_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser() parser.add_argument("--trapDacDevice", default=None, help="Trap DC Dac serial device") parser.add_argument("--trapRFDevice", default=None, help="Trap RF serial device") parser.add_argument("--simulation", action="store_true", help="Put the driver in simulation mode, even if " "--device is used.") simple_network_args(parser, 4005) 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", choices=["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.") simple_network_args(parser, 3255) verbosity_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser(description="PDQ2 controller") simple_network_args(parser, 3252) 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.") parser.add_argument( "--dump", default="pdq2_dump.bin", help="file to dump pdq2 data into, for later simulation") verbosity_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser(description="""PDQ controller. Use this controller for PDQ stacks that are connected via USB.""") simple_network_args(parser, 3252) parser.add_argument("-d", "--device", default=None, help="serial port") parser.add_argument("--simulation", action="store_true", help="do not open any device but dump data") parser.add_argument("--dump", default="pdq_dump.bin", help="file to dump simulation data into") parser.add_argument("-r", "--reset", default=False, action="store_true", help="reset device [%(default)s]") parser.add_argument("-b", "--boards", default=3, type=int, help="number of boards [%(default)s]") verbosity_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser() simple_network_args(parser, 4000) add_common_args(parser) parser.add_argument( "--list", action="store_true", help="list connected cameras (ignores all other arguments)") parser.add_argument("--broadcast-images", action="store_true") parser.add_argument("--zmq-bind", default="*") parser.add_argument("--zmq-port", default=5555, type=int) parser.add_argument( "--device", "-d", type=int, default=None, help="camera serial number, uses first available if not supplied") return parser
def get_argparser(): parser = argparse.ArgumentParser( description="ARTIQ controller for the Lab Brick Digital Attenuator") parser.add_argument("-P", "--product", default="LDA-102", help="product type (default: %(default)s)", choices=["LDA-102", "LDA-602"]) simple_network_args(parser, 3253) parser.add_argument("-d", "--device", default=None, help="USB serial number of the device. " "The serial number is written on a sticker under " "the device, you should write for example " "-d \"SN:03461\". You must prepend enough 0s for " "it to be 5 digits. If omitted, the first " "available device will be used.") parser.add_argument("--simulation", action="store_true", help="Put the driver in simulation mode.") verbosity_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser() 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.") parser.add_argument("--clockfreq", default=1e9, type=float, help="clock frequency provided to DDS") parser.add_argument("--internal-clock", action="store_true") parser.add_argument("--disable-coherence", action="append", help="disable coherent switching (=no phase glitches) " "for a given channel") simple_network_args(parser, 4000) add_common_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", choices=["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.") simple_network_args(parser, 3255) verbosity_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser() 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.") parser.add_argument("--clockfreq", default=1e9, type=float, help="clock frequency provided to DDS") simple_network_args(parser, 4000) 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).") simple_network_args(parser, [("control", "control", 3248)]) add_common_args(parser) return parser
def run_simple_rpc_server(port, setup_args, interface_name, setup_interface): parser = ArgumentParser() influxdb_args(parser) simple_network_args(parser, port) verbosity_args(parser) if setup_args: setup_args(parser) args = parser.parse_args() init_logger(args) loop = asyncio.get_event_loop() atexit.register(loop.close) influx_pusher = influxdb_pusher_from_args(args) if influx_pusher: t = asyncio.ensure_future(influx_pusher.run()) def stop(): t.cancel() try: loop.run_until_complete(t) except asyncio.CancelledError: pass atexit.register(stop) interface = setup_interface(args, influx_pusher, loop) # Provide a default ping() method, which ARTIQ calls regularly for # heartbeating purposes. if not hasattr(interface, "ping"): setattr(interface, "ping", lambda: True) rpc_server = Server({interface_name: interface}, builtin_terminate=True) loop.run_until_complete(rpc_server.start(bind_address_from_args(args), args.port)) atexit_register_coroutine(rpc_server.stop) loop.run_until_complete(rpc_server.wait_terminate())
def get_argparser(): parser = argparse.ArgumentParser(description="ARTIQ controller manager") group = parser.add_argument_group("verbosity") group.add_argument("-v", "--verbose", default=0, action="count", help="increase logging level of the manager process") group.add_argument("-q", "--quiet", default=0, action="count", help="decrease logging level of the manager process") 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") simple_network_args(parser, [("control", "control", 3249)]) return parser
def get_argparser(): parser = argparse.ArgumentParser(description="ARTIQ controller manager") add_common_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") simple_network_args(parser, [("control", "control", 3249)]) 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") simple_network_args(parser, [("control", "control", 3275)]) add_common_args(parser) return parser
def get_argparser(): parser = argparse.ArgumentParser(description="WAnD server") simple_network_args(parser, [ ("notify", "notifications", 3250), ("control", "control", 3251), ]) add_common_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