999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

網絡化儀器儀表協議服務器端設計與實現

2015-01-29 02:58:14龐新法
電子設計工程 2015年14期

龐新法

(陜西省委黨校科技教研部 陜西 西安 710061)

通過對傳統網絡設備的定義進行擴展,將儀器儀表納入網絡管理的范疇,使得其已經不再是孤立的、單獨的設備,而是將測試技術、互聯網技術、計算機技術結合在一起的網絡儀器系統。但網絡化儀器間難以進行協同工作,進而限制測量系統測量效率。為了實現網絡化儀器間的通信,本文將HiSLIP協議、虛擬儀器設計技術與網絡化測控系統相結合,利用HiSLIP協議,設計網絡化儀器間的通信原理,并給出了協議服務器端設計與實現。

協議的服務器端主要實現與儀器端的連接,并且實現為遠端控制軟件提供連接、數據傳輸等服務,和協議的客戶端配套實現通信通道的建立。服務器端程序,主要完成等待連接建立,連接建立,數據傳輸,和容錯處理等。

HiSLIP[1]協議服務器端的設計是與客戶端相對應,其功能也分為以下幾部分:協議啟動及前期準備;等待客戶端發起連接;與客戶端進行數據交互;容錯處理等??蛻舳说?4個交互,在服務器端程序中均一一對應,使用的消息類型會部分不同。

1 服務器端總體設計

根據IVI規范,儀器端的HiSLIP協議服務器端執行流程如圖1所示,啟動后,在同一個端口(4880)上創建兩個TCP連接,分別作為同步通道和異步通道。在同步通道上可雙向發送字符型命令,代理將數據按照HiSLIP的幀格式封裝,并交由下層TCP協議。

協議啟動時,申請套接口并綁定4880端口,啟動端口偵聽,若有連接請求則查詢是否超過最大連接數,如果超過則拒絕請求,否則建立連接。建立連接成功后,創建子進程,并將父進程的鏈接信息復制一份給子進程,完成后,即可進行數據的傳輸。父進程會查詢是否有關閉連接的請求,如果有則關閉連接,如果沒有則繼續偵聽端口。

2 協議啟動

服務器端協議啟動,和客戶端基本一致,申請Socket并進行端口4880綁定,之后等待客戶端發起連接。通過執行函數intserver_initialize來實現協議啟動的準備工作。

3 連接建立

根據協議要求,服務器端需要配合客戶端完成兩次連接的建立,按建立的前后順序,第一次是同步通道,第二次是異步通道[2-3]。

圖1 服務器端的協議流程Fig.1 The agreement process on the server side

3.1 建立連接過程中需要使用的消息類型序列

在接收到客戶端Initialize消息后,向客戶端發送消息類型為InitializeResponse的消息,其中包含的數據有,是否是重疊模式(overlap-mode),服務器協議版本,以及會話 ID,此時第一個連接即同步通道建立完成。消息格式為,<0>。

在接收到客戶端AsyncInitialize消息后,服務器端向客戶端發送消息類型為AsyncInitializeResponse的消息,其中包含的額數據只有服務器端程序的廠商號(server-vendorID)。此時,第二個連接即異步通道建立完成。消息格式為,<0><0>。

3.2 對遠端儀器進行鎖操作的消息類型序列

首先接收到AsyncLockInfo消息類型,服務器返回消息AsyncLockInfoResponse,其中包含已經授權的鎖個數和鎖類型等信息。格式為,<0>。

接收到AsyncLock消息時,使用消息AsyncLockResponse告知客戶端,加鎖成功還是失敗,或者釋放鎖成功還是失敗。在該消息中包含的數據有,請求加鎖標志位和請求釋放鎖標志,等待加鎖超時時間,鎖信息描述等。加鎖時發送給客戶端的消息的格式為,<0=failure,1=success,3=error><0><0>;釋放鎖時發送給客戶端的消息格式消息格式為,<1=success exclusive,2=success shared, 3=error><0><0>。

