usbipd.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import subprocess
  2. def run(cmd):
  3. ret = subprocess.run(["powershell.exe", cmd], stdout=subprocess.PIPE)
  4. s = ret.stdout
  5. return s.decode("utf-8")
  6. def get_busid():
  7. info = run(r"usbipd list")
  8. begin = info.find("STM32 STLink")
  9. busid = info[begin - 18: begin - 15]
  10. return busid
  11. def attach_stlink():
  12. busid = get_busid()
  13. cmd = "usbipd bind -b " + busid
  14. run(cmd)
  15. cmd = "usbipd attach --wsl --busid " + busid
  16. run(cmd)
  17. def deattach_stlink():
  18. busid = get_busid()
  19. cmd = "usbipd detach --busid " + busid
  20. run(cmd)
  21. def get_id(name):
  22. info = run(r"usbipd list")
  23. begin = info.find(name)
  24. busid = info[begin - 18: begin - 15]
  25. return busid
  26. def attach_dev(name):
  27. busid = get_id(name)
  28. cmd = "usbipd bind -b " + busid
  29. run(cmd)
  30. cmd = "usbipd attach -a --wsl --busid " + busid
  31. run(cmd)
  32. def deattach_dev(name):
  33. busid = get_id(name)
  34. cmd = "usbipd detach --busid " + busid
  35. run(cmd)
  36. def get_list():
  37. info = run(r"usbipd list")
  38. print(info)
  39. if __name__ == "__main__":
  40. # deattach_stlink()
  41. attach_stlink()
  42. #
  43. # attach_dev("Silicon Labs")
  44. # deattach_dev("Silicon Labs")
  45. # attach_dev("ATLink-USART")
  46. # attach_dev("Prolific")
  47. # deattach_dev("ATLink-USART")
  48. # get_list()