"Frederic Wenzel" <[EMAIL PROTECTED]> wrote:
| I wrote a script on Linux that uses pyserial to read status messages | from a serial line using readlines(). For now, it just displays what | it gets on stdout: | | 17:42 | 0005 | 02 | | 5 |Rack Abs.| - | --210 | 17:42 | 0008 | 02 | | 5 |Rack Abs.| - | --210 | 17:42 | 0001 | 02 | | 5 |Rack Abs.| - | --210 | 17:43 | 0008 | 02 | | 5 |Rack Abs.| - | --210 | 17:43 | 0001 | 02 | | 5 |Rack Abs.| - | --210 | 17:43 | 0005 | 02 | | 5 |Rack Abs.| - | --210 | 17 | | After a few hours, or sometimes days, of listening, the script stops | in the middle of the line and does not display any further output (as | you can see with the "17" in the last line above). That happens, even | though I set a timeout of 10s when opening the line, and on timeout it | displays the lines and reopens the port: | | ser = serial.Serial(port=1, | baudrate=1200, | rtscts=1, if this is enabling hardware flow control try turning it off - at 1200 baud you should not need it | timeout=10) | | while 1: | lines = sh.readLines() | for line in lines: | print line | ser.close() | ser.open() | | If the script does not time out there, I am not sure what else it is | doing. It seems to be in a wait state it does not get out of. Sounds more and more like flow control hassle - can you lay your hands on a break out box or a datascope? | | So even if the line received turned out to have some sort of error, I | think it should time out after a while? Maybe there is some sort of | buffer overrunning (even though the traffic is quite low: a line every | few minutes on average)? | | Does anyone see any obvious error? Any hint how I can further debug the problem? | | Thanks | Fred - HTH Hendrik -- http://mail.python.org/mailman/listinfo/python-list