35 lines
964 B
Python
35 lines
964 B
Python
|
import sys
|
||
|
import serial
|
||
|
import glob
|
||
|
|
||
|
def list_all():
|
||
|
""" Lists serial port names
|
||
|
|
||
|
:raises EnvironmentError:
|
||
|
On unsupported or unknown platforms
|
||
|
:returns:
|
||
|
A list of the serial ports available on the system
|
||
|
"""
|
||
|
if sys.platform.startswith('win'):
|
||
|
ports = ['COM%s' % (i + 1) for i in range(256)]
|
||
|
elif sys.platform.startswith('linux') or sys.platform.startswith('cygwin'):
|
||
|
# this excludes your current terminal "/dev/tty"
|
||
|
ports = glob.glob('/dev/tty[a-zA-Z]*')
|
||
|
elif sys.platform.startswith('darwin'):
|
||
|
ports = glob.glob('/dev/tty.*')
|
||
|
else:
|
||
|
raise EnvironmentError('Unsupported platform')
|
||
|
|
||
|
result = []
|
||
|
for port in ports:
|
||
|
try:
|
||
|
s = serial.Serial(port)
|
||
|
s.close()
|
||
|
result.append(port)
|
||
|
except (OSError, serial.SerialException):
|
||
|
pass
|
||
|
return result
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
print(list_all())
|