@@ -57,22 +57,24 @@ def find_port(baud, timeout):
5757 elif platform .system () == 'Darwin' :
5858 ports = [i [0 ] for i in list_ports .comports ()]
5959 else :
60- ports = glob .glob ("/dev/ttyUSB*" )
60+ ports = glob .glob ("/dev/ttyUSB*" ) + glob . glob ( "/dev/ttyACM*" )
6161 for p in ports :
62- print 'Found ' , p
63- version = None
62+ print 'Found {0}, testing...' .format (p )
6463 try :
65- print 'Testing ' , p
66- sr = self .serial_factory (p , self .baud , timeout = self .timeout )
67- time .sleep (2 )
68- version = get_version (sr )
69- if version != 'version' :
70- raise Exception ('This is not a Shrimp/Arduino!' )
71- print p , 'passed'
64+ sr = serial .Serial (p , baud , timeout = timeout )
65+ except serial .serialutil .SerialException , e :
66+ print e
67+ continue
68+ time .sleep (2 )
69+ version = get_version (sr )
70+ if version != 'version' :
71+ print 'Bad version {0}. This is not a Shrimp/Arduino!' .format (
72+ version )
73+ sr .close ()
74+ continue
75+ print 'Passed, using port {0}.' .format (p )
76+ if sr :
7277 return sr
73- except Exception , e :
74- print "Exception: " , e
75- pass
7678 return None
7779
7880
@@ -96,7 +98,8 @@ def __init__(self, baud=9600, port=None, timeout=2, sr=None):
9698 if not sr :
9799 if not port :
98100 sr = find_port (baud , timeout )
99- raise ValueError ("Could not find port." )
101+ if not sr :
102+ raise ValueError ("Could not find port." )
100103 else :
101104 sr = serial .Serial (port , baud , timeout = timeout )
102105 sr .flush ()
0 commit comments