1. 驱动入口:设备枚举与管理
| 93 | |
| 94 | /// 1. 驱动入口:设备枚举与管理 |
| 95 | pub trait Driver: Send + Sync { |
| 96 | /// 扫描总线,返回设备列表(含唯一 ID 和拓扑路径) |
| 97 | fn list_devices(&self) -> Result<Vec<DeviceInfo>>; |
| 98 | |
| 99 | /// 打开设备 |
| 100 | /// 返回分离的 Stream (数据面) 和 Controls (控制面) |
| 101 | fn open(&self, id: &str, config: CameraConfig) -> Result<(Box<dyn Stream>, DeviceControls)>; |
| 102 | } |
| 103 | |
| 104 | /// 2. 数据面:流式获取 |
| 105 | /// 必须是 Send,以便在 Tokio 任务中运行 |