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