專利名稱:一種可視化虛擬數(shù)字電路系統(tǒng)的建立方法
技術領域:
本發(fā)明屬于計算機技術領域,特別地涉及一種可視化虛擬數(shù)字電路系統(tǒng)的建立方法。
背景技術:
近年來,隨著科學技術的飛速發(fā)展,虛擬實驗室技術應運而生。虛擬實驗室是將現(xiàn)有的各種實驗室數(shù)字化和虛擬化,構(gòu)建的開放式網(wǎng)絡化的虛擬實驗教學系統(tǒng)。虛擬實驗臺與真實的實驗臺類似,可供操作者自己動手配置、連接、調(diào)節(jié)和使用實驗設備,構(gòu)建實驗并呈現(xiàn)實驗結(jié)果。在學校的教學活動中,學生可以利用虛擬實驗室來預習、回顧和設計實驗,提高在實際實驗中的動手能力與解決問題的能力;教師利用虛擬實驗臺和虛擬實驗器材庫中的器材自由搭建合理的實驗或者實驗案例,作為在課堂上教學呈現(xiàn)或者作為輔助學生理解實驗呈現(xiàn)。利用虛擬實驗室老師可以輔導學生實驗,也可以幫助學生設計實驗,以此來達到良好的溝通與提高實驗能力。目前,對于電子電路類虛擬實驗開發(fā)上,主要采用以下幾種技術手段:I)基于flash或其他多媒體手段的虛擬實驗設計采用flash技術或者其他多媒體技術手段,設計模擬真實實驗箱操作界面,以豐富的多媒體交互手段,實現(xiàn)數(shù)字電路及電路分析實驗模擬連線操作等過程。此類虛擬實驗軟件良好的模擬了數(shù)字電路及電路分析實驗的操作過程,但由于局限于數(shù)據(jù)處理方面的問題,此類模擬軟件對于模擬實驗結(jié)果上存在一定的不足,缺乏良好的擴展性和應用性。2)基于第三方的電子設計類軟件的虛擬實驗實現(xiàn)通過對于第三方電子設計類軟件的設計,如matlab,EffB (ELECTRONICSff0RKBENCHEDA,電子工作平臺電子設計自動化),Labview等,通過開發(fā)或設計手段的應用,模擬數(shù)字電子技術實驗的結(jié)果,可以準確的反應數(shù)字電子技術的實驗過程以及在理論上展示數(shù)字電子技術的輸出結(jié)果,嚴謹?shù)哪M數(shù)字電路及電路分析實驗理論設計。但是,由于此類第三方軟件的技術實現(xiàn)特點,在操作過程上和操作界面上與實際的數(shù)字電子技術實驗存在著一定的差異,缺乏實際操作的真實感受,影響虛擬實驗的教學效果。
發(fā)明內(nèi)容
為解決上述問題,本發(fā)明的目的在于提供一種可視化虛擬數(shù)字電路系統(tǒng)的建立方法,通過采用對于虛擬實驗操作可視化界面和操作過程的XML語義描述方法,應用多媒體技術手段,使實驗操作者可以將實驗界面和實驗過程以XML文件的形式保存,實現(xiàn)對實驗過程記錄和復現(xiàn)的目的。為實現(xiàn)上述目的,本發(fā)明的技術方案為:一種可視化虛擬數(shù)字電路系統(tǒng)的建立方法,包括以下步驟:S10,在后臺建立預設芯片庫,以數(shù)字邏輯芯片作為設計單元,定義出若干個需要建立的數(shù)字邏輯芯片的輸入和輸出引腳之間的邏輯功能,并將定義的邏輯功能寫入對應的可擴展的標記語言XML文件中;S20,在可視化虛擬界面設置與后臺建立的預設芯片庫中對應的數(shù)字邏輯芯片的芯片可視化描述單元,空芯片插槽區(qū),輸入控制開關區(qū),邏輯燈顯示區(qū),電源輸入和接地輸入,其中所述芯片可視化描述單元通過芯片對應的芯片標識與基于XML文件存儲的芯片庫中的芯片進行關聯(lián),空芯片插槽區(qū)域設定坐標區(qū)域;S30,通過觸發(fā)拖動事件將實驗需要的數(shù)字邏輯芯片芯片的對應的芯片可視化描述單元拖入空芯片插槽區(qū),再通過可視化連線描述將輸入控制開關的端子連接到已拖入空芯片插槽區(qū)的芯片的輸入端,將芯片的輸出端與邏輯燈顯示區(qū)的邏輯燈連接,同時后臺采用XML數(shù)據(jù)格式記錄當前芯片安插的數(shù)據(jù)以及連線的信息完成數(shù)字線路的建立;S40,給出相應的輸入控制開關信號,觸發(fā)數(shù)字電路的運算過程,具體進行以下循環(huán)計算,遍歷連線記錄的XML數(shù)據(jù),提取出其中連接控制開關的數(shù)據(jù),將其相應的控制開關狀態(tài)轉(zhuǎn)化為數(shù)據(jù)并將其數(shù)據(jù)提送到該連接線的另一控制點;然后,將所有遍歷所有連接節(jié)點數(shù)據(jù)記錄IO為IN的控制點,獲取該控制點的數(shù)據(jù)并將其數(shù)據(jù)傳遞到連線的另一控制點;再次;遍歷記錄芯片安插的XML數(shù)據(jù),根據(jù)數(shù)據(jù)記錄訪問芯片插槽的數(shù)據(jù)節(jié)點的數(shù)據(jù),并將其保存,編寫芯片的邏輯程序,將芯片插槽底座上的插孔的數(shù)據(jù)映射到插槽上的芯片的對應引腳上,根據(jù)各個芯片的不同功能進行相應的邏輯處理,芯片處理完邏輯后將其輸出引腳的結(jié)果映射到相應的底座插孔上;最后,邏輯顯示燈的控制口獲取保存連線XML數(shù)據(jù)的相應記錄為light的數(shù)據(jù),之后將其數(shù)據(jù)提取出來以控制邏輯燈的顯示。優(yōu)選地,S30中所述的拖動事件的具體步驟為:在芯片可視化描述單元中,按下鼠標左鍵,選擇需要的芯片,觸發(fā)芯片拖動事件,將芯片可視化描述單元所對應的芯片標識存儲于內(nèi)存堆棧中;在芯片拖動過程中,保持鼠標左鍵一直為按下狀態(tài),芯片可視化描述單兀中選中的芯片將隨著鼠標運動軌跡進行拖動,在鼠標拖動過程中,當鼠標中心點進入到空芯片插槽所對應的區(qū)域時,觸發(fā)插槽驗證事件,判定芯片引腳是否與空芯片插槽相匹配,調(diào)用相應的提示單元進行顯示;鼠標左鍵彈起,系統(tǒng)自動檢測當前芯片與插槽的匹配狀態(tài),如果芯片當前沒有插槽匹配或與當前插槽不匹配,芯片可視化描述單元自動恢復回芯片存儲區(qū)域,并在內(nèi)存堆棧中刪除對應的芯片標識;如果芯片與當前插槽匹配,程序獲取當前插槽的標識,并在堆棧中調(diào)取芯片標在芯片庫查找對應的芯片并讀取芯片引腳的邏輯關系,賦值于對應插槽,并將插槽引腳、插槽芯片狀態(tài)寫入到XML文件中。優(yōu)選地,S30中所述的可視化連線描述的具體步驟為:連線開始,當鼠標在實驗區(qū)域內(nèi)左鍵單擊時,判定鼠標當前所在坐標狀態(tài),如果當前坐標狀態(tài)屬于芯片插槽引腳、開關插槽引腳或顯示插槽引腳等保留區(qū)域時,觸發(fā)連線起始事件,獲取當前引腳坐標,并標識插槽狀態(tài),插入到內(nèi)存堆棧中;當鼠標離開起始引腳坐標后,顯示單元在起始點與當前鼠標所處坐標之間建立虛擬連線; 當鼠標在實驗區(qū)域內(nèi)單擊,判定當前鼠標所在坐標狀態(tài),如果當前鼠標所在坐標為非系統(tǒng)保留區(qū)域,其中保留區(qū)域為芯片插槽引腳、開關插槽引腳或顯示插槽引腳,觸發(fā)連線中間點事件,獲取當前坐標點的坐標,存儲于內(nèi)存堆棧中,與連線起始點狀態(tài)構(gòu)成連線序列關系;
鼠標單擊,如果當前鼠標所在坐標為系統(tǒng)保留區(qū)域,獲取當前引腳狀態(tài),判定輸入、輸出狀態(tài),并與起始引腳狀態(tài)比對,如果同為輸出、輸入狀態(tài)或輸入與輸出為同一插槽,將調(diào)用連線錯誤事件,以當前比對結(jié)果作為參數(shù),調(diào)用錯誤提示方法,在界面上顯示相應的錯誤信息,并刪除內(nèi)存堆棧中與當前連線相關的數(shù)據(jù),當前連線回復初始狀態(tài);如果當前引腳狀態(tài)與起始引腳狀態(tài)不同,則觸發(fā)連線終止事件,將當前插槽坐標和狀態(tài)插入到內(nèi)存堆棧中,與內(nèi)存堆棧中其他數(shù)據(jù)構(gòu)成連線序列關系,之后調(diào)取內(nèi)存堆棧中與當前連線相關的數(shù)據(jù),以二維數(shù)組的形式寫入到存儲當前實驗界面數(shù)據(jù)的XML文件中,完成數(shù)據(jù)連線的存儲。優(yōu)選地,S40中所述循環(huán)計算的頻率為每秒大于100次。優(yōu)選地,在SlO后進一步包括S50,建立自定義芯片,自定義芯片的設置在系統(tǒng)自定義芯片區(qū)域完成,該區(qū)域配置有芯片的引腳數(shù),芯片的電源與地的標識位,芯片的邏輯與引腳之間的關系等設置項,保存時將采用XML數(shù)據(jù)格式這些信息全部記錄起來,并生成對應的芯片,芯片的樣式采用系統(tǒng)提供的自定義芯片樣式,并生成在芯片可視化描述單元中。優(yōu)選地,在S40后進一步包括S60,協(xié)作性同步操作的建立,具體包括以下步驟:S601,問題提出當用戶在虛擬實驗操作過程中出現(xiàn)問題,用戶點擊,登錄協(xié)助大廳,輸入用戶名和密碼,調(diào)用相應的用戶驗證webservice,進行用戶驗證;當用戶驗證成功后,可以將虛擬實驗過程中出現(xiàn)的問題以文字的形式進行描述,并調(diào)用問題發(fā)布webservice,將所遇到的問題相關信息存儲于服務器端指定問題XML文件內(nèi);求助大廳交互界面單元將會以一定的時間間隔讀取指定的問題XML文件,并將新的問題在求助大廳中顯示,供其他用戶響應;S602,文字交互當其他用戶在求助大廳中看到該用戶提出的問題,雙擊問題,觸發(fā)回答問題事件,將幫助者的個人信息寫入到服務器端制定的問題XML文件中,此時幫助者用戶與求助者用戶之間基于XML文件建立連接;求助者和幫助者可以通過聊天事件webservice向服務器端發(fā)送聊天文字信息,實現(xiàn)用戶與用戶之間的文字通信;S603,協(xié)作同步準備當求助問題通過文字交互方式不能解決時,求助者向幫助者發(fā)送協(xié)作同步請求,點擊建立連接,觸發(fā)求助事件,調(diào)用求助協(xié)作webservice將該問題相關信息,包括求助者信息、幫助者信息以及求助問題發(fā)送于服務器端,存儲于問題XML文件中,同時將用戶當前操作界面的XML文件上傳于服務器中,將操作界面文件存儲于服務器端的地址寫入到問題XML文件中,并將自動將該求助事件編號發(fā)給給幫助者;幫助者在接收到求助編號后點擊協(xié)作連接,輸入?yún)f(xié)作編號,點擊協(xié)作,將會觸發(fā)協(xié)作事件,更改問題XML文件中的幫助者狀態(tài),并在對應的問題XML文件中讀取求助者界面XML文件地址,下載到本地軟件文件存儲目錄下,并調(diào)用通知可視化交互界面讀取該XML文件,在交互界面上顯示完成協(xié)作同步顯示;S604,協(xié)作同步操作在完成協(xié)作同步準備過程后,點擊開始協(xié)作同步,在初始化狀態(tài)下,求助者為操作狀態(tài),可以對于虛擬實驗操作界面進行操作,幫助者為觀看狀態(tài),不能對虛擬實驗界面進行操作;當處于操作狀態(tài)的用戶完成操作后,點擊狀態(tài)轉(zhuǎn)換,可以將用戶的操作狀態(tài)和觀看狀態(tài)進行互換,求助者觀看,幫助者操作;在整個協(xié)同操作過程中,虛擬實驗軟件將會通過服務器端webservice定時將處于操作狀態(tài)的的虛擬實驗操作界面上傳到服務器協(xié)同請求所對應的文件中,處于觀看狀態(tài)的虛擬實驗軟件通過服務器端webservice定時讀取與協(xié)作同步請求相對應的操作界面XML描述文件并在虛擬實驗操作界面上,實現(xiàn)操作狀態(tài)界面與觀看狀態(tài)界面的同步;S605,完成協(xié)作經(jīng)過求助者與幫助者之間狀態(tài)轉(zhuǎn)換和協(xié)同操作,當求助者意識到求助問題已經(jīng)解決或者是當前幫助者者無法解決問題后求助者可以斷開當前連接,觸發(fā)斷開連接事件,設定問題XML文件中的相應標識,標志當前協(xié)作同步已經(jīng)完成;并對于當前協(xié)同操作進行評價,當求助者評價一》已解決,刪除問題XML文件中的對應求助事件,該求助問題完成;當求助者評價——))未解決,設定問題XML文件中當前求助問題狀態(tài)為初始化狀態(tài),該求助問題將會重新進入求助大廳,等待進入下一協(xié)同過程。與現(xiàn)有技術相比,本發(fā)明的有益效果如下:(I)采用對于虛擬實驗操作界面和操作過程的XML語義描述方法,應用多媒體技術手段,使實驗操作者可以將實驗界面和實驗過程以文件的形式保存,實現(xiàn)對實驗過程記錄和復現(xiàn)的目的;(2)通過自定義芯片步驟的加入,用戶可以根據(jù)使用需要自定義預設芯片庫中缺少的芯片,提高了系統(tǒng)的擴展性;(3)通過協(xié)作性同步操作的建立,使得建立的可視化虛擬數(shù)字電路系統(tǒng)具有交互性,使得用戶的實驗水平可以得到更好的提高。
圖1為本發(fā)明一實施例的可視化虛擬數(shù)字電路系統(tǒng)的建立方法的步驟流程圖;圖2為本發(fā)明實施例的前臺各單元中的結(jié)構(gòu)示意圖;圖3為本發(fā)明又一實施例的可視化虛擬數(shù)字電路系統(tǒng)的建立方法的步驟流程圖;圖4為本發(fā)明另一實施例的可視化虛擬數(shù)字電路系統(tǒng)的建立方法的步驟流程圖。
具體實施例方式為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。相反,本發(fā)明涵蓋任何由權(quán)利要求定義的在本發(fā)明的精髓和范圍上做的替代、修改、等效方法以及方案。進一步,為了使公眾對本發(fā)明有更好的了解,在下文對本發(fā)明的細節(jié)描述中,詳盡描述了一些特定的細節(jié)部分。對本領域技術人員來說沒有這些細節(jié)部分的描述也可以完全理解本發(fā)明。參考圖1,所示為本發(fā)明一實施例的可視化虛擬數(shù)字電路系統(tǒng)的建立方法的步驟流程圖,其包括以下步驟:S10,在后臺建立預設芯片庫,以數(shù)字邏輯芯片作為設計單元,定義出若干個需要建立的數(shù)字邏輯芯片的輸入和輸出引腳之間的邏輯功能,并將定義的邏輯功能寫入對應的可擴展的標記語言(Extensible Markup Language, XML)文件中;
以建立數(shù)字邏輯芯片74LS00為例進行說明,74LS00為4單元而輸入與非門,在芯片邏輯單元的建立上,以XML文件的形式,建立基于74LS00各個引腳的節(jié)點,并在節(jié)點中描述74LS00各個引腳的狀態(tài)信息,如引腳編號、引腳輸入輸出狀態(tài)、引腳與其他引腳的邏輯
關系等。S20,在前臺設置與后臺建立的預設芯片庫中對應的數(shù)字邏輯芯片的芯片可視化描述單元,空芯片插槽區(qū),輸入控制開關區(qū),邏輯燈顯示區(qū),電源輸入和接地輸入,其中所述芯片可視化描述單元通過芯片對應的芯片標識與基于XML文件存儲的芯片庫中的芯片進行關聯(lián),空芯片插槽區(qū)域設定坐標區(qū)域;芯片可視化描述單元包括了預設芯片庫中所有的建立芯片的圖標,例如,上一步驟中設置的74LS00芯片將以圖標的形式在芯片可視化描述單元中顯示,并有代表其型號唯一標示字符對芯片進行標示,例如74LS00的唯一標示字符即為“74LS00”,用戶看到其標示字符即知道其邏輯功能,在實驗中可以進行很好的芯片選擇。在一具體應用實例中,空芯片插槽區(qū)以分布著A I共九個區(qū)為例,其中A到F為14引腳芯片區(qū),G到I區(qū)為16引腳芯片區(qū)。在其他的應用實例中,將空芯片插槽區(qū)中插槽區(qū)設置在一個以上即可,具體數(shù)目及排列根據(jù)在具體實例中可進行調(diào)整。通過設置多個插槽區(qū)使得在具體的實驗過程中,可進行由多個數(shù)字邏輯芯片組成的虛擬數(shù)字電路的設計,提升了系統(tǒng)的擴展性。輸入控制開關的即為可控制輸入為“O”或“I”電平的邏輯開關,邏輯燈顯示區(qū)即為輸出為“O”或“I”電平的邏輯顯示燈,在具體應用實例中,可以設置輸出為“I”顯示燈亮,輸出“O”顯示燈滅。當然也可以設置成輸出電平不同顯示為不同的顏色,例如“I”為紅,“O”為綠。S30,通過觸發(fā)拖動事件將實驗需要的數(shù)字邏輯芯片芯片的對應的芯片可視化描述單元拖入空芯片插槽區(qū),再通過可視化連線描述將輸入控制開關的端子連接到已拖入空芯片插槽區(qū)的芯片的輸入端,將芯片的輸出端與邏輯燈顯示區(qū)的邏輯燈連接,同時后臺采用XML數(shù)據(jù)格式記錄當前芯片安插的數(shù)據(jù)以及連線的信息完成數(shù)字線路的建立。在具體應用實例中,拖動事件的具體步驟為:在芯片可視化描述單元中,按下鼠標左鍵,選擇需要的芯片,觸發(fā)芯片拖動事件,將芯片可視化描述單元所對應的芯片標識存儲于內(nèi)存堆棧中;在芯片拖動過程中,保持鼠標左鍵一直為按下狀態(tài),芯片可視化描述單元中選中的芯片將隨著鼠標運動軌跡進行拖動,在鼠標拖動過程中,當鼠標中心點進入到空芯片插槽所對應的區(qū)域時,觸發(fā)插槽驗證事件,判定芯片引腳是否與空芯片插槽相匹配,調(diào)用相應的提示單元進行顯示;鼠標左鍵彈起,系統(tǒng)自動檢測當前芯片與插槽的匹配狀態(tài),如果芯片當前沒有插槽匹配或與當前插槽不匹配,芯片可視化描述單元自動恢復回芯片存儲區(qū)域,并在內(nèi)存堆棧中刪除對應的芯片標識;如果芯片與當前插槽匹配,程序獲取當前插槽的標識,并在堆棧中調(diào)取芯片標在芯片庫查找對應的芯片并讀取芯片引腳的邏輯關系,賦值于對應插槽,并將插槽引腳、插槽芯片狀態(tài)寫入到XML文件中。可視化連線描述的具體步驟為:連線開始,當鼠標在實驗區(qū)域內(nèi)左鍵單擊時,判定鼠標當前所在坐標狀態(tài),如果當前坐標狀態(tài)屬于芯片插槽引腳、開關插槽引腳或顯示插槽引腳等保留區(qū)域時,觸發(fā)連線起始事件,獲取當前引腳坐標,并標識插槽狀態(tài),插入到內(nèi)存堆棧中;當鼠標離開起始引腳坐標后,顯示單元在起始點與當前鼠標所處坐標之間建立虛擬連線;當鼠標在實驗區(qū)域內(nèi)單擊,判定當前鼠標所在坐標狀態(tài),如果當前鼠標所在坐標為非系統(tǒng)保留區(qū)域,其中保留區(qū)域為芯片插槽引腳、開關插槽引腳或顯示插槽引腳,觸發(fā)連線中間點事件,獲取當前坐標點的坐標,存儲于內(nèi)存堆棧中,與連線起始點狀態(tài)構(gòu)成連線序列關系;鼠標單擊,如果當前鼠標所在坐標為系統(tǒng)保留區(qū)域,獲取當前引腳狀態(tài),判定輸入、輸出狀態(tài),并與起始引腳狀態(tài)比對,如果同為輸出、輸入狀態(tài)或輸入與輸出為同一插槽,將調(diào)用連線錯誤事件,以當前比對結(jié)果作為參數(shù),調(diào)用錯誤提示方法,在界面上顯示相應的錯誤信息,并刪除內(nèi)存堆棧中與當前連線相關的數(shù)據(jù),當前連線回復初始狀態(tài);如果當前引腳狀態(tài)與起始引腳狀態(tài)不同,則觸發(fā)連線終止事件,將當前插槽坐標和狀態(tài)插入到內(nèi)存堆棧中,與內(nèi)存堆棧中其他數(shù)據(jù)構(gòu)成連線序列關系,之后調(diào)取內(nèi)存堆棧中與當前連線相關的數(shù)據(jù),以二維數(shù)組的形式寫入到存儲當前實驗界面數(shù)據(jù)的XML文件中,完成數(shù)據(jù)連線的存儲。以此獨特的結(jié)構(gòu),利用數(shù)據(jù)的點特性和連線的線段特性,可以添加連接線,可以修改連接線,更可以刪除連接線。這樣為其實驗臺界面保持其靈活性提供了方便。可以動態(tài)的勾勒線段,同時在需要時修改線段的屬性讓其和實驗臺界面的總體布局保持和諧。參考圖2顯示為芯片可視化描述單元,空芯片插槽區(qū),輸入控制開關區(qū),邏輯燈顯示區(qū),電源輸入和接地輸入的結(jié)構(gòu)示意圖,例如以芯片A為14腳芯片,芯片A為16腳芯片,插槽區(qū)C為14腳芯片插槽區(qū),插槽區(qū)D為16腳芯片插槽區(qū)為例進行說明。如果拖動芯片A放到插槽區(qū)C中芯片拖放將成功完成,拖動芯片B放到插槽區(qū)D中芯片拖放也將成功完成。如果插槽區(qū)C有芯片將提示錯誤“芯片插槽上已有芯片”,如果將芯片A放到插槽區(qū)D中將提示錯誤“14引腳芯片不能放在16引腳的插槽上”,將芯片B放到插槽區(qū)C中將提示錯誤“16引腳芯片不能放在14引腳的插槽上”。通過拖動事件可將需要的芯片拖動至合適的插槽區(qū),再通過可視化連線描述將需要連接的輸入引腳與輸入控制開關區(qū)的輸入開關連接,將需要連接的輸出引腳與輸出邏輯燈顯示區(qū)的輸出邏輯燈連接,將電源輸入引腳接電源輸入,接地引腳接接地輸入,同時后臺采用XML數(shù)據(jù)格式記錄當前芯片安插的數(shù)據(jù)以及連線的信息完成數(shù)字線路的建立。S40,給出相應的輸入控制開關信號,觸發(fā)數(shù)字電路的運算過程,具體進行以下循環(huán)計算,遍歷連線記錄的XML數(shù)據(jù),提取出其中連接控制開關的數(shù)據(jù),將其相應的控制開關狀態(tài)轉(zhuǎn)化為數(shù)據(jù)并將其數(shù)據(jù)提送到該連接線的另一控制點;然后,將所有遍歷所有連接節(jié)點數(shù)據(jù)記錄IO為IN的控制點,獲取該控制點的數(shù)據(jù)并將其數(shù)據(jù)傳遞到連線的另一控制點;再次;遍歷記錄芯片安插的XML數(shù)據(jù),根據(jù)數(shù)據(jù)記錄訪問芯片插槽的數(shù)據(jù)節(jié)點的數(shù)據(jù),并將其保存,編寫芯片的邏輯程序,將芯片插槽底座上的插孔的數(shù)據(jù)映射到插槽上的芯片的對應引腳上,根據(jù)各個芯片的不同功能進行相應的邏輯處理,芯片處理完邏輯后將其輸出引腳的結(jié)果映射到相應的底座插孔上;最后,邏輯顯示燈的控制口獲取保存連線XML數(shù)據(jù)的相應記錄為light的數(shù)據(jù),之后將其數(shù)據(jù)提取出來以控制邏輯燈的顯示。其中,在具體應用實例中,循環(huán)計算的頻率為每秒大于100次。這樣既保證了數(shù)據(jù)的實時性,也給建立帶來了便利。比如:如果開關狀態(tài)發(fā)生了變化,那么數(shù)據(jù)結(jié)果會馬上反映出來,以顯示開關狀態(tài)發(fā)生了變化;如果實驗者刪除了實驗的芯片或者實驗的連接線,那么數(shù)據(jù)的結(jié)果也會相應的該變。這樣即在保證實時性的同時,也保證了實驗的仿真性,讓實驗者感受到實驗的實時和真實實驗的感覺。通過以上技術方案,采用對于虛擬實驗操作界面和操作過程的XML語義描述方法,應用多媒體技術手段,使實驗操作者可以將實驗界面和實驗過程以文件的形式保存,實現(xiàn)對實驗過程記錄和復現(xiàn)的目的。參考圖3,所示為本發(fā)明又一實施例的可視化虛擬數(shù)字電路系統(tǒng)的建立方法的步驟流程圖,在上一實施例的基礎上,本實施例中在步驟SlO后面進一步增加S50,建立自定義芯片。自定義芯片的設置在系統(tǒng)自定義芯片區(qū)域完成,該區(qū)域配置有芯片的引腳數(shù),芯片的電源與地的標識位,芯片的邏輯與引腳之間的關系等設置項,保存時將采用XML數(shù)據(jù)格式這些信息全部記錄起來,并生成對應的芯片,芯片的樣式采用系統(tǒng)提供的自定義芯片樣式,并生成在芯片可視化描述單元中。例如其中一具體應用實例中,提供了兩種類型的實驗芯片,14引腳和16引腳類型芯片的自定義。使用者首先需要選擇自己設計的是14引腳還是16引腳的芯片,根據(jù)使用者選擇的芯片類型進行相應的基本設置,大大簡化了使用者的操作,也為引導使用者完成芯片設計提供了方便。接下來需要設計引腳屬性區(qū)設置芯片的引腳屬性,在上一步的選擇芯片類型后,一些相應基本的引腳屬性已經(jīng)選者好了,現(xiàn)在只需選者要用到的相應引腳的屬性,如果不選即默認為NULL(為空),可以只選者需要用到的引腳屬性。芯片的引腳屬性分為四種,IN\0UT和VCC\GND,在上一步中已經(jīng)設置好了 VCC\GND。各種屬性分別表示為,IN為代表芯片的輸入端,OUT代表芯片的輸出端,VCC代表芯片的電源端,GND代表芯片的接地端。在設置完芯片屬性后,可以按照芯片屬性設計芯片的邏輯表達式。在自定義芯片窗口的右邊區(qū)域有個功能模塊為“自定義芯片引腳邏輯”。在“自定義芯片引腳邏輯”中又分為兩塊區(qū)域,邏輯與功能和邏輯或功能區(qū)域;在邏輯與區(qū)域設計的是芯片的各引腳的與邏輯,在邏輯或區(qū)域設計的是芯片的各引腳的或邏輯。在這兩個區(qū)域,可以填寫兩個邏輯表達式,這樣設計主要是考慮以可以滿足絕大多數(shù)的芯片設計需要之后減小軟件的開發(fā)周期。在表達式的左邊輸入屬性為IN的引腳序號,各個表達式可以留空,也可以整個表達式全部留空,空的地方軟件會根據(jù)是邏輯與還是邏輯或表達式來進行相應的邏輯處理,但是不能輸入屬性為VCC\GND的引腳序號;在表達式的右邊需要輸入屬性為OUT的芯片引腳序號。最后軟件會根據(jù)芯片的類型、芯片引腳類型和芯片的定義邏輯來生成自定義芯片的完整邏輯表達式,當然這一步是由軟件來完成的,使用者只需要設置好相應的屬性即可。在自定義芯片窗口底部有三個按鈕,分別為:刪除、清空和添加帶實驗臺。當在窗口中點擊“刪除”按鈕時,需要先選中按鈕類型,然后軟件會判斷虛擬實驗系統(tǒng)是否有相應類型的自定義芯片,如果虛擬實驗系統(tǒng)有相應類型的芯片,那將清除虛擬實驗系統(tǒng)上的相應的芯片。“清空”按鈕主要用于將當前填入自定義設計芯片窗中的各種數(shù)據(jù)清空,以方便設計者重新設計,因為要清空自定義芯片窗口中的數(shù)據(jù),所以此功能慎用,以免丟失已經(jīng)設計好的數(shù)據(jù)。“添加到實驗臺”按鈕用于完成將設計好的芯片添加到虛擬實驗系統(tǒng)上,當自定義芯片添加到虛擬實驗系統(tǒng)上之后,使用者就可以如同操作軟件芯片庫中的芯片一樣來操作自定義芯片,此時的自定義芯片跟預設芯片庫中的芯片一樣,只是芯片的邏輯是使用者自己定義的,芯片執(zhí)行邏輯時將按照使用者自己定義的芯片邏輯進行邏輯處理。通過自定義芯片步驟的加入,用戶可以根據(jù)使用需要自定義預設芯片庫中缺少的芯片,提聞了系統(tǒng)的擴展性。參考圖4,所示為本發(fā)明另一實施例的可視化虛擬數(shù)字電路系統(tǒng)的建立方法的步驟流程圖,在實施例基礎上,S40后進一步包括S60,協(xié)作性同步操作的建立,具體包括以下步驟:S601,問題提出當用戶在虛擬實驗操作過程中出現(xiàn)問題,用戶點擊,登錄協(xié)助大廳,輸入用戶名和密碼,調(diào)用相應的用戶驗證webservice,進行用戶驗證;當用戶驗證成功后,可以將虛擬實驗過程中出現(xiàn)的問題以文字的形式進行描述,并調(diào)用問題發(fā)布webservice,將所遇到的問題相關信息存儲于服務器端指定問題XML文件內(nèi);求助大廳交互界面單元將會以一定的時間間隔讀取指定的問題XML文件,并將新的問題在求助大廳中顯示,供其他用戶響應;S602,文字交互當其他用戶在求助大廳中看到該用戶提出的問題,雙擊問題,觸發(fā)回答問題事件,將幫助者的個人信息寫入到服務器端制定的問題XML文件中,此時幫助者用戶與求助者用戶之間基于XML文件建立連接;求助者和幫助者可以通過聊天事件webservice向服務器端發(fā)送聊天文字信息,實現(xiàn)用戶與用戶之間的文字通信;S603,協(xié)作同步準備當求助問題通過文字交互方式不能解決時,求助者向幫助者發(fā)送協(xié)作同步請求,點擊建立連接,觸發(fā)求助事件,調(diào)用求助協(xié)作webservice將該問題相關信息,包括求助者信息、幫助者信息以及求助問題發(fā)送于服務器端,存儲于問題XML文件中,同時將用戶當前操作界面的XML文件上傳于服務器中,將操作界面文件存儲于服務器端的地址寫入到問題XML文件中,并將自動將該求助事件編號發(fā)給給幫助者;幫助者在接收到求助編號后點擊協(xié)作連接,輸入?yún)f(xié)作編號,點擊協(xié)作,將會觸發(fā)協(xié)作事件,更改問題XML文件中的幫助者狀態(tài),并在對應的問題XML文件中讀取求助者界面XML文件地址,下載到本地軟件文件存儲目錄下,并調(diào)用通知可視化交互界面讀取該XML文件,在交互界面上顯示完成協(xié)作同步顯示;S604,協(xié)作同步操作在完成協(xié)作同步準備過程后,點擊開始協(xié)作同步,在初始化狀態(tài)下,求助者為操作狀態(tài),可以對于虛擬實驗操作界面進行操作,幫助者為觀看狀態(tài),不能對虛擬實驗界面進行操作;當處于操作狀態(tài)的用戶完成操作后,點擊狀態(tài)轉(zhuǎn)換,可以將用戶的操作狀態(tài)和觀看狀態(tài)進行互換,求助者觀看,幫助者操作;在整個協(xié)同操作過程中,虛擬實驗軟件將會通過服務器端webservice定時將處于操作狀態(tài)的的虛擬實驗操作界面上傳到服務器協(xié)同請求所對應的文件中,處于觀看狀態(tài)的虛擬實驗軟件通過服務器端webservice定時讀取與協(xié)作同步請求相對應的操作界面XML描述文件并在虛擬實驗操作界面上,實現(xiàn)操作狀態(tài)界面與觀看狀態(tài)界面的同步;S605,完成協(xié)作經(jīng)過求助者與幫助者之間狀態(tài)轉(zhuǎn)換和協(xié)同操作,當求助者意識到求助問題已經(jīng)解決或者是當前幫助者者無法解決問題后求助者可以斷開當前連接,觸發(fā)斷開連接事件,設定問題XML文件中的相應標識,標志當前協(xié)作同步已經(jīng)完成;并對于當前協(xié)同操作進行評價。當求助者評價一》已解決,刪除問題XML文件中的對應求助事件,該求助問題完成;當求助者評價——》未解決,設定問題XML文件中當前求助問題狀態(tài)為初始化狀態(tài),該求助問題將會重新進入求助大廳,等待進入下一協(xié)同過程。當然,本領域內(nèi)的技術人員應該可以立即,此步驟也可在實施例2的基礎上進行添加。通過協(xié)作性同步操作的建立,使得建立的可視化虛擬數(shù)字電路系統(tǒng)具有交互性,使得用戶的實驗水平可以得到更好的提高。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種可視化虛擬數(shù)字電路系統(tǒng)的建立方法,其特征在于,包括以下步驟: S10,在后臺建立預設芯片庫,以數(shù)字邏輯芯片作為設計單元,定義出若干個需要建立的數(shù)字邏輯芯片的輸入和輸出引腳之間的邏輯功能,并將定義的邏輯功能寫入對應的可擴展的標記語言XML文件中; S20,在可視化虛擬界面設置與后臺建立的預設芯片庫中對應的數(shù)字邏輯芯片的芯片可視化描述單元,空芯片插槽區(qū),輸入控制開關區(qū),邏輯燈顯示區(qū),電源輸入和接地輸入,其中所述芯片可視化描述單元通過芯片對應的芯片標識與基于XML文件存儲的芯片庫中的芯片進行關聯(lián),空芯片插槽區(qū)域設定坐標區(qū)域; S30,通過觸發(fā)拖動事件將實驗需要的數(shù)字邏輯芯片芯片的對應的芯片可視化描述單元拖入空芯片插槽區(qū),再通過可視化連線描述將輸入控制開關的端子連接到已拖入空芯片插槽區(qū)的芯片的輸入端,將芯片的輸出端與邏輯燈顯示區(qū)的邏輯燈連接,同時后臺采用XML數(shù)據(jù)格式記錄當前芯片安插的數(shù)據(jù)以及連線的信息完成數(shù)字線路的建立; S40,給出相應的輸入控制開關信號,觸發(fā)數(shù)字電路的運算過程,具體進行以下循環(huán)計算,遍歷連線記錄的XML數(shù)據(jù),提取出其中連接控制開關的數(shù)據(jù),將其相應的控制開關狀態(tài)轉(zhuǎn)化為數(shù)據(jù)并將其數(shù)據(jù)提送到該連接線的另一控制點;然后,將所有遍歷所有連接節(jié)點數(shù)據(jù)記錄IO為IN的控制點,獲取該控制點的數(shù)據(jù)并將其數(shù)據(jù)傳遞到連線的另一控制點;再次;遍歷記錄芯片安插的XML數(shù)據(jù),根據(jù)數(shù)據(jù)記錄訪問芯片插槽的數(shù)據(jù)節(jié)點的數(shù)據(jù),并將其保存,編寫芯片的邏輯程序,將芯片插槽底座上的插孔的數(shù)據(jù)映射到插槽上的芯片的對應引腳上,根據(jù)各個芯片的不同功能進行相應的邏輯處理,芯片處理完邏輯后將其輸出引腳的結(jié)果映射到相應的底座插孔上;最后,邏輯顯示燈的控制口獲取保存連線XML數(shù)據(jù)的相應記錄為light的數(shù)據(jù),之后將其數(shù)據(jù)提取出來以控制邏輯燈的顯示。
2.根據(jù)權(quán)利要求1所述的可視化虛擬數(shù)字電路系統(tǒng)的建立方法,其特征在于,S30中所述的拖動事件的具體步驟為: 在芯片可視化描述單元中,按下鼠標左鍵,選擇需要的芯片,觸發(fā)芯片拖動事件,將芯片可視化描述單元所對應的芯片標識存儲于內(nèi)存堆棧中; 在芯片拖動過程中,保持鼠標左鍵一直為按下狀態(tài),芯片可視化描述單兀中選中的芯片將隨著鼠標運動軌跡進行拖動,在鼠標拖動過程中,當鼠標中心點進入到空芯片插槽所對應的區(qū)域時,觸發(fā)插槽驗證事件,判定芯片引腳是否與空芯片插槽相匹配,調(diào)用相應的提示單元進行顯示; 鼠標左鍵彈起,系統(tǒng)自動檢測當前芯片與插槽的匹配狀態(tài),如果芯片當前沒有插槽匹配或與當前插槽不匹配,芯片可視化描述單元自動恢復回芯片存儲區(qū)域,并在內(nèi)存堆棧中刪除對應的芯片標識;如果芯片與當前插槽匹配,程序獲取當前插槽的標識,并在堆棧中調(diào)取芯片標在芯片庫查找對應的芯片并讀取芯片引腳的邏輯關系,賦值于對應插槽,并將插槽引腳、插槽芯片狀態(tài)寫入到XML文件中。
3.根據(jù)權(quán)利要求1所述的可視化虛擬數(shù)字電路系統(tǒng)的建立方法,其特征在于,S30中所述的可視化連線描述的具體步驟為: 連線開始,當鼠標在實驗區(qū)域內(nèi)左鍵單擊時,判定鼠標當前所在坐標狀態(tài),如果當前坐標狀態(tài)屬于芯片插槽引腳、開關插槽引腳或顯示插槽引腳等保留區(qū)域時,觸發(fā)連線起始事件,獲取當前引腳坐標,并標識插槽狀態(tài),插入到內(nèi)存堆棧中;當鼠標離開起始引腳坐標后,顯示單元在起始點與當前鼠標所處坐標之間建立虛擬連線; 當鼠標在實驗區(qū)域內(nèi)單擊,判定當前鼠標所在坐標狀態(tài),如果當前鼠標所在坐標為非系統(tǒng)保留區(qū)域,其中保留區(qū)域為芯片插槽引腳、開關插槽引腳或顯示插槽引腳,觸發(fā)連線中間點事件,獲取當前坐標點的坐標,存儲于內(nèi)存堆棧中,與連線起始點狀態(tài)構(gòu)成連線序列關系; 鼠標單擊,如果當前鼠標所在坐標為系統(tǒng)保留區(qū)域,獲取當前引腳狀態(tài),判定輸入、輸出狀態(tài),并與起始引腳狀態(tài)比對,如果同為輸出、輸入狀態(tài)或輸入與輸出為同一插槽,將調(diào)用連線錯誤事件,以當前比對結(jié)果作為參數(shù),調(diào)用錯誤提示方法,在界面上顯示相應的錯誤信息,并刪除內(nèi)存堆棧中與當前連線相關的數(shù)據(jù),當前連線回復初始狀態(tài);如果當前引腳狀態(tài)與起始引腳狀態(tài)不同,則觸發(fā)連線終止事件,將當前插槽坐標和狀態(tài)插入到內(nèi)存堆棧中,與內(nèi)存堆棧中其他數(shù)據(jù)構(gòu)成連線序列關系,之后調(diào)取內(nèi)存堆棧中與當前連線相關的數(shù)據(jù),以二維數(shù)組的形式寫入到存儲當前實驗界面數(shù)據(jù)的XML文件中,完成數(shù)據(jù)連線的存儲。
4.根據(jù)權(quán)利要求1至3任一所述的可視化虛擬數(shù)字電路系統(tǒng)的建立方法,其特征在于,S40中所述循環(huán)計算的頻率為每秒大于100次。
5.根據(jù)權(quán)利要求1至3任一所述 的可視化虛擬數(shù)字電路系統(tǒng)的建立方法,其特征在于,在SlO后進一步包括S50,建立自定義芯片,自定義芯片的設置在系統(tǒng)自定義芯片區(qū)域完成,該區(qū)域配置有芯片的引腳數(shù),芯片的電源與地的標識位,芯片的邏輯與引腳之間的關系等設置項,保存時將采用XML數(shù)據(jù)格式這些信息全部記錄起來,并生成對應的芯片,芯片的樣式采用系統(tǒng)提供的自定義芯片樣式,并生成在芯片可視化描述單元中。
6.根據(jù)權(quán)利要求1所述的可視化虛擬數(shù)字電路系統(tǒng)的建立方法,其特征在于,在S40后進一步包括S60,協(xié)作性同步操作的建立,具體包括以下步驟: S601,問題提出 當用戶在虛擬實驗操作過程中出現(xiàn)問題,用戶點擊,登錄協(xié)助大廳,輸入用戶名和密碼,調(diào)用相應的用戶驗證webservice,進行用戶驗證;當用戶驗證成功后,可以將虛擬實驗過程中出現(xiàn)的問題以文字的形式進行描述,并調(diào)用問題發(fā)布webservice,將所遇到的問題相關信息存儲于服務器端指定問題XML文件內(nèi);求助大廳交互界面單元將會以一定的時間間隔讀取指定的問題XML文件,并將新的問題在求助大廳中顯示,供其他用戶響應; S602,文字交互 當其他用戶在求助大廳中看到該用戶提出的問題,雙擊問題,觸發(fā)回答問題事件,將幫助者的個人信息寫入到服務器端制定的問題XML文件中,此時幫助者用戶與求助者用戶之間基于XML文件建立連接;求助者和幫助者可以通過聊天事件webservice向服務器端發(fā)送聊天文字信息,實現(xiàn)用戶與用戶之間的文字通信; S603,協(xié)作同步準備 當求助問題通過文字交互方式不能解決時,求助者向幫助者發(fā)送協(xié)作同步請求,點擊建立連接,觸發(fā)求助事件,調(diào)用求助協(xié)作webservice將該問題相關信息,包括求助者信息、幫助者信息以及求助問題發(fā)送于服務器端,存儲于問題XML文件中,同時將用戶當前操作界面的XML文件上傳于服務器中,將操作界面文件存儲于服務器端的地址寫入到問題XML文件中,并將自動將該求助事件編號發(fā)給給幫助者;幫助者在接收到求助編號后點擊協(xié)作連接,輸入?yún)f(xié)作編號,點擊協(xié)作,將會觸發(fā)協(xié)作事件,更改問題XML文件中的幫助者狀態(tài),并在對應的問題XML文件中讀取求助者界面XML文件地址,下載到本地軟件文件存儲目錄下,并調(diào)用通知可視化交互界面讀取該XML文件,在交互界面上顯示完成協(xié)作同步顯示; S604,協(xié)作同步操作 在完成協(xié)作同步準備過程后,點擊開始協(xié)作同步,在初始化狀態(tài)下,求助者為操作狀態(tài),可以對于虛擬實驗操作界面進行操作,幫助者為觀看狀態(tài),不能對虛擬實驗界面進行操作;當處于操作狀態(tài)的用戶完成操作后,點擊狀態(tài)轉(zhuǎn)換,可以將用戶的操作狀態(tài)和觀看狀態(tài)進行互換,求助者觀看,幫助者操作;在整個協(xié)同操作過程中,虛擬實驗軟件將會通過服務器端webservice定時將處于操作狀態(tài)的的虛擬實驗操作界面上傳到服務器協(xié)同請求所對應的文件中,處于觀看狀態(tài)的虛擬實驗軟件通過服務器端webservice定時讀取與協(xié)作同步請求相對應的操作界面XML描述文件并在虛擬實驗操作界面上,實現(xiàn)操作狀態(tài)界面與觀看狀態(tài)界面的同步; S605,完成協(xié)作 經(jīng)過求助者與幫助者之間狀態(tài)轉(zhuǎn)換和協(xié)同操作,當求助者意識到求助問題已經(jīng)解決或者是當前幫助者者無法解決問題后求助者可以斷開當前連接,觸發(fā)斷開連接事件,設定問題XML文件中的相應標識,標志當前協(xié)作同步已經(jīng)完成;并對于當前協(xié)同操作進行評價,當求助者評價一一》已解決,刪除問題XML文件中的對應求助事件,該求助問題完成;當求助者評價——))未解決,設定問題XML文件中當前求助問題狀態(tài)為初始化狀態(tài),該求助問題將會重新進入求助大廳, 等待進入下一協(xié)同過程。
全文摘要
本發(fā)明實施例公開了一種可視化虛擬數(shù)字電路系統(tǒng)的建立方法,包括以下步驟S10,在后臺建立預設芯片庫,以數(shù)字邏輯芯片作為設計單元;S20,在前臺設置與后臺建立的預設芯片庫中對應的數(shù)字邏輯芯片的芯片可視化描述單元,空芯片插槽區(qū),輸入控制開關區(qū),邏輯燈顯示區(qū),電源輸入和接地輸入;S30,通過觸發(fā)拖動事件和可視化連線描述建立數(shù)字線路;S40,給出相應的輸入控制開關信號,觸發(fā)數(shù)字電路的運算過程。本發(fā)明通過采用對于虛擬實驗操作界面和操作過程的XML語義描述方法,應用多媒體技術手段,使實驗操作者可以將實驗界面和實驗過程以XML文件的形式保存,實現(xiàn)對實驗過程記錄和復現(xiàn)的目的。
文檔編號G09B19/00GK103150941SQ201310125580
公開日2013年6月12日 申請日期2013年4月10日 優(yōu)先權(quán)日2013年4月10日
發(fā)明者李亮, 劉王杰, 茍秋林 申請人:浙江傳媒學院