from abc import ABC, abstractmethod from typing import Any, Callable, Optional class BaseComm(ABC): """ 通信接口抽象基类 定义所有通信模块需要实现的基本方法 """ @abstractmethod def connect(self) -> bool: """ 建立通信连接 Returns: bool: 连接是否成功 """ pass @abstractmethod def disconnect(self) -> None: """ 断开通信连接 """ pass @abstractmethod def send(self, data: bytes, address: Optional[str] = None) -> bool: """ 发送数据 Args: data: 要发送的数据 address: 目标地址(可选) Returns: bool: 发送是否成功 """ pass @abstractmethod def receive(self, timeout: Optional[float] = None) -> Optional[bytes]: """ 接收数据 Args: timeout: 超时时间(秒) Returns: bytes: 接收到的数据,如果没有数据则返回None """ pass @abstractmethod def is_connected(self) -> bool: """ 检查通信连接状态 Returns: bool: 是否已连接 """ pass def set_callback(self, callback: Callable[[bytes], None]) -> None: """ 设置数据接收回调函数 Args: callback: 接收数据时调用的回调函数 """ pass