3.3 服務器端響應客戶端的消息尺寸使用的消息序列

收到客戶端AsyncMaximumMessageSize消息后,服務器端通過消息AsyncMaximumMessageSizeResponse來向客戶端告知服務器端可以接受的最大消息尺寸,該消息中包含由8字節無符號整形數據表示的消息尺寸信息。消息格式為,<0><0><8><8-byte size>。

通過 執行函數 staticinthandle_initialize_response(hislip_message*recv_message,char*send_buf,int*send_len)處理客戶端發起同步通道連接時服務器端的響應過程。

通過執行函數staticinthandle_async_initialize_response(hislip_message*recv_message,char*send_buf,int*send_len)處理客戶端發起異步通道連接時服務器端的響應過程。

第一,社區服刑人員的主觀因素。一是存在文化程度差異,量表的表述不能完全理解,工作人員若協助解釋則會形成暗示,影響測量效果;二是量表題量多且為客觀題,社區服刑人員為節省時間隨意填寫,造成無效量表過多;三是多數社區服刑人員對心理常識知之甚少,都是“心盲”,主觀配合程度差。

通過執行函數staticinthandle_async_message_size(hislip_message*recv_message,char*send_buf,int*send_len) 向客戶端發送服務器端能夠接受的消息最大尺寸。

4 數據交互

數據交互[4-5]部分與客戶端相對應,同樣使用兩種消息類型Data和DataEND,這兩種消息類型的消息使用方法與客戶端一致,即儀器獲取的數據發送給客戶端,服務器端使用Data或DataEND消息進行發送[7],如果可以滿足不超過最大消息長度的情況下,使用DataEND消息類型進行發送,如果超過了最大消息長度,則先使用Data消息類型進行發送若干,在剩余的數據不超過最大消息尺寸時,使用DataEND發送完剩余的數據。

在發送消息的內容上與客戶端有所區別,服務器端使用的消息中不包含交付標志,消息中的其他內容和客戶端發送給服務器端的一致,包含消息ID,數據長度及數據。消息格式為,<0><0>。在接收到Data和DataEND消息時,對其進行處理的函數如下。

5 容錯處理

服務器端的容錯處理有:致命錯誤及同步恢復交互;錯誤告知交互;中斷交互。這些主要是配合客戶端保證整個協議能夠穩定有序運行,與客戶端的容錯處理能夠一一對應,這里不再贅述。

6 程序設計實現

根據上述設計過程以及各種交互的含義,時序關系,進行程序設計[6-7],程序實現使用C語言實現,運行在Linux系統之上,程序中的模塊[8-9]主要有,通道建立初始化模塊,數據接收模塊,數據發送模塊等。

通過協議服務器端源代碼中的一些功能函數介紹,說明協議服務器端的執行過程如下。

實現初始化服務器端,初始化完成后,等待客戶端的HiSLIP連接。

staticinthandle_async_message_size()

處理客戶端發送的協商雙方發送的消息尺寸的請求消息。

staticintrecv_message_handle()

接收從客戶端發送過來的數據,并進行初步處理,對接收的數據包按照消息類型進行識別,識別后調用相關功能函數予以處理。

staticintcommunicate_device()

實現協議與設備的直接通信,在Linux下儀器設備,被抽象成設備文件,這里的與設備通信實質上是協議在VFS下對文件的操作。

staticinthandle_async_lock()

處理客戶端發送的給設備資源加鎖和釋放鎖的操作。

void send_data()和 void send_dataend()

實現向客戶端發送數據操作。

7 結束語

本文通過對協議服務器端的詳細設計,并在此基礎上結合客戶端的設計及控制端和儀器網絡代理的設計,實現了儀器間通信。在局域網環境下,通過示波器A和示波器B間的通信測試,證明本文提出的方案能夠實現儀器與控制端、儀器和儀器的通信。

