一種為lxi模塊提供遠程控制功能的代理服務系統(tǒng)及方法
【專利摘要】本發(fā)明將LXI模塊的功能實現(xiàn)從模塊內(nèi)部控制系統(tǒng)分離開,形成可供外部控制計算機或外部控制系統(tǒng)調(diào)用的以模塊功能為接口的二次開發(fā)接口層,并且在模塊內(nèi)部設計了以控制命令為接口的代理服務子系統(tǒng),該系統(tǒng)與模塊具體功能無關,因此能夠形成一個穩(wěn)固的系統(tǒng)可以通用于LXI總線模塊的遠程控制開發(fā)?;诒景l(fā)明設計的代理服務系統(tǒng),其模塊內(nèi)外部控制系統(tǒng)以控制命令為接口,與具體模塊功能無關,其代理服務系統(tǒng)中運行在模塊內(nèi)部的代理服務子系統(tǒng)可作為一個穩(wěn)固的系統(tǒng)供LXI模塊遠程控制功能開發(fā),解決了現(xiàn)有技術在設計維護過程中需要不斷重復開發(fā)帶來的開發(fā)周期長、開發(fā)效率低等問題。
【專利說明】一種為LXI模塊提供遠程控制功能的代理服務系統(tǒng)及方法
【技術領域】
[0001] 本發(fā)明屬于測試【技術領域】,尤其涉及的是一種為LXI模塊提供遠程控制功能的代 理服務系統(tǒng)及方法。
【背景技術】
[0002] LXI模塊是基于LAN的模塊化儀器,具有通用且簡便的控制接口,因此在構建遠程 控制測試系統(tǒng)中具有廣泛的應用。
[0003] 傳統(tǒng)方式下LXI模塊的遠程控制功能開發(fā)需要分別開發(fā)模塊內(nèi)部和外部控制系 統(tǒng),這種開發(fā)模式雖然能夠?qū)崿F(xiàn)LXI模塊的遠程控制,但是在遠程控制功能的實現(xiàn)過程中 需要分別驗證和修改內(nèi)、外部控制系統(tǒng),并且要保證兩個控制系統(tǒng)間接口的一致性,這種實 現(xiàn)方式下模塊如需要升級維護就要打破原有的控制系統(tǒng),重新建立一個新的控制系統(tǒng),首 先這種重復性的開發(fā)會造成時間浪費,其次這種生命周期過短的控制框架導致了模塊遠控 功能的不穩(wěn)定。
[0004] LXI模塊化儀器自帶處理器、網(wǎng)絡連接、電源和觸發(fā)端口,通過網(wǎng)絡傳輸計算機與 儀器之間的通信信息。目前LXI模塊遠程控制系統(tǒng)的實現(xiàn)大多采用分別設計模塊內(nèi)部控制 系統(tǒng)12和外部控制系統(tǒng)11的方案。模塊內(nèi)部控制系統(tǒng)12采用分層設計,從下至上包括硬 件單元讀寫層、功能接口層,橫向按照不同功能分別設計相應的硬件讀寫函數(shù)和功能接口 函數(shù);硬件單元讀寫層負責與LXI模塊進行數(shù)據(jù)讀寫;功能接口層針對不同功能進行硬件 讀寫函數(shù)設計,并向上提供設置接口;外部控制系統(tǒng)11可以通過LAN對LXI模塊進行功能 設置,需要具備與模塊內(nèi)部控制系統(tǒng)12中的功能接口層的函數(shù)接口保持一致,具體示意圖 如圖1所示。LXI模塊因其小型化設計要求,在電路設計上常常不具備顯示器、鍵盤等人機 交互接口,因此不具備自主開發(fā)能力,即無法在本模塊上設計和調(diào)試程序,需要外部開發(fā)系 統(tǒng)的支持,因此LXI模塊遠程控制系統(tǒng)中模塊內(nèi)控制系統(tǒng)的開發(fā)每次都需要經(jīng)由外部主機 編譯后下載到LXI模塊內(nèi)再由外部主機驗證程序的正確性,從圖1可知,模塊內(nèi)部系統(tǒng)需要 分別開發(fā)硬件單元讀寫層和功能接口層的驅(qū)動程序或函數(shù),每一個層次每種模塊功能的實 現(xiàn)都需要經(jīng)過反復的下載、驗證,而且如果模塊功能需要改進升級就需要功能接口層和硬 件單元讀寫層重新設計、開發(fā)。一方面這種遠控系統(tǒng)開發(fā)方式首先時間消耗較大、其次模塊 功能的稍許改動就需要重新組建設計架構,導致開發(fā)效率低下,增加開發(fā)過程中的人力時 間成本。
[0005] 因此,現(xiàn)有技術存在缺陷,需要改進。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的目的是為了解決現(xiàn)有LXI模塊遠程控制功能開發(fā)以模塊具體功能為開 發(fā)接口導致的遠程控制系統(tǒng)在設計實現(xiàn)以及維護升級過程中的重復性開發(fā)問題。
[0007] 本發(fā)明的技術方案如下:
[0008] -種為LXI模塊提供遠程控制功能的代理服務系統(tǒng),其中,包括代理服務子系統(tǒng) 與二次開發(fā)接口層;所述代理服務子系統(tǒng),用于實現(xiàn)接收二次開發(fā)接口層發(fā)送的控制命令, 并將命令包含的數(shù)據(jù)傳送給LXI模塊;所述二次開發(fā)接口層,用于實現(xiàn)LXI模塊的功能函數(shù) 設計,并對代理服務子系統(tǒng)提供控制命令接口。
[0009] -種為LXI模塊提供遠程控制功能的代理服務系統(tǒng),其中,所述代理服務子系統(tǒng) 包含命令分析層和數(shù)據(jù)處理層,所述命令分析層用于針對二次開發(fā)接口層發(fā)送的控制命令 進行解析,并將解析后的數(shù)據(jù)發(fā)送給數(shù)據(jù)處理層;所述數(shù)據(jù)處理層用于實現(xiàn)讀寫函數(shù),將從 命令分析層獲取的數(shù)據(jù)按照不同數(shù)據(jù)類型進行數(shù)據(jù)讀寫。
[0010] 一種為LXI模塊提供遠程控制功能的代理服務系統(tǒng),其中,所述命令分析層,用于 對二次開發(fā)接口層發(fā)送的控制命令進行命令分析,所述命令分析步驟為:
[0011] 步驟101、讀取命令數(shù)據(jù);
[0012] 步驟102、判斷命令類型,如果命令中包含"#D"標志則視為該命令包含多于一 個的數(shù)據(jù),將該命令包含的數(shù)據(jù)放入大數(shù)據(jù)緩沖區(qū);其他命令則順序進入命令堆棧等待處 理;
[0013] 步驟103、判斷讀取命令是否結(jié)束,如果命令中包含"\n"或";"標志則視為一條 命令讀取完畢,如果不包含"\n"或";"標志則繼續(xù)讀取命令。
[0014] 一種為LXI模塊提供遠程控制功能的代理服務方法,其中,包括以下步驟:
[0015] 步驟1 :讀取命令緩沖區(qū)數(shù)據(jù);
[0016] 步驟2 :根據(jù)命令格式進行判斷;
[0017] 步驟3 :若讀取數(shù)據(jù)為單個數(shù)據(jù),則判斷命令是否結(jié)束,如果結(jié)束則進行與LXI模 塊底層模塊驅(qū)動的數(shù)據(jù)交互,如果命令沒有結(jié)束則繼續(xù)讀取命令;
[0018] 步驟4 :若讀取數(shù)據(jù)為多于1個數(shù)據(jù),判斷數(shù)據(jù)是否讀取完畢,如果讀取完畢,則將 數(shù)據(jù)復制到數(shù)據(jù)緩沖區(qū)中進行與LXI模塊底層模塊驅(qū)動的數(shù)據(jù)交互,如果沒有讀取完畢, 則繼續(xù)讀取數(shù)據(jù);
[0019] 上述步驟3或步驟4的順序不分先后。
[0020] -種為LXI模塊提供遠程控制功能的代理服務方法,其中,所述步驟2中所述命令 格式為遠程客戶端發(fā)送控制命令中發(fā)送的命令格式。
[0021] 本發(fā)明改變了現(xiàn)有技術下LXI模塊遠程控制系統(tǒng)開發(fā)中的開發(fā)接口與模塊功能 一一對應的關系,本發(fā)明提取了不同模塊功能設置包含的數(shù)據(jù)內(nèi)容,并根據(jù)不同類型的數(shù) 據(jù)讀寫設計了相應的控制命令,實現(xiàn)了以控制命令為接口的代理服務系統(tǒng)。該代理服務系 統(tǒng)包括代理服務子系統(tǒng)和二次開發(fā)接口層。將該代理服務子系統(tǒng)運行在LXI模塊內(nèi)部,當 需要控制LXI模塊具體功能時,外部控制端調(diào)用二次開發(fā)接口層提供的具體功能函數(shù),然 后二次開發(fā)接口層將不同功能函數(shù)對應的控制命令傳遞給模塊內(nèi)部的代理服務子系統(tǒng),代 理服務子系統(tǒng)中的命令分析層首先對命令進行解析,并將解析后的命令中包含的數(shù)據(jù)傳遞 給數(shù)據(jù)處理層,數(shù)據(jù)處理層根據(jù)不同數(shù)據(jù)類型進行與LXI模塊底層硬件的數(shù)據(jù)讀寫。
[0022] 基于本發(fā)明設計的代理服務系統(tǒng),其模塊內(nèi)外部控制系統(tǒng)以控制命令為接口,與 具體模塊功能無關,其代理服務系統(tǒng)中運行在模塊內(nèi)部的代理服務子系統(tǒng)可作為一個穩(wěn)固 的系統(tǒng)供LXI模塊遠程控制功能開發(fā),并且這種通用的接口設計使得該代理服務系統(tǒng)可以 通用于同類LXI模塊遠程控制功能開發(fā),大幅減小了同類模塊遠程控制系統(tǒng)的開發(fā)周期, 并且簡化了以現(xiàn)有技術構建LXI模塊遠程控制系統(tǒng)帶來的復雜調(diào)試過程和不斷重復開發(fā) 導致的開發(fā)周期長,開發(fā)效率低等問題。
【專利附圖】
【附圖說明】
[0023] 圖1為現(xiàn)有技術中LXI模塊遠程控制系統(tǒng)結(jié)構圖。
[0024] 圖2為本發(fā)明代理服務系統(tǒng)的結(jié)構示意圖。
[0025] 圖3為本發(fā)明代理服務系統(tǒng)中代理服務子系統(tǒng)命令分析層工作流程圖。
[0026] 圖4為本發(fā)明代理服務子系統(tǒng)的工作流程意圖。
【具體實施方式】
[0027] 以下結(jié)合附圖和具體實施例,對本發(fā)明進行詳細說明。
[0028] 實施例1
[0029] 本發(fā)明提供一種為LXI模塊提供遠程控制功能的代理服務系統(tǒng),其中,包括代理 服務子系統(tǒng)與二次開發(fā)接口層;所述代理服務子系統(tǒng),用于實現(xiàn)接收二次開發(fā)接口層發(fā)送 的控制命令,并將命令包含的數(shù)據(jù)傳送給LXI模塊;所述二次開發(fā)接口層,用于實現(xiàn)LXI模 塊的功能函數(shù)設計,并對代理服務子系統(tǒng)提供控制命令接口。
[0030] 上述中,所述代理服務子系統(tǒng)包含命令分析層和數(shù)據(jù)處理層,所述命令分析層用 于針對二次開發(fā)接口層發(fā)送的控制命令進行解析,并將解析后的數(shù)據(jù)發(fā)送給數(shù)據(jù)處理層; 所述數(shù)據(jù)處理層用于實現(xiàn)讀寫函數(shù),將從命令分析層獲取的數(shù)據(jù)按照不同數(shù)據(jù)類型進行數(shù) 據(jù)讀寫。
[0031] 上述中,所述命令分析層,用于對二次開發(fā)接口層發(fā)送的控制命令進行命令分析, 所述命令分析步驟為 :
[0032] 步驟101、讀取命令數(shù)據(jù);
[0033] 步驟102、判斷命令類型,如果命令中包含"#D"標志則視為該命令包含多于一 個的數(shù)據(jù),將該命令包含的數(shù)據(jù)放入大數(shù)據(jù)緩沖區(qū);其他命令則順序進入命令堆棧等待處 理;
[0034] 步驟103、判斷讀取命令是否結(jié)束,如果命令中包含"\n"或";"標志則視為一條 命令讀取完畢,如果不包含"\n"或";"標志則繼續(xù)讀取命令。
[0035] 本發(fā)明同時還提供一種為LXI模塊提供遠程控制功能的代理服務方法,其中,包 括以下步驟:
[0036] 步驟1 :讀取命令緩沖區(qū)數(shù)據(jù);
[0037] 步驟2 :根據(jù)命令格式進行判斷;
[0038] 步驟3 :若讀取數(shù)據(jù)為單個數(shù)據(jù),則判斷命令是否結(jié)束,如果結(jié)束則進行與LXI模 塊底層模塊驅(qū)動的數(shù)據(jù)交互,如果命令沒有結(jié)束則繼續(xù)讀取命令;
[0039] 步驟4 :若讀取數(shù)據(jù)為多于1個數(shù)據(jù),判斷數(shù)據(jù)是否讀取完畢,如果讀取完畢,則將 數(shù)據(jù)復制到數(shù)據(jù)緩沖區(qū)中進行與LXI模塊底層模塊驅(qū)動的數(shù)據(jù)交互,如果沒有讀取完畢, 則繼續(xù)讀取數(shù)據(jù);
[0040] 上述步驟3或步驟4的順序不分先后。
[0041] 上述中,所述步驟2中所述命令格式為遠程客戶端發(fā)送控制命令中發(fā)送的命令格 式。
[0042] 在上述內(nèi)容的基礎上,進一步結(jié)合圖2至圖4說明本實施方式,本發(fā)明將LXI模 塊的功能實現(xiàn)從模塊內(nèi)部控制系統(tǒng)分離開,形成可供外部控制計算機或外部控制系統(tǒng)調(diào)用 的以模塊功能為接口的二次開發(fā)接口層21,并且在模塊內(nèi)部設計了以控制命令為接口的代 理服務子系統(tǒng)22,該系統(tǒng)與模塊具體功能無關,因此能夠形成一個穩(wěn)固的系統(tǒng)可以通用于 LXI總線模塊的遠程控制開發(fā)。代理服務子系統(tǒng)22包括命令分析層221和數(shù)據(jù)處理層222。 命令分析層221解析二次接口層21發(fā)送的控制命令,并將解析后的數(shù)據(jù)發(fā)送給數(shù)據(jù)處理層 222進行與LXI模塊底層硬件的數(shù)據(jù)交互。
[0043] 命令分析層221采用Windows應用程序設計命令分析處理程序,該命令分析處理 程序包括兩部分,一部分是不斷監(jiān)聽外部控制端通過網(wǎng)絡發(fā)送的數(shù)據(jù),另一部分是針對命 令的分析處理。其監(jiān)聽程序中本發(fā)明調(diào)用的系統(tǒng)函數(shù)包括:
[0044] DWSAStartupO :用于初始化套接字資源
[0045] 2) socket ():用于創(chuàng)建監(jiān)聽套接字
[0046] 3) bind ():綁定監(jiān)聽套接字
[0047] 4) listen ():監(jiān)聽套接字
[0048] 5) ioctlsocket ():設置套接字通訊模式
[0049] 6) accept ():建立通訊連接
[0050] 7)recv():接收通訊信息
[0051] 8) send ():發(fā)送數(shù)據(jù)
[0052] 9)closesocket():關閉當前套接字
[0053] 監(jiān)聽通訊過程包括如下步驟:
[0054] 步驟201 :首先調(diào)用WSAStartup ()函數(shù)初始化套接字資源;
[0055] 步驟202 :LXI模塊進程調(diào)用socket ()函數(shù)創(chuàng)建套接字并給套接字地址變量賦初 值;
[0056] 步驟203 :調(diào)用bind ()函數(shù)將LXI模塊地址綁定到創(chuàng)建的套接字上;
[0057] 步驟204 :LXI模塊進程調(diào)用IistenO函數(shù)監(jiān)聽來自外部控制端的連接請求。無 連接請求時,服務進程被阻塞。當連接請求到來后,調(diào)用acceptO函數(shù)生成一個新的字節(jié) 流套接字,并返回外部控制端套接字地址,從而在命令分析程序中用新的被賦予外部控制 端地址的套接字同外部控制端進程進行連接。
[0058] 步驟205 :調(diào)用recvO函數(shù)接收信息以及調(diào)用sendO函數(shù)返回信息;
[0059] 步驟206 :調(diào)用closesocket ()函數(shù)關閉通信連接。
[0060] 本實施方式中涉及的控制命令采用具有一定兼容性的SCPI可編程儀器標準格式 定義,針對包含單個數(shù)據(jù)的命令和多于1個數(shù)據(jù)的命令,本發(fā)明定義了如下區(qū)分方式:命令 中包含"ffl)"表示該命令所包含數(shù)據(jù)為多于1個的數(shù)據(jù);若不包含則表示該命令所包含數(shù) 據(jù)為單個數(shù)據(jù),具體命令格式如表1所示,其中儀器標識查詢命令和操作完成查詢命令為 SCPI規(guī)范中提供的公共命令:
[0061] 表 1
[0062] 命令含義 命令格式
【權利要求】
1. 一種為LXI模塊提供遠程控制功能的代理服務系統(tǒng),其特征在于,包括代理服務子 系統(tǒng)與二次開發(fā)接口層;所述代理服務子系統(tǒng),用于實現(xiàn)接收二次開發(fā)接口層發(fā)送的控制 命令,并將命令包含的數(shù)據(jù)傳送給LXI模塊;所述二次開發(fā)接口層,用于實現(xiàn)LXI模塊的功 能函數(shù)設計,并對代理服務子系統(tǒng)提供控制命令接口。
2. 如權利要求1所述的一種為LXI模塊提供遠程控制功能的代理服務系統(tǒng),其特征在 于,所述代理服務子系統(tǒng)包含命令分析層和數(shù)據(jù)處理層,所述命令分析層用于針對二次開 發(fā)接口層發(fā)送的控制命令進行解析,并將解析后的數(shù)據(jù)發(fā)送給數(shù)據(jù)處理層;所述數(shù)據(jù)處理 層用于實現(xiàn)讀寫函數(shù),將從命令分析層獲取的數(shù)據(jù)按照不同數(shù)據(jù)類型進行數(shù)據(jù)讀寫。
3. 如權利要求2所述的一種為LXI模塊提供遠程控制功能的代理服務系統(tǒng),其特征在 于,所述命令分析層,用于對二次開發(fā)接口層發(fā)送的控制命令進行命令分析,所述命令分 析步驟為: 步驟101、讀取命令數(shù)據(jù); 步驟102、判斷命令類型,如果命令中包含"#D"標志則視為該命令包含多于一個的數(shù) 據(jù),將該命令包含的數(shù)據(jù)放入大數(shù)據(jù)緩沖區(qū);其他命令則順序進入命令堆棧等待處理; 步驟103、判斷讀取命令是否結(jié)束,如果命令中包含"\n"或";"標志則視為一條命令 讀取完畢,如果不包含"\n"或";"標志則繼續(xù)讀取命令。
4. 一種為LXI模塊提供遠程控制功能的代理服務方法,其特征在于,包括以下步驟: 步驟1 :讀取命令緩沖區(qū)數(shù)據(jù); 步驟2 :根據(jù)命令格式進行判斷; 步驟3 :若讀取數(shù)據(jù)為單個數(shù)據(jù),則判斷命令是否結(jié)束,如果結(jié)束則進行與LXI模塊底 層模塊驅(qū)動的數(shù)據(jù)交互,如果命令沒有結(jié)束則繼續(xù)讀取命令; 步驟4 :若讀取數(shù)據(jù)為多于1個數(shù)據(jù),判斷數(shù)據(jù)是否讀取完畢,如果讀取完畢,則將數(shù)據(jù) 復制到數(shù)據(jù)緩沖區(qū)中進行與LXI模塊底層模塊驅(qū)動的數(shù)據(jù)交互,如果沒有讀取完畢,則繼 續(xù)讀取數(shù)據(jù); 上述步驟3或步驟4的順序不分先后。
5. 如權利要求4所述的為LXI模塊提供遠程控制功能的代理服務方法,其特征在于,所 述步驟2中所述命令格式為遠程客戶端發(fā)送控制命令中發(fā)送的命令格式。
【文檔編號】G06F9/44GK104331281SQ201410583042
【公開日】2015年2月4日 申請日期:2014年10月27日 優(yōu)先權日:2014年10月27日
【發(fā)明者】盛楠, 李龍, 邱暢 申請人:中國電子科技集團公司第四十一研究所