Пример #1
0
def curses_shell(options):
    from fluxclient.commands.misc.console import Console

    with Console() as console:
        console.setup()
        setup_readline()

        def conn_callback(*args):
            console.write(".")
            return True

        try:
            logger = setup_logger("Robot", console, options.verbose)
            client, _ = connect_robot_helper(options.target, options.clientkey,
                                             console)

            from fluxclient.commands.misc.robot_console import RobotConsole
            robot_client = RobotConsole(client)
            logger.info("----> READY")
            logger.info("Use command 'help' to get available commands.")
            while True:
                try:
                    cmd = console.read_cmd()
                    if cmd:
                        robot_client.on_cmd(cmd)
                except Exception:
                    logger.exception("Unhandle Error")

        except Exception:
            logger.exception("Unhandle Error")
            console.append_log("Press Control + C to quit")
            while True:
                cmd = console.read_cmd()
Пример #2
0
def curses_shell(options):
    from fluxclient.commands.misc.console import Console

    with Console() as console:
        console.setup()
        setup_readline()

        def conn_callback(*args):
            console.write(".")
            return True

        try:
            logger = setup_logger("Robot", console, options.verbose)
            client, _ = connect_robot_helper(options.target, options.clientkey,
                                             console)

            from fluxclient.commands.misc.robot_console import RobotConsole
            robot_client = RobotConsole(client)
            logger.info("----> READY")
            logger.info("Use command 'help' to get available commands.")
            while True:
                try:
                    cmd = console.read_cmd()
                    if cmd:
                        robot_client.on_cmd(cmd)
                except Exception:
                    logger.exception("Unhandle Error")

        except Exception:
            logger.exception("Unhandle Error")
            console.append_log("Press Control + C to quit")
            while True:
                cmd = console.read_cmd()
Пример #3
0
def simple_shell(options):
    logger = setup_logger("Robot", debug=options.verbose)
    setup_readline()

    def conn_callback(*args):
        sys.stdout.write(".")
        sys.stdout.flush()
        return True

    client, _ = connect_robot_helper(options.target, options.clientkey)

    from fluxclient.commands.misc.robot_console import RobotConsole
    robot_client = RobotConsole(client)
    logger.info("----> READY")
    logger.info("Use command 'help' to get available commands.")

    while True:
        try:
            r = input("ROBOT> ")
        except KeyboardInterrupt:
            logger.info("Quit")
            return

        if not r:
            continue
        try:
            robot_client.on_cmd(r.strip())
        except Exception:
            logger.exception("Unhandle Error")
            return
Пример #4
0
def python_shell(options):
    logger = setup_logger("Robot", debug=options.verbose)

    def conn_callback(*args):
        sys.stdout.write(".")
        sys.stdout.flush()
        return True

    if options.shell == "ipython":
        import IPython
    else:
        import importlib
        sys.path.append(os.path.abspath(""))
        module_name, entrance_name = options.shell.rsplit(".", 1)
        module_instance = importlib.import_module(module_name)
        entrance = module_instance.__getattribute__(entrance_name)

    robot, device = connect_robot_helper(options.target, options.clientkey)

    if options.shell == "ipython":
        logger.info("----> READY")
        logger.info("""
      * Hint: Try 'robot?' and 'dir(robot)' to get more informations)\n""")
        IPython.embed()
        return 0
    else:
        return entrance(robot, device)
Пример #5
0
def simple_shell(options):
    logger = setup_logger("Robot", debug=options.verbose)
    setup_readline()

    def conn_callback(*args):
        sys.stdout.write(".")
        sys.stdout.flush()
        return True

    client, _ = connect_robot_helper(options.target, options.clientkey)

    from fluxclient.commands.misc.robot_console import RobotConsole
    robot_client = RobotConsole(client)
    logger.info("----> READY")
    logger.info("Use command 'help' to get available commands.")

    while True:
        try:
            r = input("ROBOT> ")
        except KeyboardInterrupt:
            logger.info("Quit")
            return

        if not r:
            continue
        try:
            robot_client.on_cmd(r.strip())
        except Exception:
            logger.exception("Unhandle Error")
            return
