html5 halcon,halcon HDevEngine功能

目的://此示例程序显示如何使用类HDevEngine和HDevOpMultiWindowImpl //来实现鳍检测应用程序。

//几乎所有应用程序的功能都包含在// HDevelop程序fin_detection.hdev中,该程序可以在//目录hdevelop中找到。

//当您单击按钮Load时,加载HDevelop程序,当您单击//执行它时执行。

// HDevOpMultiWindowImpl类实现了HDevelop的内部//运算符。

27.2例子

本节介绍如何使用基于C#和Visual Basic .NET的示例应用程序的HDevEngine / .NET,它们位于子目录 %HALCONEXAMPLES%\ hdevengine \ c#和 %HALCONEXAMPLES%\ hdevengine \ vb.net。在下文中,我们仅描述C#示例; 除了两种语言之间的标准差异外,Visual Basic .NET版本是相同的。此外,与C#版本相比,Visual Basic .NET版本不包含对Linux的支持。

执行HDevelop程序(“执行HDevelop程序”部分),

执行HDevelop程序(“执行HDevelop程序”一节)和

显示操作员(“显示”部分),

错误处理(“错误处理”部分),和

多线程(“创建多线程应用程序”一节)。

27.2.1执行HDevelop程序

在本节中,我们将介绍如何使用HDevEngine加载和执行HDevelop程序。代码片段来自示例应用程序 ExecProgram,它检查塑料部件的边界是否有鳍。图27.1显示了该应用程序的屏幕截图; 它包含两个用于加载和执行HDevelop程序的按钮。

图片/ exec_program_dotnet_h12

图27.1:执行检测边界上的鳍的HDevelop程序。

27.2.1.1第1步:初始化

首先,我们创建主HDevEngine类HDevEngine的全局实例 。

private HDevEngine MyEngine = new HDevEngine();

加载表单后,我们将路径存储到HDevelop程序并使用方法SetProcedurePath设置外部过程路径:

String ProgramPathString;

private void ExecProgramForm_Load(object sender,System.EventArgs e)

{

string halconExamples = HSystem.GetSystem(“example_dir”);

string ProcedurePath = halconExamples @“\ hdevengine \ procedures”;

ProgramPathString = halconExamples

@ “\ hdevengine \ hdevelop \ fin_detection.hdev”;

if(!HalconAPI.isWindows)

{

ProcedurePath = ProcedurePath.Replace(’\\’,’/’);

ProgramPathString = ProgramPathString.Replace(’\\’,’/’);

}

MyEngine.SetProcedurePath(ProcedurePath);

}

请注意,只有在HDevelop程序调用外部过程时才需要后者。

27.2.1.2第2步:加载程序

单击按钮加载HDevelop程序时,将创建HDevProgram类的实例,并将程序路径作为参数。此外,创建HDevProgramCall的实例供以后使用。构造函数中发生的异常(例如,因为未正确指定文件名)是使用标准C#错误处理机制处理的:

private void LoadBtn_Click(object sender,System.EventArgs e)

{

尝试

{

HDevProgram Program = new HDevProgram(ProgramPathString);

ProgramCall = new HDevProgramCall(Program);

}

catch(HDevEngineException Ex)

{

MessageBox.Show(Ex.Message,“HDevEngine异常”);

返回;

}

catch(例外)

{

返回;

}

//启用执行按钮

ExecuteBtn.Enabled = true;

}

有关错误处理的更多信息,请参见 “错误处理”部分。

27.2.1.3第3步:执行程序

单击按钮执行程序时,将调用方法mHDEExecuteName:

private void ExecuteBtn_Click(object sender,System.EventArgs e)

{

尝试

{

尝试

{

ProgramCall.Execute();

}

catch(HDevEngineException Ex)

{

MessageBox.Show(Ex.Message,“HDevEngine异常”);

返回;

}

}

catch(例外)

{

}

}

27.2.1.4第4步:获得结果

这就是执行HDevelop程序所需要做的一切。您还可以使用方法GetCtrlVarTuple访问其“结果”,即其变量。在示例程序中,查询提取的fin的区域,然后显示:

双FinArea;

FinArea = ProgramCall.GetCtrlVarTuple(“FinArea”);

Window.SetTposition(150,20);

Window.WriteString(“Fin Area:”);

请注意,只有在程序终止时才能访问程序变量。

27.2.1.5概述:显示结果

如何在程序运行时显示结果将在“显示”部分中介绍 。

27.2.2执行HDevelop程序

da5c40eed534b5577e6b014fda8623c5.png

资源下载此资源下载价格为4D币,请先登录

资源文件列表

ExecProgram/source/AssemblyInfo.cs , 2426

ExecProgram/source/ExecProgramForm.cs , 8753

