info.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. # greaseweazle/tools/info.py
  2. #
  3. # Greaseweazle control script: Displat info about tools, firmware, and drive.
  4. #
  5. # Written & released by Keir Fraser <keir.xen@gmail.com>
  6. #
  7. # This is free and unencumbered software released into the public domain.
  8. # See the file COPYING for more details, or visit <http://unlicense.org>.
  9. description = "Display information about the Greaseweazle setup."
  10. import sys, serial
  11. from greaseweazle.tools import util
  12. from greaseweazle import usb as USB
  13. from greaseweazle import version
  14. def print_info_line(name, value, tab=0):
  15. print(''.ljust(tab) + (name + ':').ljust(12-tab) + value)
  16. def main(argv):
  17. parser = util.ArgumentParser()
  18. parser.add_argument("device", nargs="?", default="auto",
  19. help="serial device")
  20. parser.description = description
  21. parser.prog += ' ' + argv[1]
  22. args = parser.parse_args(argv[2:])
  23. print_info_line('Host Tools', 'v%d.%d' % (version.major, version.minor))
  24. print('Greaseweazle:')
  25. try:
  26. usb = util.usb_open(args.device, mode_check=False)
  27. except serial.SerialException:
  28. print(' Not found')
  29. sys.exit(0)
  30. port = usb.port_info
  31. if port.device:
  32. print_info_line('Device', port.device, tab=2)
  33. print_info_line('Model', 'F%d' % usb.hw_type, tab=2)
  34. fwver = 'v%d.%d' % (usb.major, usb.minor)
  35. if usb.update_mode:
  36. fwver += ' (Update Bootloader)'
  37. print_info_line('Firmware', fwver, tab=2)
  38. if port.serial_number:
  39. print_info_line('Serial', port.serial_number, tab=2)
  40. if __name__ == "__main__":
  41. main(sys.argv)
  42. # Local variables:
  43. # python-indent: 4
  44. # End: