Esempio n. 1
0
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
Esempio n. 3
0
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
Esempio n. 4
0
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
Esempio n. 6
0
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
Esempio n. 8
0
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
Esempio n. 10
0
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
Esempio n. 12
0
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
Esempio n. 13
0
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
Esempio n. 14
0
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
Esempio n. 16
0
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
Esempio n. 17
0
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
Esempio n. 18
0
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
Esempio n. 19
0
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
Esempio n. 20
0
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
Esempio n. 21
0
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
Esempio n. 22
0
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
Esempio n. 23
0
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
Esempio n. 24
0
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
Esempio n. 25
0
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
Esempio n. 26
0
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())
Esempio n. 27
0
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
Esempio n. 28
0
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
Esempio n. 29
0
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
Esempio n. 30
0
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
Esempio n. 31
0
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
Esempio n. 32
0
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