openpibo.usb_uart의 소스 코드

"""
USB UART 통신을 위한 클래스 입니다.

Class:
:obj:`~openpibo.usb_uart.UsbUart`
"""

import serial

[문서] class UsbUart: """ USB UART 통신을 위한 클래스입니다. :param devname: USB 디바이스 이름 (기본값: '/dev/ttyUSB0') :param baudrate: 통신 속도 (baud rate, 기본값: 9600) :param timeout: 읽기 타임아웃 (초, 기본값: 1) """ def __init__(self): pass
[문서] def connect(self, devname='/dev/ttyUSB0', baudrate=9600, timeout=1): try: self.conn = serial.Serial(devname, baudrate, timeout=timeout) except serial.SerialException as e: raise ConnectionError(f"시리얼 포트 {devname} 열기에 실패했습니다: {e}")
[문서] def write(self, text): """ UART로 데이터를 전송합니다. :param text: 전송할 데이터 (문자열) :return: 전송한 바이트 수 """ if self.conn.is_open: return self.conn.write(str(text).encode('utf-8')) else: raise ConnectionError("시리얼 포트가 열려 있지 않습니다.")
[문서] def read(self): """ UART로부터 모든 데이터를 읽어 문자열로 반환합니다. :return: 수신된 문자열 데이터 (데이터가 없으면 빈 문자열 반환) """ if self.conn.is_open: response = self.conn.read_all() return response.decode('utf-8', errors='ignore') if response else "" else: raise ConnectionError("시리얼 포트가 열려 있지 않습니다.")
[문서] def close(self): """ UART 연결을 종료합니다. """ if self.conn.is_open: self.conn.close()
def __enter__(self): """ 컨텍스트 매니저 진입 시 호출됩니다. """ return self def __exit__(self, exc_type, exc_val, exc_tb): """ 컨텍스트 매니저 종료 시 호출되어 연결을 닫습니다. """ self.close()