Jaka jest wieloplatformowa metoda wyliczania portów szeregowych w Pythonie (w tym portów wirtualnych)?
Uwaga: Używam Pythona 2.7 i pySerial do komunikacji szeregowej.
Znalazłem ten artykuł, który wymienia dwa sposoby:http://www.zaber.com/wiki/Software/Python#Displaying_a_list_of_available_serial_ports
Ta metoda działa w systemach Windows i Linux, ale czasami pomija porty wirtualne w systemie Linux:
import serial
def scan():
# scan for available ports. return a list of tuples (num, name)
available = []
for i in range(256):
try:
s = serial.Serial(i)
available.append( (i, s.portstr))
s.close()
except serial.SerialException:
pass
return available
print "Found ports:"
for n,s in scan(): print "(%d) %s" % (n,s)
A ten działa tylko na Linuksie, ale zawiera porty wirtualne:
import serial, glob
def scan():
# scan for available ports. return a list of device names.
return glob.glob('/dev/ttyS*') + glob.glob('/dev/ttyUSB*')
print "Found ports:"
for name in scan(): print name
Przypuszczam, że mogę wykonać wykrywanie platformy, aby użyć drugiej metody (tej, która zawiera porty wirtualne), gdy działa na Linuksie, i pierwszej metody podczas uruchamiania systemu Windows, ale co z komputerem Mac?
Jak wyliczyć porty szeregowe (również wirtualne) niezależnie od platformy?
Edytować
Znalazłem kilka istotnych pytań:
MacPython: programowe znajdowanie wszystkich portów szeregowychMacOS: jaka jest różnica między /dev/tty.* a /dev/cu.*?Jak znaleźć wszystkie urządzenia szeregowe (ttyS, ttyUSB, ..) w systemie Linux bez ich otwierania?