37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
|
|
# 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
|