資源簡(jiǎn)介
目的://此示例程序顯示如何使用類HDevEngine和HDevOpMultiWindowImpl //來實(shí)現(xiàn)鰭檢測(cè)應(yīng)用程序。
//幾乎所有應(yīng)用程序的功能都包含在// HDevelop程序fin_detection.hdev中,該程序可以在//目錄hdevelop中找到。
//當(dāng)您單擊按鈕Load時(shí),加載HDevelop程序,當(dāng)您單擊//執(zhí)行它時(shí)執(zhí)行。
// HDevOpMultiWindowImpl類實(shí)現(xiàn)了HDevelop的內(nèi)部//運(yùn)算符。
27.2例子
本節(jié)介紹如何使用基于C#和Visual Basic .NET的示例應(yīng)用程序的HDevEngine / .NET,它們位于子目錄 %HALCONEXAMPLES%\ hdevengine \ c#和 %HALCONEXAMPLES%\ hdevengine \ vb.net。在下文中,我們僅描述C#示例; 除了兩種語言之間的標(biāo)準(zhǔn)差異外,Visual Basic .NET版本是相同的。此外,與C#版本相比,Visual Basic .NET版本不包含對(duì)Linux的支持。
執(zhí)行HDevelop程序(“執(zhí)行HDevelop程序”部分),
執(zhí)行HDevelop程序(“執(zhí)行HDevelop程序”一節(jié))和
顯示操作員(“顯示”部分),
錯(cuò)誤處理(“錯(cuò)誤處理”部分),和
多線程(“創(chuàng)建多線程應(yīng)用程序”一節(jié))。
27.2.1執(zhí)行HDevelop程序
在本節(jié)中,我們將介紹如何使用HDevEngine加載和執(zhí)行HDevelop程序。代碼片段來自示例應(yīng)用程序 ExecProgram,它檢查塑料部件的邊界是否有鰭。圖27.1顯示了該應(yīng)用程序的屏幕截圖; 它包含兩個(gè)用于加載和執(zhí)行HDevelop程序的按鈕。
圖片/ exec_program_dotnet_h12
圖27.1:執(zhí)行檢測(cè)邊界上的鰭的HDevelop程序。
27.2.1.1第1步:初始化
首先,我們創(chuàng)建主HDevEngine類HDevEngine的全局實(shí)例 。
private HDevEngine MyEngine = new HDevEngine();
加載表單后,我們將路徑存儲(chǔ)到HDevelop程序并使用方法SetProcedurePath設(shè)置外部過程路徑:
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);
}
請(qǐng)注意,只有在HDevelop程序調(diào)用外部過程時(shí)才需要后者。
27.2.1.2第2步:加載程序
單擊按鈕加載HDevelop程序時(shí),將創(chuàng)建HDevProgram類的實(shí)例,并將程序路徑作為參數(shù)。此外,創(chuàng)建HDevProgramCall的實(shí)例供以后使用。構(gòu)造函數(shù)中發(fā)生的異常(例如,因?yàn)槲凑_指定文件名)是使用標(biāo)準(zhǔn)C#錯(cuò)誤處理機(jī)制處理的:
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(例外)
{
返回;
}
//啟用執(zhí)行按鈕
ExecuteBtn.Enabled = true;
}
有關(guān)錯(cuò)誤處理的更多信息,請(qǐng)參見 “錯(cuò)誤處理”部分。
27.2.1.3第3步:執(zhí)行程序
單擊按鈕執(zhí)行程序時(shí),將調(diào)用方法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步:獲得結(jié)果
這就是執(zhí)行HDevelop程序所需要做的一切。您還可以使用方法GetCtrlVarTuple訪問其“結(jié)果”,即其變量。在示例程序中,查詢提取的fin的區(qū)域,然后顯示:
雙FinArea;
FinArea = ProgramCall.GetCtrlVarTuple(“FinArea”);
Window.SetTposition(150,20);
Window.WriteString(“Fin Area:”);
請(qǐng)注意,只有在程序終止時(shí)才能訪問程序變量。
27.2.1.5概述:顯示結(jié)果
如何在程序運(yùn)行時(shí)顯示結(jié)果將在“顯示”部分中介紹 。
27.2.2執(zhí)行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
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????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個(gè)文件信息
- 上一篇:VUE代碼
- 下一篇:Visual C#.NET網(wǎng)絡(luò)編程
評(píng)論
共有 條評(píng)論