3.7.0 3.6.0 3.5.0 3.4.0 3.3.0 3.2.2 3.2.1 3.2.0 Korean English Chinese Czech Dutch French German Hungarian Italian Japanese Polish Portuguese Spanish
3.7.0 3.6.0 3.5.0 3.4.0 3.3.0 3.2.2 3.2.1 3.2.0 Korean English Chinese Czech Dutch French German Hungarian Italian Japanese Polish Portuguese Spanish

serial_read()

정의

serial_read(ser, length=-1, timeout=-1)

기능

Serial 포트에서 데이터를 읽어옵니다.

인수

인수명

자료형

기본값

설명

ser

serial.Serial

-

Serial instance

length

int

-1

Read 할 바이트 수

  • -1: 미지정(read 된 데이터만큼 읽습니다.)

  • n(>=0): 지정한 바이트 수만큼 읽습니다.

timeout

int

float

-1

Read 대기 시간

  • -1: 무한 대기

  • n(>0): n 초(second)

리턴

값(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)

Keyword

serial_ / read