using System; using System.Collections.Generic; namespace TeamAAS.Global.Devices { /// 具备名称的设备(按名查找的最小契约)。 public interface INamedDevice { /// 设备名称(唯一)。 string Name { get; } } /// 具备连接状态的设备。 public interface IConnectableDevice : INamedDevice { /// 是否已连接。 bool IsConnected { get; } /// 打开/连接设备。返回是否成功。 bool Open(); /// 关闭/断开设备。 void Close(); } /// 设备提供者:某类设备管理器的最小契约(相机/机器人/通讯/供料/运动卡管理器各自适配)。 public interface IDeviceProvider where TDevice : INamedDevice { /// 全部设备(只读快照)。 IEnumerable Devices { get; } /// 按名称取设备。找不到返回 default。 TDevice GetByName(string name); } /// /// 设备调试页面契约:每种设备内核可附带一个自定义调试界面(用户分层设计·第二层要求)。 /// 宿主用工厂创建页面并绑定设备实例;页面自身用 WPF 控件实现(契约层只定义工厂,不引入 UI 类型)。 /// public interface IDeviceDebugPageFactory { /// 本调试页适用的设备类别名(如 "相机"/"机器人"/"通讯"/"供料器"/"运动卡")。 string DeviceCategory { get; } /// 为指定设备创建调试页面对象(返回 object,由宿主转换为 FrameworkElement,避免本层依赖 WPF)。 object CreatePage(object device); } }