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()
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
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)
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
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()
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)
def help_shell(options): logger = setup_logger("Robot", debug=options.verbose) logger.info(PROG_SHELL_HELP)