RSR32串行端口通信數(shù)據(jù)采集工具的設(shè)計與實現(xiàn)
隨著電子技術(shù)的不斷發(fā)展,通過實現(xiàn)各種端日傳輸數(shù)據(jù)的檢測和控制,就可以準(zhǔn)確的判斷和分析問題,從而找到解決問題的方法。本文以目標(biāo)系統(tǒng)下兩個獨立具有數(shù)據(jù)通信往來模塊為對象,通過該工具使得兩個獨立模塊之間不直接相連,而是通過工具轉(zhuǎn)接,從而可以觀察目標(biāo)系統(tǒng)通信情況,進而為判斷系統(tǒng)中的獨立模塊工作是否正常提供依據(jù)。
1 工具設(shè)計與實現(xiàn)
1.1 設(shè)計框圖
如圖1所示,TARGET1和TARGET2為目標(biāo)系統(tǒng)下兩個獨立具有數(shù)據(jù)通信往來的模塊,A和B為兩個端口,此兩端口沒有差異,無論何時,從A端口接收到數(shù)據(jù)則立即通過B端口發(fā)送出去,反之亦然。A和B端口收發(fā)數(shù)據(jù)采用何種協(xié)議和格式,由程序運行的配置文件決定。本系統(tǒng)中,TARGET1和TARGET2無法直接進行數(shù)據(jù)往來,而是通過工具轉(zhuǎn)接,借助端口A和B進行數(shù)據(jù)傳遞,從而可以觀察目標(biāo)系統(tǒng)的通信情況。
1.2 詳細設(shè)計
該工具的主程序包括端口參數(shù)配置文件、端口數(shù)據(jù)循環(huán)處理、文件存取等程序,主要通過配置服務(wù)端口和客戶端口參數(shù),然后轉(zhuǎn)接到文件中,從而得到通信數(shù)據(jù)。主函數(shù)如下:
1.3 測試過程
1)運行SocketTool.exe,設(shè)置為服務(wù)端,數(shù)據(jù)收發(fā)窗口如圖2所示。簡化的工具欄只有3個功能按鈕:“創(chuàng)建”“刪除”“退出”;操作窗口左側(cè)為端口的傳輸控制協(xié)議和用戶數(shù)據(jù)報協(xié)議的設(shè)置欄,鼠標(biāo)雙擊對應(yīng)名稱列表或通過右擊對應(yīng)名稱列表彈出菜單設(shè)置,就可以對數(shù)據(jù)收發(fā)的服務(wù)器進行端口設(shè)置。操作窗口右側(cè)上部顯示Socket狀態(tài);中部顯示接收數(shù)據(jù)流;下部顯示發(fā)送的數(shù)據(jù)和重復(fù)次數(shù)。同時勾選底部顯示十六進制值功能,也可以對發(fā)送和接收的數(shù)據(jù)轉(zhuǎn)換成對應(yīng)的ASCII碼。
2)運行SocketTool.exe,設(shè)置為客戶端,如圖3所示??蛻舳丝谠O(shè)置與服務(wù)端口設(shè)置基本一致,設(shè)置主窗口一致,通過Socket狀態(tài)進行區(qū)分。
3)通過主窗口對參數(shù)進行配置之后,可以生成配置文件并保存。需要修改服務(wù)端或客戶端參數(shù)時,可以通過主界面進行修改,也可以通過直接修改配置參數(shù)文件完成。打開param.cfg文件,如圖4所示,配置過程及參數(shù)修改非常簡單。
4)運行后臺控制文件dualport.exe,如圖5所示,方便觀察服務(wù)端口和客戶端口直接的數(shù)據(jù)傳遞信息觀察信息包括傳遞的來源、目的、時間、內(nèi)容等。
5)測試結(jié)果。客戶端SocketTool.exe發(fā)送數(shù)據(jù),則數(shù)據(jù)通過dualport.exe-轉(zhuǎn)發(fā)到服務(wù)端的SocketTool.exe。再使用服務(wù)端SocketTool.exe發(fā)送數(shù)據(jù),則數(shù)據(jù)通過dualport.exe轉(zhuǎn)發(fā)到客戶端SocketTool.exe。圖6所示Bridge.log中記錄了所有經(jīng)過的數(shù)據(jù)。
2 結(jié)束語
該工具作為一種輔助手段,特別在某些地方不具有某些環(huán)境時,可以幫助收集數(shù)據(jù),同時不影響系統(tǒng)中各個獨立模塊的工作,也不影響系統(tǒng)中模塊的整體性。如果通信數(shù)據(jù)的時序(比如某些數(shù)據(jù)包之間的時間相差太大,或者太小等)有問題,或數(shù)據(jù)出錯等等,該工具可以幫助排除問題。該工具用于在兩個通信端口可以是RS232串口,網(wǎng)絡(luò)套接字sock et,甚至可以是并口,USB等。