资源简介
目的://此示例程序显示如何使用类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程序
代码片段和文件信息
using System.Reflection;
using System.Runtime.CompilerServices;
//
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
//
[assembly: Assemblytitle(““)]
[assembly: AssemblyDescription(““)]
[assembly: AssemblyConfiguration(““)]
[assembly: AssemblyCompany(““)]
[assembly: AssemblyProduct(““)]
[assembly: AssemblyCopyright(““)]
[assembly: AssemblyTrademark(““)]
[assembly: AssemblyCulture(““)]
//
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-06-19 23:39 ExecProgram\source\
文件 2426 2019-05-31 16:07 ExecProgram\source\AssemblyInfo.cs
文件 8753 2019-06-19 23:39 ExecProgram\source\ExecProgramForm.cs
文件 6017 2019-06-19 23:25 ExecProgram\source\ExecProgramForm.resx
目录 0 2019-06-19 23:06 ExecProgram\vs_interface\
目录 0 2019-06-19 22:49 ExecProgram\vs_interface\.vs\
目录 0 2019-06-19 22:49 ExecProgram\vs_interface\.vs\ExecProgram\
目录 0 2019-06-19 22:49 ExecProgram\vs_interface\.vs\ExecProgram\v15\
文件 53248 2019-06-20 16:18 ExecProgram\vs_interface\.vs\ExecProgram\v15\.suo
目录 0 2019-06-19 22:49 ExecProgram\vs_interface\.vs\ExecProgram\v15\Server\
目录 0 2019-06-19 22:49 ExecProgram\vs_interface\.vs\ExecProgram\v15\Server\sqlite3\
文件 0 2019-05-31 15:29 ExecProgram\vs_interface\.vs\ExecProgram\v15\Server\sqlite3\db.lock
文件 499712 2019-06-19 23:25 ExecProgram\vs_interface\.vs\ExecProgram\v15\Server\sqlite3\storage.ide
文件 32768 2019-06-20 16:18 ExecProgram\vs_interface\.vs\ExecProgram\v15\Server\sqlite3\storage.ide-shm
文件 4136512 2019-06-20 16:18 ExecProgram\vs_interface\.vs\ExecProgram\v15\Server\sqlite3\storage.ide-wal
目录 0 2019-06-19 22:50 ExecProgram\vs_interface\bin\
目录 0 2019-06-20 16:17 ExecProgram\vs_interface\bin\Debug\
文件 9728 2019-06-20 16:18 ExecProgram\vs_interface\bin\Debug\ExecProgram.exe
文件 19968 2019-06-20 16:18 ExecProgram\vs_interface\bin\Debug\ExecProgram.pdb
文件 32320568 2015-01-25 21:21 ExecProgram\vs_interface\bin\Debug\halcon.dll
文件 1271352 2014-11-15 02:27 ExecProgram\vs_interface\bin\Debug\halcondotnet.dll
文件 4070318 2014-11-15 01:07 ExecProgram\vs_interface\bin\Debug\halcondotnet.xm
文件 54840 2014-11-15 02:27 ExecProgram\vs_interface\bin\Debug\hdevenginedotnet.dll
文件 42154 2014-11-15 01:07 ExecProgram\vs_interface\bin\Debug\hdevenginedotnet.xm
目录 0 2019-06-19 22:50 ExecProgram\vs_interface\bin\Release\
目录 0 2019-06-19 22:50 ExecProgram\vs_interface\bin\x86\
目录 0 2019-06-20 16:17 ExecProgram\vs_interface\bin\x86\Debug\
文件 9728 2019-06-19 23:39 ExecProgram\vs_interface\bin\x86\Debug\ExecProgram.exe
文件 19968 2019-06-19 23:39 ExecProgram\vs_interface\bin\x86\Debug\ExecProgram.pdb
文件 32320568 2015-01-25 21:21 ExecProgram\vs_interface\bin\x86\Debug\halcon.dll
文件 1271352 2014-11-15 02:27 ExecProgram\vs_interface\bin\x86\Debug\halcondotnet.dll
............此处省略40个文件信息
- 上一篇:VUE代码
- 下一篇:Visual C#.NET网络编程
相关资源
- halcon 与C#之HWindow鼠标控制图片缩放,
- 包含了halcon,C#编程,联合开发,机器
- 基于C#语言的ArcGIS+Engine开发基础与技
- C#联合halcon利用halcon控件实现鼠标拖拽
- 基于C#+ArcGIS Engine的二次开发教程牟乃
- ArcEngine 最短路径分析C#源码)
- 基于C#语言的ArcGIS Engine开发基础与技
- ArcEngine+C#缓冲区分析(GP工具+ITopolo
- 基于AE 的空间分析全部C#代码网络分析
- ArcGIS Engine C# 通视分析
- AE路径动态追踪
- C#结合Halcon,对图像也可以拍照进行轮
- C#基于Halcon实现Basler相机采图SDK
- C# ArcEngine二次开发
- 利用C#和Arcengine实现地图的查询和属性
- ArcGIS Engine+C#开发教程》源码
- 《ArcGIS Engine+C#开发教程》源码
- Halcon生成的计算圆心C#代码
- C# arcengine 图层操作
- ArcGIS+Engine+C#
- 放大,缩小,图形显示C#+ARCENGINE.rar
- Halcon C#实现图像的灰度化鼠标放大缩
- C#+ArcEngine9.3基本功能开发源码
- halcon联合C#车牌识别
- ArcEngine开发鹰眼功能C#实现
- gis二次开发空间与属性查询
- C#+ArcEngine:加载打开Shp矢量和栅格数
- C#+ArcEngine10.1:打开mxd地图文档VS2010窗
- C#+ArcEngine10.1:txt坐标数据转Shp矢量点
- 将Halcon DeepLearning Tool工具生成的hdic
评论
共有 条评论