"""Высокоуровневые операции RS232-консоли.""" from .hardware import make_console def send(text: str) -> dict: c = make_console() c.open() try: c.send(text.encode("utf-8", errors="replace")) return {"sent": text, "bytes": len(text.encode("utf-8", errors="replace"))} finally: c.close() def read_bytes(timeout: float = 0.8) -> dict: c = make_console() c.open() try: data = c.read(timeout) return {"bytes": len(data), "text": data.decode("utf-8", errors="replace")} finally: c.close() def interact() -> dict: """Мини-интерактив: отправить строку и вернуть эхо/ответ.""" try: import sys return {"hint": "используйте `send` и `read_bytes` для скриптового интерактива"} except Exception as e: # pragma: no cover return {"error": str(e)}