本發明涉及設備管理領域,尤其涉及一種基于樹形拓撲結構的設備管理方法。
背景技術:
在當前針對MCU(微處理器)的嵌入式軟件開發領域,對于設備的控制,通常是應用軟件直接操作寄存器的方式來控制,如此,軟件開發人員既要編寫應用邏輯,又要閱讀動則上千頁的硬件手冊來編寫驅動軟件(控制硬件設備的軟件),這些驅動軟件只針對具體的外設編寫,沒有統一的管理,這樣的驅動軟件很難復用。
對于基于RTOS(實時操作系統)的軟件,RTOS可能會提供簡單的設備管理,通常定義了open、read、write、ioctl、close這五個標準函數用于設備的控制。相比直接操作寄存器,這種簡單的設備管理對不同設備進行了統一管理,同時也隔離了應用軟件和驅動軟件,應用軟件只需調用五個標準的控制函數,而驅動軟件只需實現這五個標準控制函數,然后注冊到設備管理就可以了。這種簡單的設備管理方式對于MCU片內的設備管理比較有效,而對于MCU外擴的設備則不能有效管理,其根本問題在于這些設備是獨立管理的,相互之間沒有關聯。
技術實現要素:
本發明實施例提供了一種基于樹形拓撲結構的設備管理方法,解決了現有技術中針對MCU的設備管理缺乏統一的管理,無法形成可廣泛適用、有效管理MCU設備的設備管理方法。
本發明實施例提供的一種基于樹形拓撲結構的設備管理方法,包括:
S1、對設備管理模塊進行初始化;
S2、通過設備管理模塊創建根總線控制器;
S3、通過根總線控制器枚舉根總線上的設備作為根總線設備添加至設備管理模塊,若根總線設備為總線控制器則執行S4步驟;
S4、根據總線控制器創建總線,枚舉總線上的設備作為總線設備添加至設備管理模塊,若總線設備為總線控制器,則重復S4步驟,直到總線上沒有總線控制器。
優選地,步驟S4具體包括:
S41、根據總線控制器創建總線,并查找總線上的設備,若發現新設備,則創建設備成為總線設備,并設置總線設備的父總線為總線控制器的子總線;
S42、添加總線設備至設備管理模塊,并查找與總線設備匹配的驅動,若找到匹配的驅動,將匹配的驅動關聯到總線設備上,并將總線設備添加到總線設備的父總線的已知設備列表,并執行總線設備的初始化方法;若總線設備為總線控制器,則視為總線控制器設備,并重復S41和S42步驟,直到總線上沒有總線控制器。
優選地,還包括:
S5、將驅動添加到設備管理模塊的驅動列表中,并遍歷相同總線類型的設備,若找到未知設備,則將驅動與未知設備進行匹配,若匹配,則將未知設備從未知設備的父總線上的未知設備列表中刪除,并將未知設備添加到未知設備的父總線上的已知設備列表中。
優選地,還包括:
S6、將總線類型添加到設備管理模塊的總線類型列表中,遍歷所有未知總線,并將遍歷找到的未知總線添加到設備管理模塊進行添加總線;
添加總線包括將總線控制器與總線相互關聯,并查找與總線匹配的總線類型,若找到匹配的總線類型,則將總線類型關聯到總線,并將總線添加到總線類型的總線列表中;再遍歷總線上的未知設備,在設備管理模塊的驅動列表中查找與未知設備相匹配的驅動,若匹配,則將未知設備從未知設備的父總線上的未知設備列表中刪除,并將未知設備添加到未知設備的父總線上的已知設備列表中;
若未找到匹配的總線類型,則將總線添加到設備管理模塊的未知總線列表中。
優選地,還包括:
通過總線控制器進行移除設備和移除總線;
移除設備包括:若移除的設備為已知設備時,調用設備的卸載方法,并將設備從設備的父總線的已知設備列表中刪除;若移除的設備為總線控制器時,先移除總線控制器的總線,再移除總線控制器;
若移除的設備為未知設備時,將設備從設備的總線的未知設備列表中刪除,并釋放設備占用的內存資源;
移除總線包括:遍歷總線的已知設備列表和未知設備列表,若找到設備,則將設備從設備管理模塊中移除,再將總線從總線類型的總線列表中刪除,解除總線與總線控制器的關聯,釋放總線占用的內存等資源。
優選地,還包括:
查找設備,查找設備具體包括:在設備管理模塊中獲取一個總線類型,根據總線類型獲取一個總線,根據總線獲取一個設備,并檢查設備的設備名和單元號是否與所需查找的設備的設備名和單元號匹配,若匹配則結束查找設備,否則重新進行查找設備。
優選地,還包括:
調用設備,調用設備包括:查找設備,并在找到設備后,在設備的方法列表中查找與設備匹配的方法,若找到匹配的方法,則調用方法的處理函數,并結束調用設備;若未找到匹配的方法,則結束調用設備。
優選地,還包括:
查找與設備匹配的驅動,具體步驟包括:檢查設備的父總線是否為未知總線,若為未知總線則結束查找過程,否則從設備管理模塊的驅動列表獲取一個驅動并判斷驅動是否與設備匹配成功,若驅動匹配成功則結束查找過程,否則重新從設備管理模塊的驅動列表獲取一個驅動并判斷驅動是否與設備匹配成功;若沒有從設備管理模塊獲取驅動,則結束查找過程。
優選地,還包括:
驅動與設備的匹配,具體步驟包括:檢查驅動與設備的總線類型ID是否相同:若相同,則調用總線類型的匹配方法檢查驅動與設備是否匹配:若匹配,則調用驅動的設備探測方法檢查是否驅動是否支持設備:若探測成功,則匹配成功,并結束匹配過程,若探測失敗,則匹配失敗,并結束匹配過程;若不匹配,則匹配失敗,結束匹配過程;若不相同,則匹配失敗,結束匹配過程。
優選地,還包括:
查找與總線匹配的總線類型,具體步驟包括:在設備管理的總線類型列表中獲取一個總線類型:若獲取得總線類型,則檢查總線類型與總線的總線類型ID是否匹配:若匹配,則找到匹配的總線類型,結束查找過程;若不匹配,則重新在設備管理的總線類型列表中獲取一個總線類型進行查找;若未獲取得總線類型,則結束查找。
從以上技術方案可以看出,本發明實施例具有以下優點:
本發明實施例提供了一種基于樹形拓撲結構的設備管理方法,包括:S1、對設備管理模塊進行初始化;S2、通過設備管理模塊創建根總線控制器;S3、通過根總線控制器枚舉根總線上的設備作為根總線設備添加至設備管理模塊,若根總線設備為總線控制器則執行S4步驟;S4、根據總線控制器創建總線,枚舉總線上的設備作為總線設備添加至設備管理模塊,若總線設備為總線控制器,則重復S4步驟,直到總線上沒有總線控制器,本發明實施例通過創建根總線控制器,并在根總線上查找、添加設備,并且在設備為總線控制器的情況下,繼續創建總線、查找、添加設備,如此延續、拓展,使得各種設備形成有秩序的、容易查找、管理的樹形拓撲,解決了現有技術中針對MCU的設備管理缺乏統一的管理,無法形成可廣泛適用、有效管理MCU設備的設備管理方法。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲取其它的附圖。
圖1為本發明實施例提供的一種基于樹形拓撲結構的設備管理方法的一個實施例的流程示意圖;
圖2為本發明實施例提供的嵌入式系統硬件的拓撲結構;
圖3為本發明實施例提供的與真實設備一一對應的軟件環境中的拓撲結構;
圖4為本發明實施例提供的軟件環境中的抽象拓撲結構;
圖5為本發明實施例提供的軟件環境中的設計類圖;
圖6為本發明實施例提供的創建根總線控制器示意圖;
圖7為本發明實施例提供的枚舉設備流程示意圖;
圖8為本發明實施例提供的添加設備流程示意圖;
圖9為本發明實施例提供的注冊驅動流程示意圖;
圖10為本發明實施例提供的添加總線流程示意圖;
圖11為本發明實施例提供的移除設備流程示意圖;
圖12為本發明實施例提供的移除總線流程示意圖;
圖13為本發明實施例提供的查找設備流程示意圖;
圖14為本發明實施例提供的調用設備方法流程示意圖;
圖15為本發明實施例提供的查找與設備匹配的驅動流程示意圖;
圖16為本發明實施例提供的匹配驅動的流程示意圖;
圖17為本發明實施例提供的查找與總線匹配的總線類型流程示意圖。
具體實施方式
本發明實施例提供了一種基于樹形拓撲結構的設備管理方法,用于解決現有技術中針對MCU的設備管理缺乏統一的管理,無法形成可廣泛適用、有效管理MCU設備的設備管理方法。
為使得本發明的發明目的、特征、優點能夠更加的明顯和易懂,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,下面所描述的實施例僅僅是本發明一部分實施例,而非全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲取的所有其它實施例,都屬于本發明保護的范圍。
請參閱圖1,本發明實施例提供的一種基于樹形拓撲結構的設備管理方法的一個實施例,包括:
S1、對設備管理模塊進行初始化;
S2、通過設備管理模塊創建根總線控制器;
S3、通過根總線控制器枚舉根總線上的設備作為根總線設備添加至設備管理模塊,若根總線設備為總線控制器則執行S4步驟;
S4、根據總線控制器創建總線,枚舉總線上的設備作為總線設備添加至設備管理模塊,若總線設備為總線控制器,則重復S4步驟,直到總線上沒有總線控制器。
以上為對本發明實施例提供的一種基于樹形拓撲結構的設備管理方法的詳細描述,以下將對本發明實施例提供的一種基于樹形拓撲結構的設備管理方法的過程進行詳細的描述。
首先,請參閱圖2,為嵌入式系統硬件的拓撲結構。
圖2展示了某個嵌入式系統硬件的拓撲結構,可以發現設備之間其實是一種樹形關系。圖中不區分CPU的具體類型,把CPU直接控制的總線統稱為PLB(Processor LocalBus,CPU本地總線)。在PLB總線上掛有很多外設,這些外設實現了各種各樣的功能,例如GPIO、ADC等等。在SOC芯片的設計中,這些外設和CPU封裝在同一個芯片中,如ARM芯片LPC1114。通常把CPU所在芯片內部的范圍叫做片內,把芯片外部的范圍叫做片外。在這些片內外設中,有些外設是總線控制器,如I2C、SPI等等。總線控制器可擴展出一條總線到片外,在外擴出的這條總線上又可以掛接符合該總線接口的IC(外設)。這些IC所處的物理位置可能在核心板上,也可能在用戶底板上或其它地方,如圖2中的CAT9555和CAT24C04芯片所示。如果IC又是總線控制器的話,那么又可以增加一級總線,如圖2中SC18IS602B所示。從理論上講,通過添加總線控制器,可以將系統的總線層次無限地增加,即系統的功能外設可無限擴展。
本發明的思路為對嵌入式系統硬件設備拓撲結構進行合適的抽象,使得在軟件運行時能夠準確還原設備的拓撲結構,如圖3所示,在軟件環境中建立了與真實設備一一對應的拓撲結構。
對圖3做進一步抽象,不考慮設備的物理位置以及具體功能,即可得到如圖4所示的抽象拓撲結構。
仔細觀察圖4,可發現這種樹形的拓撲結構實際上是一種模式的重復,做進一步概念提煉和設計可得到如圖5所示的設計類圖。
以下將針對本發明中的一些模塊及功能進行詳細的介紹。
應用軟件:任何需要使用設備管理的軟件都稱之為應用軟件。
設備管理模塊:設備管理是對系統中的設備進行管理的功能模塊。
設備模塊屬性如下:
●驅動列表:用于存放所有注冊的驅動。
●總線類型列表:用于存放所有注冊的總線類型。
●未知總線列表:用于存放所有沒有成功匹配總線類型的總線。
方法:
●注冊驅動:將驅動注冊到設備管理。
●注冊總線類型:注冊總線類型到設備管理。
●添加設備:向設備管理添加設備,通常由總線控制器調用。
●添加總線:向設備管理添加總線。
●查找設備:根據設備名和單元號查找設備。
●調用設備方法:根據方法名調用指定設備的方法。
●移除設備:從設備管理移除指定的設備。
●移除總線:從設備管理移除指定的總線。
設備:設備是對真實或虛擬設備的抽象,具有如下屬性:
●設備名:設備的名字,用于將不同種類的設備區分開來,此屬性由總線控制器設置。
●設備單元號:用于區分設備名相同的設備,此屬性由總線控制器設置。
●總線類型ID:用于指明設備掛載在何種類型的總線上,此屬性由總線控制器設置。
●驅動:對驅動的引用,當設備與驅動匹配時,此屬性由設備管理設置。
●父總線:對設備父總線的引用,此屬性由總線控制器設置。
●方法列表:方法列表存放設備能夠提供給其它模塊或應用程序調用的方法,方法是方法名和處理函數的組合,能夠通過方法名找到對應的處理函數,方法列表由驅動設置。
驅動:驅動是訪問和控制設備的軟件程序,每個驅動可與多個設備關聯。驅動屬性:
●驅動名:驅動的名字。
●驅動類型:標識驅動為總線控制器驅動或設備驅動。
●總線類型ID:指明驅動屬于哪一類總線類型下的驅動。
驅動方法:
●設備初始化:對設備進行初始化操作。
●設備移除:對設備進行移除操作。
●設備探測:判斷驅動與設備是否匹配。
●其它方法:由驅動定義的其它方法。
總線控制器:總線控制器繼承于設備,具有設備的所有特性,另外擁有一條子總線。
屬性:
●包括設備的所有屬性。
●子總線:總線控制器所對應的總線,其上可掛載多個設備或總線控制器。
總線:總線是對真實或虛擬總線的抽象,它具有掛載多個設備的能力,每條總線都有一個對應的總線控制器,還有一個對應的總線類型,若沒有對應的總線類型,則被稱為未知總線。
屬性:
●總線控制器:對總線控制器的引用,此屬性由設備管理設置。
●總線類型:對總線類型的引用,此屬性由設備管理設置。
●單元號:用于區分總線類型相同的不同總線。
●已知設備列表:用于存放總線上驅動匹配成功的設備。
●未知設備列表:用于存放總線上驅動匹配失敗的設備。
總線類型:總線類型是對某一類總線的抽象,歸納實現了某類總線的控制方法。
屬性:
●總線類型ID:總線類型的標識,用于將不同種類的總線區分開來。
●總線列表:用于存放總線類型ID相同的總線。
方法:
●匹配方法:在總線控制器查找設備驅動時,用于檢查驅動與設備是否匹配。
以上為對本發明中的一些模塊及功能進行的詳細介紹,以下將針對本發明實施例提供的基于樹形拓撲結構的設備管理方法的具體實施步驟進行詳細的描述。
本發明實施例提供的一種基于樹形拓撲結構的設備管理方法的另一個實施例,包括:
S1、對設備管理模塊進行初始化;
首先,根據應用軟件對設備管理模塊進行初始化。
S2、通過設備管理模塊創建根總線控制器;
請參閱圖6,在根據應用軟件對設備管理進行初始化之后,由于根總線控制器為樹形設備拓撲結構的根節點,且其沒有父總線,所以由設備管理模塊創建,因此通過設備管理模塊創建根總線控制器。
S3、通過根總線控制器枚舉根總線上的設備作為根總線設備添加至設備管理模塊,若根總線設備為總線控制器則執行S4步驟;
請參閱圖7,為枚舉設備流程圖。通過設備管理模塊創建好根總線控制器之后,先通過根總線控制器枚舉根總線上的設備,并添加至設備管理模塊上成為根總線設備(即根總線上的設備),若根總線設備為總線控制器則視為總線控制器設備。其中,枚舉設備的步驟具體如下:
1.總線控制器查找總線上的設備:
2.若發現新設備:
2.1創建設備,設置設備的父總線為總線控制器的子總線。
2.2將創建好的設備添加到設備管理。
S41、根據總線控制器創建總線,并查找總線上的設備,若發現新設備,則創建設備成為總線設備,并設置總線設備的父總線為總線控制器的子總線;
如果在根總線/總線上枚舉、添加的設備(根總線設備/總線設備)為總線控制器,則根據總線控制器設備創建總線,并查找總線上的設備,若發現新設備,則創建設備成為總線設備(即總線上的設備),并設置總線設備的父總線為總線控制器的子總線。
S42、添加總線設備至設備管理模塊,并查找與總線設備匹配的驅動,若找到匹配的驅動,將匹配的驅動關聯到總線設備上,并將總線設備添加到總線設備的父總線的已知設備列表,并執行總線設備的初始化方法;若總線設備為總線控制器,則視為總線控制器設備,并重復S41和S42步驟,直到總線上沒有總線控制器。
請參閱圖8,在查找得總線設備后,添加總線設備至設備管理模塊,并查找與總線設備匹配的驅動,若找到匹配的驅動,將匹配的驅動關聯到總線設備上,并將總線設備添加到總線設備的父總線的已知設備列表,并執行總線設備的初始化方法;若總線設備為總線控制器,則視為總線控制器設備,并重復S41和S42步驟,直到總線上沒有總線控制器。通過創建根總線控制器,并在根總線上查找、添加設備,并且在設備為總線控制器的情況下,繼續創建總線、查找、添加設備,如此延續、拓展,使得各種設備形成有秩序的、容易查找、管理的樹形拓撲。
S5、將驅動添加到設備管理模塊的驅動列表中,并遍歷相同總線類型的設備,若找到未知設備,則將驅動與未知設備進行匹配,若匹配,則將未知設備從未知設備的父總線上的未知設備列表中刪除,并將未知設備添加到未知設備的父總線上的已知設備列表中。
請參閱圖9,應用軟件可在任意時刻將驅動注冊到設備管理模塊,其步驟如下:將驅動添加到設備管理模塊的驅動列表中,并遍歷相同總線類型的設備,若找到未知設備,則將未知設備從未知設備的父總線上的未知設備列表中刪除,并將未知設備添加到設備管理模塊。
S6、將總線類型添加到設備管理模塊的總線類型列表中,遍歷所有未知總線,并將遍歷找到的未知總線添加到設備管理模塊進行添加總線;
添加總線包括將總線控制器與總線相互關聯,并查找與總線匹配的總線類型,若找到匹配的總線類型,則將總線類型關聯到總線,并將總線添加到總線類型的總線列表中;再遍歷總線上的未知設備,在設備管理模塊的驅動列表中查找與未知設備相匹配的驅動,若匹配,則將未知設備從未知設備的父總線上的未知設備列表中刪除,并將未知設備添加到未知設備的父總線上的已知設備列表中;
若未找到匹配的總線類型,則將總線添加到設備管理模塊的未知總線列表中。
請參閱圖10,添加總線通常由總線控制器調用,具體步驟如下:
1.將總線控制器與總線相互關聯。
2.查找與總線匹配的總線類型:
2.1若找到匹配的總線類型:
2.1.1將總線類型關聯到總線。
2.1.2將總線添加到總線類型的總線列表中。
2.1.3遍歷總線上的未知設備:
2.1.3.1若找到未知設備:
2.1.3.1.1將設備從其父總線的未知設備列表中刪除。
2.1.3.1.2將設備添加到設備管理。
2.2若未找到匹配的總線類型,則將總線添加到設備管理的未知總線列表中。
進一步地,還包括:
通過總線控制器進行移除設備和移除總線;
請參閱圖11,移除設備包括:若移除的設備為已知設備時,調用設備的卸載方法,并將設備從設備的父總線的已知設備列表中刪除;若移除的設備為總線控制器時,先移除總線控制器的總線,再移除總線控制器;
若移除的設備為未知設備時,將設備從設備的總線的未知設備列表中刪除,并釋放設備占用的內存資源;
請參閱圖12,移除總線包括:遍歷總線的已知設備列表和未知設備列表,若找到設備,則將設備從設備管理模塊中移除,再將總線從總線類型的總線列表中刪除,解除總線與總線控制器的關聯,釋放總線占用的內存等資源。
請參閱圖13,進一步地,還包括:
查找設備,查找設備具體包括:在設備管理模塊中獲取一個總線類型,根據總線類型獲取一個總線,根據總線獲取一個設備,并檢查設備的設備名和單元號是否與所需查找的設備的設備名和單元號匹配,若匹配則結束查找設備,否則重新進行查找設備。其具體步驟如下:
1.在設備管理的總線類型列表中取出(下)一個總線類型:
1.1若取得一個總線類型:
1.1.1在總線類型的總線列表中取出(下)一個總線:
1.1.1.1若取得一個總線:
1.1.1.1.1在總線的設備列表中取出(下)一個設備:
1.1.1.1.1.1若取得一個設備:
1.1.1.1.1.1.1檢查設備的設備名和單元號是否與要查找的設備名和單元號匹配:
1.1.1.1.1.1.1.1若匹配,則找到設備,跳轉到步驟2.
1.1.1.1.1.1.1.2若不匹配,則跳轉到步驟1.1.1.1.1
1.1.1.1.1.2若沒有取得設備,則跳轉到步驟1.1.1
1.1.1.2若沒有取得總線,則跳轉到步驟1.
1.2若沒有取得總線類型,則未找到設備,跳轉至步驟3.
2.結束(找到設備)
3.結束(未找到設備)
請參閱圖14,進一步地,還包括:
調用設備,調用設備包括:查找設備,并在找到設備后,在設備的方法列表中查找與設備匹配的方法,若找到匹配的方法,則調用方法的處理函數,并結束調用設備;若未找到匹配的方法,則結束調用設備。具體步驟如下:
1.查找設備:
1.1若找到設備:
1.1.1在設備的方法列表中查找與方法名匹配的方法:
1.1.1.1若找到匹配的方法,則調用方法的處理函數,然后跳轉到步驟2
1.1.1.2若未找到匹配的方法,則直接跳轉到步驟2
1.2若未找到設備
2.結束
請參閱圖15,進一步地,還包括:
查找與設備匹配的驅動,具體步驟包括:檢查設備的父總線是否為未知總線,若為未知總線則結束查找過程,否則從設備管理模塊的驅動列表獲取一個驅動并判斷驅動是否與設備匹配成功,若驅動匹配成功則結束查找過程,否則重新從設備管理模塊的驅動列表獲取一個驅動并判斷驅動是否與設備匹配成功;若沒有從設備管理模塊獲取驅動,則結束查找過程。具體步驟如下:
1.檢查設備的父總線是否是未知總線:
1.1若是未知總線,則直接跳轉到步驟2
1.2若不是未知總線:
1.2.1從設備管理的驅動列表中取得(下)一個驅動:
1.2.1.1若取得驅動,則判斷驅動是否匹配(細化步驟請參考1.4.12):
1.2.1.1.1若驅動匹配成功,則跳轉到步驟3
1.2.1.1.2若驅動匹配失敗,則跳轉到步驟1.2.1
1.2.1.2若沒有取得驅動,則跳轉到步驟2
2.結束(未找到與設備匹配的驅動)
3.結束(找到與設備匹配的驅動)
請參閱圖16,進一步地,還包括:
驅動與設備的匹配,具體步驟包括:檢查驅動與設備的總線類型ID是否相同:若相同,則調用總線類型的匹配方法檢查驅動與設備是否匹配:若匹配,則調用驅動的設備探測方法檢查是否驅動是否支持設備:若探測成功,則匹配成功,并結束匹配過程,若探測失敗,則匹配失敗,并結束匹配過程;若不匹配,則匹配失敗,結束匹配過程;若不相同,則匹配失敗,結束匹配過程。具體步驟如下:
1.檢查驅動和設備的總線類型ID是否相同:
1.1若相同,再調用總線類型的匹配方法檢查驅動與設備是否匹配:
1.1.1若匹配,再調用驅動的設備探測方法檢查是否驅動是否支持設備:
1.1.1.1若探測成功,則匹配成功,跳轉到步驟2
1.1.1.2若探測失敗,則匹配失敗,跳轉到步驟3
1.1.2若不匹配,則匹配失敗,跳轉到步驟3
1.2若不相同,則匹配失敗,跳轉到步驟3
2.結束(匹配成功)
3.失敗(匹配失敗)
請參閱圖17,進一步地,還包括:
查找與總線匹配的總線類型,具體步驟包括:在設備管理的總線類型列表中獲取一個總線類型:若獲取得總線類型,則檢查總線類型與總線的總線類型ID是否匹配:若匹配,則找到匹配的總線類型,結束查找過程;若不匹配,則重新在設備管理的總線類型列表中獲取一個總線類型進行查找;若未獲取得總線類型,則結束查找。具體步驟如下:
1.在設備管理的總線類型列表中取(下)一個總線類型:
1.1若取得總線類型,則堅持總線類型與總線的總線類型ID是否匹配:
1.1.1若匹配,則找到了匹配的總線類型,跳轉到步驟2
1.1.2若不匹配,則跳轉到步驟1.
1.2若未取得總線類型,則跳轉到步驟3
2.結束(找到了匹配的總線類型)
3.結束(未找到匹配的總線類型)
相比現有技術,本發明提供的基于樹形拓撲結構的設備管理方法具有的優勢如下:
1.能夠在軟件運行時完整重建真實的樹形設備拓撲結構;
2.能最大限度地復用驅動,極大簡化了驅動程序的編寫;
3.應用只需知道設備的名字和單元號即可控制設備,而不用關心設備的實際位置;
4.當移除一個設備時,能夠自動移除其下游總線及設備;
5.能夠應用于任何總線及其之上設備的管理,比如USB、PCI-E總線等。
以上所述,以上實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精神和范圍。