驅(qū)動程序的調(diào)用方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種驅(qū)動程序的調(diào)用方法及系統(tǒng)。所述方法及系統(tǒng)用于智能終端。根據(jù)所述方法,所述系統(tǒng)基于所述智能終端中各硬件的注冊操作,獲取各硬件的驅(qū)動信息;從預(yù)設(shè)的驅(qū)動信息與標(biāo)準(zhǔn)驅(qū)動信息的轉(zhuǎn)換器集合中,選取對應(yīng)所獲取的各驅(qū)動信息的轉(zhuǎn)換器;利用所選擇的轉(zhuǎn)換器,為上層應(yīng)用程序與相應(yīng)驅(qū)動程序之間提供數(shù)據(jù)傳輸。本發(fā)明實現(xiàn)了在更換不同硬件時,無需更改配套的驅(qū)動程序和硬件抽象層的接口,為用戶更換智能終端中的硬件提供了極大的方便。
【專利說明】
驅(qū)動程序的調(diào)用方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明實施例涉及計算處理技術(shù),尤其涉及一種驅(qū)動程序的調(diào)用方法及系統(tǒng)?!颈尘凹夹g(shù)】
[0002]隨著智能終端的廣泛應(yīng)用,智能終端在生產(chǎn)時由于各硬件的價格、供貨不足等因素,需要同時用到不同型號的硬件;智能終端中的各硬件在使用時都可能受損、更換。目前, 智能終端中的驅(qū)動程序、以及上層對各驅(qū)動程序的接口都是一一對應(yīng)的。當(dāng)硬件需要更換時,為了防止智能終端中上層應(yīng)用程序的正常使用,所更換的硬件型號不能變更;當(dāng)要引進一款新的硬件的時候,必須通過刷機重新加載驅(qū)動及對應(yīng)的上層接口。
[0003]然而,硬件市場上所提供的硬件種類繁多,如加速度傳感器等。用戶在更換時,可能無法找到相同型號的硬件。這使得用戶在更換硬件無法使用。
[0004]因此,需要對現(xiàn)有技術(shù)進行改進。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種驅(qū)動程序的調(diào)用方法及系統(tǒng),以解決智能終端對主流硬件不能自動適配,設(shè)備維護復(fù)雜的問題。
[0006]第一方面,本發(fā)明實施例提供了一種驅(qū)動程序的調(diào)用方法,用于智能終端,包括: 基于所述智能終端中各硬件的注冊操作,獲取各硬件的驅(qū)動信息;從預(yù)設(shè)的驅(qū)動信息與標(biāo)準(zhǔn)驅(qū)動信息的轉(zhuǎn)換器集合中,選取對應(yīng)所獲取的各驅(qū)動信息的轉(zhuǎn)換器;利用所選擇的轉(zhuǎn)換器,為上層應(yīng)用程序與相應(yīng)驅(qū)動程序之間提供數(shù)據(jù)傳輸。
[0007]第二方面,本發(fā)明實施例還提供了一種驅(qū)動程序的調(diào)用系統(tǒng),包括:驅(qū)動信息獲取模塊,用于基于所述智能終端中各硬件的注冊操作,獲取各硬件的驅(qū)動信息;
[0008]轉(zhuǎn)換模塊,用于從預(yù)設(shè)的驅(qū)動信息與標(biāo)準(zhǔn)驅(qū)動信息的轉(zhuǎn)換器集合中,選取對應(yīng)所獲取的各驅(qū)動信息的轉(zhuǎn)換器;調(diào)用模塊,用于利用所選擇的轉(zhuǎn)換器,為上層應(yīng)用程序與相應(yīng)驅(qū)動程序之間提供數(shù)據(jù)傳輸。
[0009]本發(fā)明通過提取各驅(qū)動程序的驅(qū)動信息、并按照轉(zhuǎn)換器構(gòu)建各類型的驅(qū)動程序與上層應(yīng)用程序之間的通信橋梁,如此實現(xiàn)了在更換不同硬件時,無需更改配套的驅(qū)動程序和硬件抽象層的接口,在添加新的硬件支持時,只需添加驅(qū)動,不需要修改硬件抽象層,為用戶更換智能終端中的硬件提供了極大的方便?!靖綀D說明】
[0010]圖1為本發(fā)明實施例一中的驅(qū)動程序的調(diào)用方法的流程圖;
[0011]圖2是本發(fā)明實施例二中的驅(qū)動程序的調(diào)用系統(tǒng)的結(jié)構(gòu)示意圖。【具體實施方式】
[0012]下面結(jié)合附圖和實施例對本發(fā)明作進一步的詳細(xì)說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。
[0013]實施例一
[0014]圖1為本發(fā)明實施例一提供的驅(qū)動程序的調(diào)用方法的流程圖,本實施例可適用于智能終端中替換硬件后驅(qū)動程序自動適配調(diào)用的情況,該方法可以由調(diào)用系統(tǒng)來執(zhí)行,其中,所述調(diào)用系統(tǒng)安裝在智能終端中。所述智能終端包括但不限于:手機、平板電腦、游戲機、數(shù)碼相機等帶有CPU及操作系統(tǒng)的電子設(shè)備。具體包括如下步驟:
[0015]S110、基于所述智能終端中各硬件的注冊操作,獲取各硬件的驅(qū)動信息。
[0016]在智能終端上電啟動時,智能終端中的各硬件向啟動程序進行注冊操作,所述調(diào)用系統(tǒng)根據(jù)注冊操作獲取各硬件的驅(qū)動信息。其中,所述硬件包括但不限于:各類傳感器、 觸摸屏、攝像裝置、話筒、揚聲器、顯示屏等。所述傳感器包括但不限于:壓力傳感陣列、紅外傳感器、加速度傳感器等等。
[0017]在一種可選方案中,當(dāng)智能終端中的一個或多個硬件被更換后,部分硬件在未得到上電指示的情況下,可能并不執(zhí)行注冊操作。針對該種情況,本發(fā)明中步驟S110進一步包括:步驟3111、3112、3113。(均未予圖示)
[0018]步驟S111、基于所述智能終端中各硬件在上電時的注冊操作,獲取各硬件驅(qū)動信息中的硬件設(shè)備信息。
[0019]當(dāng)智能終端上電時,所述調(diào)用系統(tǒng)檢測注冊表中的各驅(qū)動信息是否為空,若是,則暫停執(zhí)行后續(xù)步驟,并進行各硬件的注冊操作,反之,則將注冊后的各驅(qū)動信息以列表形式保存,并執(zhí)行步驟S112。
[0020]在此,各硬件的注冊操作是指通過對各硬件的驅(qū)動程序初始化,來獲取各硬件的驅(qū)動信息中的硬件設(shè)備信息,以及各硬件所連接的總線信息等。其中,硬件設(shè)備信息包括但不限于:設(shè)備ID號、所屬硬件類型、硬件打開/關(guān)閉方式信息、和硬件休眠/喚醒方式信息等。 再得到注冊后的各硬件的驅(qū)動信息后,所述調(diào)用系統(tǒng)還驗證是否有新更換的硬件未予注rm冊。
[0021]步驟S112、基于預(yù)設(shè)的對應(yīng)所述智能終端中的硬件類型,確定所獲取的各硬件設(shè)備信息所屬硬件類型,以及未注冊硬件的硬件類型。
[0022]在此,所述調(diào)用系統(tǒng)預(yù)設(shè)有智能終端所能提供的所有硬件類型。其中,所述硬件類型包括但不限于:紅外傳感類型、壓力傳感類型、加速度傳感類型、存儲類型、和顯示屏類型等。
[0023]所述調(diào)用系統(tǒng)根據(jù)預(yù)設(shè)的硬件類型,確定所獲取的已注冊的各硬件設(shè)備信息所屬硬件類型,并通過排除法,確定未注冊硬件的硬件類型。當(dāng)確定了有未注冊的硬件類型時, 執(zhí)行步驟S113。
[0024]步驟S113、搜索并啟動未注冊硬件類型的硬件,并獲取相應(yīng)硬件的驅(qū)動信息中的硬件設(shè)備信息。
[0025]在此,所述調(diào)用系統(tǒng)對應(yīng)每個硬件類型都預(yù)設(shè)有至少一個驅(qū)動程序。當(dāng)調(diào)用系統(tǒng)確定未注冊的硬件類型時,按照預(yù)設(shè)的對應(yīng)未注冊硬件類型的驅(qū)動方式,對未注冊的硬件進行上電操作;讀取上電硬件的驅(qū)動信息中的硬件設(shè)備信息。
[0026]具體地,對未知硬件進行上電時,所述調(diào)用系統(tǒng)通過對每個未注冊的硬件類型中的驅(qū)動程序的初始化操作,將未知硬件與相應(yīng)驅(qū)動程序進行關(guān)聯(lián),并利用關(guān)聯(lián)的驅(qū)動程序的初始化操作,獲取未知硬件的驅(qū)動信息中的硬件設(shè)備信息。
[0027]針對智能終端的實際應(yīng)用,智能終端在實際使用時,每個硬件類型僅設(shè)置一個硬件。因此,當(dāng)調(diào)用系統(tǒng)在一個硬件類型中獲取了一英加妮的驅(qū)動信息時,將不再搜索同一硬件類型中的其他驅(qū)動信息。[〇〇28]所述調(diào)用系統(tǒng)將所得到的所有驅(qū)動信息整理到一工作鏈表中。該工作鏈表可為上層應(yīng)用程序/硬件抽象層提供驅(qū)動信息。其中,硬件抽象層可作為驅(qū)動程序和上層應(yīng)用程序之間的銜接接口,用于管理和傳遞上層應(yīng)用程序與驅(qū)動程序之間的數(shù)據(jù)、指令等。[〇〇29]在此,所述調(diào)用系統(tǒng)可直接通過執(zhí)行步驟S120將基于工作鏈表所得到的各硬件的驅(qū)動信息進行轉(zhuǎn)換;也可以在硬件抽象層內(nèi)嵌轉(zhuǎn)換器及其轉(zhuǎn)換接口,并進行轉(zhuǎn)換。
[0030]一種可選實施例是,在執(zhí)行步驟S120之前,所述調(diào)用系統(tǒng)先執(zhí)行步驟S114、S115。 (均未予圖示)
[0031]步驟S114、將所獲取的所有驅(qū)動信息提供給硬件抽象層,由所述硬件抽象層遍歷所有驅(qū)動信息,并根據(jù)每個驅(qū)動信息創(chuàng)建對應(yīng)的硬件對象。
[0032]具體地,所述調(diào)用系統(tǒng)將所獲取的工作鏈表傳遞給硬件抽象層,由位于硬件抽象層的程序遍歷工作鏈表中的所有驅(qū)動信息,并根據(jù)各驅(qū)動信息中的硬件設(shè)備信息選取包含硬件設(shè)備信息和功能信息的硬件對象。
[0033]例如,在硬件抽象層,所述調(diào)用系統(tǒng)利用預(yù)設(shè)的配置文件找到紅外傳感驅(qū)動信息 A1所對應(yīng)的硬件對象,在硬件對象中包含了紅外傳感器的中斷觸發(fā)方式,紅外傳感器的打開關(guān)閉方式,紅外傳感器的休眠喚醒方式、以及基于預(yù)設(shè)的上報數(shù)據(jù)的速度所構(gòu)建的接口等。
[0034]步驟S115、基于所選取的硬件對象讀取各硬件的功能信息,并將所讀取的功能信息添加到相應(yīng)的驅(qū)動信息中。
[0035]具體地,在硬件抽象層,所述調(diào)用系統(tǒng)讀取各硬件對象中各功能信息,并將各功能信息添加到工作鏈表中的對應(yīng)驅(qū)動信息中。所述調(diào)用系統(tǒng)按照該工作鏈表執(zhí)行步驟S120。 [〇〇36]步驟S120、從預(yù)設(shè)的驅(qū)動信息與標(biāo)準(zhǔn)驅(qū)動信息的轉(zhuǎn)換器集合中,選取對應(yīng)所獲取的各驅(qū)動信息的轉(zhuǎn)換器。
[0037]具體地,在所述調(diào)用系統(tǒng)中預(yù)設(shè)有針對各驅(qū)動程序的驅(qū)動信息與標(biāo)準(zhǔn)驅(qū)動信息的轉(zhuǎn)換器。其中,所述轉(zhuǎn)換器可以是xml格式、或其他自定義格式,用以將驅(qū)動程序所能提供的驅(qū)動信息和上層應(yīng)用程序所能接受的標(biāo)準(zhǔn)驅(qū)動信息進行轉(zhuǎn)換。
[0038]其中,每個轉(zhuǎn)換器包括以下至少一種信息對應(yīng)關(guān)系:硬件的調(diào)用方式與標(biāo)準(zhǔn)的調(diào)用方式之間的對應(yīng)關(guān)系,和硬件功能項與標(biāo)準(zhǔn)的功能項之間的對應(yīng)關(guān)系。所述調(diào)用方式包括以下至少一種:中斷號,中斷觸發(fā)方式,打開和關(guān)閉方式,休眠和喚醒方式,硬件類型的描述方式。所述硬件的功能項包括但不限于以下至少一種:精度、量程、上報數(shù)據(jù)的速度、功耗等,有獨立的上報數(shù)據(jù)的方式(數(shù)據(jù)分為向量和標(biāo)量兩種)、和能單獨設(shè)置上報數(shù)據(jù)的速度等。
[0039]在此,所述調(diào)用系統(tǒng)根據(jù)工作鏈表中的各驅(qū)動信息,直接找到對應(yīng)的轉(zhuǎn)換器,并利用該轉(zhuǎn)換器執(zhí)行步驟S130。
[0040]步驟S130、利用所選擇的轉(zhuǎn)換器,為上層應(yīng)用程序與相應(yīng)驅(qū)動程序之間提供數(shù)據(jù)傳輸。
[0041]在此,當(dāng)所述調(diào)用系統(tǒng)監(jiān)測到上層應(yīng)用程序調(diào)用一驅(qū)動程序時,利用已設(shè)定的轉(zhuǎn)換器,將上層應(yīng)用程序所發(fā)出的標(biāo)準(zhǔn)指令/信息,轉(zhuǎn)換成對應(yīng)驅(qū)動程序的指令/信息,并發(fā)送給相應(yīng)的驅(qū)動程序,同時建立該上層應(yīng)用程序與驅(qū)動程序之間的關(guān)聯(lián)關(guān)系。當(dāng)所述調(diào)用系統(tǒng)監(jiān)測到驅(qū)動程序發(fā)送感應(yīng)到的數(shù)據(jù)時,利用所對應(yīng)的轉(zhuǎn)換器,將所接收的數(shù)據(jù)格式轉(zhuǎn)換成標(biāo)準(zhǔn)的數(shù)據(jù)格式,并按照關(guān)聯(lián)關(guān)系將標(biāo)準(zhǔn)格式的數(shù)據(jù)傳遞給上層應(yīng)用程序。
[0042]本實施例中通過提取各驅(qū)動程序的驅(qū)動信息、并按照轉(zhuǎn)換器構(gòu)建各類型的驅(qū)動程序與上層應(yīng)用程序之間的通信橋梁,如此實現(xiàn)了在更換不同硬件時,無需更改配套的驅(qū)動程序和硬件抽象層的接口,為用戶更換智能終端中的硬件提供了極大的方便。另外,通過遍歷智能終端中的各硬件類型,來查找尚未注冊的硬件,并啟動未注冊的硬件,以便更換后的硬件能夠被啟動運行。另外,將驅(qū)動信息傳遞給硬件抽象層,由硬件抽象層選取硬件對象并確定轉(zhuǎn)換器,能夠統(tǒng)一硬件抽象層與下層各驅(qū)動程序之間的匹配關(guān)系,有效減少在更換硬件時對硬件抽象層的對應(yīng)調(diào)整,極大的減少了技術(shù)人員對已銷售產(chǎn)品的后期維護。[〇〇43] 實施例二
[0044]圖2為本發(fā)明實施例二提供的驅(qū)動程序的調(diào)用系統(tǒng)的結(jié)構(gòu)示意圖,本實施例可適用于智能終端中替換硬件后驅(qū)動程序自動適配調(diào)用的情況,所述調(diào)用系統(tǒng)安裝在智能終端中。所述智能終端包括但不限于:手機、平板電腦、游戲機、數(shù)碼相機等帶有CHJ及操作系統(tǒng)的電子設(shè)備。所述調(diào)用系統(tǒng)包括:驅(qū)動信息獲取模塊、轉(zhuǎn)換模塊、調(diào)用模塊。
[0045]所述驅(qū)動信息獲取模塊用于基于所述智能終端中各硬件的注冊操作,獲取各硬件的驅(qū)動信息。
[0046]在智能終端上電啟動時,智能終端中的各硬件向啟動程序進行注冊操作,所述調(diào)用系統(tǒng)根據(jù)注冊操作獲取各硬件的驅(qū)動信息。其中,所述硬件包括但不限于:各類傳感器、 攝像裝置、話筒、揚聲器、顯示屏等。所述傳感器包括但不限于:壓力傳感陣列、紅外傳感器、 加速度傳感器等等。
[0047]在一種可選方案中,當(dāng)智能終端中的一個或多個硬件被更換后,部分硬件在未得到上電指示的情況下,可能并不執(zhí)行注冊操作。針對該種情況,本發(fā)明中所述驅(qū)動信息獲取模塊進一步包括:第一驅(qū)動信息獲取子模塊、未注冊類型確定子模塊、第二驅(qū)動信息獲取子模塊。(均未予圖示)
[0048]所述第一驅(qū)動信息獲取子模塊用于基于智能終端中各硬件在上電時的注冊操作, 獲取各硬件驅(qū)動信息中的硬件設(shè)備信息。
[0049]當(dāng)智能終端上電時,所述第一驅(qū)動信息獲取子模塊檢測注冊表中的各驅(qū)動信息是否為空,若是,則暫停執(zhí)行后續(xù)步驟,并進行各硬件的注冊操作,反之,則將注冊后的各驅(qū)動信息以列表形式保存,并執(zhí)行未注冊類型確定子模塊。
[0050]在此,各硬件的注冊操作是指通過對各硬件的驅(qū)動程序初始化,來獲取各硬件的驅(qū)動信息中的硬件設(shè)備信息,以及各硬件所連接的總線信息等。其中,硬件設(shè)備信息包括但不限于:設(shè)備ID號、所屬硬件類型、硬件打開/關(guān)閉方式信息、和硬件休眠/喚醒方式信息等。 再得到注冊后的各硬件的驅(qū)動信息后,所述調(diào)用系統(tǒng)還驗證是否有新更換的硬件未予注rm冊。
[0051]所述未注冊類型確定子模塊用于基于預(yù)設(shè)的對應(yīng)所述智能終端中的硬件類型,確定所獲取的各硬件設(shè)備信息所屬硬件類型,以及未注冊硬件的硬件類型。
[0052]在此,所述未注冊類型確定子模塊預(yù)設(shè)有智能終端所能提供的所有硬件類型。其中,所述硬件類型包括但不限于:紅外傳感類型、壓力傳感類型、加速度傳感類型、存儲類型、和顯示屏類型等。[〇〇53]所述未注冊類型確定子模塊根據(jù)預(yù)設(shè)的硬件類型,確定所獲取的已注冊的各硬件設(shè)備信息所屬硬件類型,并通過排除法,確定未注冊硬件的硬件類型。當(dāng)確定了有未注冊的硬件類型時,執(zhí)行第二驅(qū)動信息獲取子模塊。
[0054]所述第二驅(qū)動信息獲取子模塊用于搜索并啟動未注冊硬件類型的硬件,并獲取相應(yīng)硬件的驅(qū)動信息中的硬件設(shè)備信息。
[0055]在此,所述第二驅(qū)動信息獲取子模塊對應(yīng)每個硬件類型都預(yù)設(shè)有至少一個驅(qū)動程序。當(dāng)?shù)诙?qū)動信息獲取子模塊確定未注冊的硬件類型時,按照預(yù)設(shè)的對應(yīng)未注冊硬件類型的驅(qū)動方式,對未注冊的硬件進行上電操作;讀取上電硬件的驅(qū)動信息中的硬件設(shè)備信息。
[0056]具體地,對未知硬件進行上電時,所述第二驅(qū)動信息獲取子模塊通過對每個未注冊的硬件類型中的驅(qū)動程序的初始化操作,將未知硬件與相應(yīng)驅(qū)動程序進行關(guān)聯(lián),并利用關(guān)聯(lián)的驅(qū)動程序的初始化操作,獲取未知硬件的驅(qū)動信息中的硬件設(shè)備信息。
[0057]針對智能終端的實際應(yīng)用,智能終端在實際使用時,每個硬件類型僅設(shè)置一個硬件。因此,當(dāng)?shù)诙?qū)動信息獲取子模塊在一個硬件類型中獲取了一英加妮的驅(qū)動信息時,將不再搜索同一硬件類型中的其他驅(qū)動信息。[〇〇58]所述第二驅(qū)動信息獲取子模塊將所得到的所有驅(qū)動信息整理到一工作鏈表中。該工作鏈表可為上層應(yīng)用程序/硬件抽象層提供驅(qū)動信息。其中,硬件抽象層可作為驅(qū)動程序和上層應(yīng)用程序之間的銜接接口,用于管理和傳遞上層應(yīng)用程序與驅(qū)動程序之間的數(shù)據(jù)、 指令等。
[0059]在此,所述第二驅(qū)動信息獲取子模塊可直接通過執(zhí)行轉(zhuǎn)換模塊將基于工作鏈表所得到的各硬件的驅(qū)動信息進行轉(zhuǎn)換;也可以在硬件抽象層內(nèi)嵌轉(zhuǎn)換器及其轉(zhuǎn)換接口,并進行轉(zhuǎn)換。
[0060]—種可選實施例是,在執(zhí)行轉(zhuǎn)換模塊之前,所述調(diào)用系統(tǒng)還包括:硬件對象選取模塊、驅(qū)動信息補充模塊。(均未予圖示)[0061 ]所述硬件對象選取模塊用于將所獲取的所有驅(qū)動信息提供給硬件抽象層,由所述硬件抽象層遍歷所有驅(qū)動信息,并根據(jù)每個驅(qū)動信息創(chuàng)建對應(yīng)的硬件對象。
[0062]具體地,所述硬件對象選取模塊將所獲取的工作鏈表傳遞給硬件抽象層,由位于硬件抽象層的程序遍歷工作鏈表中的所有驅(qū)動信息,并根據(jù)各驅(qū)動信息中的硬件設(shè)備信息選取包含硬件設(shè)備信息和功能信息的硬件對象。
[0063]例如,在硬件抽象層,所述硬件對象選取模塊利用預(yù)設(shè)的配置文件找到紅外傳感驅(qū)動信息A1所對應(yīng)的硬件對象,在硬件對象中包含了紅外傳感器的中斷觸發(fā)方式,紅外傳感器的打開關(guān)閉方式,紅外傳感器的休眠喚醒方式、以及基于預(yù)設(shè)的上報數(shù)據(jù)的速度所構(gòu)建的接口等。
[0064]所述驅(qū)動信息補充模塊用于基于所選取的硬件對象讀取各硬件的功能信息,并將所讀取的功能信息添加到相應(yīng)的驅(qū)動信息中。
[0065]具體地,在硬件抽象層,所述驅(qū)動信息補充模塊讀取各硬件對象中各功能信息,并將各功能信息添加到工作鏈表中的對應(yīng)驅(qū)動信息中,并啟動轉(zhuǎn)換模塊。
[0066]所述轉(zhuǎn)換模塊用于從預(yù)設(shè)的驅(qū)動信息與標(biāo)準(zhǔn)驅(qū)動信息的轉(zhuǎn)換器集合中,選取對應(yīng)所獲取的各驅(qū)動信息的轉(zhuǎn)換器。
[0067]具體地,在所述轉(zhuǎn)換模塊中預(yù)設(shè)有針對各驅(qū)動程序的驅(qū)動信息與標(biāo)準(zhǔn)驅(qū)動信息的轉(zhuǎn)換器。其中,所述轉(zhuǎn)換器可以是xml格式、或其他自定義格式,用以將驅(qū)動程序所能提供的驅(qū)動信息和上層應(yīng)用程序所能接受的標(biāo)準(zhǔn)驅(qū)動信息進行轉(zhuǎn)換。
[0068]其中,每個轉(zhuǎn)換器包括以下至少一種信息對應(yīng)關(guān)系:硬件的調(diào)用方式與標(biāo)準(zhǔn)的調(diào)用方式之間的對應(yīng)關(guān)系,和硬件功能項與標(biāo)準(zhǔn)的功能項之間的對應(yīng)關(guān)系。所述調(diào)用方式包括以下至少一種:中斷號,中斷觸發(fā)方式,打開和關(guān)閉方式,休眠和喚醒方式,硬件類型的描述方式。所述硬件的功能項包括但不限于以下至少一種:精度、量程、上報數(shù)據(jù)的速度、功耗等,有獨立的上報數(shù)據(jù)的方式(數(shù)據(jù)分為向量和標(biāo)量兩種)、和能單獨設(shè)置上報數(shù)據(jù)的速度等。
[0069]在此,所述轉(zhuǎn)換模塊根據(jù)工作鏈表中的各驅(qū)動信息,直接找到對應(yīng)的轉(zhuǎn)換器,并將該轉(zhuǎn)換器提供給調(diào)用模塊。
[0070]所述調(diào)用模塊用于利用所選擇的轉(zhuǎn)換器,為上層應(yīng)用程序與相應(yīng)驅(qū)動程序之間提供數(shù)據(jù)傳輸。
[0071]在此,當(dāng)所述調(diào)用模塊監(jiān)測到上層應(yīng)用程序調(diào)用一驅(qū)動程序時,利用已設(shè)定的轉(zhuǎn)換器,將上層應(yīng)用程序所發(fā)出的標(biāo)準(zhǔn)指令/信息,轉(zhuǎn)換成對應(yīng)驅(qū)動程序的指令/信息,并發(fā)送給相應(yīng)的驅(qū)動程序,同時建立該上層應(yīng)用程序與驅(qū)動程序之間的關(guān)聯(lián)關(guān)系。當(dāng)所述調(diào)用模塊監(jiān)測到驅(qū)動程序發(fā)送感應(yīng)到的數(shù)據(jù)時,利用所對應(yīng)的轉(zhuǎn)換器,將所接收的數(shù)據(jù)格式轉(zhuǎn)換成標(biāo)準(zhǔn)的數(shù)據(jù)格式,并按照關(guān)聯(lián)關(guān)系將標(biāo)準(zhǔn)格式的數(shù)據(jù)傳遞給上層應(yīng)用程序。
[0072]本實施例中通過提取各驅(qū)動程序的驅(qū)動信息、并按照轉(zhuǎn)換器構(gòu)建各類型的驅(qū)動程序與上層應(yīng)用程序之間的通信橋梁,如此實現(xiàn)了在更換不同硬件時,無需更改配套的驅(qū)動程序和硬件抽象層的接口,為用戶更換智能終端中的硬件提供了極大的方便。另外,通過遍歷智能終端中的各硬件類型,來查找尚未注冊的硬件,并啟動未注冊的硬件,以便更換后的硬件能夠被啟動運行。另外,將驅(qū)動信息傳遞給硬件抽象層,由硬件抽象層選取硬件對象并確定轉(zhuǎn)換器,能夠統(tǒng)一硬件抽象層與下層各驅(qū)動程序之間的匹配關(guān)系,有效減少在更換硬件時對硬件抽象層的對應(yīng)調(diào)整,極大的減少了技術(shù)人員對已銷售產(chǎn)品的后期維護。[〇〇73]注意,上述僅為本發(fā)明的較佳實施例及所運用技術(shù)原理。本領(lǐng)域技術(shù)人員會理解, 本發(fā)明不限于這里所述的特定實施例,對本領(lǐng)域技術(shù)人員來說能夠進行各種明顯的變化、 重新調(diào)整和替代而不會脫離本發(fā)明的保護范圍。因此,雖然通過以上實施例對本發(fā)明進行了較為詳細(xì)的說明,但是本發(fā)明不僅僅限于以上實施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實施例,而本發(fā)明的范圍由所附的權(quán)利要求范圍決定。
【主權(quán)項】
1.一種驅(qū)動程序的調(diào)用方法,用于智能終端,其特征在于,包括:基于所述智能終端中各硬件的注冊操作,獲取各硬件的驅(qū)動信息;從預(yù)設(shè)的驅(qū)動信息與標(biāo)準(zhǔn)驅(qū)動信息的轉(zhuǎn)換器集合中,選取對應(yīng)所獲取的各驅(qū)動信息的 轉(zhuǎn)換器;利用所選擇的轉(zhuǎn)換器,為上層應(yīng)用程序與相應(yīng)驅(qū)動程序之間提供數(shù)據(jù)傳輸。2.根據(jù)權(quán)利要求1所述的驅(qū)動程序的調(diào)用方法,其特征在于,所述基于所述智能終端中 各硬件的注冊操作,獲取各硬件的驅(qū)動信息包括:基于所述智能終端中各硬件在上電時的注冊操作,獲取各硬件驅(qū)動信息中的硬件設(shè)備 信息;基于預(yù)設(shè)的對應(yīng)所述智能終端中的硬件類型,確定所獲取的各硬件設(shè)備信息所屬硬件 類型,以及未注冊硬件的硬件類型;搜索并啟動未注冊硬件類型的硬件,并獲取相應(yīng)硬件的驅(qū)動信息中的硬件設(shè)備信息。3.根據(jù)權(quán)利要求2所述的驅(qū)動程序的調(diào)用方法,其特征在于,所述搜索并啟動未注冊硬 件類型的硬件,并獲取相應(yīng)硬件的驅(qū)動信息中的硬件設(shè)備信息包括:按照預(yù)設(shè)的對應(yīng)未注冊硬件類型的驅(qū)動方式,對未注冊的硬件進行上電操作;讀取上電硬件的驅(qū)動信息中的硬件設(shè)備信息。4.根據(jù)權(quán)利要求1所述的驅(qū)動程序的調(diào)用方法,其特征在于,在從預(yù)設(shè)的驅(qū)動信息與標(biāo) 準(zhǔn)驅(qū)動信息的轉(zhuǎn)換器集合中,選取對應(yīng)所獲取的各驅(qū)動信息的轉(zhuǎn)換器之前,還包括:將所獲取的所有驅(qū)動信息提供給硬件抽象層,由所述硬件抽象層遍歷所有驅(qū)動信息, 并根據(jù)每個驅(qū)動信息選取對應(yīng)的硬件對象;基于所選取的硬件對象讀取各硬件的功能信息,并將所讀取的功能信息添加到相應(yīng)的 驅(qū)動信息中。5.根據(jù)權(quán)利要求1所述的驅(qū)動程序的調(diào)用方法,其特征在于,每個轉(zhuǎn)換器包括以下至少 一種信息對應(yīng)關(guān)系:硬件的調(diào)用方式與標(biāo)準(zhǔn)的調(diào)用方式之間的對應(yīng)關(guān)系,和硬件功能項與 標(biāo)準(zhǔn)的功能項之間的對應(yīng)關(guān)系。6.—種驅(qū)動程序的調(diào)用系統(tǒng),用于智能終端,其特征在于,包括:驅(qū)動信息獲取模塊,用于基于所述智能終端中各硬件的注冊操作,獲取各硬件的驅(qū)動 信息;轉(zhuǎn)換模塊,用于從預(yù)設(shè)的驅(qū)動信息與標(biāo)準(zhǔn)驅(qū)動信息的轉(zhuǎn)換器集合中,選取對應(yīng)所獲取 的各驅(qū)動信息的轉(zhuǎn)換器;調(diào)用模塊,用于利用所選擇的轉(zhuǎn)換器,為上層應(yīng)用程序與相應(yīng)驅(qū)動程序之間提供數(shù)據(jù) 傳輸。7.根據(jù)權(quán)利要求6所述的驅(qū)動程序的調(diào)用系統(tǒng),其特征在于,所述驅(qū)動信息獲取模塊包 括:第一驅(qū)動信息獲取子模塊,用于基于所述智能終端中各硬件在上電時的注冊操作,獲 取各硬件驅(qū)動信息中的硬件設(shè)備信息;未注冊類型確定子模塊,用于基于預(yù)設(shè)的對應(yīng)所述智能終端中的硬件類型,確定所獲 取的各硬件設(shè)備信息所屬硬件類型,以及未注冊硬件的硬件類型;第二驅(qū)動信息獲取子模塊,用于搜索并啟動未注冊硬件類型的硬件,并獲取相應(yīng)硬件的驅(qū)動信息中的硬件設(shè)備信息。8.根據(jù)權(quán)利要求7所述的驅(qū)動程序的調(diào)用方法,其特征在于,所述第二驅(qū)動信息獲取子 模塊用于按照預(yù)設(shè)的對應(yīng)未注冊硬件類型的驅(qū)動方式,對未注冊的硬件進行上電操作;讀 取上電硬件的驅(qū)動信息中的硬件設(shè)備信息。9.根據(jù)權(quán)利要求6所述的驅(qū)動程序的調(diào)用系統(tǒng),其特征在于,還包括:硬件對象選取模塊,用于將所獲取的所有驅(qū)動信息提供給硬件抽象層,由所述硬件抽 象層遍歷所有驅(qū)動信息,并根據(jù)每個驅(qū)動信息選取對應(yīng)的硬件對象;驅(qū)動信息補充模塊,用于基于所選取的硬件對象讀取各硬件的功能信息,并將所讀取 的功能信息添加到相應(yīng)的驅(qū)動信息中,并執(zhí)行所述轉(zhuǎn)換模塊。10.根據(jù)權(quán)利要求6所述的驅(qū)動程序的調(diào)用系統(tǒng),其特征在于,每個轉(zhuǎn)換器包括以下至 少一種信息對應(yīng)關(guān)系:硬件的調(diào)用方式與標(biāo)準(zhǔn)的調(diào)用方式之間的對應(yīng)關(guān)系,和硬件功能項 與標(biāo)準(zhǔn)的功能項之間的對應(yīng)關(guān)系。
【文檔編號】G06F9/44GK106020807SQ201610317923
【公開日】2016年10月12日
【申請日】2016年5月13日
【發(fā)明人】曹福昂
【申請人】上海井蛙科技有限公司