Python -Code, um zu erkennen und zu überprüfen, welcher serielle COM -Port geöffnet istPython

Python-Programme
Anonymous
 Python -Code, um zu erkennen und zu überprüfen, welcher serielle COM -Port geöffnet ist

Post by Anonymous »

Ich versuche, automatisierten Code in Python zu schreiben, mit dem zuerst alle verfügbaren seriellen COM -Ports auf einem PC (in Windows 10) aufgeführt sind und dann aktiv sind, was aktiv ist (geöffnet). < /p>

Code: Select all

import serial

active_ports = [port.device for port in serial.tools.list_ports.comports()]
print(active_ports)

# and then put in a for loop to test each
ser = serial.Serial(active_ports[i], 9600, timeout=1)
< /code>
Aber nach der letzten Zeile steckt es nur dort fest.import serial

ser = serial.Serial("COM5", 9600, timeout=1)
< /code>
Traceback (most recent call last):
File "", line 1, in 
ser = serial.Serial("COM5", 9600, timeout=1)
File "C:\Users\ghoura\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\serial\serialwin32.py", line 33, in __init__
super(Serial, self).__init__(*args, **kwargs)
File "C:\Users\ghoura\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\serial\serialutil.py", line 244, in __init__
self.open()
File "C:\Users\ghoura\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\serial\serialwin32.py", line 64, in open
raise SerialException("could not open port {!r}: {!r}".format(self.portstr, ctypes.WinError()))
serial.serialutil.SerialException: could not open port 'COM5': OSError(22, 'The semaphore timeout period has expired.', None, 121)
< /code>
Ich bin auf diesen Code gestoßen: < /p>
def detect_and_check_com_ports():
# Get a list of all available COM ports
available_ports = [port.device for port in serial.tools.list_ports.comports()]

# Check and print the status of each COM port
active_ports = []
for port in available_ports:
try:
# Try to open the port
ser = serial.Serial(port)
ser.close()
active_ports.append(port)
print(f"{port} is active.")
except (OSError, serial.SerialException):
print(f"{port} is not active.")

return active_ports

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post