一種串口數(shù)據(jù)處理方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種通信技術(shù),特別是涉及一種串口數(shù)據(jù)處理方法及系統(tǒng)。
【背景技術(shù)】
[0002]串行接口簡稱串口,也稱串行通信接口或串行通訊接口(通常指COM接口),是采用串行通信方式的擴展接口。其特點是通信線路簡單,只要一對傳輸線就可以實現(xiàn)雙向通信,從而大大降低了成本,特別適用于遠距離通信,但傳輸速度較慢。由于串口使用簡單,成本低廉,現(xiàn)在被普遍應(yīng)用于產(chǎn)品的開發(fā)和測試過程中。目前有很多的串口通信軟件,比如SecureCRT,Xshell等,利用這些工具可以方便地處理串口數(shù)據(jù)。但應(yīng)用串口進行通信測試時存在一些問題,例如經(jīng)常會出現(xiàn)串口打印速度過快,測試人員還沒來得及查看之前的內(nèi)容,顯示區(qū)域就被后面的信息給覆蓋了。同時在串口傳輸?shù)娜罩局校芏嘈畔⑹菬o用信息,如果測試人員想過濾串口的信息,普通的串口通信軟件就不支持。
[0003]鑒于此,如何找到一種更好的處理串口數(shù)據(jù)的技術(shù)方案成為了本領(lǐng)域技術(shù)人員亟待解決的問題。
【發(fā)明內(nèi)容】
[0004]鑒于以上所述現(xiàn)有技術(shù)的缺點,本發(fā)明的目的在于提供一種串口數(shù)據(jù)處理方法及系統(tǒng),用于解決現(xiàn)有技術(shù)中串口通信數(shù)據(jù)處理時不能調(diào)節(jié)打印速度、提供數(shù)據(jù)過濾功能的問題。
[0005]為實現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種串口數(shù)據(jù)處理方法,所述串口數(shù)據(jù)處理方法包括:在串口和輸出設(shè)備間設(shè)置一個先進先出輸出緩沖區(qū);將從串口輸出的數(shù)據(jù)存儲到所述先進先出輸出緩沖區(qū);根據(jù)設(shè)定輸出速度從所述先進先出輸出緩沖區(qū)獲取數(shù)據(jù)輸出到所述輸出設(shè)備。
[0006]可選地,所述串口數(shù)據(jù)處理方法包括:在串口和輸入設(shè)備間設(shè)置一個先進先出輸入緩沖區(qū);將從輸入設(shè)備輸入到串口的數(shù)據(jù)存儲到所述先進先出輸入緩沖區(qū);根據(jù)設(shè)定輸入速度從所述先進先出輸入緩沖區(qū)獲取數(shù)據(jù)輸入到串口。
[0007]可選地,根據(jù)設(shè)定輸出速度從所述先進先出輸出緩沖區(qū)獲取數(shù)據(jù)輸出到所述輸出設(shè)備的具體實現(xiàn)包括:根據(jù)所述設(shè)定輸出速度設(shè)置一時間閾值;每隔所述時間閾值,則從所述先進先出輸出緩沖區(qū)獲取設(shè)定數(shù)量的字符輸出到所述輸出設(shè)備。
[0008]可選地,所述輸出設(shè)備包括顯示器或打印機。
[0009]可選地,所述串口數(shù)據(jù)處理方法還包括:當所述先進先出輸出緩沖區(qū)滿時,自動為所述先進先出輸出緩沖區(qū)大小增加預(yù)設(shè)值。
[0010]可選地,所述串口數(shù)據(jù)處理方法還包括:當所述先進先出輸出緩沖區(qū)滿時,自動發(fā)出所述先進先出輸出緩沖區(qū)滿的提示信息。
[0011]可選地,所述串口數(shù)據(jù)處理方法還包括:根據(jù)設(shè)定關(guān)鍵字對從所述輸出緩沖區(qū)獲取的數(shù)據(jù)進行過濾后輸出到所述輸出設(shè)備。
[0012]本發(fā)明提供一種串口數(shù)據(jù)處理系統(tǒng),所述串口數(shù)據(jù)處理系統(tǒng)包括:輸出緩存設(shè)置模塊,用于在串口和輸出設(shè)備間設(shè)置一個先進先出輸出緩沖區(qū),所述先進先出輸出緩沖區(qū)用于存儲串口輸出的數(shù)據(jù);輸出緩存控制模塊,用于根據(jù)設(shè)定輸出速度從所述先進先出輸出緩沖區(qū)獲取數(shù)據(jù)輸出到所述輸出設(shè)備。
[0013]可選地,所述輸出緩存控制模塊根據(jù)所述設(shè)定輸出速度設(shè)置一時間閾值;每隔所述時間閾值,則從所述先進先出輸出緩沖區(qū)獲取設(shè)定數(shù)量的字符輸出到所述輸出設(shè)備。
[0014]可選地,所述輸出緩存控制模塊還用于:修改所述輸出設(shè)定速度。
[0015]可選地,所述輸出設(shè)備包括顯示器或打印機。
[0016]可選地,所述輸出緩存控制模塊還用于:當所述先進先出輸出緩沖區(qū)滿時,自動為所述先進先出輸出緩沖區(qū)大小增加預(yù)設(shè)值。
[0017]可選地,所述輸出緩存控制模塊還用于:當所述先進先出輸出緩沖區(qū)滿時,自動發(fā)出所述先進先出輸出緩沖區(qū)滿的提示信息。
[0018]可選地,所述輸出緩存控制模塊還用于:根據(jù)設(shè)定關(guān)鍵字對從所述輸出緩沖區(qū)獲取的數(shù)據(jù)進行過濾后輸出到所述輸出設(shè)備。
[0019]可選地,所述串口數(shù)據(jù)處理系統(tǒng)還包括:輸入緩存設(shè)置模塊,用于在串口和輸入設(shè)備間設(shè)置一個先進先出輸入緩沖區(qū),所述先進先出輸入緩沖區(qū)用于存儲所述輸入設(shè)備輸入到串口的數(shù)據(jù);輸入緩存控制模塊,用于根據(jù)設(shè)定輸入速度從所述先進先出輸入緩沖區(qū)獲取數(shù)據(jù)輸入到串口。
[0020]如上所述,本發(fā)明的串口數(shù)據(jù)處理方法及系統(tǒng),具有以下有益效果:1.輸出設(shè)備接收串口數(shù)據(jù)的速度可調(diào)節(jié),根據(jù)測試人員的需要,加快或減慢輸出設(shè)備接收的串口數(shù)據(jù)速度;2.支持串口數(shù)據(jù)的關(guān)鍵字過濾。在普通的串口處理上,用戶無法直接過濾關(guān)鍵字,以過濾出自己關(guān)心的日志。本方案中,可以在“先進先出”輸出的地方,過濾用戶的關(guān)鍵字,以達到過濾的效果。
【附圖說明】
[0021]圖1顯示為本發(fā)明的串口數(shù)據(jù)處理方法的一實施例的流程示意圖。
[0022]圖2顯示為本發(fā)明的串口數(shù)據(jù)處理系統(tǒng)的一實施例的模塊示意圖。
[0023]元件標號說明
[0024]I串口數(shù)據(jù)處理系統(tǒng)
[0025]11輸出緩存設(shè)置模塊
[0026]12輸出緩存控制模塊
[0027]SI ?S3步驟
【具體實施方式】
[0028]以下通過特定的具體實例說明本發(fā)明的實施方式,本領(lǐng)域技術(shù)人員可由本說明書所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點與功效。本發(fā)明還可以通過另外不同的【具體實施方式】加以實施或應(yīng)用,本說明書中的各項細節(jié)也可以基于不同觀點與應(yīng)用,在沒有背離本發(fā)明的精神下進行各種修飾或改變。
[0029]需要說明的是,本實施例中所提供的圖示僅以示意方式說明本發(fā)明的基本構(gòu)想,遂圖式中僅顯示與本發(fā)明中有關(guān)的組件而非按照實際實施時的組件數(shù)目、形狀及尺寸繪制,其實際實施時各組件的型態(tài)、數(shù)量及比例可為一種隨意的改變,且其組件布局型態(tài)也可能更為復(fù)雜。
[0030]本發(fā)明提供一種串口數(shù)據(jù)處理方法。串口的波特率一般固定,因此,不可能通過降低波特率的方法去減慢串口數(shù)據(jù)的輸出。本方案中,串口數(shù)據(jù)處理會有一個很大的先進先出緩沖區(qū),我們稱之為“FIFO”(First Input First Output的縮寫),在先進先出緩沖區(qū)中,F(xiàn)IFO按數(shù)據(jù)到達先進先出緩沖區(qū)的先后順序讓數(shù)據(jù)進入隊列(輸入數(shù)據(jù)到FIFO),同時,F(xiàn)IFO在隊列的出口讓數(shù)據(jù)按進隊的順序出隊(從FIFO輸出數(shù)據(jù)),先進的數(shù)據(jù)將先出隊,后進的數(shù)據(jù)將后出隊。串口的輸出數(shù)據(jù)先進入“FIFO”,然后再從“FIFO”中輸出到輸出設(shè)備。雖然不能改變串口的輸出速度,但是可以通過改變“FIFO”的輸出速度以達到減慢輸出速度的效果。在一個實施例中,如圖1所示,所述串口數(shù)據(jù)處理方法包括:
[0031 ] 步驟SI,在串口和輸出設(shè)備間設(shè)置一個先進先出輸出緩沖區(qū)。在一個實施例中,在串口和輸出設(shè)備間設(shè)置一個先進先出輸出緩沖區(qū),所述先進先出輸出緩沖區(qū)的大小可以根據(jù)需要設(shè)置,比如設(shè)置為16M,該先進先出輸出緩沖區(qū)可以緩沖很多數(shù)據(jù),起到對從串口輸出到所述輸出設(shè)備的數(shù)據(jù)緩沖的效果。當從串口輸出數(shù)據(jù)到所述先進先出輸出緩沖區(qū)時,相應(yīng)的增加存儲到先進先出輸緩沖區(qū)的數(shù)據(jù)大小。當從所述先進先出輸出緩沖區(qū)中獲取數(shù)據(jù)輸出到所述輸出設(shè)備時,則先進先出輸出緩沖區(qū)將刪除輸出到所述輸出設(shè)備的數(shù)據(jù),或標識輸出到所述輸出設(shè)備的數(shù)據(jù)為無效。同時,相應(yīng)的減少存儲到先進先出輸緩沖區(qū)的數(shù)據(jù)大小。當存儲到先進先出輸緩沖區(qū)的數(shù)據(jù)大小為O時,則不能再從所述先進先出輸出緩沖區(qū)中獲取數(shù)據(jù)輸出到所述輸出設(shè)備。
[0032]步驟S2,將從串口輸出的數(shù)據(jù)存儲到所述先進先出輸出緩沖區(qū)。具體地,將從串口輸出到所述輸出設(shè)備的數(shù)據(jù)緩存到所述先進先出輸出緩沖區(qū)。在一個實施例中,當存儲到先進先出輸緩沖區(qū)的數(shù)據(jù)大小超過先進先出輸出緩沖區(qū)的大小時,則會造成先進先出輸出緩沖區(qū);對于這種情況,即當所述先進先出輸出緩沖區(qū)滿時,將自動為所述先進先出輸出緩沖區(qū)大小增加預(yù)設(shè)值。比如原先先進先出輸出緩沖區(qū)的大小是16M,所述預(yù)設(shè)值為16M,則自動為所述先進先出輸出緩沖區(qū)大小增加預(yù)設(shè)值,將先進先出輸出緩沖區(qū)的大小增加到32M。在一個實施例中,先進先出輸出緩沖區(qū)的大小的上限是1G,如果到達1G,則將提示用戶,先進先出輸出緩沖區(qū)已經(jīng)滿了,此時,需要釋放緩沖區(qū),或者將緩沖區(qū)的內(nèi)容寫到本地的文件中。所述串口數(shù)據(jù)處理方法還包括:當所述先進先出輸出緩沖區(qū)滿時,自動發(fā)出所述先進先出輸出緩沖區(qū)滿的提不ig息。
[0033]步驟S3,根據(jù)設(shè)定輸出速度從所述先進先出輸出緩沖區(qū)獲取數(shù)據(jù)輸出到所述輸出設(shè)備。在一個實施例中,根據(jù)設(shè)定輸出速度從所述先進先出輸出緩沖區(qū)獲取數(shù)據(jù)輸出到所述輸出設(shè)備的具體實現(xiàn)包括:根據(jù)所述設(shè)定輸出速度設(shè)置一時間閾值;每隔所述時間閾值,則從所述先進先出輸出緩沖區(qū)獲取設(shè)定數(shù)量的字符輸出到所述輸出設(shè)備。在一個實施例中,根據(jù)設(shè)定輸出速度從所述先進先出輸出緩沖區(qū)獲取數(shù)據(jù)輸出到所述輸出設(shè)備的具體實現(xiàn)包括:根據(jù)所述設(shè)定輸出速度配置定時器,當定時器超時,從所述先進先出輸出緩沖區(qū)獲取一個字符輸出到所述輸出設(shè)