備未被偵測到的狀態(tài)(例如,外接設備被損壞或外接設備不被支持導致外接設備未被偵測到),也可以為外接設備受到電磁干擾后非正常的狀態(tài)。
[0053]步驟S212:檢測外接設備是否受到過電磁干擾,若檢測到外接設備未受到過電磁干擾,執(zhí)行步驟S213,若檢測到外接設備受到過電磁干擾,執(zhí)行步驟S214。當在步驟S202中檢測到外接設備接入車載電子設備且在步驟S204中檢測到外接設備能正常工作時,在步驟S212中,進一步檢測外接設備是否受到過電磁干擾。
[0054]步驟S213:判斷外接設備處于正常工作狀態(tài),然后返回步驟S202。S卩,當在步驟S202中車載電子設備檢測到外接設備接入車載電子設備、在步驟S204中檢測到外接設備能正常工作,且在步驟S213中檢測到外接設備未受到過電磁干擾時,判斷模塊23判斷外接設備處于正常工作狀態(tài)。其中,正常工作狀態(tài)為外接設備的一種正常狀態(tài)。
[0055]當外接設備處于正常工作狀態(tài)時,車載電子設備中的應用程序從外接設備預取并緩存數(shù)據(jù)以供應用程序處理從而實現(xiàn)外接設備所支持的功能。同時,當有電磁干擾發(fā)生時,保存由于電磁干擾導致外接設備訪問中斷時外接設備的中斷點對應的配置信息。
[0056]步驟S214:判斷外接設備處于受到電磁干擾后已恢復工作的狀態(tài),然后返回步驟S202。當在步驟S202中車載電子設備檢測到外接設備接入車載電子設備、在步驟S204中檢測到外接設備能正常工作,且在步驟S214中檢測到外接設備受到過電磁干擾時,判斷模塊23判斷外接設備處于受到電磁干擾后已恢復工作的狀態(tài)。其中,受到電磁干擾后已恢復工作的狀態(tài)為外接設備受到電磁干擾后,迅速恢復正常的狀態(tài)。
[0057]當外接設備處于受到電磁干擾后已恢復工作的狀態(tài)時,車載電子設備根據(jù)受到電磁干擾時已保存的外接設備的中斷點對應的配置信息,從中斷點恢復車載電子設備對外接設備的訪問,即繼續(xù)從中斷點預取并緩存數(shù)據(jù)以供應用程序處理。同時,當電磁干擾再次發(fā)生時,保存由于電磁干擾導致訪問中斷時外接設備的中斷點對應的配置信息。
[0058]本發(fā)明第二實施例的判斷外接設備工作狀態(tài)的方法通過檢測外接設備是否接入車載電子設備、檢測外接設備是否能正常工作、檢測外接設備是否正常接入以及檢測外接設備是否受到電磁干擾來判斷外接設備的狀態(tài),進一步并根據(jù)判斷的狀態(tài)對外接設備進行操作,從而規(guī)避了電磁干擾的影響,提高了用戶的體驗友好性。
[0059]圖5是本發(fā)明第三實施例的判斷外接設備工作狀態(tài)的方法的流程圖,本發(fā)明的方法用于車載電子設備,可由圖2所示的裝置來實施。在本實施例中,外接設備為裝載有流媒體數(shù)據(jù)的U盤。需注意的是,若有實質(zhì)上相同的結果,本發(fā)明的方法并不以圖5所示的流程順序為限。如圖5所示,該方法包括如下步驟:
[0060]步驟S301:開始;
[0061]步驟S302:檢測U盤是否接入車載電子設備;若是,執(zhí)行步驟S303,若否,返回步驟S302。在本實施例中,接入檢測模塊21可以通過USB控制器驅(qū)動程序來實現(xiàn)。USB控制器驅(qū)動程序可以通過檢測檢測U盤是否與車載電子設備建立硬件上的連接,來檢測U盤是否接入車載電子設備。
[0062]步驟S303:啟動定時器開始計時;在本實施例中,定時器用于設定車載電子設備中的USB控制器對U盤的識別時間,該識別時間可以設置為I分鐘。本領域技術人員了解,識別時間為I分鐘僅為舉例說明,并非為本發(fā)明的限制,識別時間可以根據(jù)實際情況任意設定。
[0063]步驟S304:檢測U盤的盤符名。若不能檢測到,執(zhí)行步驟S305 ;若能檢測到,執(zhí)行步驟S315。當在步驟S302檢測到U盤接入車載電子設備后,在步驟S304中,進一步檢測U盤是否能正常工作,即判斷U盤的盤符名是否能被文件系統(tǒng)檢測到。若U盤的盤符名能被文件系統(tǒng)檢測到,則表明U盤能正常工作。
[0064]步驟S305:進一步檢測U盤是否為正常接入,若檢測到U盤為未正常接入,執(zhí)行步驟S306,若檢測到U盤為正常接入,執(zhí)行步驟S311。當在步驟S304中U盤的盤符名未被檢測到時,在步驟S305中,接入檢測模塊21 (即USB控制器驅(qū)動程序)檢測U盤是否為正常接入。具體來說,USB控制器驅(qū)動程序可以通過檢測寄存器中的接入狀態(tài)標志位來判斷U盤是否為正常接入。
[0065]步驟S306:檢測U盤是否受到電磁干擾。若檢測到U盤未受到電磁干擾,執(zhí)行步驟S307 ;若檢測到U盤受到電磁干擾,執(zhí)行步驟S309。
[0066]步驟S307:判斷U盤處于不工作狀態(tài)。當在上述步驟(S302、S304、S305、S306)中的檢測結果為U盤接入車載電子設備、U盤的盤符名未被檢測到、U盤為未正常接入、以及U盤未受到電磁干擾時,在步驟S307中,判斷模塊23可判斷U盤處于不工作狀態(tài)。其中,U盤的不工作狀態(tài)對應于U盤被拔出的狀態(tài)。
[0067]步驟S308:車載電子設備停止對U盤中流媒體數(shù)據(jù)的訪問并清除U盤的中斷點對應的配置信息,然后返回步驟S302。當判斷模塊23判斷U盤處于不工作狀態(tài)時,在步驟S308中,車載電子設備中的USB控制器停止預取并緩存U盤中的流媒體數(shù)據(jù),并清除緩存模塊26中緩存的流媒體數(shù)據(jù)以釋放緩存模塊的存儲空間。進一步,清除模塊25清除U盤的中斷點對應的配置信息,以釋放存儲配置信息的存儲空間。另外,當判斷模塊23判斷U盤處于不工作狀態(tài)時,應用程序控制人機交互界面顯示為退出流媒體播放的界面。
[0068]步驟S309:判斷U盤處于受到電磁干擾后不工作的狀態(tài)。當在上述步驟(S302、S304、S305、S306)中的檢測結果為U盤接入車載電子設備、U盤的盤符名未被檢測到、U盤為未正常接入、以及U盤受到電磁干擾時,判斷U盤處于受到電磁干擾后不工作的狀態(tài)。
[0069]步驟S310:車載電子設備中的USB控制器將緩存的流媒體數(shù)據(jù)提供給應用程序進行處理,然后返回步驟S302。當判斷模塊23判斷U盤處于受到電磁干擾后不工作的狀態(tài)時,在步驟S310中,USB控制器暫停預取并緩存U盤中的流媒體數(shù)據(jù)的操作,并將緩存模塊26中緩存的流媒體數(shù)據(jù)提供給應用程序進行播放。此時,應用程序控制人機交互界面顯示為流媒體數(shù)據(jù)正常播放的界面。
[0070]如果當緩存模塊26緩存的流媒體數(shù)據(jù)還未播放完時,U盤就已恢復正常,則USB控制器會繼續(xù)預取并緩存U盤中的流媒體數(shù)據(jù)的操作。如果當緩沖區(qū)緩存的流媒體數(shù)據(jù)已被播放完畢時,USB控制器仍無法獲取流媒體數(shù)據(jù),為了顯示人機交互界面的友好性,應用程序控制人機交互界面顯示為小動畫,以提示系統(tǒng)正在訪問流媒體數(shù)據(jù)。
[0071]步驟S311:判斷步驟S303中啟動的計時是否超過預設的識別時間,若是,執(zhí)行步驟S312,若否,返回步驟S304。在步驟S311中,判斷定時器的計時是否超過預設的識別時間,例如,I分鐘,若超過I分鐘,U盤依舊無法被識別,則執(zhí)行步驟S312。
[0072]步驟S312:判斷U盤處于未知狀態(tài)。當在上述步驟(S302、S304、S305、S311)中的檢測結果為U盤接入車載電子設備、U盤的盤符名未被檢測到、U盤為未正常接入、且U盤的識別時間超過預設的識別時間時,在步驟S312中,判斷模塊23判斷U盤處于未知狀態(tài)。其中,未知狀態(tài)也可理解為U盤不被USB控制器識別的狀態(tài),或者是U盤受到電磁干擾而工作在非正常模式的狀態(tài)。
[0073]步驟S313:車載電子設備中的USB控制器根據(jù)當前流媒體數(shù)據(jù)的播放情況對U盤進行相應的操作,流程結束(S314)。當在步驟S312中判斷模塊23判斷U盤處于未知狀態(tài)時,步驟S313中根據(jù)當前有無流媒體數(shù)據(jù)正在播放對U盤進行相應的操作。具體來說,若當前有流媒體數(shù)據(jù)正在播放時,USB控制器停止對U盤中流媒體數(shù)據(jù)的訪問、清除已緩存的流媒體數(shù)據(jù)以及清除U盤的中斷點對應的配置信息。若當前沒有流媒體數(shù)據(jù)正在播放時,USB控制器不做任何操作;或者給出無法訪問U盤的提示。
[0074]另外,為了顯示友好的人機交互界面,當USB控制器判斷U盤處于未知狀態(tài)時,若當前有流媒體數(shù)據(jù)正在播放時,應用程序控制人機交互界面上顯示為退出流媒體播放的界面,并提示無法繼續(xù)播放,可能需要插入U盤。
[0075]步驟S315:檢測U盤是否受到過電磁干擾,若檢測到U盤未受到過電磁干擾,執(zhí)行步驟S316,若檢測到U盤受到過電磁干