Пример #6
0
def python_shell(options):
    logger = setup_logger("Robot", debug=options.verbose)

    def conn_callback(*args):
        sys.stdout.write(".")
        sys.stdout.flush()
        return True

    if options.shell == "ipython":
        import IPython
    else:
        import importlib
        sys.path.append(os.path.abspath(""))
        module_name, entrance_name = options.shell.rsplit(".", 1)
        module_instance = importlib.import_module(module_name)
        entrance = module_instance.__getattribute__(entrance_name)

    robot, device = connect_robot_helper(options.target, options.clientkey)

    if options.shell == "ipython":
        logger.info("----> READY")
        logger.info("""
      * Hint: Try 'robot?' and 'dir(robot)' to get more informations)\n""")
        IPython.embed()
        return 0
    else:
        return entrance(robot, device)
Пример #7
0
def main(params=None):
    global logger
    parser = argparse.ArgumentParser(description=PROG_DESCRIPTION,
                                     epilog=PROG_EPILOG)
    parser.add_argument(dest='target', type=str,
                        help="Printer connect with. It can be printer UUID "
                             "or IP address like 192.168.1.1 or "
                             "192.168.1.1:23811")
    parser.add_argument('--key', dest='clientkey', type=str, default=None,
                        help='Client identify key (A RSA pem)')
    parser.add_argument('--auto', dest='auto', action='store_const',
                        const=True, default=False, help='Start with no asking')
    parser.add_argument('--verbose', dest='verbose', action='store_const',
                        const=True, default=False, help='Verbose output')
    parser.add_argument('--steps', dest='steps', type=int, default=400,
                        help='Set steps for scan')
    parser.add_argument('--path', dest='dist', type=str, default=".",
                        help="Where to save images")
    parser.add_argument('--prefix', dest='prefix', type=str, default=None,
                        help="Image filename prefix")
    options = parser.parse_args(params)
    logger = setup_logger(__name__, debug=options.verbose)
    options.clientkey = get_or_create_default_key(options.clientkey)

    scan = prepare_robot(options)
    scan.step_length(HW_PROFILE['model-1']['scan_full_len'] / options.steps)

    if not options.auto:
        total_steps = interactive(scan)

    filename_prefix = options.prefix or \
        datetime.datetime.now().strftime("scan_%Y%m%d_%H%M")
    filename_prefix = os.path.join(options.dist, filename_prefix)
    filename_prefix = os.path.join(options.dist, '')

    logger.info("Image will save to %s*.jpg" % filename_prefix)
    suffix = ['L', 'R', 'O']
    images = scan.scanimages()
    total_steps = options.steps

    for step in range(total_steps):
        print_progress(step, total_steps)
        images = scan.scanimages()
        for i in range(len(images)):
            mime, buf = images[i]
            filename = "%s_%03i_%i.jpg" % (filename_prefix, step, i)
            filename = "%s%03i_%s.jpg" % (filename_prefix, step, suffix[i])
            with open(filename, "wb") as f:
                f.write(buf)
        if step > 0:
            scan.forward()

    scan.quit()
    print_progress(total_steps, total_steps)
    sys.stdout.write("\n Done.")
    return 0
Пример #8
0
def ipython_shell(options):
    logger = setup_logger("Robot", debug=options.debug)
    import IPython

    def conn_callback(*args):
        sys.stdout.write(".")
        sys.stdout.flush()
        return True

    robot, _ = connect_robot_helper(options.target, options.clientkey)  # noqa

    logger.info("----> READY")
    logger.info(">> robot")
    IPython.embed()
Пример #9
0
def main(params=None):
    global logger
    parser = get_argument_parser()
    options = parser.parse_args(params)
    logger = setup_logger(__name__, debug=options.verbose)

    if options.type == "laser":
        ret = process_laser(options)
    elif options.type == "penholder":
        ret = process_penholder(options)
    elif options.type == "vinyl":
        ret = process_vinyl(options)
    else:
        logger.error("Can not handle type %r", options.type)
        ret = 1
    sys.exit(ret)
Пример #10
0
def main(params=None):
    global logger
    parser = get_argument_parser()
    options = parser.parse_args(params)
    logger = setup_logger(__name__, debug=options.verbose)

    if options.type == "laser":
        ret = process_laser(options)
    elif options.type == "penholder":
        ret = process_penholder(options)
    elif options.type == "vinyl":
        ret = process_vinyl(options)
    else:
        logger.error("Can not handle type %r", options.type)
        ret = 1
    sys.exit(ret)
Пример #11
0
def help_shell(options):
    logger = setup_logger("Robot", debug=options.verbose)
    logger.info(PROG_SHELL_HELP)
Пример #12
0
def help_shell(options):
    logger = setup_logger("Robot", debug=options.verbose)
    logger.info(PROG_SHELL_HELP)