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