# greaseweazle/tools/pin.py # # Greaseweazle control script: Set a floppy interface pin to specified level. # # Written & released by Keir Fraser # # This is free and unencumbered software released into the public domain. # See the file COPYING for more details, or visit . description = "Change the setting of a user-modifiable interface pin." import sys, argparse from greaseweazle.tools import util from greaseweazle import usb as USB def level(letter): levels = { 'H': True, 'L': False } if not letter.upper() in levels: raise argparse.ArgumentTypeError("invalid pin level: '%s'" % letter) return levels[letter.upper()] def main(argv): parser = util.ArgumentParser(usage='%(prog)s [options] pin level') parser.add_argument("--device", help="greaseweazle device name") parser.add_argument("pin", type=int, help="pin number") parser.add_argument("level", type=level, help="pin level (H,L)") parser.description = description parser.prog += ' ' + argv[1] args = parser.parse_args(argv[2:]) try: usb = util.usb_open(args.device) usb.set_pin(args.pin, args.level) print("Pin %u is set %s" % (args.pin, ("Low (0v)", "High (5v)")[args.level])) except USB.CmdError as error: print("Command Failed: %s" % error) if __name__ == "__main__": main(sys.argv) # Local variables: # python-indent: 4 # End: