本發(fā)明涉及智能技術(shù)領(lǐng)域,特別涉及一種WIFI設(shè)備智能識(shí)別方法及裝置。
背景技術(shù):
隨著智能技術(shù)的發(fā)展,智能終端已廣泛應(yīng)用于人們生活中,其中,以Android整機(jī)為代表的智能終端更受到用戶的歡迎。一般情況下,Android(安卓)整機(jī)中包括主控制芯片即CPU、內(nèi)置WIFI(Wireless-Fidelity,無線保真)模塊以及其他功能模塊,CPU與內(nèi)置WIFI模塊之間通過USB(Universal Serial Bus,通用串行總線)或SDIO(Secure Digital Input and Output Card,安全數(shù)字輸入輸出卡)總線連接進(jìn)行通信。
然而,為了滿足不同用戶需求,不同的Android整機(jī)中可采用不同的WIFI模塊,那么針對(duì)不同的WIFI模塊,需要進(jìn)行不同軟件配置,也就是說,不同WIFI模塊各自采用對(duì)應(yīng)的一套軟件配置進(jìn)行識(shí)別,例如,WIFI模塊A采用對(duì)應(yīng)的一套軟件配置進(jìn)行識(shí)別,WIFI模塊B采用對(duì)應(yīng)的另一套軟件配置進(jìn)行識(shí)別,即各Android整機(jī)只能管理一套只能識(shí)別自身WIFI模塊的軟件配置,這不利于軟件配置管理。
技術(shù)實(shí)現(xiàn)要素:
基于此,有必要針對(duì)現(xiàn)有的不同WIFI模塊需使用不同軟件配置進(jìn)行識(shí)別的技術(shù)問題,提供一種采用相同軟件配置能識(shí)別至少一種WIFI模塊的WIFI設(shè)備智能識(shí)別方法及裝置。
提供一種WIFI模塊智能識(shí)別方法,包括以下步驟:
當(dāng)存儲(chǔ)分區(qū)不存在內(nèi)置WIFI模塊的配置文件時(shí),控制所述內(nèi)置WIFI模塊工作;
獲取接口總線上接入的模塊的標(biāo)識(shí);
根據(jù)所述接入的模塊的標(biāo)識(shí),查找所述接入的模塊中是否有存在于預(yù)設(shè)WIFI支持目錄中的內(nèi)置WIFI模塊,其中,所述預(yù)設(shè)WIFI支持目錄中包括至少一種WIFI模塊的標(biāo)識(shí)以及與標(biāo)識(shí)對(duì)應(yīng)的型號(hào);
若是,根據(jù)所述內(nèi)置WIFI模塊的標(biāo)識(shí),從所述預(yù)設(shè)WIFI支持目錄中獲取與所述內(nèi)置WIFI模塊的標(biāo)識(shí)對(duì)應(yīng)的型號(hào);
將所述內(nèi)置WIFI模塊的型號(hào)寫入所述存儲(chǔ)分區(qū),生成所述內(nèi)置WIFI模塊對(duì)應(yīng)的配置文件。
本發(fā)明還提供一種WIFI模塊智能識(shí)別裝置,包括:
控制模塊,用于當(dāng)存儲(chǔ)分區(qū)不存在內(nèi)置WIFI模塊的配置文件時(shí),控制所述內(nèi)置WIFI模塊工作;
標(biāo)識(shí)獲取模塊,用于獲取接口總線上接入的模塊的標(biāo)識(shí);
查詢模塊,用于根據(jù)所述接入的模塊的標(biāo)識(shí),查找所述接入的模塊中是否有存在于預(yù)設(shè)WIFI支持目錄中的內(nèi)置WIFI模塊,其中,所述預(yù)設(shè)WIFI支持目錄中包括至少一種WIFI模塊的標(biāo)識(shí)以及與標(biāo)識(shí)對(duì)應(yīng)的型號(hào);
型號(hào)獲取模塊,用于所述查詢模塊的查詢結(jié)果為是時(shí),根據(jù)所述內(nèi)置WIFI模塊的標(biāo)識(shí),從所述預(yù)設(shè)WIFI支持目錄中獲取與所述內(nèi)置WIFI模塊的標(biāo)識(shí)對(duì)應(yīng)的型號(hào);
配置文件生成模塊,用于將所述內(nèi)置WIFI模塊的型號(hào)寫入所述存儲(chǔ)分區(qū),生成所述內(nèi)置WIFI模塊對(duì)應(yīng)的配置文件。
上述WIFI設(shè)備智能識(shí)別方法及裝置,由于預(yù)設(shè)WIFI支持目錄中包括至少一種WIFI模塊的標(biāo)識(shí)以及與標(biāo)識(shí)對(duì)應(yīng)的型號(hào),從而,在獲取到接入的模塊的標(biāo)識(shí)后,可識(shí)別至少一種WIFI模塊,也就是說即使是不同的WIFI模塊,只要是在預(yù)設(shè)WIFI支持目錄中,即可實(shí)現(xiàn)對(duì)不同WIFI模塊的識(shí)別,也就是說可實(shí)現(xiàn)識(shí)別至少一種WIFI模塊,將識(shí)別到的內(nèi)置WIFI模塊的型號(hào)寫入所述存儲(chǔ)分區(qū),生成所述內(nèi)置WIFI模塊對(duì)應(yīng)的配置文件,后續(xù)再使用內(nèi)置WIFI模塊時(shí),可讀取該配置文件即可識(shí)別到終端使用的是那種類型WIFI模塊,從而實(shí)現(xiàn)快速WIFI模塊識(shí)別。
附圖說明
圖1為一種實(shí)施例的WIFI設(shè)備智能識(shí)別方法的流程圖;
圖2為另一種實(shí)施例的WIFI設(shè)備智能識(shí)別方法的流程圖;
圖3為一種實(shí)施例的WIFI設(shè)備智能識(shí)別裝置的模塊圖;
圖4為另一種實(shí)施例的WIFI設(shè)備智能識(shí)別裝置的模塊圖。
具體實(shí)施方式
請參閱圖1,提供一種實(shí)施例的WIFI模塊智能識(shí)別方法,包括以下步驟:
S110:當(dāng)存儲(chǔ)分區(qū)不存在內(nèi)置WIFI模塊的配置文件時(shí),控制內(nèi)置WIFI模塊工作。
對(duì)于內(nèi)置有WIFI模塊的終端,在需要打開內(nèi)置WIFI模塊工作時(shí),需要對(duì)內(nèi)置WIFI模塊進(jìn)行識(shí)別,識(shí)別完后再進(jìn)行相應(yīng)的驅(qū)動(dòng),以啟動(dòng)內(nèi)置WIFI模塊已選定的相應(yīng)功能。在存儲(chǔ)分區(qū)中不存在內(nèi)置WIFI模塊的配置文件時(shí),表示該內(nèi)置WIFI模塊還未被識(shí)別過,也就是說還未知該內(nèi)置WIFI模塊的型號(hào),此時(shí)需要對(duì)其進(jìn)行識(shí)別,即首先通過CPU控制內(nèi)置WIFI模塊上電且通過對(duì)內(nèi)置WIFI模塊相應(yīng)的引腳控制以致其開始工作。比如,控制內(nèi)置WIFI模塊上電,并控制內(nèi)置WIFI模塊的RESET等引腳的狀態(tài)設(shè)置為相應(yīng)的工作狀態(tài),讓內(nèi)置WIFI模塊工作起來,即開啟內(nèi)置WIFI模塊,使內(nèi)置WIFI模塊開始工作,以便相應(yīng)的接口總線能發(fā)現(xiàn)該內(nèi)置WIFI模塊掛載上,能識(shí)別到該內(nèi)置WIFI模塊存在。
S120:獲取接口總線上接入的模塊的標(biāo)識(shí)。
內(nèi)置WIFI模塊通過接口總線與CPU連接通信,其中,接口總線包括USB接口總線和SDIO接口總線。內(nèi)置WIFI模塊上電工作后,內(nèi)置WIFI模塊即接入到接口總線,通過對(duì)接口總線的檢測即可識(shí)別到內(nèi)置WIFI模塊的存在。除內(nèi)置WIFI模塊,可能含有其他設(shè)備掛載在接口總線實(shí)現(xiàn)與CPU的通信,例如,鼠標(biāo)掛載在接口總線可與CPU進(jìn)行數(shù)據(jù)傳輸,然而,接入到接口總線的每一個(gè)模塊均有一個(gè)標(biāo)識(shí),通過該標(biāo)識(shí)可區(qū)分相同或不同的模塊。例如,通過內(nèi)置WIFI模塊的標(biāo)識(shí)可區(qū)分同型號(hào)或不同型號(hào)的內(nèi)置WIFI模塊,由于不同生產(chǎn)商的不同型號(hào)WIFI模塊需要不同的驅(qū)動(dòng),模塊的標(biāo)識(shí)可以為生產(chǎn)商標(biāo)識(shí)與產(chǎn)品標(biāo)識(shí)的組合,如此可以區(qū)分不同生產(chǎn)商生產(chǎn)的不同型號(hào)的WIFI模塊。具體地,標(biāo)識(shí)包括生產(chǎn)商標(biāo)識(shí)(VID)和產(chǎn)品標(biāo)識(shí)(PID),在模塊接入到接口總線后,通過對(duì)接口總線的檢測即可識(shí)別到有模塊接入,當(dāng)檢測到有模塊接入后,模塊的生產(chǎn)商標(biāo)識(shí)和產(chǎn)品標(biāo)識(shí)會(huì)分別存在/sys/devices/目錄下以.usb結(jié)尾的目錄下以u(píng)sb開頭的目錄下的idVendor和idProduct文件中(例如,模塊的生產(chǎn)商標(biāo)識(shí)存在/sys/devices/ff500000.usb/usb1/idVendor中),通過遍歷上述文件,獲取該接入模塊的VID和PID。
S130:根據(jù)接入的模塊的標(biāo)識(shí),查找接入的模塊中是否有存在于預(yù)設(shè)WIFI支持目錄中的內(nèi)置WIFI模塊。
若是,則執(zhí)行以下步驟:
S140:根據(jù)內(nèi)置WIFI模塊的標(biāo)識(shí),從預(yù)設(shè)WIFI支持目錄中獲取與內(nèi)置WIFI模塊的標(biāo)識(shí)對(duì)應(yīng)的型號(hào)。
其中,預(yù)設(shè)WIFI支持目錄中包括至少一種WIFI模塊的標(biāo)識(shí)以及與標(biāo)識(shí)對(duì)應(yīng)的型號(hào),也就是說,在預(yù)設(shè)WIFI支持目錄中包括了可支持識(shí)別的所有WIFI模塊的標(biāo)識(shí)和對(duì)應(yīng)的型號(hào),例如,可支持識(shí)別A、B和C三種型號(hào)WIFI模塊,則在預(yù)設(shè)WIFI支持目錄中包括A、B和C三種型號(hào)以及對(duì)應(yīng)的WIFI模塊的標(biāo)識(shí)。由于在接口總線上接入的模塊包括WIFI模塊之外還有其他模塊,這些其他模塊是不在預(yù)設(shè)WIFI支持目錄中的,所以在獲取到接口總線中接入的模塊的標(biāo)識(shí)后,需要對(duì)接入的所有模塊進(jìn)行篩選,即篩選出可支持識(shí)別的內(nèi)置WIFI模塊。例如,獲取到了標(biāo)識(shí)分別為1和2的模塊,預(yù)設(shè)WIFI支持目錄中包括了支持識(shí)別的WIFI模塊的標(biāo)識(shí)為1,對(duì)應(yīng)型號(hào)為A,則獲取到的標(biāo)識(shí)為1的模塊是支持識(shí)別的WIFI模塊,且型號(hào)為A,將標(biāo)識(shí)為2的模塊排除掉,最終獲得的標(biāo)識(shí)為1的內(nèi)置WIFI模塊是最終查找結(jié)果。也就是說判斷獲取到的模塊的標(biāo)識(shí)是否在預(yù)設(shè)WIFI支持目錄里,在獲取的接入的模塊中查找到有模塊的標(biāo)識(shí)在預(yù)設(shè)WIFI支持目錄里,也就是找到支持識(shí)別的內(nèi)置WIFI模塊,再根據(jù)查找到的內(nèi)置WIFI模塊的標(biāo)識(shí),從預(yù)設(shè)WIFI支持目錄中獲取對(duì)應(yīng)的型號(hào)即可。若接入的模塊均不存在于預(yù)設(shè)WIFI支持目錄中,也就是說,接入的模塊中沒有支持識(shí)別的內(nèi)置WIFI模塊,則提示不能識(shí)別WIFI模塊。
S150:將內(nèi)置WIFI模塊的型號(hào)寫入存儲(chǔ)分區(qū),生成內(nèi)置WIFI模塊對(duì)應(yīng)的配置文件。
在接入的模塊中查找到存在于預(yù)設(shè)WIFI支持目錄中的內(nèi)置WIFI模塊后,說明接口總線接入的模塊中有可支持識(shí)別的內(nèi)置WIFI模塊,將該內(nèi)置WIFI模塊的型號(hào)寫入存儲(chǔ)分區(qū),生成內(nèi)置WIFI模塊對(duì)應(yīng)的配置文件。配置文件中包括了終端自身使用的內(nèi)置WIFI模塊的型號(hào),也就是說會(huì)在配置文件中保存了終端自身使用的內(nèi)置WIFI模塊的型號(hào),在后續(xù)使用過程中,只需對(duì)配置文件讀取即可獲得內(nèi)置WIFI模塊的型號(hào),以快速知道使用的內(nèi)置WIFI模塊是哪種類型,從而快速實(shí)現(xiàn)內(nèi)置WIFI模塊的識(shí)別。
上述WIFI模塊智能識(shí)別方法,由于預(yù)設(shè)WIFI支持目錄中包括至少一種WIFI模塊的標(biāo)識(shí)以及與標(biāo)識(shí)對(duì)應(yīng)的型號(hào),從而,在獲取到接入的模塊的標(biāo)識(shí)后,可識(shí)別至少一種WIFI模塊,也就是說即使是不同的WIFI模塊,只要是在預(yù)設(shè)WIFI支持目錄中,即可實(shí)現(xiàn)對(duì)不同WIFI模塊的識(shí)別,也就是說可實(shí)現(xiàn)識(shí)別至少一種WIFI模塊,將識(shí)別到的內(nèi)置WIFI模塊的型號(hào)寫入所述存儲(chǔ)分區(qū),生成所述內(nèi)置WIFI模塊對(duì)應(yīng)的配置文件,后續(xù)再使用內(nèi)置WIFI模塊時(shí),可讀取該配置文件即可識(shí)別到終端使用的是那種類型WIFI模塊,從而實(shí)現(xiàn)快速WIFI模塊識(shí)別。
請參閱圖2,在其中一個(gè)實(shí)施例中,當(dāng)存儲(chǔ)分區(qū)不存在內(nèi)置WIFI模塊的配置文件時(shí),控制內(nèi)置WIFI模塊工作的步驟S210之前,還包括步驟:
S201:接收模式選擇指令,并根據(jù)模式選擇指令選定終端內(nèi)置WIFI模塊的工作模式。
當(dāng)存儲(chǔ)分區(qū)存在內(nèi)置WIFI模塊的配置文件時(shí),或生成內(nèi)置WIFI模塊對(duì)應(yīng)的配置文件之后,還包括步驟:
S260:讀取配置文件,獲取內(nèi)置WIFI模塊的型號(hào)。
S270:加載與內(nèi)置WIFI模塊的型號(hào)對(duì)應(yīng)的驅(qū)動(dòng)。
S280:根據(jù)加載的內(nèi)置WIFI模塊的驅(qū)動(dòng),啟動(dòng)與內(nèi)置WIFI模塊的工作模式對(duì)應(yīng)的服務(wù)。
WIFI模塊對(duì)應(yīng)的工作模式有普通的WIFI模式(即普通的通過WIFI連接網(wǎng)絡(luò)的模式,也稱為STA(Station,基站)模式)、支持直連或Miracast(是啟動(dòng)的Wi-Fi CERTIFIED MiracastTM認(rèn)證項(xiàng)目,用戶可以迅速在設(shè)備間傳輸視頻)的WIFI P2P模式(點(diǎn)對(duì)點(diǎn)連接模式)、作為無線熱點(diǎn)的SoftAP模式(作為熱點(diǎn)的模式,終端作為無線接入點(diǎn),讓外部終端的無線網(wǎng)連接到該終端,通過終端的網(wǎng)絡(luò)上網(wǎng)),用戶可根據(jù)需求選定相應(yīng)的功能。例如,當(dāng)用戶需要連接網(wǎng)絡(luò)時(shí),選定普通的WIFI模式功能即可,在用戶選定WIFI模塊的工作模式之后,當(dāng)存儲(chǔ)分區(qū)不存在內(nèi)置WIFI模塊的配置文件時(shí),進(jìn)行內(nèi)置WIFI模塊識(shí)別并生成配置文件,當(dāng)存儲(chǔ)分區(qū)存在內(nèi)置WIFI模塊的配置文件時(shí)(之前已對(duì)內(nèi)置WIFI模塊進(jìn)行了識(shí)別并產(chǎn)生了配置文件),或生成內(nèi)置WIFI模塊對(duì)應(yīng)的配置文件之后,可根據(jù)配置文件進(jìn)行開啟內(nèi)置WIFI模塊選定的工作模式,即讀取配置文件,獲取內(nèi)置WIFI模塊的型號(hào),不同WIFI模塊對(duì)應(yīng)不同的驅(qū)動(dòng),從而加載與內(nèi)置WIFI模塊的型號(hào)對(duì)應(yīng)的驅(qū)動(dòng),以啟動(dòng)與內(nèi)置WIFI模塊的工作模式對(duì)應(yīng)的服務(wù)。也就是說根據(jù)選定的工作模式來啟動(dòng)相應(yīng)的服務(wù),如普通的WIFI模式對(duì)應(yīng)wpa_supplicant服務(wù),WIFI P2P模式對(duì)應(yīng)p2p_supplicant服務(wù),SoftAP模式對(duì)應(yīng)hostapd服務(wù)。根據(jù)工作模式啟動(dòng)相應(yīng)的服務(wù)后,當(dāng)WIFI模塊開啟工作時(shí),進(jìn)入相應(yīng)的工作模式進(jìn)行工作。
在其中一個(gè)實(shí)施例中,當(dāng)存儲(chǔ)分區(qū)不存在內(nèi)置WIFI模塊的配置文件時(shí),控制內(nèi)置WIFI模塊工作的步驟S110包括:當(dāng)存儲(chǔ)分區(qū)存在工廠分區(qū),且工廠分區(qū)與用戶分區(qū)均不存在內(nèi)置WIFI模塊對(duì)應(yīng)的配置文件時(shí),或當(dāng)存儲(chǔ)分區(qū)不存在工廠分區(qū),且用戶分區(qū)不存在內(nèi)置WIFI模塊對(duì)應(yīng)的配置文件時(shí),控制內(nèi)置WIFI模塊工作。
在終端的存儲(chǔ)分區(qū)中包括用于存儲(chǔ)系統(tǒng)數(shù)據(jù)的系統(tǒng)分區(qū)和用于存儲(chǔ)用戶使用終端過程中產(chǎn)生的數(shù)據(jù)的用戶分區(qū),也就是說系統(tǒng)分區(qū)存儲(chǔ)的是系統(tǒng)運(yùn)行所需要的數(shù)據(jù),系統(tǒng)恢復(fù)出廠設(shè)置時(shí)數(shù)據(jù)不會(huì)清除,用戶分區(qū)存儲(chǔ)的是用戶使用產(chǎn)生的數(shù)據(jù),系統(tǒng)恢復(fù)出廠設(shè)置時(shí)數(shù)據(jù)全部被清除,然而,工廠分區(qū)為一種區(qū)別于系統(tǒng)分區(qū)和用戶分區(qū)的獨(dú)立的分區(qū),用于存儲(chǔ)數(shù)據(jù),但工廠分區(qū)中存儲(chǔ)的數(shù)據(jù)在進(jìn)行恢復(fù)出廠設(shè)置時(shí)不會(huì)清除,工廠分區(qū)是根據(jù)產(chǎn)品設(shè)計(jì)需要進(jìn)行設(shè)置的分區(qū),也就是說有的終端有工廠分區(qū),有的終端沒有工廠分區(qū),從而在判斷終端的存儲(chǔ)分區(qū)是否存在內(nèi)置WIFI模塊的配置文件時(shí),需要判斷存儲(chǔ)分區(qū)是否存在工廠分區(qū),當(dāng)存儲(chǔ)分區(qū)存在工廠分區(qū)時(shí),判斷工廠分區(qū)是否有內(nèi)置WIFI模塊的配置文件,若沒有,再判斷用戶分區(qū)是否存在內(nèi)置WIFI模塊對(duì)的配置文件,若也沒有,相當(dāng)于工廠分區(qū)和用戶分區(qū)均不存在內(nèi)置WIFI模塊對(duì)應(yīng)的配置文件,此時(shí),需要對(duì)內(nèi)置WIFI模塊進(jìn)行識(shí)別和配置文件生成,即首先控制內(nèi)置WIFI模塊工作?;虍?dāng)存儲(chǔ)分區(qū)不存在工廠分區(qū)時(shí),需要對(duì)用戶分區(qū)是否存在內(nèi)置WIFI模塊的配置文件進(jìn)行判斷,當(dāng)用戶分區(qū)不存在內(nèi)置WIFI模塊對(duì)應(yīng)的配置文件時(shí),需要對(duì)內(nèi)置WIFI模塊進(jìn)行識(shí)別和配置文件生成,控制內(nèi)置WIFI模塊工作。
在其中一個(gè)實(shí)施例中,將內(nèi)置WIFI模塊的型號(hào)寫入存儲(chǔ)分區(qū),生成內(nèi)置WIFI模塊對(duì)應(yīng)的配置文件的步驟S150包括步驟:當(dāng)存儲(chǔ)分區(qū)存在工廠分區(qū)時(shí),將內(nèi)置WIFI模塊的型號(hào)寫入工廠分區(qū),生成內(nèi)置WIFI模塊對(duì)應(yīng)的配置文件;當(dāng)存儲(chǔ)分區(qū)不存在工廠分區(qū)時(shí),將內(nèi)置WIFI模塊的型號(hào)寫入存儲(chǔ)分區(qū)的用戶分區(qū),生成內(nèi)置WIFI模塊對(duì)應(yīng)的配置文件。
在生成配置文件過程中,選擇在哪個(gè)分區(qū)生成配置文件直接影響后續(xù)啟動(dòng)工作模式對(duì)應(yīng)的服務(wù)的效率。例如,如果存在工廠分區(qū)時(shí),將內(nèi)置WIFI模塊的型號(hào)寫入工廠分區(qū),生成內(nèi)置WIFI模塊對(duì)應(yīng)的配置文件,也就是說配置文件在工廠分區(qū),避免恢復(fù)出廠設(shè)置時(shí)用戶分區(qū)數(shù)據(jù)被清除導(dǎo)致下次打開WIFI時(shí)需要重新識(shí)別,效率不佳,即在存在工廠分區(qū)時(shí),將配置文件存儲(chǔ)在工廠分區(qū)。然而,當(dāng)不存在工廠分區(qū)時(shí),將配置文件存儲(chǔ)在用戶分區(qū)以便后續(xù)使用。
在其中一個(gè)實(shí)施例中,生成內(nèi)置WIFI模塊對(duì)應(yīng)的配置文件之后,還包括步驟:對(duì)配置文件設(shè)置路徑標(biāo)記。
在配置文件生成并存儲(chǔ)在工廠分區(qū)或用戶分區(qū)后,對(duì)配置文件進(jìn)行路徑標(biāo)記,以便后續(xù)需要讀取配置文件時(shí),根據(jù)該路徑標(biāo)記即可知配置文件是存在工廠分區(qū)還是用戶分區(qū),無需再依次對(duì)工廠分區(qū)和用戶分區(qū)進(jìn)行遍歷查找,提高讀取速度,從而提高啟動(dòng)相關(guān)功能的效率。
下面以一具體實(shí)施例對(duì)上述WIFI模塊智能識(shí)別方法加以說明。
選定WIFI功能:目前常用的WiFi模塊對(duì)應(yīng)的功能即工作模式有普通的WIFI模式、支持直連或Miracast的WIFI P2P模式、作為無線熱點(diǎn)的SoftAP模式,用戶根據(jù)需求選定相應(yīng)的功能。
判斷配置文件是否在工廠分區(qū):即判斷有沒有工廠分區(qū)存在,并且工廠分區(qū)是否存在相應(yīng)的配置文件,如是否存在/factory/wifi_type文件。
判斷配置文件是否在用戶分區(qū):即當(dāng)配置文件不在工廠分區(qū)時(shí),判斷配置文件是否保存在用戶分區(qū),如是否存在/data/misc/wifi/wifi_type文件。
WIFI自動(dòng)識(shí)別并生成配置文件:當(dāng)在工廠分區(qū)和用戶分區(qū)都找不到wifi_type配置文件,那么要進(jìn)行內(nèi)置WIFI模塊識(shí)別和生成配置文件的步驟。具體步驟如下:
對(duì)WIFI上電和狀態(tài)引腳控制:對(duì)內(nèi)置WiFi模塊上電,并且將內(nèi)置WIFI模塊的RESET等狀態(tài)引腳設(shè)置相應(yīng)的工作狀態(tài),讓內(nèi)置WIFI模塊或芯片工作起來,以便相應(yīng)的總線能發(fā)現(xiàn)該接口掛載上,識(shí)別到該模塊存在。
獲取USB總線上模塊的VID和PID:遍歷/sys/devices/目錄下單個(gè)以.usb結(jié)尾的目錄下以u(píng)sb開頭的目錄下的idVendor和idProduct文件(如/sys/devices/ff500000.usb/usb1/idVendor),獲取接入的usb模塊的VID和PID。單個(gè)以.usb結(jié)尾的目錄對(duì)應(yīng)單個(gè)USB總線,也就是說一個(gè)USB總線對(duì)應(yīng)一個(gè)以.usb結(jié)尾的目錄,在終端中,可能設(shè)置有多個(gè)USB總線,每個(gè)USB總線上可接入模塊,各USB總線上接入的模塊的標(biāo)識(shí)存儲(chǔ)在對(duì)應(yīng)的以.usb結(jié)尾的目錄中。
依次判斷獲取到的USB模塊的VID和PID是否在預(yù)設(shè)WIFI支持目錄里。
判斷是否存在下個(gè)USB模塊:依次判斷獲取到的USB模塊的VID和PID是否在預(yù)設(shè)WIFI支持目錄里,如果獲取單個(gè)USB總線上的USB模塊的VID和PID均不在預(yù)設(shè)WIFI支持目錄里,則判斷/sys/devices目錄下是否有下一個(gè)以.usb結(jié)尾的目錄,且該目錄下存在以u(píng)sb開頭的目錄,如有下一個(gè)以.usb結(jié)尾的目錄且在該目錄下存在以u(píng)sb開頭的目錄,則表示有下個(gè)USB總線,且該USB總線上有接入usb模塊,則進(jìn)行下次遍歷處理,即可獲取上述下一個(gè)USB總線上接入的模塊的VID和PID,再進(jìn)行是否在預(yù)設(shè)WIFI支持目錄里進(jìn)行判斷。如有下一個(gè)以.usb結(jié)尾的目錄,但是不存在以u(píng)sb開頭的目錄,則再繼續(xù)往下繼續(xù)查找是否還存在另外的以.usb結(jié)尾的目錄,依次類推,直到?jīng)]有以.usb結(jié)尾的目錄。若通過判斷/sys/devices目錄下沒有下一個(gè)以.usb結(jié)尾的目錄,說明USB總線不存在支持識(shí)別的WIFI模塊,即終端中所有USB總線均不存在支持識(shí)別的WIFI模塊,此時(shí)再判斷SDIO總線上是否存在支持識(shí)別的WIFI模塊,即執(zhí)行如下步驟:
獲取SDIO總線上模塊的VID和PID:遍歷/sys/bus/sdio/devices目錄下以sdio開頭的目錄下的vendor和device文件(如/sys/bus/sdio/devices/sdio:0001:1/vendor)獲取該SDIO模塊的VID和PID。
依次判斷獲取到的SDIO模塊的VID和PID是否在預(yù)設(shè)WIFI支持目錄里。
判斷是否存在下個(gè)SDIO模塊:依次判斷獲取到的SDIO模塊的VID和PID是否在預(yù)設(shè)WIFI支持目錄里,如果單個(gè)SDIO模塊的VID和PID不存在,則判斷/sys/bus/sdio/devices目錄下有沒有下一個(gè)以sdio開頭的目錄,如存在則表示有下個(gè)SDIO設(shè)備存在,則進(jìn)行下次遍歷處理,如不存在,說明SDIO總線不存在支持識(shí)別的WIFI模塊,也就說從SDIO總線接入的模塊均不存在于預(yù)設(shè)WIFI支持目錄中,則提示不支持的WIFI模塊,并控制WIFI斷電。
提示不支持的WIFI模塊,并控制WIFI斷電:當(dāng)識(shí)別不到當(dāng)前的WiFi模塊時(shí),CPU會(huì)自動(dòng)將內(nèi)置WIFI模塊選定的功能做關(guān)閉處理,以提示不支持當(dāng)前的WIFI模塊并對(duì)WiFi進(jìn)行掉電處理,避免功耗的浪費(fèi)。但這種情況在用戶使用時(shí)是很少出現(xiàn),在工廠生產(chǎn)時(shí)如果發(fā)現(xiàn)該問題,只可能是硬件焊接存在問題或者上電時(shí)序問題,會(huì)分別對(duì)相應(yīng)的問題進(jìn)行應(yīng)對(duì)處理。
判斷是否存在工廠分區(qū):當(dāng)獲取到的USB模塊的VID和PID存在于預(yù)設(shè)WIFI支持目錄里或獲取到的SDIO模塊的VID和PID存在于預(yù)設(shè)WIFI支持目錄里時(shí),判斷是否存在工廠分區(qū)(如/factory),如果存在則將識(shí)別到的內(nèi)置WIFI模塊的型號(hào)寫到該分區(qū),避免恢復(fù)出廠設(shè)置后用戶分區(qū)數(shù)據(jù)被清除導(dǎo)致下次打開WIFI需要重新識(shí)別,從而導(dǎo)致用戶體驗(yàn)不好的問題。也就是將識(shí)別到的內(nèi)置WIFI模塊的型號(hào)寫到工廠分區(qū)(如/factory/wifi_type文件),并且對(duì)當(dāng)前使用工廠分區(qū)里的配置文件進(jìn)行路徑標(biāo)識(shí)。當(dāng)不存在工廠分區(qū)時(shí),將識(shí)別到的內(nèi)置WIFI型號(hào)寫到用戶分區(qū)(如/data/misc/wifi/wifi_type文件),并且對(duì)當(dāng)前使用用戶分區(qū)里的配置文件進(jìn)行路徑標(biāo)識(shí)。
WIFI自動(dòng)識(shí)別并生成配置文件后,則執(zhí)行以下步驟:
讀取配置文件:讀取wifi_type文件,獲得終端使用的內(nèi)置WIFI的型號(hào);
加載WIFI驅(qū)動(dòng):調(diào)用insmod(將給定的模塊加載到內(nèi)核中的命令)加載型號(hào)對(duì)應(yīng)的WIFI驅(qū)動(dòng);
啟動(dòng)相關(guān)功能服務(wù):根據(jù)選定的內(nèi)置WIFI模塊的功能來啟動(dòng)相應(yīng)的服務(wù),如wpa_supplicant、p2p_supplicant、hostapd服務(wù)。
通過上述WIFI模塊智能識(shí)別方法,能對(duì)終端自身使用的內(nèi)置WIFI模塊進(jìn)行識(shí)別,預(yù)設(shè)WIFI支持目錄中包括至少一種WIFI模塊的標(biāo)識(shí)和對(duì)應(yīng)的型號(hào),也就是說可實(shí)現(xiàn)對(duì)至少一種WIFI模塊的識(shí)別,無需針對(duì)不同的WIFI模塊進(jìn)行不同的軟件配置以實(shí)現(xiàn)不同模塊的識(shí)別,提升軟件配置管理,進(jìn)一步地,由于采用相同的軟件配置即可實(shí)現(xiàn)至少一種WIFI模塊,無需采用多種不同的軟件配置實(shí)現(xiàn)多種模塊的識(shí)別,從而,工廠生產(chǎn)時(shí)避免多種軟件配置發(fā)放錯(cuò)誤導(dǎo)致重工操作,提高生產(chǎn)效率。另外,終端軟件升級(jí)時(shí),用戶無需確認(rèn)產(chǎn)品配置,通過對(duì)內(nèi)置WIFI模塊的識(shí)別,即可知道自身內(nèi)置WIFI模塊的型號(hào),從而可獲取對(duì)應(yīng)的升級(jí)軟件程序進(jìn)行升級(jí),不用用戶再去確認(rèn)產(chǎn)品配置了。同時(shí),通過CPU對(duì)內(nèi)置WIFI模塊的上電以及引腳控制,可對(duì)內(nèi)置WIFI模塊的工作狀態(tài)進(jìn)行控制,無需開啟WIFI時(shí),可斷開內(nèi)置WIFI模塊的電源,即對(duì)終端進(jìn)行了嚴(yán)格的功能控制,減少能源消耗。
請參閱圖3,提供一種實(shí)施例的WIFI模塊智能識(shí)別裝置,包括:
控制模塊310,用于當(dāng)存儲(chǔ)分區(qū)不存在內(nèi)置WIFI模塊的配置文件時(shí),控制內(nèi)置WIFI模塊工作。
標(biāo)識(shí)獲取模塊320,用于獲取接口總線上接入的模塊的標(biāo)識(shí)。
查詢模塊330,用于根據(jù)接入的模塊的標(biāo)識(shí),查找接入的模塊中是否有存在于預(yù)設(shè)WIFI支持目錄中的內(nèi)置WIFI模塊,其中,預(yù)設(shè)WIFI支持目錄中包括至少一種WIFI模塊的標(biāo)識(shí)以及與標(biāo)識(shí)對(duì)應(yīng)的型號(hào)。
型號(hào)獲取模塊340,用于查詢模塊的查詢結(jié)果為是時(shí),根據(jù)內(nèi)置WIFI模塊的標(biāo)識(shí),從預(yù)設(shè)WIFI支持目錄中獲取與內(nèi)置WIFI模塊的標(biāo)識(shí)對(duì)應(yīng)的型號(hào)。
配置文件生成模塊350,用于將內(nèi)置WIFI模塊的型號(hào)寫入存儲(chǔ)分區(qū),生成內(nèi)置WIFI模塊對(duì)應(yīng)的配置文件。
上述WIFI模塊智能識(shí)別裝置,由于預(yù)設(shè)WIFI支持目錄中包括至少一種WIFI模塊的標(biāo)識(shí)以及與標(biāo)識(shí)對(duì)應(yīng)的型號(hào),從而,在獲取到接入的模塊的標(biāo)識(shí)后,可識(shí)別至少一種WIFI模塊,也就是說即使是不同的WIFI模塊,只要是在預(yù)設(shè)WIFI支持目錄中,即可實(shí)現(xiàn)對(duì)不同WIFI模塊的識(shí)別,也就是說可實(shí)現(xiàn)識(shí)別至少一種WIFI模塊,將識(shí)別到的內(nèi)置WIFI模塊的型號(hào)寫入所述存儲(chǔ)分區(qū),生成所述內(nèi)置WIFI模塊對(duì)應(yīng)的配置文件,后續(xù)再使用內(nèi)置WIFI模塊時(shí),可讀取該配置文件即可識(shí)別到終端使用的是那種類型WIFI模塊,從而實(shí)現(xiàn)快速WIFI模塊識(shí)別。
在本實(shí)施例中,WIFI模塊智能識(shí)別裝置還包括提示模塊,用于查詢模塊的查詢結(jié)果為否時(shí),提示不能識(shí)別WIFI模塊。若接入的模塊均不存在于預(yù)設(shè)WIFI支持目錄中,也就是說,接入的模塊中沒有支持識(shí)別的內(nèi)置WIFI模塊,則提示不能識(shí)別WIFI模塊。
請參閱圖4,在其中一個(gè)實(shí)施例中,WIFI模塊智能識(shí)別裝置還包括工作模式選擇模塊401、讀取模塊460、加載模塊470以及啟動(dòng)模塊480。
工作模式選擇模塊401,用于接收模式選擇指令,并根據(jù)模式選擇指令選定終端內(nèi)置WIFI模塊的工作模式。
讀取模塊460,用于當(dāng)存儲(chǔ)分區(qū)存在內(nèi)置WIFI模塊的配置文件時(shí),或配置文件生成模塊生成內(nèi)置WIFI模塊對(duì)應(yīng)的配置文件之后,讀取配置文件,獲取內(nèi)置WIFI模塊的型號(hào)。
加載模塊470,用于加載與內(nèi)置WIFI模塊的型號(hào)對(duì)應(yīng)的驅(qū)動(dòng)。
啟動(dòng)模塊480,用于根據(jù)加載的內(nèi)置WIFI模塊的驅(qū)動(dòng),啟動(dòng)與內(nèi)置WIFI模塊的工作模式對(duì)應(yīng)的服務(wù)。
在其中一個(gè)實(shí)施例中,控制模塊,還用于當(dāng)存儲(chǔ)分區(qū)存在工廠分區(qū),且工廠分區(qū)與用戶分區(qū)均不存在內(nèi)置WIFI模塊對(duì)應(yīng)的配置文件時(shí),或當(dāng)存儲(chǔ)分區(qū)不存在工廠分區(qū),且用戶分區(qū)不存在內(nèi)置WIFI模塊對(duì)應(yīng)的配置文件時(shí),控制內(nèi)置WIFI模塊工作。
在其中一個(gè)實(shí)施例中,配置文件生成模塊包括:
第一生成模塊,用于當(dāng)存儲(chǔ)分區(qū)存在工廠分區(qū)時(shí),將內(nèi)置WIFI模塊的型號(hào)寫入工廠分區(qū),生成內(nèi)置WIFI模塊對(duì)應(yīng)的配置文件。
第二生成模塊,用于當(dāng)存儲(chǔ)分區(qū)不存在工廠分區(qū)時(shí),將內(nèi)置WIFI模塊的型號(hào)寫入存儲(chǔ)分區(qū)的用戶分區(qū),生成內(nèi)置WIFI模塊對(duì)應(yīng)的配置文件。
在其中一個(gè)實(shí)施例中,上述WIFI模塊智能識(shí)別裝置還包括:
標(biāo)記模塊,用于對(duì)配置文件設(shè)置路徑標(biāo)記。
由于上述WIFI模塊智能識(shí)別裝置與上述WIFI模塊智能識(shí)別方法一一對(duì)應(yīng),其具體細(xì)節(jié)特征也一一對(duì)應(yīng),故在此不作贅述。
以上實(shí)施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡潔,未對(duì)上述實(shí)施例中的各個(gè)技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說明書記載的范圍。
以上實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。