def main(args=None): """Command-line interface for interacting with Spot CAM""" parser = argparse.ArgumentParser(prog='bosdyn.api.spot_cam', description=main.__doc__) add_common_arguments(parser) command_dict = {} # command name to fn which takes parsed options subparsers = parser.add_subparsers(title='commands', dest='command') subparsers.required = True register_all_commands(subparsers, command_dict) options = parser.parse_args(args=args) setup_logging(verbose=options.verbose) # Create robot object and authenticate. sdk = bosdyn.client.create_standard_sdk('Spot CAM Client') spot_cam.register_all_service_clients(sdk) robot = sdk.create_robot(options.hostname) result = command_dict[options.command].run(robot, options) if args is None and result: # Invoked as a CLI, so print result print(result) return result
def main(argv): """Command line interface.""" parser = argparse.ArgumentParser(description=__doc__) add_common_arguments(parser) parser.add_argument('--debug', action='store_true', help='Show intermediate debug data.') options = parser.parse_args(argv) return open_door_main(options)
def main(): """Command-line interface""" # pylint: disable=import-outside-toplevel import argparse from bosdyn.client import create_standard_sdk, InvalidLoginError from bosdyn.client.util import add_common_arguments parser = argparse.ArgumentParser() parser.add_argument('-T', '--timespan', default='5m', help='Time span (default last 5 minutes)') parser.add_argument('--help-timespan', action='store_true', help='Print time span formating options') parser.add_argument('-c', '--channel', help='Specify channel for data (default=all)') parser.add_argument('-t', '--type', help='Specify message type (default=all)') parser.add_argument('-s', '--service', help='Specify service name (default=all)') parser.add_argument('-o', '--output', help='Output file name (default is "download.bddf"') parser.add_argument('-R', '--robot-time', action='store_true', help='Specified timespan is in robot time') add_common_arguments(parser) options = parser.parse_args() if options.verbose: LOGGER.setLevel(logging.DEBUG) if options.help_timespan: _print_help_timespan() return 0 # Create a robot object. sdk = create_standard_sdk('bddf') robot = sdk.create_robot(options.hostname) # Use the robot object to authenticate to the robot. # A JWT Token is required to download log data. try: robot.authenticate(options.username, options.password) except InvalidLoginError as err: LOGGER.error("Cannot authenticate to robot to obtain token: %s", err) return 1 output_filename = download_data(robot, options.hostname, options.timespan, robot_time=options.robot_time, channel=options.channel, message_type=options.type, grpc_service=options.service, show_progress=True) if not output_filename: return 1 LOGGER.info("Wrote '%s'.", output_filename) return 0