From: <jac...@us...> - 2013-02-17 23:44:24
|
Revision: 3003 http://openlcb.svn.sourceforge.net/openlcb/?rev=3003&view=rev Author: jacobsen Date: 2013-02-17 23:44:17 +0000 (Sun, 17 Feb 2013) Log Message: ----------- handle continuous data back from socket (not one MTI per frame) Modified Paths: -------------- trunk/prototypes/python/ethernetolcblink.py Modified: trunk/prototypes/python/ethernetolcblink.py =================================================================== --- trunk/prototypes/python/ethernetolcblink.py 2013-02-17 23:43:35 UTC (rev 3002) +++ trunk/prototypes/python/ethernetolcblink.py 2013-02-17 23:44:17 UTC (rev 3003) @@ -21,6 +21,7 @@ self.timeout = 1.0 self.verbose = False self.socket = None + self.rcvData = "" return def connect(self) : @@ -50,17 +51,16 @@ if (self.verbose) : print " receive ", self.socket.settimeout(self.timeout) - line = ""; - try: - r = self.socket.recv(1024) - # assuming we get frame in a single message - while r: - # if verbose, display what's received - if (self.verbose) : print r, - return r - except socket.timeout, err: - if (self.verbose) : print "<none>" # blank line to show delay? - return None + while (self.rcvData.find('\n') < 0) : + try: + self.rcvData = self.rcvData+self.socket.recv(1024) + except socket.timeout, err: + if (self.verbose) : print "<none>" # blank line to show delay? + return None + r = self.rcvData[0:self.rcvData.find('\n')] + self.rcvData = self.rcvData[self.rcvData.find('\n')+1:] + if (self.verbose) : print r + return r def close(self) : return This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |