using System.Windows; using System.Windows.Controls; using Plugins.Vm.Views; using TeamAAS.Vision; namespace Plugins.Vm.Engines { /// /// 海康 VisionMaster 引擎:实现 TeamAAS.Vision.IVisualEngine 契约。 /// 与 VisionProEngine 对等——引擎 SDK(VM)只被本插件引用,宿主只通过接口访问。 /// 主页多画面基于 UCDispVm(画面框网格),双击放大/标定等接入 SDK 后补齐。 /// public class VisionMasterEngine : IVisualEngine { public string EngineName => "VisionMaster"; public FrameworkElement GetMainView() { return UCDispVm.Instance; } public void ApplyHomeLayout(int frameCount, int arrange) { // RowColNumber:{画面总数, 排列方式}——内部按最优行列铺设 VmWindow 网格;0=清空画面区 UCDispVm.Instance.RowColNumber = new[] { frameCount, arrange }; } public FrameworkElement GetCalibrationView() { // TODO:接入 VM SDK 后返回真正的 VM 标定页(镜像 VppCalibrationPage) return new Border { Background = System.Windows.Media.Brushes.Transparent, Child = new TextBlock { Text = "VisionMaster 标定(待接入 VM SDK)", HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center } }; } public void SetFrameCaption(int index, string name) { if (index < 0 || UCDispVm.Instance.vmWindow.Count <= index) return; UCDispVm.Instance.vmWindow[index].SetCaption(name); } public void SetFrameDotVisible(int index, bool visible) { if (index < 0 || UCDispVm.Instance.vmWindow.Count <= index) return; UCDispVm.Instance.vmWindow[index].SetStatusDotVisible(visible); } } }