본문 바로가기
GUI 프로젝트/저울 연결하기 (시리얼통신) (Tkinter)

[파이썬 저울 연결] 5. timeout 옵션에 대하여

by 만다린망고 2022. 1. 7.
반응형

지금까지 짠 코드는 아래와 같다. 

 

import serial
import re

ser = serial.Serial(port='COM8', baudrate=9600, bytesize=serial.EIGHTBITS,
                    parity=serial.PARITY_NONE, timeout=None)


while(True):
    ser.close()
    ser.open()
    #값 불러오기
    res=ser.readline()
    #문자열로 변환
    res=str(res)
    #숫자 부분 추출, 추출 결과는 ['숫자'] 형태
    res=re.findall("\d+.\d+",res)
    #문자열 추출
    res=res[0]
    #실수로 변환
    res=float(res)
    print(res)

 

timeout을 0으로 두면 오류가 뜬다. None이나, 다른 수로 두면 괜찮다. 왜그런거지; 다시 해보면 또 괜찮고. 모르겠다 뭔지. 아무거나 둬도 되나. 일단 0.1로 둬야겠다. 

 

timeout 내용에 대한 documentation 은 아래와 같다. 

 

  • timeout = None: wait forever / until requested number of bytes are received
  • timeout = 0: non-blocking mode, return immediately in any case, returning zero or more, up to the requested number of bytes
  • timeout = x: set timeout to x seconds (float allowed) returns immediately when the requested number of bytes are available, otherwise wait until the timeout expires and return all bytes that were received until then.

출처 : https://pyserial.readthedocs.io/en/latest/pyserial_api.html

 

 

반응형

댓글