通用工业视觉软件设计之Halcon脚本-基本使用

通用工业视觉软件设计之Halcon脚本-基本使用

在这里插入图片描述

编译

在这里插入图片描述

修改代码,编译后即生效

在这里插入图片描述

加载生效

在这里插入图片描述

添加编译状态

                    <Border CornerRadius="100" Background="Red" Padding="1" Margin="5" Height="20" Width="20"  x:Name="bd_CompileStatus">
                    </Border>
     /// <summary>
     /// 编译
     /// </summary>
     /// <param name="sender"></param>
     /// <param name="e"></param>
     private void Compile_Click(object sender, RoutedEventArgs e)
     {
         try
         {
             // 临时存放hdev路径
             string tempName = Environment.GetEnvironmentVariable("TEMP") + $"/temp.hdev";
             // 生成文件(核心)
             EProcedure.SaveToFile(tempName, frm_ModuleObj.m_EProcedureList);
             // 程序
             HDevProgram program = new HDevProgram(tempName);
             // 方法(核心:确定方法)
             HDevProcedure procedure = new HDevProcedure(program, CmbRunProcedureMethod.Text);
             // 核心
             frm_ModuleObj.m_HDevProcedureCall = new HDevProcedureCall(procedure);


             bd_CompileStatus.Background = new SolidColorBrush(Colors.Green);
         }
         catch (Exception ex)
         {
             Log.Error(ex.ToString());
             System.Windows.Forms.MessageBox.Show(ex.ToString());
             bd_CompileStatus.Background = new SolidColorBrush(Colors.Red);

         }
     }

添加调试状态

    <Border CornerRadius="100" Background="Red" Padding="1" Margin="5" Height="20" Width="20"  x:Name="bd_DebugStatus">
    </Border>
    public class ModuleObj:ModuleObjBase
    {
        /// <summary>
        /// 图像脚本对象
        /// </summary>
        public List<EProcedure> m_EProcedureList;

        /// <summary>
        /// 是否处于调试模式
        /// </summary>
        public bool isDebug = false;

        /// <summary>
        /// 开启调试功能
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void StartDebug_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                // 关闭即时编译(JIT, Just-In-Time)调试需求:解释执行模式下,代码逐行执行,更便于调试(如设置断点、单步执行)。
                SysProcessSln.s_HDevEngine.SetEngineAttribute("execute_procedures_jit_compiled", "false");
                // 关闭调试模式
                SysProcessSln.s_HDevEngine.StopDebugServer();
                // 开启调试模式
                SysProcessSln.s_HDevEngine.StartDebugServer();
                bd_DebugStatus.Background = new SolidColorBrush(Colors.Green);
                frm_ModuleObj.isDebug  =true;
            }
            catch (Exception ex)
            {
                Log.Error(ex.ToString());
                System.Windows.Forms.MessageBox.Show(ex.ToString());
                bd_DebugStatus.Background = new SolidColorBrush(Colors.Red);
                frm_ModuleObj.isDebug = false;


            }
        }

        /// <summary>
        /// 关闭调试功能
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void StopDebug_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                SysProcessSln.s_HDevEngine.SetEngineAttribute("execute_procedures_jit_compiled", "true");
                SysProcessSln.s_HDevEngine.StopDebugServer();
                bd_DebugStatus.Background = new SolidColorBrush(Colors.Red);
                frm_ModuleObj.isDebug = false;

            }
            catch (Exception ex)
            {
                Log.Error(ex.ToString());
                System.Windows.Forms.MessageBox.Show(ex.ToString());
                bd_DebugStatus.Background = new SolidColorBrush(Colors.Red);
                frm_ModuleObj.isDebug = false;


            }
        }

二次打开

            if (frm_ModuleObj.isDebug == true)
            {
                bd_DebugStatus.Background = new SolidColorBrush(Colors.Green);

            }
            else
            {
                bd_DebugStatus.Background = new SolidColorBrush(Colors.Red);

            }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值