| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using PropertyGridLib.Controls;
- using PropertyGridLib.Attributes;
- using TeamAAS.FlowEditor.Plugins;
- using TeamAAS.FlowEngine.FormulaData;
- namespace Plugins.Vm.Models
- {
- /// <summary>
- /// VM 图像显示节点模型:把上游输出的图层/图像显示到指定画面框(视觉窗体),
- /// 每个显示项可独立链接 OK/NG 结果(可不链接)驱动该画面框的状态圆点。镜像 VppDisplayModel。
- /// </summary>
- [Serializable]
- public class VmDisplayModel : BasePluginModel
- {
- [Category("属性")]
- [DisplayName("1.显示项列表")]
- [Description("配置图层到画面框的显示映射,可添加多条;每项可独立链接 OK/NG(可不链接)")]
- [CollectionEditor(CanAdd = true, CanRemove = true, CanSort = true)]
- [FormulaEditor(typeof(InputSourceDataProvider))]
- public List<VmDisplayItem> DisplayItems { get; set; } = new List<VmDisplayItem>();
- }
- [Serializable]
- public class VmDisplayItem
- {
- /// <summary>目标画面序号(运行逻辑按 windows[FrameNo-1] 取窗体)。</summary>
- [Browsable(false)]
- public int FrameNo { get; set; } = 1;
- /// <summary>
- /// 目标画面名称。TODO:接入 SDK/画面列表后,可像 Vpp 那样用 FrameNameConverter
- /// 做成“从当前产品画面列表下拉选择、内部存序号”,当前先直接编辑名称/序号。
- /// </summary>
- [DisplayName("1.目标画面")]
- [Category("属性")]
- [Description("目标画面名称(与序号 FrameNo 对应)")]
- public string FrameName { get; set; } = "";
- [DisplayName("2.链接图层")]
- [Category("属性")]
- [Description("链接上游输出:图层/图像/相机图像(GenImage)均可")]
- [FormulaEditor(typeof(InputSourceDataProvider))]
- public FormulaBound<object> Source { get; set; } = new FormulaBound<object>();
- [DisplayName("3.OK/NG 链接(可选)")]
- [Category("属性")]
- [Description("链接该画面的结果公式;为空 = 不链接(该画面框圆点保持原状)。非空时按真假把圆点刷成 绿/红")]
- [FormulaEditor(typeof(InputSourceDataProvider))]
- public FormulaBound<bool> OkNgBinding { get; set; } = new FormulaBound<bool>();
- public override string ToString()
- => $"{(string.IsNullOrWhiteSpace(FrameName) ? FrameNo.ToString() : FrameName)} ← {Source?.Formula ?? "(未链接)"}{(string.IsNullOrWhiteSpace(OkNgBinding?.Formula) ? "" : " | OK/NG")}";
- }
- }
|