專利名稱:一種儀器屬性的錯誤識別方法
技術(shù)領(lǐng)域:
本發(fā)明涉及儀器驅(qū)動技術(shù)領(lǐng)域,尤其涉及一種用于儀器驅(qū)動軟件的儀器屬性的錯誤識別方法。
背景技術(shù):
在數(shù)據(jù)采集應(yīng)用中,實現(xiàn)軟件對儀器使用狀態(tài)的錯誤識別,并及時給用戶錯誤信息提示是非常重要的,只有具有全面、可靠的錯誤識別機制,才能保證儀器在允許的狀態(tài)下工作,避免出現(xiàn)誤操作,造成儀器損害或系統(tǒng)崩潰。目前,一般的儀器軟件的錯誤識別只針對某ー特定的儀器,當(dāng)儀器對象改變時,就要重新開發(fā)軟件,造成人力和財カ的浪費。同時,用戶必須對儀器性能指標有充分的了解,避免誤操作。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了一種儀器屬性的錯誤識別方法,采用儀器屬性鏈表和錯誤判斷的結(jié)合,解決上述弊端,實現(xiàn)錯誤識別方法的通用性。為了解決上述技術(shù)問題,本發(fā)明是這樣實現(xiàn)的:一種儀器屬性的錯誤識別方法,包括:S00,歸納出已有相同類型儀器的功能類型,針對每類功能確定該功能類型下所有可能的性能屬性;S01,建立儀器屬性鏈表,步驟SOO中歸納出的每種功能對應(yīng)ー個儀器屬性鏈表,儀器屬性鏈表的每ー個結(jié)點對應(yīng)ー個儀器,每個結(jié)點中的元素包含相應(yīng)功能下的所有可能的性能屬性;根據(jù)儀器屬性填寫儀器屬性鏈表;S02,在驅(qū)動軟件中定義所支持的儀器的信息,包括儀器代號、儀器所具有功能和儀器屬性鏈表地址;S03,當(dāng)用戶配置儀器硬件吋,向驅(qū)動軟件輸入待配置儀器的配置屬性,驅(qū)動軟件根據(jù)儀器代號判斷待配置儀器是否屬于驅(qū)動軟件所支持的儀器,并且根據(jù)儀器所具有功能判斷用戶輸入的配置屬性是否隸屬于待配置儀器所具有的功能;如果兩項判斷均滿足,則根據(jù)儀器屬性鏈表地址從相應(yīng)功能的儀器屬性鏈表中讀取配置屬性的屬性值,判斷用戶配置的屬性是否與讀取的屬性值相匹配,如果是,則繼續(xù)進行硬件配置,否則,提示錯誤;如果兩項并非均滿足,則直接提示錯誤。優(yōu)選地,步驟S02中在定義儀器所具有功能時,采用數(shù)字表示;假設(shè)儀器功能共有N項,則每項功能的標識值采用2n表示,n取I到N中的整數(shù),不同儀器功能的標識值不同;則儀器所具有功能為每項功能標識值之和;所述S03中,當(dāng)根據(jù)儀器所具有功能判斷用戶輸入的配置屬性是否隸屬于待配置儀器所具有的功能時,先根據(jù)儀器所具有功能的數(shù)值反向解析儀器所具有的功能類型,然后進行判斷。優(yōu)選地,在填寫儀器屬性鏈表時,當(dāng)儀器不具有某項屬性,則在該屬性處填寫表示不具有該項屬性的警告代碼;當(dāng)儀器不具有某項屬性中的某個具體屬性值時,則在該具體屬性值的填寫處填寫表示不具有該項屬性值的警告代碼;步驟S03中,所述判斷用戶配置的屬性是否與讀取的屬性值相匹配具體為:如果讀取的數(shù)值為警告代碼,則進行相應(yīng)錯誤提示;如果讀取的數(shù)值為屬性值,則判斷該屬性值是否符合用戶配置,如果是,則確認配置信息正確,繼續(xù)進行硬件配置,否則,進行相應(yīng)錯誤提示。有益效果:本發(fā)明先針對同類儀器分析其可能的所有功能和屬性,針對每項功能構(gòu)建鏈表,鏈表中結(jié)點結(jié)構(gòu)相同,均包含功能下所有可能的屬性。因此構(gòu)建的鏈表適用于同類的所有儀器,并非只針對某一特定的儀器,當(dāng)儀器對象改變時,不需要重新開發(fā)軟件,避免了人力和財カ的浪費。此外,所有的錯誤判斷由驅(qū)動軟件完成,不需要用戶對儀器性能指標有充分的了解,避免誤操作。
圖1為本發(fā)明儀器屬性的錯誤識別方法的流程圖。圖2為Al功能的鏈表。圖3為AO功能的鏈表。圖4為DI功能的鏈表。
具體實施例方式該方法具有通用性,不僅面對ー種數(shù)據(jù)采集儀器實現(xiàn)錯誤識別;該方法具有可靠性,錯誤判斷算法與儀器屬性緊密結(jié)合,確保錯誤判定的可靠性,當(dāng)發(fā)生錯誤時,能保證儀器正常工作或正確停止運行,避免系統(tǒng)崩潰或異常退出;該方法支持驅(qū)動函數(shù)提供詳細的錯誤提示,用戶無需對儀器功能指標有詳細的了解,當(dāng)用戶操作錯誤時,例如,設(shè)置儀器エ作上限超出儀器允許范圍時,軟件將及時向用戶發(fā)出詳細的提示信息,通知用戶儀器允許的操作范圍。下面結(jié)合附圖并舉實施例,對本發(fā)明進行詳細描述。圖1為本發(fā)明儀器屬性的錯誤識別方法的流程圖,如圖1所示,該方法包括以下步驟:S00,歸納出已有相同類型儀器的功能類型,針對每類功能確定該功能類型下所有可能的性能屬性。本實施例以數(shù)據(jù)采集儀器為例對本步驟SOO進行舉例描述:目前數(shù)據(jù)采集類儀器的功能能夠歸納出如下6項:模擬輸入功能、模擬輸出功能、數(shù)字輸入功能、數(shù)字輸出功能、定時器/計數(shù)器輸入功能、定時器/計數(shù)器輸出功能。上述每項功能都具有多種性能屬性。但是對于不同儀器來說,即便功能相同,功能具有的性能屬性也不一定相同。
以“模擬輸入功能”為例,儀器的屬性包括通道類型、通道個數(shù)、通道名稱、測量設(shè)備類型、単位、耦合方式、阻抗、増益、輸入方式(終端類型)、是否低通濾波、允許最大值、允許最小值。對于儀器A其具有其中全部性能屬性,對于儀器B來說只具有其中部分。具有同種功能的儀器差異在于儀器的性能屬性,可能儀器A的輸入方式包括參考單端、非參考單端、差分、偽差分,儀器B的輸入方式可能僅包括差分方式。為了便于在程序中引用不同的輸入方式,采用宏定義方式定義所有性能屬性取值,例如:
#defme Attribute—RSE10083 // 單端
#defme Attribute—NRSE10078 // 難單端
ffdefme Attribute—Diff10106// 差分
#define Attribute PseudoDiff12529 // 偽差分S01,編寫儀器屬性鏈表,建立儀器資源架構(gòu)。如前所述,不同的儀器是有著相互聯(lián)系的,因為它們可能具有相同的儀器屬性。因此,采用鏈表記載儀器屬性信息,步驟SOO中歸納出的每種功能對應(yīng)ー個儀器屬性鏈表,鏈表的ー個結(jié)點為ー個儀器,每個結(jié)點中的元素包含相應(yīng)功能下的所有可能的性能屬性。由于儀器屬性可以是數(shù)值類型、字符類型、數(shù)組類型等,因此以結(jié)構(gòu)體變量作為鏈表結(jié)點最為合適,定義如下:
struct AIDevice /*定義模擬輸入儀器屬性信息資源鏈表*/
{
intAddr;
unsmnedModuieName; mt32ProductCategory;
BOOLChanneIType;
unsignedChannelN um;
float64MaxVa I ue;
f!oat64MinValue;
structAIDevice sisIiext;
};例如建立模擬輸入功能(Al)鏈表,鏈表內(nèi)容包括所有模擬輸入通道屬性,如圖2所示,圖3為模擬輸出功能(AO)資源鏈表,圖4為數(shù)字輸入功能(DI)資源鏈表。在資源鏈表中,可以定義一些不屬于儀器屬性和錯誤內(nèi)容的代碼,以便更好的識別資源。例如整形-2111代表不具有某項屬性,-1111代表不具有某個屬性值;字符型""表示不具有某內(nèi)容。通過鏈表不同的儀器有機的聯(lián)系在一起,實現(xiàn)了對不同儀器屬性的統(tǒng)ー管理。通過對鏈表的插入、刪除、查詢、比對、修改等實現(xiàn)對儀器屬性的管理。鏈表的大小能夠動態(tài)分配,可以增減結(jié)點數(shù)量,避免內(nèi)存浪費。S02,在驅(qū)動軟件中定義所支持的儀器的信息,包括儀器代號、儀器所具有功能和儀器屬性鏈表地址。具體的實現(xiàn)方法為建立儀器結(jié)構(gòu)體數(shù)組,如表I所示,內(nèi)容包含驅(qū)動軟件支持的所有儀器的代號、儀器所具有功能和儀器在鏈表中的地址,獲悉儀器的鏈表址后,可以在不同的鏈表中查找到儀器的相關(guān)屬性信息。表I儀器結(jié)構(gòu)體數(shù)組
權(quán)利要求
1.一種儀器屬性的錯誤識別方法,其特征在于,包括: SOO,歸納出已有相同類型儀器的功能類型,針對每類功能確定該功能類型下所有可能的性能屬性; SOl,建立儀器屬性鏈表,步驟SOO中歸納出的每種功能對應(yīng)ー個儀器屬性鏈表,儀器屬性鏈表的每ー個結(jié)點對應(yīng)ー個儀器,每個結(jié)點中的元素包含相應(yīng)功能下的所有可能的性能屬性;根據(jù)儀器屬性填寫儀器屬性鏈表; S02,在驅(qū)動軟件中定義所支持的儀器的信息,包括儀器代號、儀器所具有功能和儀器屬性鏈表地址; S03,當(dāng)用戶配置儀器硬件吋,向驅(qū)動軟件輸入待配置儀器的配置屬性,驅(qū)動軟件根據(jù)儀器代號判斷待配置儀器是否屬于驅(qū)動軟件所支持的儀器,并且根據(jù)所述儀器所具有功能判斷用戶輸入的配置屬性是否隸屬于待配置儀器所具有的功能; 如果兩項判斷均滿足,則根據(jù)所述儀器屬性鏈表地址從相應(yīng)功能的儀器屬性鏈表中讀取配置屬性的屬性值,判斷用戶配置的屬性是否與讀取的屬性值相匹配,如果是,則繼續(xù)進行硬件配置,否則,提示錯誤; 如果兩項并非均滿足,則直接提示錯誤。
2.按權(quán)利要求1所述的方法,其特征在于,步驟S02中在定義儀器所具有功能時,采用數(shù)字表示;假設(shè)儀器功能共有N項,則每項功能的標識值采用2n表示,n取I到N中的整數(shù),不同儀器功能的標識值不同;則儀器所具有功能為每項功能標識值之和; 所述S03中,當(dāng)根據(jù)儀器所具有功能判斷用戶輸入的配置屬性是否隸屬于待配置儀器所具有的功能時,先根據(jù)儀器所具有功能的數(shù)值反向解析儀器所具有的功能類型,然后進行判斷。
3.按權(quán)利要求1所述的方法,其特征在于,在填寫儀器屬性鏈表吋,當(dāng)儀器不具有某項屬性,則在該屬性處填寫表示不具有該項屬性的警告代碼;當(dāng)儀器不具有某項屬性中的某個具體屬性值時,則在該具體屬性值的填寫處填寫表示不具有該項屬性值的警告代碼; 步驟S03中,所述判斷用戶配置的屬性是否與讀取的屬性值相匹配具體為:如果讀取的數(shù)值為警告代碼,則進行相應(yīng)錯誤提示;如果讀取的數(shù)值為屬性值,則判斷該屬性值是否符合用戶配置,如果是,則確認配置信息正確,繼續(xù)進行硬件配置,否則,進行相應(yīng)錯誤提/Jn o
全文摘要
本發(fā)明公開了一種儀器屬性的錯誤識別方法,首先,歸納出已有相同類型儀器的功能類型,針對每類功能確定該功能類型下所有可能的性能屬性;建立儀器屬性鏈表,每種功能對應(yīng)一個儀器屬性鏈表,儀器屬性鏈表的每一個結(jié)點對應(yīng)一個儀器,每個結(jié)點中的元素包含相應(yīng)功能下的所有可能的性能屬性;在驅(qū)動軟件中定義所支持的儀器的信息,包括儀器代號、儀器所具有功能和儀器屬性鏈表地址;當(dāng)用戶配置儀器硬件時,向驅(qū)動軟件輸入待配置儀器的配置屬性,根據(jù)驅(qū)動軟件中的儀器定義以及儀器屬性鏈表對配置屬性進行驗證,如果驗證發(fā)現(xiàn)用戶配置信息不屬于該儀器,則提示錯誤。本發(fā)明采用儀器屬性鏈表和錯誤判斷的結(jié)合,實現(xiàn)錯誤識別方法的通用性。
文檔編號G06F11/36GK103092752SQ20121057251
公開日2013年5月8日 申請日期2012年12月25日 優(yōu)先權(quán)日2012年12月25日
發(fā)明者張偉楠, 許崴稚, 胡志臣, 楚艷麗, 楊立杰 申請人:北京航天測控技術(shù)有限公司