LabVIEW使用自定義模板和示例項(xiàng)目來開發(fā)LabVIEW項(xiàng)目
LabVIEW使用自定義模板和示例項(xiàng)目來開發(fā)LabVIEW項(xiàng)目
創(chuàng)建項(xiàng)目時(shí),LabVIEW將顯示“創(chuàng)建項(xiàng)目”對(duì)話框,以幫助您選擇模板或示例項(xiàng)目來作為開發(fā)起點(diǎn)。如果要使用您創(chuàng)建的項(xiàng)目作為自定義模板和示例項(xiàng)目,您必須將每個(gè)項(xiàng)目的源文件和元數(shù)據(jù)添加到相應(yīng)的LabVIEW目錄中。然后,用戶可以使用自定義項(xiàng)目作為開發(fā)項(xiàng)目的起點(diǎn)。除了本文檔之外,請(qǐng)參考\ProjectTemplates目錄以查看如何為現(xiàn)有模板和示例項(xiàng)目存儲(chǔ)源文件,元數(shù)據(jù)和類別重寫。下文的步驟是如何為自定義模板和示例項(xiàng)目創(chuàng)建和存儲(chǔ)文件的示例。

選擇一個(gè)LabVIEW目錄來存儲(chǔ)自定義內(nèi)容
LabVIEW會(huì)在兩個(gè)位置搜索要顯示在“創(chuàng)建項(xiàng)目”對(duì)話框中的內(nèi)容。選擇最適合您想要使用自定義內(nèi)容的位置:
<LabVIEW>\ProjectTemplates?-如果使用具有版本管理功能的代碼托管工具,如VI?????Package?Manger,來安裝這些內(nèi)容,請(qǐng)使用此位置。
<LabVIEW?data>\ProjectTemplates-如果您沒有對(duì)<LabVIEW>目錄的寫入權(quán)限,或者要為多個(gè)LabVIEW版本提供同一個(gè)自定義內(nèi)容,請(qǐng)使用該位置。
注意:?LabVIEW會(huì)對(duì)<LabVIEWData>\ProjectTemplates目錄中的所有模板和示例項(xiàng)目進(jìn)行版本檢查。如果項(xiàng)目的.lvproj文件以當(dāng)前運(yùn)行的版本更高的LabVIEW版本保存,則“創(chuàng)建項(xiàng)目”對(duì)話框?qū)⑹÷栽?strong>項(xiàng)目。
整理<LabVIEW?Data>目錄
首次將模板和示例項(xiàng)目添加到<LabVIEW?Data>目錄時(shí),必須創(chuàng)建子目錄以確保LabVIEW可以找到其內(nèi)容。
完成以下步驟,整理<LabVIEW?Data>目錄:
在<LabVIEW?data>下創(chuàng)建ProjectTemplates目錄。
匹配<LabVIEW>\ProjectTemplates目錄的文件層次結(jié)構(gòu),創(chuàng)建以下路徑:
§??<LabVIEW?data>\ProjectTemplates\CategoryOverrides
§??<LabVIEW?data>\ProjectTemplates\MetaData
§??<LabVIEW?data>\ProjectTemplates\Source
存儲(chǔ)源文件
源文件由.lvproj文件,庫,VI和用于每個(gè)自定義模板和示例項(xiàng)目的支持文件(例如圖像和文檔)組成。
為需要在“創(chuàng)建項(xiàng)目”對(duì)話框中顯示的每個(gè)項(xiàng)目,在ProjectTemplates\Source目錄中創(chuàng)建一個(gè)子目錄,并將每個(gè)項(xiàng)目的源文件添加到其各自的子目錄中。確保沒有子目錄包含多個(gè)項(xiàng)目的源文件。
備注:
確保您的自定義模板和示例項(xiàng)目不包含任何自動(dòng)更新的文件夾。
確保自定義模板和示例項(xiàng)目不包含任何受密碼保護(hù)的VI。
確保在.lvproj中引用的所有文件都包含在它們各自的子目錄中。當(dāng)開發(fā)人員嘗試使用“創(chuàng)建項(xiàng)目”對(duì)話框創(chuàng)建模板或示例項(xiàng)目的實(shí)例時(shí),丟失的項(xiàng)目文件可能會(huì)導(dǎo)致問題。
創(chuàng)建和存儲(chǔ)元數(shù)據(jù)
元數(shù)據(jù)定義將出現(xiàn)在“創(chuàng)建項(xiàng)目”對(duì)話框中的內(nèi)容。?LabVIEW可識(shí)別XML格式的元數(shù)據(jù)。?XML文件可以包含一個(gè)或多個(gè)項(xiàng)目的元數(shù)據(jù)。
完成以下步驟為定制項(xiàng)目創(chuàng)建和存儲(chǔ)元數(shù)據(jù):
創(chuàng)建一個(gè)XML文件并添加<MetaData>標(biāo)簽。該標(biāo)簽包含所有項(xiàng)目的元數(shù)據(jù)。
為需要在“創(chuàng)建項(xiàng)目”對(duì)話框中顯示的每個(gè)項(xiàng)目添加一個(gè)<ProjectTemplate>標(biāo)簽。該標(biāo)簽包含每個(gè)項(xiàng)目的元數(shù)據(jù)。
使用以下標(biāo)簽定義各個(gè)模板或示例項(xiàng)目。表格的“示例項(xiàng)目”列列出了使用了該XML標(biāo)簽的項(xiàng)目。請(qǐng)參考位于<LabVIEW>?\?ProjectTemplates?\?MetaData?\?????NILV_Core_TemplateMetaData.xml的文件,以了解現(xiàn)有模板和示例項(xiàng)目如何定義元數(shù)據(jù)。
XML標(biāo)簽
描述
示例項(xiàng)目
必要標(biāo)簽
<Title>
定義在“創(chuàng)建項(xiàng)目”對(duì)話框中顯示的項(xiàng)目標(biāo)題。
所有項(xiàng)目
<Description>
定義在“創(chuàng)建項(xiàng)目”對(duì)話框中顯示的項(xiàng)目描述。
所有項(xiàng)目
<Filters>
確定項(xiàng)目的過濾器,允許用戶按類別過濾“創(chuàng)建項(xiàng)目”對(duì)話框中的項(xiàng)目。使用冒號(hào)分隔類別,使用分號(hào)分隔多個(gè)過濾器。
所有項(xiàng)目
<LocationPath>
指定包含項(xiàng)目源文件的目錄的路徑。使用正斜杠(/)作為路徑分隔符。
此路徑相對(duì)于ProjectTemplates\Source目錄。項(xiàng)目元數(shù)據(jù)中的所有其他路徑都與您在<LocationPath>元素中提供的路徑相關(guān)。
所有項(xiàng)目
<ListboxImagePath>
在創(chuàng)建項(xiàng)目對(duì)話框中,指定LabVIEW要顯示在項(xiàng)目標(biāo)題旁邊的圖像的路徑。確保圖像尺寸為32x32像素。
所有項(xiàng)目
<ProjectPath>
指定項(xiàng)目的.lvproj文件的路徑。如果將<CustomVIMode>的值設(shè)置為AfterPage1,則此標(biāo)簽是可選的。
簡單狀態(tài)機(jī)
可選標(biāo)簽
<Keywords>
確定用戶可以在“創(chuàng)建項(xiàng)目”對(duì)話框的“附加搜索”框中輸入哪些關(guān)鍵字來搜索項(xiàng)目。使用分號(hào)分隔關(guān)鍵字。
所有項(xiàng)目
<DocumentationPath>
指定您創(chuàng)建的HTML文件的路徑,以為項(xiàng)目提供幫助。如果使用此標(biāo)簽,則項(xiàng)目將在描述后顯示“更多信息”鏈接,該鏈接鏈接到HTML文檔。
簡單狀態(tài)機(jī)
<CustomVIMode>
確定在項(xiàng)目創(chuàng)建過程中何時(shí)運(yùn)行自定義VI。從以下值中選擇:
無-不運(yùn)行自定義VI。如果省略<CustomVIMode>標(biāo)簽,則默認(rèn)值為None。
AfterPage1-用戶選擇項(xiàng)目后,“創(chuàng)建項(xiàng)目”對(duì)話框關(guān)閉,自定義VI運(yùn)行。
AfterPage2NoUI-創(chuàng)建項(xiàng)目對(duì)話框的第二頁創(chuàng)建項(xiàng)目后,自定義VI運(yùn)行并完成。然后,關(guān)閉“創(chuàng)建項(xiàng)目”對(duì)話框。
AfterPage2WithUI-創(chuàng)建項(xiàng)目對(duì)話框創(chuàng)建項(xiàng)目后,創(chuàng)建項(xiàng)目對(duì)話框關(guān)閉,自定義VI運(yùn)行。自定義VI負(fù)責(zé)顯示或隱藏其面板。
簡單狀態(tài)機(jī),空白VI,操作者框架
<CustomVIPath>
指定在項(xiàng)目創(chuàng)建過程中要運(yùn)行的自定義VI的路徑。如將<CustomVIMode>標(biāo)簽設(shè)置為“無”,LabVIEW將忽略<CustomVIPath>標(biāo)簽。
注意:要使“創(chuàng)建項(xiàng)目”對(duì)話框調(diào)用嚴(yán)格類型VI,必須將嚴(yán)格類型VI的接線端與labview\ProjectTemplates\Source\Core\Actor??Framework\scripting\TwoTasksMetaDataObj目錄中的PostCopyScripting.vi的接線端進(jìn)行匹配。
操作者框架
<SortPriority>
在“創(chuàng)建項(xiàng)目”對(duì)話框的項(xiàng)目列表中確定項(xiàng)目的順序。
此標(biāo)記的值是一個(gè)索引號(hào),因此值0會(huì)將項(xiàng)目放在列表的頂部。如果多個(gè)項(xiàng)目具有相同的優(yōu)先級(jí)值,LabVIEW將按字母順序?qū)ζ溥M(jìn)行排序。
所有項(xiàng)目
<MetaDataClass>
指定類的路徑,該類為“創(chuàng)建項(xiàng)目”對(duì)話框第二頁的用戶界面定義自定義行為。
操作者框架
<HidePrefix>
確定是否在“創(chuàng)建項(xiàng)目”對(duì)話框的第二頁上隱藏“文件前綴”控件。默認(rèn)值為FALSE。
反饋式蒸發(fā)冷卻器
<HideIconOverlay>
確定是否在“創(chuàng)建項(xiàng)目”對(duì)話框的第二頁上隱藏圖標(biāo)覆蓋控件。默認(rèn)值為FALSE。
反饋式蒸發(fā)冷卻器
將XML文件存儲(chǔ)在ProjectTemplates\MetaData目錄中。
重寫過濾器的排序順序
“創(chuàng)建項(xiàng)目”對(duì)話框第一頁的左窗格列出了您在元數(shù)據(jù)XML文件中指定的所有過濾器。默認(rèn)情況下,LabVIEW列出您按字母順序創(chuàng)建的過濾器。
完成以下步驟以覆蓋過濾器列表的默認(rèn)排序順序:
創(chuàng)建一個(gè)XML文件并添加<CategoryOverrides>標(biāo)簽。該標(biāo)簽包含所有類別重寫數(shù)據(jù)。
為要為其指定自定義排序行為的每個(gè)過濾器添加一個(gè)<Category>標(biāo)簽。該標(biāo)簽包含每個(gè)過濾器的名稱和排序優(yōu)先級(jí)。
對(duì)于每個(gè)過濾器,創(chuàng)建一個(gè)<Name>標(biāo)簽并將其值設(shè)置為您在元數(shù)據(jù)XML文件中使用的過濾器的名稱。
對(duì)于每個(gè)過濾器,創(chuàng)建一個(gè)<Priority>標(biāo)記并根據(jù)所需的行為設(shè)置值。
該標(biāo)簽的值是一個(gè)索引號(hào),因此值0會(huì)將過濾器放在列表的頂部。您為其指定的值小于100的任何父過濾器將顯示在默認(rèn)父過濾器上方,例如“模板”和“示例項(xiàng)目”。如果為任何子過濾器指定值,則該過濾器將顯示在默認(rèn)子過濾器上方,例如“桌面”。
將XML文件存儲(chǔ)在ProjectTemplates\CategoryOverrides目錄中。