Halcon与Winform学习第二节

15 篇文章 7 订阅
12 篇文章 9 订阅

基于halconWindow设计流程自定义 视觉检测方案系统,先上效果图


 

主要提供 以下几大块的内容:

一、工具栏的支持

二、工具栏绘制流程集成方案可导入导出

三、工具流程节点的数据流动的输入输出

四、设备通讯

五、全局变量的使用

上图界面花了两个礼拜的时间进行实现,后续有时间的话,将一段段介绍。

方案配置贯穿整个业务 

  public class SchemeConfig { 
        public static SchemeInfo Scheme { set; get; }

   


        public static HWindow_Final HWindowControl { set; get; }

    }

    public class SchemeInfo : BaseField, IEntity<long>
    {

        public SchemeInfo()
        {
            Id = GeneratePrimaryKeyIdHelper.GetPrimaryKeyId();
        }
        public long Id { get; set; }
        /// <summary>
        ///  方案编码
        /// </summary>
        public string Code { get; set; }

        /// <summary>
        ///  方案名称
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        ///  备注
        /// </summary>
        public string Remark { get; set; }

        
        public List<SchemeFlowInfoEntity> FlowList { set; get; }


        public List<GlobalVariableModel> GlobalVariableList { set; get; }

        /// <summary>
        /// 设备配置
        /// </summary>
        public GlobalDeviceConfig GlobalDeviceConfig { set; get; }

    }

    public class GlobalDeviceConfig
    {
        public List<DeviceCommumicationClient> ClientList { set; get; } = new List<DeviceCommumicationClient>();
        public List<CommumicationEventReceive> ReceiveList { set; get; } = new List<CommumicationEventReceive>();
        public List<CommumicationEventSend> SendList { set; get; } = new List<CommumicationEventSend>();
    }

    /// <summary>
    /// 图像源
    /// </summary>
    public class ImageSourceContentModel: SchemeFlowNodeEntity
    {
        public override void InitData() {
            NodeResultModels = new List<NodeResultModel>();
            NodeResultModels.Add(new NodeResultModel() { NodeResultCode = NodeResultTypeEnum.ImageWidth.ToString(),NodeResultName =NodeResultTypeEnum.ImageWidth.GetDescription() });
            NodeResultModels.Add(new NodeResultModel() { NodeResultCode = NodeResultTypeEnum.ImageHeight.ToString(), NodeResultName = NodeResultTypeEnum.ImageHeight.GetDescription() });
        }
   

        public int DefaultImageIndex { set; get; } = -1;

        public string ImageFolderPath { set; get; }
        /// <summary>
        /// 图像地址PATH
        /// </summary>
        public List<string> ImagePathList { set; get; }

    }

    /// <summary>
    /// 几何创建
    /// </summary>
    public class GeometryContentModel : SchemeFlowNodeEntity
    {

        /// <summary>
        /// ROIJSON
        /// </summary>
        public string RoiDataJson { set; get; }

        /// <summary>
        /// ROI几何
        /// </summary>
        public List<ROI> Regions { set; get; } = new List<ROI>();//roi集合

    }

    /// <summary>
    /// blob
    /// </summary>
    public class BlobContentModel : SchemeFlowNodeEntity
    {
        


    }

    /// <summary>
    /// 颜色转换
    /// </summary>
    public class ColorRgbContentModel : SchemeFlowNodeEntity
    {

    }

    /// <summary>
    /// Result
    /// </summary>
    public class ConditionResultContentModel : SchemeFlowNodeEntity
    {
        /// <summary>
        /// 判断条件 0:全部符合,1:任意条件符合
        /// </summary>
        public int JudgeType { set; get; }

        public List<ResultConditionJudgeModel> JudgeList { set; get; } = new List<ResultConditionJudgeModel>();
        public Color OkColor { set; get; }
        public Color NgColor { set; get; }
        public int ResultLocationX { set; get; }
        public int ResultLocationY { set; get; }
    }

    public class ResultConditionJudgeModel { 
        public string VariableCode { set; get; }
        public string VariableName { set; get; }
        public decimal MinValue { set; get; }
        public decimal MaxValue { set; get; }
    }


    /// <summary>
    /// 工具节点类型
    /// </summary>
    public enum ToolNodeTypeEnum:long
    {
        /// <summary>
        /// 图像源
        /// </summary>
        ImageSource=0,
        /// <summary>
        /// 几何
        /// </summary>
        Geometry=1,
        /// <summary>
        /// blob分析
        /// </summary>
        Blob=2,
        /// <summary>
        /// 条件结果
        /// </summary>
        ConditionResult=3,
        /// <summary>
        /// 颜色转换
        /// </summary>
        ColorRgb=4,
    }


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

11eleven

你的鼓励是我创作的动力 !

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值