| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- using System.Windows;
- namespace TeamAAS.Vision
- {
- /// <summary>
- /// 视觉引擎契约:任何实现了本接口的类都视为一个可用视觉引擎
- /// (VisionPro / VM / Halcon ...)。环境里有哪些引擎,设置页就列出哪些,一键切换。
- ///
- /// 分层约定:
- /// - 本契约只依赖 WPF 基础类型,不依赖任何引擎 SDK(Cognex/VM/Halcon);
- /// - 具体引擎实现放在各引擎插件类库中(如 Plugins.Vpp),SDK 只被插件引用;
- /// - 宿主(主程序/Core)只通过 <see cref="VisualEngineManager"/> 与本接口访问引擎,
- /// 绝不直接引用引擎插件内部类型 —— 引擎可整体替换。
- /// </summary>
- public interface IVisualEngine
- {
- /// <summary>引擎显示名(设置页引擎列表与配置持久化用),如 "VisionPro"。</summary>
- string EngineName { get; }
- /// <summary>
- /// 主页多画面视图:内置画面框布局、双击放大。宿主把它放入主页画面区。
- /// </summary>
- FrameworkElement GetMainView();
- /// <summary>
- /// 按画面数量与排列方式重建主页多画面布局。
- /// arrange:1=水平最优行列,2=垂直最优行列。
- /// frameCount=0 表示无画面(宿主画面区留空)。
- /// </summary>
- void ApplyHomeLayout(int frameCount, int arrange);
- /// <summary>标定视图(标定向导的图像操作区,随当前引擎切换)。</summary>
- FrameworkElement GetCalibrationView();
- /// <summary>设置指定画面框的标题(画面名称);index 越界时静默忽略。</summary>
- void SetFrameCaption(int index, string name);
- /// <summary>设置指定画面框的状态圆点显隐;index 越界时静默忽略。</summary>
- void SetFrameDotVisible(int index, bool visible);
- }
- }
|