python - PySerial: how to understand that the timeout occured while reading from serial port? -


i'm using pyserial read serial port in code below. checkreaduntil() read output of command send serial port until sequence of symbols readuntil in serial output.

...  self.ser = serial.serial(comdev, 115200, timeout=10)  ...  #function continue read serial port until 'readuntil'  #sequence of symbols appears def checkreaduntil(self, readuntil):     outputcharacters = []     while 1:         ch = self.ser.read()         outputcharacters += ch         if outputcharacters[-len(readuntil):]==readuntil:             break     outputlines = ''.join(outputcharacters)     return outputlines 

however, if there no sequence readuntil (for reason), i'm stuck in function checkreaduntil() forever. setting timeout=10 sets timeout i'm stuck in loop iterates every 10 seconds , nothing, waiting.

how possible understand there timeout event may exit infinite loop? output length may different.

update (previous answer not correct, working code @konstantin):

...  self.ser = serial.serial(comdev, 115200, timeout=10)  ...  #function continue read serial port until 'readuntil'  #sequence of symbols appears def checkreaduntil(self, readuntil):     outputcharacters = []     while 1:         ch = self.ser.read()         if len(ch) == 0:             break         outputcharacters += ch         if outputcharacters[-len(readuntil):]==readuntil:             break     outputlines = ''.join(outputcharacters)     return outputlines 

Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -