[發明專利]一種智能測量儀器通用語法分析的實現方法有效
| 申請號: | 201110362641.8 | 申請日: | 2011-11-16 | 
| 公開(公告)號: | CN102521250A | 公開(公告)日: | 2012-06-27 | 
| 發明(設計)人: | 郭永瑞;井濤;李樹彪;孫朋德;劉丹;李明太;趙學強;趙立軍 | 申請(專利權)人: | 中國電子科技集團公司第四十一研究所 | 
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 | 
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 | 
| 地址: | 266000 山東省*** | 國省代碼: | 山東;37 | 
| 權利要求書: | 查看更多 | 說明書: | 查看更多 | 
| 摘要: | |||
| 搜索關鍵詞: | 一種 智能 測量 儀器 通用 語法分析 實現 方法 | ||
技術領域
本發明涉及一種測量儀器語法分析方法,尤其涉及一種智能測量儀器通用語法分析的實現方法,屬于程控測量儀器技術領域。
背景技術
目前智能型測量儀器門類繁多,例如功率計、頻譜儀、網絡儀、信號源、噪聲儀、頻率計、示波器等。這些智能測量儀器具有一個共同特點:可以通過任何可與之通訊的控制器進行系統集成。這些控制器可能是個人電腦、小型計算機或者卡槽上的插卡,乃至一些人工智能的設備。由控制器通過相應的測試總線,GP-IB、網絡等向測量儀器發送程控命令,實現對測量儀器的程控操作(如附圖1所示)。但是如何正確輸入有效命令、測量儀器如何獲取正確指令、如何正確解析在發送過程中可能會出現的發送錯誤例如:關鍵字錯誤、參數個數、參數數據類型不匹配、參數超界等,卻是本領域所面臨的常見問題。如果測量儀器不能很好地識別這些錯誤,將無法實現指定功能,甚至可能會造成測量儀器的崩潰。因此,必須對通過通訊接口所接收到的數據和程控命令信息進行解析,判斷其合法性,提取有效指令和相應的參數。
語法分析是一項繁瑣、復雜的工作,但針對測量儀器又不可或缺。由于用戶的輸入可能錯綜復雜,所以稍有考慮不周,就可能出現誤判、漏判,從而出現意想不到的情況。由于不同的測量儀器具有不同的測試功能,所以每種測量儀器的生產廠商都要針對自身儀器進行包括語法分析在內的程控的重復開發。這無疑會造成大量、重復的勞動,造成極大的人力、物力浪費。而經多方查閱,到目前為止還沒有一套完整的、完善的、針對不同測量儀器通用的語法分析方法。
因此,能否針對不同門類的智能測量儀器,搭建出一套完善的通用語法分析平臺以同時滿足其各自程控的要求,成為本領域技術人員亟待解決的技術難題。
發明內容
為了解決上述技術問題,提出本發明。本發明旨在提供一種智能測量儀器通用語法分析的實現方法,其基于SCPI(Standard?Commands?for?Programmable?Instruments——可程控設備的標準命令,一個基于標準IEEE488.2建立的、適合所有儀器的命令集),針對多種智能測量儀器開發的。用于使不同測量儀器相同功能具有相同的程控命令,以實現程控命令的通用性。其采用的技術方案如下:
該種智能測量儀器通用語法分析的實現方法包括以下步驟:
1)生成命令樹:利用二叉樹的方式來構建數據結構,將整個語法分析的過程分成生成樹過程和遍歷樹過程;
2)語法分析:與接口相應的線程接收來自接口的命令和數據,并送語法分析先進先出隊列,激活語法分析;逐個分離出用戶輸入命令的關鍵字,依據生成樹中的數據結構,判斷輸入的整條命令在每個具體部位是否存在問題,然后對正確的分析進行解析解碼,把相應的命令和參數分別送入命令隊列,激活命令處理線程進行相應的命令處理;對錯誤的命令予以拋棄,并進行示警和錯誤定位。
優選地,所述命令樹包括如下五個數據結構:命令和關鍵字結構、節點結構、葉子節點結構、參數鏈表結構以及C參數鏈表。
優選地,在所述語法分析步驟中,還使用命令結構和參數結構,在語法分析完成某條命令之后,這兩個結構分別寫入命令處理線程。
優選地,在遍歷樹的過程中,如果在同級的目錄中沒有找到,在下級中查找乃至一直找到葉子節點;如果在葉子節點還沒有找到,回溯到之前正確的解析部位,在其兄弟節點乃至兄弟節點的子節點中繼續查找。
優選地,所述用戶輸入命令包括大數據塊命令。
優選地,所述用戶輸入命令中還包括關聯命令,在語法分析步驟中關聯命令出現問題時,把前面判斷正確的命令包括命令碼和參數送給命令處理,而出錯之后的命令包括本條進行清除。
優選地,其特征在于,所述接口為GPIB或網絡。
優選地,對于大數據塊關聯命令還包括如下處理步驟:分析到大數據塊參數時,把所有滯留命令全部一并寫入命令先進先出隊列中,然后等待;命令處理到這條命令時,發消息給語法分析,并給語法分析一個緩沖區的指針,然后命令處理處于等待狀態;語法分析直接從語法先進先出隊列中按當前的數據格式進行讀取,然后寫入到對應的內存中;如果在處理大數據的過程中出現錯誤,則發送消息給命令處理線程,結束該命令的處理,同時設置該條命令的關聯碼為最后一個;如果沒有出錯,就要看是否是關聯命令的中間一條,要等到下一條命令處理完畢,得到正確的關聯碼之后才給命令處理發消息;如果不是中間一條,則在處理完之后給命令處理發消息。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國電子科技集團公司第四十一研究所,未經中國電子科技集團公司第四十一研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110362641.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:裙板鎖閉失效保護裝置及動車
- 下一篇:一種處理應用程序的方法及無線手持設備





