#! /usr/bin/env python """\ Scan for serial ports. Part of pySerial (http://pyserial.sf.net) (C) 2002-2003 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*')