44 lines
1.7 KiB
Python
Executable File
44 lines
1.7 KiB
Python
Executable File
import argparse
|
|
import sys
|
|
|
|
|
|
class CustomArgumentParser(argparse.ArgumentParser):
|
|
def __init__(self, argv=None, **kwargs):
|
|
super().__init__(**kwargs)
|
|
self.argv = argv if argv is not None else sys.argv[1:]
|
|
|
|
|
|
self.add_argument("-d", "--device", help="Acroname Device Serial Number", type=self.auto_int, metavar='', default=0)
|
|
self.add_argument("-p", "--port", help="Port to send the request on.", required=True, type=int, metavar='')
|
|
self.add_argument("-r", "--request", help="The BrainStem Power Delivery request to send", required=True, type=int, metavar='')
|
|
self.add_argument("-s", "--sop", help="SOP Selection: SOP`Debug(3), SOP``Debug(4)", required=False, type=int, metavar='', choices={0,1,2,3,4}, default=0)
|
|
|
|
self.parsed_args = self.parse_args(self.argv[1:])
|
|
self.port = self.parsed_args.port
|
|
self.request = self.parsed_args.request
|
|
self.sn = self.parsed_args.device
|
|
self.sop = self.parsed_args.sop
|
|
|
|
def print_example_usage(self):
|
|
|
|
EXAMPLE_USAGE = [ \
|
|
(""), \
|
|
("Example Usage:"), \
|
|
(" \"%s -p 2 -r 14\" - Requests \"pdRequestBatteryCapabilities\" on the given port" % (self.argv[0])), \
|
|
(" \"%s -p 3 -r 15\" - Requests \"pdRequestBatteryStatus\" on the given port" % (self.argv[0])), \
|
|
(" \"%s -p 4 -r 16\" - Requests \"pdRequestManufacturerInfoSop\" on the given port" % (self.argv[0])), \
|
|
]
|
|
|
|
for usage in EXAMPLE_USAGE:
|
|
print(usage)
|
|
|
|
def print_help(self):
|
|
super().print_help()
|
|
self.print_example_usage()
|
|
|
|
@staticmethod
|
|
def auto_int(x):
|
|
# Automatically detect the base (hex if prefixed with '0x', decimal otherwise)
|
|
return int(x, 0)
|
|
|