海康视觉二次开发学习笔记7-流程相关操作

流程相关操作

流程的相关操作包括选择路径,导入流程,导出流程,运行流程等.

在开始前,扩展优化一下写法,供其他地方重复调用.

Csharp 复制代码
        /// <summary>
        /// 消息显示区显示消息
        /// </summary>
        /// <param name="msg"></param>
        public void AddMsg(string msg) {
            listBox1.Items.Add(msg);
            listBox1.TopIndex = listBox1.Items.Count - 1;
        }

        /// <summary>
        /// TryCatch捕获SDK异常,系统异常
        /// </summary>
        /// <param name="excute"></param>
        /// <param name="msg"></param>
        public void RunTryCatch(Action excute,string msg) {
            try
            {
                excute();
                AddMsg(msg);
            }
            catch (VmException ex)
            {
                MessageBox.Show(Convert.ToString(ex.errorCode, 16));
            }
            catch (Exception ex) {
                MessageBox.Show(ex.Message);
            }
        }

选择路径

Csharp 复制代码
         /// <summary>
        /// 选择流程路径
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button7_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.Filter = "VM Prc Files|*.prc*";
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                RunTryCatch(() =>
                {
                    textBox2.Text = openFileDialog.FileName;
                }, "流程选择路径成功.");
            }
        }

导入流程

Csharp 复制代码
        /// <summary>
        /// 导入流程
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button11_Click(object sender, EventArgs e)
        {
            RunTryCatch(() => {VmProcedure.Load(textBox2.Text, "");},
                "流程导入成功.");
        }

导出流程

Csharp 复制代码
        /// <summary>
        /// 导出流程
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button10_Click(object sender, EventArgs e)
        {
            RunTryCatch(() => {VmProcedure vmProcedure = (VmProcedure)VmSolution.Instance[comboBox1.Text];vmProcedure.SaveAs("E:\\测试保存流程.prc");}, 
                "流程保存成功.");
        }

运行流程

Csharp 复制代码
        /// <summary>
        /// 运行流程
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button8_Click(object sender, EventArgs e)
        {
            RunTryCatch(() => {VmProcedure vmProcedure = (VmProcedure)VmSolution.Instance[comboBox1.Text];vmProcedure.Run();/*vmProcedure.ContinuousRunEnable = true;流程连续运行*/},
                $"运行一次流程{comboBox1.Text}成功.");
        }

删除流程

Csharp 复制代码
        /// <summary>
        /// 流程删除
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button9_Click(object sender, EventArgs e)
        {
            RunTryCatch(() => { VmSolution.Instance.DeleteOneProcedure(comboBox1.Text); }, "流程删除成功.");
        }

界面效果

  1. 运行程序,加载方案
  1. 选择流程路径,导入流程

可以看到,在方案内新增加了刚导入的标定1流程.

  1. 选择流程,删除

对应流程删除成功.

  1. 导出流程

导出到项目根目录下,导出成功.

  1. 运行流程

流程已运行成功.对应工具显示为绿色被正常执行.

相关推荐
追逐时光者3 小时前
一个致力于为 C# 程序员提供更佳的编码体验和效率的 Visual Studio 扩展插件
后端·c#·visual studio
玄〤5 小时前
黑马点评中 VoucherOrderServiceImpl 实现类中的一人一单实现解析(单机部署)
java·数据库·redis·笔记·后端·mybatis·springboot
SunflowerCoder5 小时前
EF Core + PostgreSQL 配置表设计踩坑记录:从 23505 到 ChangeTracker 冲突
数据库·postgresql·c#·efcore
wyw00006 小时前
目标检测之SSD
人工智能·目标检测·计算机视觉
芯思路6 小时前
STM32开发学习笔记之三【按键】
笔记·stm32·学习
Lips6117 小时前
2026.1.11力扣刷题笔记
笔记·算法·leetcode
袁气满满~_~8 小时前
Python数据分析学习
开发语言·笔记·python·学习
阿蒙Amon8 小时前
C#每日面试题-常量和只读变量的区别
java·面试·c#
我是唐青枫8 小时前
C#.NET ConcurrentBag<T> 设计原理与使用场景
c#·.net
njsgcs8 小时前
ppo 找出口模型 训练笔记
人工智能·笔记