Exemplo n.º 1
0
def run_send_command():
    """Main entry point when running as a script -- should not be invoked form another module."""
    parser = get_config_parser()
    parser.add_argument('command')
    parser.add_argument('-o', '--output-directory', metavar='DIR', default='.',
                        help='Directory used to output data files (defaults to the current directory).')
    parser.add_argument('--verbose', help='Produce verobose output.', action='store_true', default=False)
    args = parser.parse_args()
    if not args.device_config.labels:
        args.device_config.labels = ['PORT_{}'.format(i) for i in xrange(len(args.device_config.resistor_values))]

    if args.verbose:
        log.start_logging('DEBUG')
    else:
        log.start_logging('INFO', fmt='%(levelname)-8s %(message)s')

    if args.command == 'configure':
        args.device_config.validate()
        command = Command(args.command, config=args.device_config)
    elif args.command == 'get_data':
        command = Command(args.command, output_directory=args.output_directory)
    else:
        command = Command(args.command)

    result = execute_command(args.server_config, command)
    print result
    if result.data:
        print result.data
def run_send_command():
    """Main entry point when running as a script -- should not be invoked form another module."""
    parser = get_config_parser()
    parser.add_argument('command')
    parser.add_argument('-o', '--output-directory', metavar='DIR', default='.',
                        help='Directory used to output data files (defaults to the current directory).')
    parser.add_argument('--verbose', help='Produce verobose output.', action='store_true', default=False)
    args = parser.parse_args()
    if not args.device_config.labels:
        args.device_config.labels = ['PORT_{}'.format(i) for i in range(len(args.device_config.resistor_values))]

    if args.verbose:
        log.start_logging('DEBUG')
    else:
        log.start_logging('INFO', fmt='%(levelname)-8s %(message)s')

    if args.command == 'configure':
        args.device_config.validate()
        command = Command(args.command, config=args.device_config)
    elif args.command == 'get_data':
        command = Command(args.command, output_directory=args.output_directory)
    else:
        command = Command(args.command)

    result = execute_command(args.server_config, command)
    print(result)
    if result.data:
        print(result.data)
Exemplo n.º 3
0
def run_server():
    parser = argparse.ArgumentParser()
    parser.add_argument('-d', '--directory', help='Working directory', metavar='DIR',
                        default='daq_server_tmpfiles')
    parser.add_argument('-p', '--port', help='port the server will listen on.',
                        metavar='PORT', default=45677, type=int)
    parser.add_argument('-c', '--cleanup-after', type=int, default=5, metavar='DAYS',
                        help="""
                        Sever will perodically clean up data files that are older than the number of
                        days specfied by this parameter.
                        """)
    parser.add_argument('--cleanup-period', type=int, default=1, metavar='DAYS',
                        help='Specifies how ofte the server will attempt to clean up old files.')
    parser.add_argument('--debug', help='Run in debug mode (no DAQ connected).',
                        action='store_true', default=False)
    parser.add_argument('--verbose', help='Produce verobose output.', action='store_true',
                        default=False)
    args = parser.parse_args()

    if args.debug:
        global DaqRunner  # pylint: disable=W0603
        DaqRunner = DummyDaqRunner
    else:
        if not DaqRunner:
            raise __import_error  # pylint: disable=raising-bad-type
    if args.verbose or args.debug:
        start_logging('DEBUG',
                      '%(asctime)s %(name)-30s %(levelname)-7s: %(message)s')
    else:
        start_logging('INFO')

    # days to seconds
    cleanup_period = args.cleanup_period * 24 * 60 * 60

    daq_server = DaqServer(args.directory)
    logger = logging.getLogger(__name__)

    server = SimpleXMLRPCServer(('', args.port), allow_none=True)
    server.register_instance(daq_server)

    try:
        hostname = socket.gethostbyname(socket.gethostname())
    except socket.gaierror:
        hostname = 'localhost'
    logger.info('Listening on %s:%d', hostname, args.port)

    server.serve_forever()