[1]LXI HiSLIPTest Procedures[EB/OL].(2011-10-20).http://www.ivifoundation.org

[2]吳念,強彥.UNIX網絡程序設計[M].北京.科學出版社,2011.

[3]余成波,王士彬,李洪兵.網絡化儀器技術與實現[M].北京:清華大學出版社,2010.

[4]林玉池.測量控制與儀器儀表前沿技術及發展趨勢[M].天津:天津大學出版社,2005.

[5]董永清.Linux C編程實戰[M].北京:人民郵電出版社,2008.

[6]宋寶華.Linux設備驅動開發詳解[M].北京.人民郵電出版社,2008.

[7]陳莉君,康華.Linux操作系統原理與應用[M].北京.清華大學出版社,2006.

[8]李宥謀,劉釗遠,馬博.嵌入式系統開發[M].北京.清華大學出版社,2011.

[9]夏亞君,黃縉華,顧博川,等.運行服務總線綜合評價方法與評測工具研究[J].陜西電力,2014(12):21-25.XIA Ya-jun, HUANG Jin-hua, GU Bo-chuan, et al.Comprehensive evaluation method and evaluation tool for operation service bus[J].Shaanxi Electric Power,2014(12):21-25.

主站蜘蛛池模板: 日本五区在线不卡精品| 亚洲综合狠狠| 精品福利视频导航| 欧美不卡视频一区发布| 国产精品对白刺激| 欧美精品一二三区| 国产激爽大片在线播放| 欧洲欧美人成免费全部视频| 97在线公开视频| 无码人中文字幕| 久热精品免费| 免费一级毛片在线观看| 日韩不卡免费视频| 国产精品高清国产三级囯产AV| 亚洲国产91人成在线| 波多野结衣一区二区三区88| 国产高潮流白浆视频| 噜噜噜综合亚洲| 国产成人精品高清在线| 国产精品白浆无码流出在线看| 再看日本中文字幕在线观看| 亚洲国产成人麻豆精品| 中文字幕啪啪| 欧美在线视频a| 香蕉蕉亚亚洲aav综合| 欧美三级日韩三级| JIZZ亚洲国产| 一级在线毛片| 亚洲精品视频免费| 国产精品蜜臀| 国产精品片在线观看手机版| 中文字幕丝袜一区二区| 亚洲黄网在线| 在线看国产精品| 91亚洲影院| 色偷偷av男人的天堂不卡| 青青国产视频| 欧美五月婷婷| 亚洲综合专区| 亚洲日韩日本中文在线| 精品国产毛片| www.狠狠| 在线视频精品一区| 人妻中文字幕无码久久一区| 男女男精品视频| 国内老司机精品视频在线播出| 免费A∨中文乱码专区| 永久成人无码激情视频免费| 国产电话自拍伊人| 成人午夜久久| 秘书高跟黑色丝袜国产91在线| 精品乱码久久久久久久| 无码高潮喷水在线观看| 99精品国产自在现线观看| 浮力影院国产第一页| 日本国产精品| 三区在线视频| 国产丝袜一区二区三区视频免下载| 一级一级一片免费| 久久久久中文字幕精品视频| a级高清毛片| 久久久久国色AV免费观看性色| 亚洲日韩精品伊甸| 欧美成人日韩| 谁有在线观看日韩亚洲最新视频| 99视频在线看| 亚洲国产精品一区二区高清无码久久| 美女裸体18禁网站| 欧美一级大片在线观看| 亚洲欧美另类专区| 国产成人福利在线| 精品国产aⅴ一区二区三区| 欧美综合区自拍亚洲综合绿色| 中文字幕欧美日韩高清| 91av成人日本不卡三区| 亚洲午夜国产片在线观看| 成年人福利视频| 亚洲国产无码有码| 国产成人久久777777| 玖玖精品在线| 欧美高清日韩| 在线不卡免费视频|