44 lines
1.0 KiB
Python
44 lines
1.0 KiB
Python
|
#! /usr/bin/env python
|
||
|
"""\
|
||
|
Scan for serial ports.
|
||
|
|
||
|
Part of pySerial (http://pyserial.sf.net)
|
||
|
(C) 2002-2003 <cliechti@gmx.net>
|
||
|
|
||
|
The scan function of this module tries to open each port number
|
||
|
from 0 to 255 and it builds a list of those ports where this was
|
||
|
successful.
|
||
|
"""
|
||
|
|
||
|
import serial
|
||
|
import glob
|
||
|
import sys
|
||
|
|
||
|
def win_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() # explicit close 'cause of delayed GC in java
|
||
|
except serial.SerialException:
|
||
|
pass
|
||
|
return available
|
||
|
|
||
|
def get():
|
||
|
ports = []
|
||
|
if sys.platform.startswith('win'):
|
||
|
for n,s in win_scan():
|
||
|
ports.append(s)
|
||
|
else:
|
||
|
for name in lin_scan():
|
||
|
ports.append(name)
|
||
|
return ports
|
||
|
|
||
|
|
||
|
def lin_scan():
|
||
|
"""scan for available ports. return a list of device names."""
|
||
|
return glob.glob('/dev/ttyS*') + glob.glob('/dev/ttyUSB*') + glob.glob('/dev/ttyACM*')
|
||
|
|