Files
virtual_simulation_midware/midware/drivers/__init__.py

37 lines
1.2 KiB
Python
Raw Normal View History

2026-06-16 15:40:19 +08:00
# 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