Exemplo n.º 4
0
def run_send_command():
    """Main entry point when running as a script -- should not be invoked form another module."""
    parser = get_config_parser()
    parser.add_argument('command')
    parser.add_argument('arguments', nargs='*')
    parser.add_argument(
        '-o',
        '--output-directory',
        metavar='DIR',
        default='.',
        help=
        'Directory used to output data files (defaults to the current directory).'
    )
    parser.add_argument('--verbose',
                        help='Produce verobose output.',
                        action='store_true',
                        default=False)
    args = parser.parse_args()
    if not args.device_config.labels:
        args.device_config.labels = [
            'PORT_{}'.format(i)
            for i in range(len(args.device_config.resistor_values))
        ]

    if args.verbose:
        start_logging('DEBUG')
    else:
        start_logging('INFO', fmt='%(levelname)-8s %(message)s')

    daq_client = DaqClient(args.host, args.port)

    if args.command == 'configure':
        args.device_config.validate()
        result = daq_client.configure(args.device_config)
    elif args.command == 'get_data':
        daq_client.get_data(output_directory=args.output_directory)
        result = None
    else:
        result = daq_client.__getattr__(args.command)(*args.arguments)

    if result is None:
        print('Ok')
    else:
        print(result)
Exemplo n.º 5
0
def run_server():
    parser = argparse.ArgumentParser()
    parser.add_argument('-d', '--directory', help='Working directory', metavar='DIR', default='.')
    parser.add_argument('-p', '--port', help='port the server will listen on.',
                        metavar='PORT', default=45677, type=int)
    parser.add_argument('-c', '--cleanup-after', type=int, default=5, metavar='DAYS',
                        help="""
                        Sever will perodically clean up data files that are older than the number of
                        days specfied by this parameter.
                        """)
    parser.add_argument('--cleanup-period', type=int, default=1, metavar='DAYS',
                        help='Specifies how ofte the server will attempt to clean up old files.')
    parser.add_argument('--debug', help='Run in debug mode (no DAQ connected).',
                        action='store_true', default=False)
    parser.add_argument('--verbose', help='Produce verobose output.', action='store_true', default=False)
    args = parser.parse_args()

    if args.debug:
        global DaqRunner  # pylint: disable=W0603
        DaqRunner = DummyDaqRunner
    else:
        if not DaqRunner:
            raise __import_error  # pylint: disable=raising-bad-type
    if args.verbose or args.debug:
        log.start_logging('DEBUG')
    else:
        log.start_logging('INFO')

    # days to seconds
    cleanup_period = args.cleanup_period * 24 * 60 * 60

    server = DaqServer(args.directory)
    factory = DaqFactory(server, cleanup_period, args.cleanup_after)
    reactor.listenTCP(args.port, factory).getHost()
    try:
        hostname = socket.gethostbyname(socket.gethostname())
    except socket.gaierror:
        hostname = 'localhost'
    log.info('Listening on {}:{}'.format(hostname, args.port))
    reactor.run()
def run_server():
    parser = argparse.ArgumentParser()
    parser.add_argument('-d',
                        '--directory',
                        help='Working directory',
                        metavar='DIR',
                        default='.')
    parser.add_argument('-p',
                        '--port',
                        help='port the server will listen on.',
                        metavar='PORT',
                        default=45677,
                        type=int)
    parser.add_argument('-c',
                        '--cleanup-after',
                        type=int,
                        default=5,
                        metavar='DAYS',
                        help="""
                        Sever will perodically clean up data files that are older than the number of
                        days specfied by this parameter.
                        """)
    parser.add_argument(
        '--cleanup-period',
        type=int,
        default=1,
        metavar='DAYS',
        help='Specifies how ofte the server will attempt to clean up old files.'
    )
    parser.add_argument('--debug',
                        help='Run in debug mode (no DAQ connected).',
                        action='store_true',
                        default=False)
    parser.add_argument('--verbose',
                        help='Produce verobose output.',
                        action='store_true',
                        default=False)
    args = parser.parse_args()

    if args.debug:
        global DaqRunner  # pylint: disable=W0603
        DaqRunner = DummyDaqRunner
    else:
        if not DaqRunner:
            raise __import_error  # pylint: disable=raising-bad-type
    if args.verbose or args.debug:
        log.start_logging('DEBUG')
    else:
        log.start_logging('INFO')

    # days to seconds
    cleanup_period = args.cleanup_period * 24 * 60 * 60

    server = DaqServer(args.directory)
    factory = DaqFactory(server, cleanup_period, args.cleanup_after)
    reactor.listenTCP(args.port, factory).getHost()
    try:
        hostname = socket.gethostbyname(socket.gethostname())
    except socket.gaierror:
        hostname = 'localhost'
    log.info('Listening on {}:{}'.format(hostname, args.port))
    reactor.run()