| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- using System.Windows;
- using System.Windows.Controls;
- using Plugins.Vm.Views;
- using TeamAAS.Vision;
- namespace Plugins.Vm.Engines
- {
- /// <summary>
- /// 海康 VisionMaster 引擎:实现 TeamAAS.Vision.IVisualEngine 契约。
- /// 与 VisionProEngine 对等——引擎 SDK(VM)只被本插件引用,宿主只通过接口访问。
- /// 主页多画面基于 UCDispVm(画面框网格),双击放大/标定等接入 SDK 后补齐。
- /// </summary>
- 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);
- }
- }
- }
|