ExecProgram/source/ExecProgramForm.resx , 6017

ExecProgram/vs_interface/.vs/ExecProgram/v15/.suo , 53248

ExecProgram/vs_interface/.vs/ExecProgram/v15/Server/sqlite3/db.lock , 0

ExecProgram/vs_interface/.vs/ExecProgram/v15/Server/sqlite3/storage.ide , 499712

ExecProgram/vs_interface/.vs/ExecProgram/v15/Server/sqlite3/storage.ide-shm , 32768

ExecProgram/vs_interface/.vs/ExecProgram/v15/Server/sqlite3/storage.ide-wal , 4136512

ExecProgram/vs_interface/bin/Debug/ExecProgram.exe , 9728

ExecProgram/vs_interface/bin/Debug/ExecProgram.pdb , 19968

ExecProgram/vs_interface/bin/Debug/halcon.dll , 32320568

ExecProgram/vs_interface/bin/Debug/halcondotnet.dll , 1271352

ExecProgram/vs_interface/bin/Debug/halcondotnet.xml , 4070318

ExecProgram/vs_interface/bin/Debug/hdevenginedotnet.dll , 54840

ExecProgram/vs_interface/bin/Debug/hdevenginedotnet.xml , 42154

ExecProgram/vs_interface/bin/x86/Debug/ExecProgram.exe , 9728

ExecProgram/vs_interface/bin/x86/Debug/ExecProgram.pdb , 19968

ExecProgram/vs_interface/bin/x86/Debug/halcon.dll , 32320568

ExecProgram/vs_interface/bin/x86/Debug/halcondotnet.dll , 1271352

ExecProgram/vs_interface/bin/x86/Debug/halcondotnet.xml , 4070318

ExecProgram/vs_interface/bin/x86/Debug/hdevenginedotnet.dll , 54840

ExecProgram/vs_interface/bin/x86/Debug/hdevenginedotnet.xml , 42154

ExecProgram/vs_interface/ExecProgram.csproj , 4933

ExecProgram/vs_interface/ExecProgram.sln , 1473

ExecProgram/vs_interface/obj/Debug/DesignTimeResolveAssemblyReferences.cache , 753

ExecProgram/vs_interface/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache , 6362

ExecProgram/vs_interface/obj/Debug/ExecProgram.csproj.CopyComplete , 0

ExecProgram/vs_interface/obj/Debug/ExecProgram.csproj.CoreCompileInputs.cache , 42

ExecProgram/vs_interface/obj/Debug/ExecProgram.csproj.FileListAbsolute.txt , 4123

ExecProgram/vs_interface/obj/Debug/ExecProgram.csproj.GenerateResource.cache , 867

ExecProgram/vs_interface/obj/Debug/ExecProgram.csprojAssemblyReference.cache , 30980

ExecProgram/vs_interface/obj/Debug/ExecProgram.exe , 9728

ExecProgram/vs_interface/obj/Debug/ExecProgram.ExecProgramForm.resources , 180

ExecProgram/vs_interface/obj/Debug/ExecProgram.pdb , 19968

ExecProgram/vs_interface/obj/Debug/ExecProgram.Properties.Resources.resources , 180

ExecProgram/vs_interface/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll , 3584

ExecProgram/vs_interface/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache , 6257

ExecProgram/vs_interface/obj/x86/Debug/ExecProgram.csproj.CopyComplete , 0

ExecProgram/vs_interface/obj/x86/Debug/ExecProgram.csproj.CoreCompileInputs.cache , 42

ExecProgram/vs_interface/obj/x86/Debug/ExecProgram.csproj.FileListAbsolute.txt , 2524

ExecProgram/vs_interface/obj/x86/Debug/ExecProgram.csproj.GenerateResource.cache , 867

ExecProgram/vs_interface/obj/x86/Debug/ExecProgram.exe , 9728

ExecProgram/vs_interface/obj/x86/Debug/ExecProgram.ExecProgramForm.resources , 180

ExecProgram/vs_interface/obj/x86/Debug/ExecProgram.pdb , 19968

ExecProgram/vs_interface/obj/x86/Debug/ExecProgram.Properties.Resources.resources , 180

ExecProgram/vs_interface/obj/x86/Debug/TempPE/Properties.Resources.Designer.cs.dll , 3584

ExecProgram/vs_interface/Properties/Resources.Designer.cs , 2857

ExecProgram/vs_interface/Properties/Resources.resx , 5350

ExecProgram/vs_interface/Properties/Settings.Designer.cs , 1111

ExecProgram/vs_interface/Properties/Settings.settings , 249

ExecProgram/vs_interface/readme.txt , 4333

ExecProgram/vs_interface/UpgradeLog.htm , 42744

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值