usbipd.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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 attach --wsl --busid " + busid
  14. run(cmd)
  15. def deattach_stlink():
  16. busid = get_busid()
  17. cmd = "usbipd detach --busid " + busid
  18. run(cmd)
  19. def get_id(name):
  20. info = run(r"usbipd list")
  21. begin = info.find(name)
  22. busid = info[begin - 18: begin - 15]
  23. return busid
  24. def attach_dev(name):
  25. busid = get_id(name)
  26. cmd = "usbipd attach -a --wsl --busid " + busid
  27. run(cmd)
  28. def deattach_dev(name):
  29. busid = get_id(name)
  30. cmd = "usbipd detach --busid " + busid
  31. run(cmd)
  32. def get_list():
  33. info = run(r"usbipd list")
  34. print(info)
  35. if __name__ == "__main__":
  36. # deattach_stlink()
  37. attach_stlink()
  38. #
  39. #
  40. # attach_dev("ATLink-USART")
  41. # attach_dev("Prolific")
  42. # deattach_dev("ATLink-USART")
  43. # get_list()