-
Notifications
You must be signed in to change notification settings - Fork 768
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into add_reward_assignment
- Loading branch information
Showing
2 changed files
with
25 additions
and
11 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
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() |