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