Note: j'utilise Python 2.7, et pySerial pour les communications série.
J'ai trouvé cet article qui répertorie deux façons: http://www.zaber.com/wiki/Software/Python#Displaying_a_list_of_available_serial_ports
Cette méthode fonctionne sur Windows et Linux, mais parfois manque ports virtuels sous 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)
Et ce qui ne fonctionne que sur Linux, mais comprend des ports virtuels:
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
Je suppose que je pourrais faire de la plateforme de détection de l'utilisation de la deuxième méthode (celle qui comprend les ports virtuels) lors de l'exécution sur Linux, et la première méthode lors de l'exécution de Windows, mais ce que sur Mac?
Comment dois-je énumérer les ports série virtuels (trop) peu importe la plate-forme?
Modifier
J'ai trouvé quelques questions pertinentes: