Files
virtual_simulation_midware/midware/drivers/__init__.py
2026-06-16 15:40:19 +08:00

37 lines
1.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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