網(wǎng)絡(luò )故障測試儀遠程監控軟件的設計
網(wǎng)絡(luò )故障測試儀是基于Linux操作系統的嵌入式手持設備,主要用于測試網(wǎng)絡(luò )故障現場(chǎng)、評估性能、提供專(zhuān)家解釋。專(zhuān)家親臨故障現場(chǎng)需要耗費一定的時(shí)間和財力,遠程監控軟件可以幫助專(zhuān)家通過(guò)互聯(lián)網(wǎng)絡(luò )訪(fǎng)問(wèn)遠端的測試設備,了解網(wǎng)絡(luò )運行參數,給出解決方案,實(shí)現遠程專(zhuān)家系統。遠程監控軟件將為便攜式網(wǎng)絡(luò )故障測試儀提供有效的遠程操作、監控及遠程技術(shù)支持能力。
1、遠程監控軟件的功能和結構
1.1 軟件主要功能
網(wǎng)絡(luò )故障測試儀是一臺便攜式設備,通常接人需要測試的網(wǎng)絡(luò )中。遠程監控將為用戶(hù)提供在個(gè)人電腦上直接觀(guān)測網(wǎng)絡(luò )狀態(tài)的能力;同時(shí)當網(wǎng)絡(luò )出現故障時(shí),也能為遠程專(zhuān)家了解網(wǎng)絡(luò )故障,給出解決方案提供便利。因此,遠程監控軟件主要實(shí)現對異地測試儀的操作功能,顯示設備返回的狀態(tài);通過(guò)在設備間建立起的數據交換通道,實(shí)現雙向的數據通信。
遠程監控軟件實(shí)現在監控時(shí),獲取客戶(hù)端發(fā)出的控制命令,控制服務(wù)器根據應用層協(xié)議對命令解釋后執行相應的動(dòng)作,返回執行結果;同時(shí)設置服務(wù)器根據用戶(hù)界面所需顯示參數,定時(shí)執行操作返回結果數據刷新界面。
1.2 軟件體系結構
軟件功能分解到通信的兩個(gè)端點(diǎn)上,即客戶(hù)端和服務(wù)器端,采用Client/Server模式。這樣能提高設計的靈活性,易于系統的擴展。服務(wù)器端集成在測試儀中,與設備的其他功能模塊協(xié)調工作,為客戶(hù)端提供執行共享資源的管理應用程序人口;客戶(hù)端則提供交互界面及結果顯示;數據交換通道的建立由雙方的數據通信模塊負責。從而實(shí)現點(diǎn)到點(diǎn)的直接控制監控,滿(mǎn)足實(shí)時(shí)性要求。軟件體系結構如圖1所示。
圖1 系統體系結構
① 客戶(hù)端的主要功能模塊為:消息輸入/顯示模塊,通信管理模塊。消息輸入模塊負責將用戶(hù)界面的按鈕事件傳送到通信模塊,通信模塊將命令信息發(fā)送到受控端;受控端執行操作后返回的成功或失敗信息交由客戶(hù)端消息顯示模塊根據信息的格式進(jìn)行顯示。
② 服務(wù)器端的主要功能模塊為:通信管理模塊,命令解釋模塊,函數調用模塊。服務(wù)器處于偵聽(tīng)狀態(tài), 一旦接收到合法的連接請求,則建立信號通路,通過(guò)通信管理模塊接收客戶(hù)端發(fā)來(lái)的命令信息,經(jīng)解釋模塊解釋后,調用函數執行相應的指令,并將結果返回到客戶(hù)端。
2、遠程監控軟件設計
2.1 消息輸入/顯示模塊實(shí)現
客戶(hù)端輸入/顯示模塊的開(kāi)發(fā)采用Visual C++,利用模塊化、通用性強的特點(diǎn),實(shí)現遠程監控中用戶(hù)界面的編寫(xiě)。用戶(hù)顯示界面保持與設備界面的一致,方便用戶(hù)操作。
2.2 通信模塊實(shí)現
(1) Socket編程
數據通信模塊中的數據通道建立采用Socket編程。Socket支持TCP/IP協(xié)議網(wǎng)絡(luò )通信的基本操作;它屏蔽了網(wǎng)絡(luò )底層的通信細節,使編程簡(jiǎn)單;它對通信端點(diǎn)進(jìn)行了抽象,提供發(fā)送和接收數據機制及打開(kāi)、計算和關(guān)閉會(huì )話(huà)的能力。本項目中,客戶(hù)端運行在Windows操作平臺下,采用WinSock來(lái)編程實(shí)現命令和數據信息的傳輸;而服務(wù)端運行在Linux操作平臺下,通信直接使用Socket編程實(shí)現。
(2) 通信建立
服務(wù)器與客戶(hù)端開(kāi)始都必須調用socket()函數產(chǎn)生一個(gè)Socket套接字;然后服務(wù)器調用bind()函數,將套接字與本地網(wǎng)絡(luò )地址捆扎在一起,在網(wǎng)絡(luò )上標志該套接字;只有當服務(wù)器執行完accept()進(jìn)入監聽(tīng)模式、阻塞狀態(tài)后,才能接收客戶(hù)端的connect()請求并決定是否接收數據;建立連接后,客戶(hù)端與服務(wù)器之間便可以雙向傳輸數據。服務(wù)器主要通信代碼:
listenfd=socket(AF—INET,SOCK—STREAM,0)
bind(1istenfd,(SOCKADDR %)sockaddr—echo,sizeof(struct sockaddr_in))
echofd=accept(1istenfd,(SOCKADDR %)(sockaddrcli),sizeof(SOCKADDR));
while((read—n=read(echofd,revbuf,BUFLEN))0)
{.一//指令解釋與函數調用}
if((write—n=write(echofd,okbuf,strlen(sendbuff)))0)
{.一//將結果返回給客戶(hù)端}
其中,客戶(hù)端與服務(wù)器間制定統一的數據通信協(xié)議,所有的數據和指令信息統一編碼,編碼格式為:命令代碼:數據部分(各數據之間用#分隔)。在傳輸用戶(hù)密碼時(shí),采用事先約定好的數據加密密匙,以防明文形式傳輸造成的信息泄漏。
相關(guān)推薦
技術(shù)專(zhuān)區
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線(xiàn)
- 開(kāi)關(guān)電源
- 單片機
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機控制
- 藍牙
- PLC
- PWM
- 汽車(chē)電子
- 轉換器
- 電源管理
- 信號放大器
評論