forked from huggingface/lerobot
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add support for Windows (huggingface#494)
- Loading branch information
1 parent
f56d769
commit 26e3b7c
Showing
1 changed file
with
15 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,36 +1,42 @@ | ||
import os | ||
import time | ||
from pathlib import Path | ||
|
||
from serial.tools import list_ports # Part of pyserial library | ||
|
||
|
||
def find_available_ports(): | ||
ports = [] | ||
for path in Path("/dev").glob("tty*"): | ||
ports.append(str(path)) | ||
if os.name == "nt": # Windows | ||
# List COM ports using pyserial | ||
ports = [port.device for port in list_ports.comports()] | ||
else: # Linux/macOS | ||
# List /dev/tty* ports for Unix-based systems | ||
ports = [str(path) for path in Path("/dev").glob("tty*")] | ||
return ports | ||
|
||
|
||
def find_port(): | ||
print("Finding all available ports for the MotorsBus.") | ||
ports_before = find_available_ports() | ||
print(ports_before) | ||
print("Ports before disconnecting:", ports_before) | ||
|
||
print("Remove the usb cable from your MotorsBus and press Enter when done.") | ||
input() | ||
print("Remove the USB cable from your MotorsBus and press Enter when done.") | ||
input() # Wait for user to disconnect the device | ||
|
||
time.sleep(0.5) | ||
time.sleep(0.5) # Allow some time for port to be released | ||
ports_after = find_available_ports() | ||
ports_diff = list(set(ports_before) - set(ports_after)) | ||
|
||
if len(ports_diff) == 1: | ||
port = ports_diff[0] | ||
print(f"The port of this MotorsBus is '{port}'") | ||
print("Reconnect the usb cable.") | ||
print("Reconnect the USB cable.") | ||
elif len(ports_diff) == 0: | ||
raise OSError(f"Could not detect the port. No difference was found ({ports_diff}).") | ||
else: | ||
raise OSError(f"Could not detect the port. More than one port was found ({ports_diff}).") | ||
|
||
|
||
if __name__ == "__main__": | ||
# Helper to find the usb port associated to all your MotorsBus. | ||
# Helper to find the USB port associated with your MotorsBus. | ||
find_port() |