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

编译

修改代码,编译后即生效

加载生效

添加编译状态
<Border CornerRadius="100" Background="Red" Padding="1" Margin="5" Height="20" Width="20" x:Name="bd_CompileStatus">
</Border>
private void Compile_Click(object sender, RoutedEventArgs e)
{
try
{
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
{
public List<EProcedure> m_EProcedureList;
public bool isDebug = false;
private void StartDebug_Click(object sender, RoutedEventArgs e)
{
try
{
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;
}
}
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);
}