應(yīng)用程序訪問物理外設(shè)的方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種應(yīng)用程序訪問物理外設(shè)的方法,包括如下步驟:模擬生成應(yīng)用程序需要訪問的物理外設(shè)的設(shè)備數(shù)據(jù);根據(jù)所述應(yīng)用程序訪問物理外設(shè)的請求信息訪問所述設(shè)備數(shù)據(jù);將所述訪問過程中返回的設(shè)備數(shù)據(jù)回傳至所述應(yīng)用程序。另外,還提供與該應(yīng)用程序訪問物理外設(shè)的方法對應(yīng)的系統(tǒng),通過本發(fā)明的技術(shù),應(yīng)用程序訪問物理外設(shè)過程中,完全脫離對物理外設(shè)的依賴,具有極高的可操作性,能夠模擬任何物理外設(shè)及物理外設(shè)狀態(tài),使得應(yīng)用程序可以獲得的任何需要的物理外設(shè)狀態(tài)信息。
【專利說明】應(yīng)用程序訪問物理外設(shè)的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及訪問物理外設(shè)技術(shù),特別是涉及一種應(yīng)用程序訪問物理外設(shè)的方法和系統(tǒng)。
【背景技術(shù)】
[0002]目前,在帶操作系統(tǒng)的嵌入式軟件開發(fā)過程中,一般操作系統(tǒng)都會對驅(qū)動訪問接口進行統(tǒng)一封裝,應(yīng)用程序需要訪問物理外設(shè)時,需要通過調(diào)用操作系統(tǒng)提供的各種驅(qū)動接口實現(xiàn)對外部硬件的訪問。
[0003]例如,應(yīng)用程序需要獲取物理外設(shè)的狀態(tài),應(yīng)用程序首先調(diào)用驅(qū)動程序訪問接口,向驅(qū)動程序傳遞需要訪問的信息,驅(qū)動程序根據(jù)訪問信息直接對特定的物理外設(shè)進行讀取操作(有時候還需要寫入相應(yīng)控制信息才能進行讀取操作),最后驅(qū)動程序?qū)⒃L問得到的數(shù)據(jù)傳輸至應(yīng)用程序,實現(xiàn)應(yīng)用程序?qū)Φ讓佑布锢碓O(shè)備的訪問。
[0004]在上述技術(shù)中,驅(qū)動程序是對底層硬件設(shè)備進行直接訪問,應(yīng)用程序訪問物理外設(shè)的過程必須要依賴于物理外設(shè)的硬件存在,同時所得到的數(shù)據(jù)也必須依賴于物理外設(shè)的實際狀態(tài),這樣給應(yīng)用程序訪問物理外設(shè)帶來了極大的局限性,特別是在對應(yīng)用程序進行異常狀態(tài)測試中,導致應(yīng)用程序無法獲得當前物理外設(shè)所不能提供的異常狀態(tài)數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0005]基于此,有必要針對傳統(tǒng)應(yīng)用程序訪問物理外設(shè)技術(shù)嚴重依賴于物理外設(shè)的問題,提供一種應(yīng)用程序訪問物理外設(shè)的方法和系統(tǒng)。
[0006]一種應(yīng)用程序訪問物理外設(shè)的方法,包括如下步驟:
[0007]模擬生成應(yīng)用程序需要訪問的物理外設(shè)的設(shè)備數(shù)據(jù);
[0008]根據(jù)所述應(yīng)用程序訪問物理外設(shè)的請求信息訪問所述設(shè)備數(shù)據(jù);
[0009]將所述訪問過程中返回的設(shè)備數(shù)據(jù)回傳至所述應(yīng)用程序。
[0010]一種應(yīng)用程序訪問物理外設(shè)的系統(tǒng),包括:
[0011]模擬虛擬外設(shè)單元,用于模擬生成應(yīng)用程序需要訪問的物理外設(shè)的設(shè)備數(shù)據(jù);
[0012]虛擬外設(shè)訪問單元,用于根據(jù)所述應(yīng)用程序訪問物理外設(shè)的請求信息訪問所述設(shè)備數(shù)據(jù);
[0013]返回數(shù)據(jù)解析單元,用于將所述訪問過程中返回的設(shè)備數(shù)據(jù)回傳至所述應(yīng)用程序。
[0014]上述應(yīng)用程序訪問物理外設(shè)的方法和系統(tǒng),通過模擬生成物理外設(shè)的設(shè)備數(shù)據(jù),應(yīng)用程序?qū)δM生成的虛擬物理外設(shè)的設(shè)備數(shù)據(jù)進行訪問,獲得相應(yīng)的設(shè)備狀態(tài)信息,應(yīng)用程序訪問物理外設(shè)過程中,完全脫離對物理外設(shè)的依賴,具有極高的可操作性,能夠模擬任何物理外設(shè)及其物理外設(shè)狀態(tài),使得應(yīng)用程序可以獲得的任何需要的物理外設(shè)狀態(tài)信
肩、O【專利附圖】
【附圖說明】
[0015]圖1為一個實施例的應(yīng)用程序訪問物理外設(shè)的方法流程圖;
[0016]圖2為一個實施例的訪問設(shè)備數(shù)據(jù)的流程圖;
[0017]圖3為一個實施例的應(yīng)用系統(tǒng)與服務(wù)器內(nèi)部的結(jié)構(gòu)示意圖;
[0018]圖4為一個較佳實施例的應(yīng)用系統(tǒng)的應(yīng)用程序與服務(wù)器進行數(shù)據(jù)交換處理過程的流程圖;
[0019]圖5為一個較佳實施例的服務(wù)器的應(yīng)用程序與應(yīng)用系統(tǒng)進行數(shù)據(jù)交換處理過程的流程圖;
[0020]圖6為一個實施例的應(yīng)用程序訪問物理外設(shè)的系統(tǒng)的結(jié)構(gòu)示意圖;
[0021]圖7為一個較佳實施例的應(yīng)用程序訪問物理外設(shè)的系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0022]下面結(jié)合附圖對本發(fā)明的應(yīng)用程序訪問物理外設(shè)的方法的【具體實施方式】作詳細描述。
[0023]如圖1所示,圖1示出了一個實施例的應(yīng)用程序訪問物理外設(shè)的方法流程圖,主要包括如下步驟:
[0024]步驟S1:模擬生成應(yīng)用程序需要訪問的物理外設(shè)的設(shè)備數(shù)據(jù);
[0025]在一個實施例中,步驟SI具體包括:
[0026]建立一個用于模擬物理外設(shè)的服務(wù)器,根據(jù)應(yīng)用程序需要訪問的物理外設(shè),在服務(wù)器中模擬生成與該物理外設(shè)對應(yīng)的設(shè)備數(shù)據(jù)。
[0027]在嵌入式軟件開發(fā)過程中,通常需要考慮處理各種物理外設(shè)的異常情況,通過服務(wù)器模擬產(chǎn)生所期望的各種物理外設(shè)故障的異常狀態(tài),無需將實際的物理外設(shè)修改成相應(yīng)的異常狀態(tài),即可對軟件在此類故障的處理流程進行測試,極大提高軟件的可測試性。
[0028]需要說明的是,除了利用上述的服務(wù)器外,還可以通過其它具有類似功能的軟件或硬件模擬生成物理外設(shè)的設(shè)備數(shù)據(jù)。
[0029]步驟S2:根據(jù)所述應(yīng)用程序訪問物理外設(shè)的請求信息訪問所述設(shè)備數(shù)據(jù);
[0030]在一個實施例中,如圖2所示,圖2示出了一個實施例的訪問設(shè)備數(shù)據(jù)的流程圖,具體包括如下步驟:
[0031]步驟S201,通過驅(qū)動程序?qū)?yīng)用程序訪問物理外設(shè)的請求信息進行解析;
[0032]具體地,由驅(qū)動軟件通過操作系統(tǒng)提供的系統(tǒng)函數(shù)接口與應(yīng)用程序交互,將收到的應(yīng)用程序訪問請求信息進行解析。
[0033]步驟S202,依據(jù)解析后的請求信息訪問服務(wù)器中的設(shè)備數(shù)據(jù);
[0034]作為一個實施例,訪問服務(wù)器的過程包括如下步驟:
[0035]a、將請求信息中的訪問數(shù)據(jù),依據(jù)設(shè)定的協(xié)議格式進行組包;
[0036]具體地,通過驅(qū)動程序在驅(qū)動層解析獲得請求信息中包含的訪問數(shù)據(jù),依據(jù)與服務(wù)器之間進行通信所設(shè)定的協(xié)議格式,將訪問數(shù)據(jù)進行組包。
[0037]b、通過通信接口將組包得到的訪問數(shù)據(jù)包發(fā)送至服務(wù)器;
[0038]其中,通信接口包括但不限定于網(wǎng)絡(luò)接口、USB、串口等,發(fā)送后等待服務(wù)器的應(yīng)答信息。[0039]C、在服務(wù)器中對訪問數(shù)據(jù)包進行拆包和解析;
[0040]具體地,服務(wù)器實時監(jiān)聽通信接口,接收到訪問數(shù)據(jù)包后,根據(jù)設(shè)定的協(xié)議格式對訪問數(shù)據(jù)包進行拆包,并解析出訪問數(shù)據(jù)包中所包含的訪問信息以供進行相應(yīng)的應(yīng)答。
[0041]d、根據(jù)訪問數(shù)據(jù)包中的訪問信息,從設(shè)備數(shù)據(jù)中獲取相應(yīng)的應(yīng)答數(shù)據(jù);
[0042]具體地,服務(wù)器根據(jù)訪問數(shù)據(jù)包的內(nèi)容獲取存儲在本地的設(shè)備數(shù)據(jù)的內(nèi)容,并組織相應(yīng)的應(yīng)答數(shù)據(jù)的內(nèi)容。
[0043]e、將應(yīng)答數(shù)據(jù)依據(jù)設(shè)定的協(xié)議格式進行組包。
[0044]f、通過通信接口將組包得到的應(yīng)答數(shù)據(jù)包發(fā)送至驅(qū)動程序。
[0045]g、通過驅(qū)動程序接收服務(wù)器返回的應(yīng)答數(shù)據(jù);
[0046]具體地,由驅(qū)動程序接收服務(wù)器返回的應(yīng)答數(shù)據(jù)包,對應(yīng)答數(shù)據(jù)包進行拆包,獲得應(yīng)用程序所需的設(shè)備數(shù)據(jù)。
[0047]通過對模擬生成的設(shè)備數(shù)據(jù)的訪問,應(yīng)用程序所需要訪問的物理外設(shè)的信息,實際都來源于服務(wù)器所提供的模擬數(shù)據(jù),對于所需要的物理外設(shè)的各種狀態(tài)信息(包括故障異常狀況),只需要在服務(wù)器的應(yīng)用軟件進行模擬生成即可獲得。
[0048]步驟S3:將所述訪問過程中返回的設(shè)備數(shù)據(jù)回傳至所述應(yīng)用程序;
[0049]在一個實施例中,步驟S3的過程具體包括:
[0050]通過驅(qū)動程序?qū)Σ鸢@得的設(shè)備數(shù)據(jù)進行解析,獲得應(yīng)用程序所需的物理外設(shè)狀態(tài)信息,將該物理外設(shè)狀態(tài)信息傳輸至應(yīng)用程序。
[0051]利用本發(fā)明的技術(shù),在嵌入式系統(tǒng)中,應(yīng)用層的應(yīng)用程序通過調(diào)用操作系統(tǒng)提供的驅(qū)動程序訪問接口,驅(qū)動程序解析出應(yīng)用程序訪問驅(qū)動程序的相關(guān)請求信息,并將請求信息依據(jù)設(shè)定的協(xié)議格式重新進行組包后通過通信接口發(fā)送到服務(wù)器端。同時驅(qū)動程序接收服務(wù)器端回應(yīng)的數(shù)據(jù)包,通過這種方式使得應(yīng)用程序所獲取的物理外設(shè)的信息是來源于服務(wù)器端所傳送的數(shù)據(jù),在服務(wù)器端可以方便地模擬物理外設(shè)的信息,包括各種異常信息和故障狀態(tài)的模擬,無需對實際的物理外設(shè)做相應(yīng)的改動。
[0052]為了更清晰本發(fā)明的應(yīng)用程序訪問物理外設(shè)的方法,下面通過一個應(yīng)用實例來闡述該方法的主要流程。
[0053]在本實例中,所建立的服務(wù)器通過嵌入式系統(tǒng)來實現(xiàn),物理外設(shè)的設(shè)備數(shù)據(jù)通過豐旲擬生成后存儲在服務(wù)器中。
[0054]如圖3所示,圖3示出了 一個實施例的應(yīng)用系統(tǒng)與服務(wù)器內(nèi)部的結(jié)構(gòu)示意圖,應(yīng)用系統(tǒng)包括:第一應(yīng)用程序、第一驅(qū)動訪問接口、第一驅(qū)動程序、第一網(wǎng)絡(luò)編程接口和第一通信接口,服務(wù)器包括:第二通信接口、第二驅(qū)動程序、第二驅(qū)動訪問接口、第二應(yīng)用程序和存儲單元。
[0055]上述應(yīng)用系統(tǒng)與服務(wù)器之間的數(shù)據(jù)交互及處理過程具體包括如下步驟:
[0056]步驟S301,第一應(yīng)用程序使用操作系統(tǒng)提供的第一驅(qū)動訪問接口,訪問第一驅(qū)動程序;
[0057]步驟S302,第一驅(qū)動程序接收到第一應(yīng)用程序?qū)ξ锢硗庠O(shè)的訪問請求后,解析第一應(yīng)用程序需要訪問物理外設(shè)相關(guān)的請求信息得到訪問數(shù)據(jù),依據(jù)設(shè)定的協(xié)議格式將訪問數(shù)據(jù)進行組包;
[0058]步驟S303,第一驅(qū)動程序通過調(diào)用第一網(wǎng)絡(luò)編程接口將數(shù)據(jù)包發(fā)送至第一通信接π ;
[0059]步驟S304,第一通信接口將收到的數(shù)據(jù)包傳到網(wǎng)絡(luò)上;
[0060]步驟S305,數(shù)據(jù)包經(jīng)網(wǎng)絡(luò)傳輸至第二通信接口 ;
[0061]步驟S306,第二通信接口接收數(shù)據(jù)包;
[0062]步驟S307,第二網(wǎng)口驅(qū)動程序接收網(wǎng)口收到的數(shù)據(jù)包;
[0063]步驟S308,第二應(yīng)用程序調(diào)用第二驅(qū)動訪問接口獲取數(shù)據(jù)包,依據(jù)設(shè)定的協(xié)議格式對數(shù)據(jù)包進行拆包,并解析訪問數(shù)據(jù);
[0064]步驟S309,第二應(yīng)用程序獲取存儲單元中的物理外設(shè)的設(shè)備數(shù)據(jù),依據(jù)設(shè)定的協(xié)議格式對獲取的設(shè)備數(shù)據(jù)進行組包,得到應(yīng)答數(shù)據(jù)包;
[0065]步驟S310,第二應(yīng)用程序調(diào)用第二驅(qū)動接口發(fā)送應(yīng)答數(shù)據(jù)包;
[0066]步驟S311,應(yīng)答數(shù)據(jù)包通過第二驅(qū)動訪問接口傳遞到第二驅(qū)動程序;
[0067]步驟S312,第二驅(qū)動程序收到數(shù)據(jù)后,調(diào)用第二通信接口發(fā)送應(yīng)答數(shù)據(jù)包;
[0068]步驟S313,應(yīng)答數(shù)據(jù)包經(jīng)過網(wǎng)絡(luò)傳輸至應(yīng)用系統(tǒng);
[0069]步驟S314,應(yīng)用系統(tǒng)通過第一通信接口接收應(yīng)答數(shù)據(jù)包;
[0070]步驟S315,第一驅(qū)動程序收到應(yīng)答數(shù)據(jù)包后,對應(yīng)答數(shù)據(jù)包進行拆包和解析;
[0071]步驟S316,第一驅(qū)動程序?qū)⒔馕龀鰜淼脑O(shè)備數(shù)據(jù)回復(fù)給所調(diào)用的第一應(yīng)用程序;
[0072]步驟S317,第一應(yīng)用程序接收第一驅(qū)動程序回應(yīng)的設(shè)備數(shù)據(jù),完成數(shù)據(jù)設(shè)置到物理外設(shè)的操作。
[0073]在應(yīng)用系統(tǒng)與服務(wù)器之間數(shù)據(jù)傳遞過程中,對于應(yīng)用系統(tǒng)的第一應(yīng)用程序來說,在調(diào)用第一驅(qū)動程序訪問第一通信接口后,訪問請求信息通過第一通信接口發(fā)送到服務(wù)器,應(yīng)用程序所獲取的物理外設(shè)的設(shè)備狀態(tài)信息是來源于服務(wù)器所提供的虛擬設(shè)備信息,而不是實際的物理外設(shè)的信息,實現(xiàn)了在驅(qū)動層模擬虛擬外設(shè)的功能。
[0074]下面闡述一個較佳實施例的應(yīng)用系統(tǒng)的應(yīng)用程序與服務(wù)器進行數(shù)據(jù)交換處理過程,如圖4所示,具體包括如下步驟:
[0075]步驟S401,第一應(yīng)用程序調(diào)用第一驅(qū)動訪問接口,訪問第一驅(qū)動程序并發(fā)送設(shè)定格式請求信息數(shù)據(jù)到第一驅(qū)動程序;
[0076]步驟S402,第一驅(qū)動程序接收請求信息數(shù)據(jù)后,對其進行解析獲得訪問數(shù)據(jù),同時判斷數(shù)據(jù)格式是否正確,如果格式錯誤,則返回步驟S401 ;
[0077]步驟S403,第一驅(qū)動程序在訪問數(shù)據(jù)加入自身相關(guān)信息和協(xié)議控制相關(guān)信息,依據(jù)設(shè)定的協(xié)議格式進行組包;
[0078]步驟S404,第一驅(qū)動程序?qū)⒔M包得到的數(shù)據(jù)包通過第一通信接口發(fā)送到服務(wù)器,同時監(jiān)測發(fā)送是否成功,如果發(fā)送過程失敗,則返回步驟S401 ;
[0079]步驟S405,第一驅(qū)動程序進入等待服務(wù)器的應(yīng)答數(shù)據(jù)包的狀態(tài);
[0080]步驟S406,判斷第一驅(qū)動程序等待應(yīng)答包過程是否超時,若超時,則返回步驟S401 ;
[0081]步驟S407,若接收到應(yīng)答數(shù)據(jù)包則進行拆包,若數(shù)據(jù)協(xié)議格式錯誤,則返回步驟S401 ;
[0082]步驟S408,第一驅(qū)動程序解析應(yīng)答數(shù)據(jù)包的數(shù)據(jù)內(nèi)容,若數(shù)據(jù)內(nèi)容信息不匹配,則返回步驟S401 ;[0083]步驟S409,第一驅(qū)動程序?qū)⒔馕龅玫降臄?shù)據(jù)內(nèi)容,依據(jù)設(shè)定的數(shù)據(jù)格式返回至應(yīng)用程序。
[0084]下面闡述一個較佳實施例的服務(wù)器的應(yīng)用程序與應(yīng)用系統(tǒng)進行數(shù)據(jù)交換處理過程,如圖5所示,具體包括如下步驟:
[0085]步驟S501,第二應(yīng)用程序監(jiān)聽第二通信接口等待接收訪問數(shù)據(jù)包;
[0086]步驟S502,當接收到訪問數(shù)據(jù)包時,第二應(yīng)用程序通過第二通信接口接收完整的訪問數(shù)據(jù)包;
[0087]步驟S503,第二應(yīng)用程序依據(jù)設(shè)定的協(xié)議格式,對接收的訪問數(shù)據(jù)包進行拆包和解析;
[0088]步驟S504,,第二應(yīng)用程序檢測訪問數(shù)據(jù)包的協(xié)議格式是否正確,若錯誤,則返回步驟S501 ;
[0089]步驟S505,第二應(yīng)用程序判斷解析出的數(shù)據(jù)內(nèi)容信息是否匹配,若不匹配,則返回步驟S501 ;
[0090]步驟S506,第二應(yīng)用程序根據(jù)解析的數(shù)據(jù)內(nèi)容對存儲單元中的應(yīng)用數(shù)據(jù)進行相應(yīng)的操作,具體地,若當前數(shù)據(jù)內(nèi)容是用于設(shè)置物理外設(shè)信息操作,則對應(yīng)用數(shù)據(jù)進行更新;若是讀取物理外設(shè)信息操作,則直接查詢應(yīng)用數(shù)據(jù);
[0091]步驟S507,第二應(yīng)用程序組織相關(guān)的應(yīng)答數(shù)據(jù);
[0092]步驟S508,第二應(yīng)用程序在應(yīng)答數(shù)據(jù)中加入?yún)f(xié)議和控制等相關(guān)信息,并進行組包得到應(yīng)答數(shù)據(jù)包;
[0093]步驟S509,第二應(yīng)用程序?qū)?yīng)答數(shù)據(jù)包通過第二通信接口發(fā)送至應(yīng)用系統(tǒng)。
[0094]另外,在對服務(wù)器的第二應(yīng)用程序的設(shè)計中,還可以考慮加入對Π的支持,各種物理外設(shè)信息可以通過交互界面顯示,支持通過交互界面設(shè)置物理外設(shè)信息。
[0095]通過采用UI交互界面的設(shè)計思路,使得軟件的測試工作能夠更直觀,測試人員直接在交互界面設(shè)置物理外設(shè)信息,而不需要關(guān)心底層的實現(xiàn)。
[0096]下面結(jié)合附圖對本發(fā)明的應(yīng)用程序訪問物理外設(shè)的方法對應(yīng)系統(tǒng)的【具體實施方式】作詳細描述。
[0097]如圖6所示,圖6示出了一個實施例的應(yīng)用程序訪問物理外設(shè)的系統(tǒng)的結(jié)構(gòu)示意圖,主要包括:模擬虛擬外設(shè)單元100、虛擬外設(shè)訪問單元200和返回數(shù)據(jù)解析單元300。
[0098]其中:
[0099]模擬虛擬外設(shè)單元100用于模擬生成應(yīng)用程序需要訪問的物理外設(shè)的設(shè)備數(shù)據(jù);
[0100]虛擬外設(shè)訪問單元200用于根據(jù)所述應(yīng)用程序訪問物理外設(shè)的請求信息訪問所述設(shè)備數(shù)據(jù);
[0101]返回數(shù)據(jù)解析單元300用于將所述訪問過程中返回的設(shè)備數(shù)據(jù)回傳至所述應(yīng)用程序。
[0102]如圖7所示,圖7示出了一個較佳實施例的應(yīng)用程序訪問物理外設(shè)的系統(tǒng)的結(jié)構(gòu)示意圖。
[0103]在一個實施例中,模擬虛擬外設(shè)單元100包括:
[0104]服務(wù)器建立模塊101,用于建立一個用于模擬物理外設(shè)的服務(wù)器;
[0105]物理外設(shè)模擬模塊102,用于根據(jù)應(yīng)用程序需要訪問的物理外設(shè),在所述服務(wù)器中模擬生成與該物理外設(shè)對應(yīng)的設(shè)備數(shù)據(jù)。
[0106]在嵌入式軟件開發(fā)過程中,通常需要考慮處理各種物理外設(shè)的異常情況,通過服務(wù)器模擬產(chǎn)生所期望的各種物理外設(shè)故障的異常狀態(tài),無需將實際的物理外設(shè)修改成相應(yīng)的異常狀態(tài),即可對軟件在此類故障的處理流程進行測試,極大提高軟件的可測試性。
[0107]需要說明的是,除了利用上述服務(wù)器外,還可以通過其它具有類似功能的軟件或硬件模擬生成物理外設(shè)的設(shè)備數(shù)據(jù)。
[0108]在一個實施例中,虛擬外設(shè)訪問單元200包括:
[0109]請求信息解析模塊201,用于對應(yīng)用程序訪問物理外設(shè)的請求信息進行解析;
[0110]設(shè)備數(shù)據(jù)訪問模塊202,用于依據(jù)解析后的所述請求信息訪問所述服務(wù)器中的設(shè)備數(shù)據(jù)。
[0111]設(shè)備數(shù)據(jù)訪問模塊202在訪問設(shè)備數(shù)據(jù)過程中,進一步用于:
[0112]將解析所述請求信息獲得的訪問數(shù)據(jù),依據(jù)設(shè)定的協(xié)議格式進行組包;
[0113]通過通信接口將所述組包得到的訪問數(shù)據(jù)包發(fā)送至所述服務(wù)器;
[0114]在所述服務(wù)器中,對所述訪問數(shù)據(jù)包進行拆包和解析;
[0115]根據(jù)所述訪問數(shù)據(jù)包中的訪問信息,從設(shè)備數(shù)據(jù)中獲取相應(yīng)的應(yīng)答數(shù)據(jù);
[0116]將所述應(yīng)答數(shù)據(jù)依據(jù)設(shè)定的協(xié)議格式進行組包;
[0117]通過通信接口將所述組包得到的應(yīng)答數(shù)據(jù)包發(fā)送至所述驅(qū)動程序;
[0118]通過驅(qū)動程序接收所述服務(wù)器返回的應(yīng)答數(shù)據(jù)包,對所述應(yīng)答數(shù)據(jù)包進行拆包獲得應(yīng)用程序所需的設(shè)備數(shù)據(jù)。
[0119]通過對模擬生成的設(shè)備數(shù)據(jù)的訪問,應(yīng)用程序所需要訪問的物理外設(shè)的信息,實際都來源于服務(wù)器所提供的模擬數(shù)據(jù),對于所需要的物理外設(shè)的各種狀態(tài)信息(包括故障異常狀況),只需要在服務(wù)器的應(yīng)用軟件進行模擬生成即可獲得。
[0120]在一個實施例中,返回數(shù)據(jù)解析單元300進一步用于:
[0121]通過驅(qū)動程序?qū)λ霾鸢@得的設(shè)備數(shù)據(jù)進行解析,獲得應(yīng)用程序所需的物理外設(shè)狀態(tài)信息,將該物理外設(shè)狀態(tài)信息傳輸至所述應(yīng)用程序。
[0122]綜合上述實施例的應(yīng)用程序訪問物理外設(shè)的方法和系統(tǒng),具有以下明顯的特點和有益效果:
[0123](I)具有極高的可操作性,可以模擬各種物理外設(shè)的狀態(tài)而不需對實際的物理外設(shè)進行任何修改和調(diào)整;同時也可以模擬出系統(tǒng)硬件環(huán)境中并不存在的物理外設(shè)。
[0124](2)在軟件調(diào)試過程中,即使系統(tǒng)硬件環(huán)境中的物理外設(shè)無法使用,也可以通過驅(qū)動層模擬對該設(shè)備的訪問,也就不會影響到軟件的調(diào)測工作,提高了軟件調(diào)測的效率,保障軟件的開發(fā)進度。
[0125](3)在服務(wù)器開發(fā)出支持硬件外設(shè)狀態(tài)顯示的圖形交互界面,只需要交互界面修改設(shè)置硬件外設(shè)的狀態(tài)、寄存器值等信息,就可以很好地模擬出各種外設(shè)異常狀態(tài),此時可以方便地驗證軟件設(shè)計的異常處理流程是否達到預(yù)期要求。
[0126](4)可以很方便地搭建起標準化測試平臺,并提供標準化、批量測試應(yīng)用支持,在服務(wù)器的處理程序同時支持各種測試腳本應(yīng)用。
[0127]以上所述實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應(yīng)以所附權(quán)利要求為準。
【權(quán)利要求】
1.一種應(yīng)用程序訪問物理外設(shè)的方法,其特征在于,包括如下步驟: 模擬生成應(yīng)用程序需要訪問的物理外設(shè)的設(shè)備數(shù)據(jù); 根據(jù)所述應(yīng)用程序訪問物理外設(shè)的請求信息訪問所述設(shè)備數(shù)據(jù); 將所述訪問過程中返回的設(shè)備數(shù)據(jù)回傳至所述應(yīng)用程序。
2.根據(jù)權(quán)利要求1所述的應(yīng)用程序訪問物理外設(shè)的方法,其特征在于,所述模擬生成應(yīng)用程序需要訪問的物理外設(shè)的設(shè)備數(shù)據(jù)的步驟包括: 建立一個用于模擬物理外設(shè)的服務(wù)器; 根據(jù)應(yīng)用程序需要訪問的物理外設(shè),在所述服務(wù)器中模擬生成與該物理外設(shè)對應(yīng)的設(shè)備數(shù)據(jù)。
3.根據(jù)權(quán)利要求2所述的應(yīng)用程序訪問物理外設(shè)的方法,其特征在于,所述根據(jù)所述應(yīng)用程序訪問物理外設(shè)的請求信息訪問所述設(shè)備數(shù)據(jù)的步驟包括: 通過驅(qū)動程序?qū)?yīng)用程序訪問物理外設(shè)的請求信息進行解析,依據(jù)解析后的所述請求信息訪問所述服務(wù)器中的設(shè)備數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的應(yīng)用程序訪問物理外設(shè)的方法,其特征在于,所述依據(jù)解析后的所述請求信息訪問所述服務(wù)器中的設(shè)備數(shù)據(jù)的步驟包括: 將解析所述請求信息獲得的訪問數(shù)據(jù),依據(jù)設(shè)定的協(xié)議格式進行組包; 通過通信接口將所述組包后的訪問數(shù)據(jù)包發(fā)送至所述服務(wù)器; 在所述服務(wù)器中對所述訪問數(shù)據(jù)包進行拆包和解析; 根據(jù)所述訪問數(shù)據(jù)包中的訪問信息,從服務(wù)器上存儲的設(shè)備數(shù)據(jù)中獲取相應(yīng)的應(yīng)答數(shù)據(jù); 將所述應(yīng)答數(shù)據(jù)依據(jù)設(shè)定的協(xié)議格式進行組包; 通過通信接口將所述組包得到的應(yīng)答數(shù)據(jù)包發(fā)送至所述驅(qū)動程序; 通過所述驅(qū)動程序接收所述服務(wù)器返回的應(yīng)答數(shù)據(jù)包,對所述應(yīng)答數(shù)據(jù)包進行拆包獲得相應(yīng)的設(shè)備數(shù)據(jù)。
5.根據(jù)權(quán)利要求4所述的應(yīng)用程序訪問物理外設(shè)的方法,其特征在于,所述將所述訪問過程中返回的設(shè)備數(shù)據(jù)回傳至所述應(yīng)用程序的過程包括: 通過驅(qū)動程序?qū)λ霾鸢@得的設(shè)備數(shù)據(jù)進行解析,獲得應(yīng)用程序所需的物理外設(shè)狀態(tài)信息,將該物理外設(shè)狀態(tài)信息傳輸至所述應(yīng)用程序。
6.一種應(yīng)用程序訪問物理外設(shè)的系統(tǒng),其特征在于,包括: 模擬虛擬外設(shè)單元,用于模擬生成應(yīng)用程序需要訪問的物理外設(shè)的設(shè)備數(shù)據(jù); 虛擬外設(shè)訪問單元,用于根據(jù)所述應(yīng)用程序訪問物理外設(shè)的請求信息訪問所述設(shè)備數(shù)據(jù); 返回數(shù)據(jù)解析單元,用于將所述訪問過程中返回的設(shè)備數(shù)據(jù)回傳至所述應(yīng)用程序。
7.根據(jù)權(quán)利要求6所述的應(yīng)用程序訪問物理外設(shè)的系統(tǒng),其特征在于,所述模擬虛擬外設(shè)單元包括: 服務(wù)器建立模塊,用于建立一個用于模擬物理外設(shè)的服務(wù)器; 物理外設(shè)模擬模塊,用于根據(jù)應(yīng)用程序需要訪問的物理外設(shè),在所述服務(wù)器中模擬生成與該物理外設(shè)對應(yīng)的設(shè)備數(shù)據(jù)。
8.根據(jù)權(quán)利要求7所述的應(yīng)用程序訪問物理外設(shè)的系統(tǒng),其特征在于,所述虛擬外設(shè)訪問單元包括: 請求信息解析模塊,用于通過驅(qū)動程序?qū)?yīng)用程序訪問物理外設(shè)的請求信息進行解析; 設(shè)備數(shù)據(jù)訪問模塊,用于依據(jù)解析后的所述請求信息訪問所述服務(wù)器中的設(shè)備數(shù)據(jù)。
9.根據(jù)權(quán)利要求8所述的應(yīng)用程序訪問物理外設(shè)的系統(tǒng),其特征在于,所述設(shè)備數(shù)據(jù)訪問模塊進一步用于: 將解析所述請求信息獲得的訪問數(shù)據(jù),依據(jù)設(shè)定的協(xié)議格式進行組包; 通過通信接口將所述組包得到的訪問數(shù)據(jù)包發(fā)送至所述服務(wù)器; 在所述服務(wù)器中,對所述訪問數(shù)據(jù)包進行拆包和解析; 根據(jù)所述訪問數(shù)據(jù)包中的訪問信息,從設(shè)備數(shù)據(jù)中獲取相應(yīng)的應(yīng)答數(shù)據(jù); 將所述應(yīng)答數(shù)據(jù)依據(jù)設(shè)定的協(xié)議格式進行組包; 通過通信接口將所述組包得到的應(yīng)答數(shù)據(jù)包發(fā)送至所述驅(qū)動程序; 通過所述驅(qū)動程序接收所述服務(wù)器返回的應(yīng)答數(shù)據(jù)包,對所述應(yīng)答數(shù)據(jù)包進行拆包獲得相應(yīng)的設(shè)備數(shù)據(jù)。
10.根據(jù)權(quán)利要求9所述的應(yīng)用程序訪問物理外設(shè)的系統(tǒng),其特征在于,所述返回數(shù)據(jù)解析單元進一步用于: 通過驅(qū)動程序?qū)λ霾鸢@得的設(shè)備數(shù)據(jù)進行解析,獲得應(yīng)用程序所需的物理外設(shè)狀態(tài)信息,將該物理外設(shè)狀態(tài)信息傳輸`至所述應(yīng)用程序。
【文檔編號】H04L29/06GK103713934SQ201210376679
【公開日】2014年4月9日 申請日期:2012年9月29日 優(yōu)先權(quán)日:2012年9月29日
【發(fā)明者】劉軍, 賴福琪, 方彬浩 申請人:京信通信系統(tǒng)(中國)有限公司