• 大小: 27.86M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2020-12-14
  • 语言: C#
  • 标签: Halcon  Engine  

资源简介

目的://此示例程序显示如何使用类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.xml
     文件       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.xml
     目录           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个文件信息

评论

共有 条评论