# midware/drivers/__init__.py """ 总线驱动模块:统一管理所有总线驱动的导入和初始化 """ from .base_driver import BaseBusDriver from .bus_1553b import Bus1553BDriver from .bus_can import BusCANDriver from .bus_uart import BusUARTDriver from .bus_ad import BusADDriver from .bus_oc import BusOCDriver from .bus_network import BusNetworkDriver from loguru import logger # 驱动映射表:协议名称 → 驱动类(与bus_udp_decoupler.py中的协议名对齐) DRIVER_MAPPING = { "1553B": Bus1553BDriver, "CAN": BusCANDriver, "UART": BusUARTDriver, "AD": BusADDriver, "OC": BusOCDriver, "网络": BusNetworkDriver } def create_bus_driver(protocol: str, config: dict = None) -> BaseBusDriver: """ 工厂函数:根据协议名称创建驱动实例 :param protocol: 协议名称(如"1553B") :param config: 驱动配置 :return: 驱动实例 """ if protocol not in DRIVER_MAPPING: raise ValueError(f"未知协议 {protocol},无对应驱动") driver_class = DRIVER_MAPPING[protocol] driver = driver_class(config=config) logger.info(f"创建 {protocol} 驱动实例成功:{driver.__class__.__name__}") return driver