UmberHubManager/api/examples/python/usbhub3p_CLI_example/usbhub3p_CLI.py

75 lines
2.0 KiB
Python
Executable File

import brainstem
#for easy access to error constants
from brainstem.result import Result
import sys
import argparse
class ArgumentParser(object):
def __init__(self):
self._parser = argparse.ArgumentParser()
self._port = 0
self._enable = 0;
self._output = sys.stderr
@property
def port(self):
return self._port
@property
def enable(self):
return self._enable
def print_usage(self):
return self._parser.print_usage(self._output)
def print_help(self):
return self._parser.print_help(self._output)
def parse_arguments(self, args):
self._parser.add_argument("-p", "--port", help="Port to enable/disable", type=int, metavar='', choices={0, 1, 2, 3, 4, 5, 6, 7})
self._parser.add_argument("-e", "--enable", help="Enable/Disable ", type=int, metavar='', choices={0, 1})
args = self._parser.parse_args(args[1:])
self._port = args.port
self._enable = args.enable
def main(argv):
try:
print(argv)
arg_parser = ArgumentParser()
if arg_parser.parse_arguments(argv):
return 1
print("Port: %d" % (arg_parser.port))
print("Enable: %d" % (arg_parser.enable))
# Change the brainstem object if you want to connect to a differet module.
# i.e. As is, this example will NOT connect to anything except a USBHub3c.
stem = brainstem.stem.USBHub3p()
# stem = brainstem.stem.USBHub2x4()
result = stem.discoverAndConnect(1)
if result == Result.NO_ERROR:
if arg_parser.enable:
e = stem.usb.setPortEnable(arg_parser.port)
else:
e = stem.usb.setPortDisable(arg_parser.port)
else:
printf("Error Connecting to USBHub3p(). Make sure you are using the correct module object")
stem.disconnect()
except IOError as e:
print("Exception - IOError: ", e)
return 2
return 0
if __name__ == '__main__':
sys.exit(main(sys.argv))