정의
serial_read(ser, length=-1, timeout=-1)
기능
Serial 포트에서 데이터를 읽어옵니다.
인수
|
인수명 |
자료형 |
기본값 |
설명 |
|---|---|---|---|
|
ser |
serial.Serial |
- |
Serial instance |
|
length |
int |
-1 |
Read 할 바이트 수
|
|
timeout |
int float |
-1 |
Read 대기 시간
|
리턴
|
값(res, rx_data) |
설명 |
|
|
res |
n |
수신한 데이터의 바이트 수 |
|
-1 |
Port가 open 상태가 아닙니다. |
|
|
-2 |
serial.SerialException 예외 발생 |
|
|
rx_data |
Read 한 데이터(byte type) |
|
예외
|
예외 |
설명 |
|---|---|
|
DR_Error (DR_ERROR_TYPE) |
인수의 데이터형 오류 시 |
|
DR_Error (DR_ERROR_VALUE) |
인수의 값이 유효하지 않을 시 |
예제
Python
ser = serial_open(port="COM", baudrate=115200, bytesize=DR_EIGHTBITS,
parity=DR_PARITY_NONE, stopbits=DR_STOPBITS_ONE)
res, rx_data = serial_read(ser)
#데이터가 수신될 때 까지 무한 대기
res, rx_data = serial_read(ser, timeout=3)
#데이터가 수신될 때 까지 대기, 3초 타임 아웃 설정
#3초 이내 수신되면 읽은 데이터 바로 리턴
#3초가 지나면 현재까지 읽은 값을 리턴한다
res, rx_data = serial_read(ser, length=100)
#100byte 읽을 때까지 무한대기
res, rx_data = serial_read(ser, length=100, timeout=3)
#100byte 읽을 때 까지 대기, 3초 타임 아웃 설정
#3초 이내 100byte 수신되면 읽은 데이터 바로 리턴
#3초가 지나면 현재까지 읽은 값을 리턴한다
#수신된 byte형을 string 형으로 변환
rx_msg = rx_data.decode()
#rx_data는 byte형이고 string형으로 변환하기 위해서는 decode() 사용합니다.
#예를 들어, rx_data = b”abcd” 이면, rx_msg=”abcd”가 됩니다.
res, rx_data = serial_close(ser)