CN103559296A - 一种基于xml的scpi命令解析方法 - Google Patents
一种基于xml的scpi命令解析方法 Download PDFInfo
- Publication number
- CN103559296A CN103559296A CN201310561418.5A CN201310561418A CN103559296A CN 103559296 A CN103559296 A CN 103559296A CN 201310561418 A CN201310561418 A CN 201310561418A CN 103559296 A CN103559296 A CN 103559296A
- Authority
- CN
- China
- Prior art keywords
- scpi
- order
- command
- xml
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明提供一种基于XML的SCPI命令解析方法,包括以下步骤:1、采用XML文档描述SCPI命令;2、判断是否接收到SCPI命令;3、查询XML文档,判断是否有匹配项;4、取得命令号及参数信息;5、对SCPI命令进行处理。采用上述方案,SCPI命令解析器具有高度的可扩展性和通用性,有效的解决了SCPI命令解析器结构复杂,复用困难的问题。
Description
技术领域
本发明属于测试技术领域,尤其涉及的是一种基于XML的SCPI命令解析方法。
背景技术
SCPI(The Standard Commands for Programmable Instruments)是测试测量仪器程控命令的重要标准,在各种程控测试测量仪器中得到了广泛的应用,使用SCPI标准也是可程控仪器的发展趋势。在仪器接收到SCPI命令后,依据SCPI命令语法格式规范在SCPI命令集中解析命令语句,得到命令编码、参数类型、参数值、参数单位等信息,来完成命令要求的操作。
要使用SCPI命令来控制仪器,首先是对用户输入的SCPI命令进行翻译成为仪器可以识别的语言,即SCPI命令解析。由于SCPI采用树形分级结构,每一级由一系列相关测试指令构成,在SCPI解析器的设计时,需要构建一定存储结构的命令树和编写相关遍历程序。要创建SCPI命令树,先要将命令关键字保存成格式化文本文件或保存在数据库中,在创建命令树时扫描文件或操作数据库,读取命令关键字的信息,将命令关键字转换为SCPI标准格式表示,然后根据命令的等级构造命令树;并且在参数和后缀的处理上,不同仪器的处理方式差异极大,要实现统一处理还需要各种数据类型的转化程序。可见SCPI解析过程复杂易出错,复用困难,解析器结构复杂。
SCPI解释器的功能主要是对输入指令进行解析,将使用SCPI命令编写的程控消息翻译成仪器可识别的代码,其主要步骤包括两部分:一是SCPI命令集的创建和存储;二是对程控消息进行分析和查询。
创建命令树的过程,就是把数字示波器的SCPI命令集按照一定的结构,创建成供查询使用的命令树。这个阶段要求实现:输入的是包含数字示波器所有的SCPI命令关键字的1个格式化文本文件,输出的是1棵按规则创建的命令树。由于SCPI命令采用树状结构,具有很多子***,每一个子***又具有很多子命令,因此需要构建一定存储结构的命令树和编写相关遍历程序。常用的SCPI解释器设计方法有自动生成法、字符串比较法等。自动生成法是利用UNIX***下的两个工具LEX和YACC来生成的,主要针对UNIX***。与自动生成法相比,字符串比较法适用范围广,占用存储资源少,获得的性能也优于自动生成法。
命令查找的过程就是根据用户输入的SCPI命令,遍历命令树,得到命令的内码和参数信息,通过进行字符串比较,在同一层次中由前到后,对命令树结点遍历来完成的。对用户输入的SCPI命令字符串,判断命令字符串首字符以确定是公用命令还是SCPI仪器特定控制命令;接着开始命令查询,如果能找到完全匹配的命令,则取出其命令号并返回;最后根据命令号执行相关目标代码并处理结果数据。
由于SCPI采用树形分级结构,每一级由一系列相关测试指令构成,在SCPI解析器的设计时,需要构建一定存储结构的命令树和编写相关遍历程序。要创建SCPI命令树,先要将命令关键字保存成格式化文本文件或保存在数据库中,在创建命令树时扫描文件或操作数据库,读取命令关键字的信息,将命令关键字转换为SCPI标准格式表示,然后根据命令的等级构造命令树;并且在参数和后缀的处理上,不同仪器的处理方式差异极大,要实现统一处理还需要各种数据类型的转化程序。可见SCPI解析过程复杂易出错,复用困难,解析器结构复杂。
因此,现有技术存在缺陷,需要改进。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种基于XML的SCPI命令解析方法。
本发明的技术方案如下:
一种基于XML的SCPI命令解析方法,其中,包括以下步骤:
步骤1:采用XML文档描述SCPI命令;设置采用XML文档来描述SCPI命令树;
步骤2:判断是否接收到SCPI命令,是则进入步骤3,否则继续判断是否接收到SCPI命令;
步骤3:查询XML文档,判断是否有匹配项;根据接收到的SCPI命令,分离SCPI命令关键字,在XML文档同一层次中查询与之匹配的节点;若查询到与之匹配的节点,则取下一级关键字,在此节点的子节点中查询,直到最后一个SCPI命令关键字后进入步骤4;若查询不到与之匹配的节点,则判定为未找到匹配项,进入步骤2;
步骤4:取得命令号及参数信息;在对应XML子节点中识别并执行命令编码和参数类型、参数个数信息,并在SCPI命令中分离出对应参数和单位后发送;
步骤5:对SCPI命令进行处理;程控仪器根据命令编码和参数,执行相应的命令。
所述的基于XML的SCPI命令解析方法,其中,所述步骤一中,在创建SCPI命令的XML文档时,使用XML节点的属性来标记命令关键字及关键字的缩写;使用XML子节点来表示下级SCPI命令或本级SCPI命令的命令编码、参数类型。
所述的基于XML的SCPI命令解析方法,其中,所述步骤二中,设置按照SCPI命令在语法和格式是否符合SCPI命令标准语法和格式的规则,来判定接收到的SCPI命令是否是有效的SCPI命令。
采用上述方案,将SCPI命令编写成XML文档格式,通过对XML文档的查询等操作即可得到SCPI命令的命令码,参数类型等信息,对于不同的SCPI命令,只需修改XML文档内容就可实现对SCPI命令的更新;使用本发明方法设计的SCPI命令解析器具有高度的可扩展性和通用性,有效的解决了SCPI命令解析器结构复杂,复用困难的问题。
附图说明
图1为本发明的方法流程图。
具体实施方式
以下结合附图和具体实施例,对本发明进行详细说明。
实施例1
如图1所示,本发明提出了一种基于XML的SCPI命令解析方法。XML是W3C组织提出的一种通用标记语言。XML允许文档开发人员创建描述数据的语义标记和文档所遵循的约束条件。任何标准的XML语法分析器都可以读取、解析、检验这种基于文本的自描述文档,并通过标准的数据访问接口以独立于平台的方式访问数据元素。
XML的主要特征是半结构化,它是介于结构化数据与完全无结构数据之间的一类数据,通过自定义描述标记数据,XML文档被看成是树结构,其中元素和属性被映射成为树的结点,元素之间的嵌套关系被映射成为树的边。XML文档是树结构的,同SCPI命令树格式相似,因此可以采用XML文档来描述SCPI命令树。而且采用这种XML的标准化文档格式可以把命令的参数类型和后缀都描述出来,可以直接通过判别类型实现参数和后缀的处理。命令树中不仅包括了命令关键字及其缩写还包括了命令编码、参数类型等信息。
在仪器收到SCPI命令的时候,通过命令的关键字或其缩写查找相应的节点,如找到匹配节点,取得命令编码、参数类型等信息,从而实现各种命令的解析和参数处理。
实施例2
在上述实施例的基础上,进一步,提供一种基于XML的SCPI命令解析方法,其中,包括以下步骤:
步骤1:采用XML文档描述SCPI命令;设置采用XML文档来描述SCPI命令树;
步骤2:判断是否接收到SCPI命令,是则进入步骤3,否则继续判断是否接收到SCPI命令;
步骤3:查询XML文档,判断是否有匹配项;根据接收到的SCPI命令,分离SCPI命令关键字,在XML文档同一层次中查询与之匹配的节点;若查询到与之匹配的节点,则取下一级关键字,在此节点的子节点中查询,直到最后一个SCPI命令关键字后进入步骤4;若查询不到与之匹配的节点,则判定为未找到匹配项,进入步骤2;
步骤4:取得命令号及参数信息;在对应XML子节点中识别并执行命令编码和参数类型、参数个数信息,并在SCPI命令中分离出对应参数和单位后发送;
步骤5:对SCPI命令进行处理;程控仪器根据命令编码和参数,执行相应的命令。
所述的基于XML的SCPI命令解析方法,其中,所述步骤一中,在创建SCPI命令的XML文档时,使用XML节点的属性来标记命令关键字及关键字的缩写;使用XML子节点来表示下级SCPI命令或本级SCPI命令的命令编码、参数类型。
所述的基于XML的SCPI命令解析方法,其中,所述步骤二中,设置按照SCPI命令在语法和格式是否符合SCPI命令标准语法和格式的规则,来判定接收到的SCPI命令是否是有效的SCPI命令。
采用上述方案,将SCPI命令编写成XML文档格式,通过对XML文档的查询等操作即可得到SCPI命令的命令码,参数类型等信息,对于不同的SCPI命令,只需修改XML文档内容就可实现对SCPI命令的更新;使用本发明方法设计的SCPI命令解析器具有高度的可扩展性和通用性,有效的解决了SCPI命令解析器结构复杂,复用困难的问题。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (3)
1.一种基于XML的SCPI命令解析方法,其特征在于,包括以下步骤:
步骤1:采用XML文档描述SCPI命令;设置采用XML文档来描述SCPI命令树;
步骤2:判断是否接收到SCPI命令,是则进入步骤3,否则继续判断是否接收到SCPI命令;
步骤3:查询XML文档,判断是否有匹配项;根据接收到的SCPI命令,分离SCPI命令关键字,在XML文档同一层次中查询与之匹配的节点;若查询到与之匹配的节点,则取下一级关键字,在此节点的子节点中查询,直到最后一个SCPI命令关键字后进入步骤4;若查询不到与之匹配的节点,则判定为未找到匹配项,进入步骤2;
步骤4:取得命令号及参数信息;在对应XML子节点中识别并执行命令编码和参数类型、参数个数信息,并在SCPI命令中分离出对应参数和单位后发送;
步骤5:对SCPI命令进行处理;程控仪器根据命令编码和参数,执行相应的命令。
2.如权利要求1所述的基于XML的SCPI命令解析方法,其特征在于,所述步骤一中,在创建SCPI命令的XML文档时,使用XML节点的属性来标记命令关键字及关键字的缩写;使用XML子节点来表示下级SCPI命令或本级SCPI命令的命令编码、参数类型。
3.如权利要求1所述的基于XML的SCPI命令解析方法,其特征在于,所述步骤二中,设置按照SCPI命令在语法和格式是否符合SCPI命令标准语法和格式的规则,来判定接收到的SCPI命令是否是有效的SCPI命令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310561418.5A CN103559296A (zh) | 2013-11-04 | 2013-11-04 | 一种基于xml的scpi命令解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310561418.5A CN103559296A (zh) | 2013-11-04 | 2013-11-04 | 一种基于xml的scpi命令解析方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103559296A true CN103559296A (zh) | 2014-02-05 |
Family
ID=50013542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310561418.5A Pending CN103559296A (zh) | 2013-11-04 | 2013-11-04 | 一种基于xml的scpi命令解析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103559296A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461574A (zh) * | 2014-12-23 | 2015-03-25 | 上海斐讯数据通信技术有限公司 | 一种基于xml的命令行及其命令行程序的处理方法 |
CN107729388A (zh) * | 2017-09-19 | 2018-02-23 | 杭州安恒信息技术有限公司 | 一种基于XML协议的app服务器实现方法 |
CN109299223A (zh) * | 2018-10-15 | 2019-02-01 | 百度在线网络技术(北京)有限公司 | 用于查询指令的方法及装置 |
CN110110149A (zh) * | 2018-01-11 | 2019-08-09 | 天维讯达(北京)科技有限公司 | 一种scpi命令的解析方法及装置 |
CN113703836A (zh) * | 2021-08-20 | 2021-11-26 | 北京空间飞行器总体设计部 | 一种用于航天器电源***评测的scpi指令管理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090240351A1 (en) * | 2008-10-30 | 2009-09-24 | Agilent Technologies, Inc. | Programming Electronic Instruments by Logging Commands Into a File Format |
CN102521250A (zh) * | 2011-11-16 | 2012-06-27 | 中国电子科技集团公司第四十一研究所 | 一种智能测量仪器通用语法分析的实现方法 |
-
2013
- 2013-11-04 CN CN201310561418.5A patent/CN103559296A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090240351A1 (en) * | 2008-10-30 | 2009-09-24 | Agilent Technologies, Inc. | Programming Electronic Instruments by Logging Commands Into a File Format |
CN102521250A (zh) * | 2011-11-16 | 2012-06-27 | 中国电子科技集团公司第四十一研究所 | 一种智能测量仪器通用语法分析的实现方法 |
Non-Patent Citations (1)
Title |
---|
孟德伟等: "基于XML的通用SCPI命令解析器设计", 《仪器仪表用户》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461574A (zh) * | 2014-12-23 | 2015-03-25 | 上海斐讯数据通信技术有限公司 | 一种基于xml的命令行及其命令行程序的处理方法 |
CN104461574B (zh) * | 2014-12-23 | 2018-06-19 | 上海斐讯数据通信技术有限公司 | 一种基于xml的命令行处理装置及方法 |
CN107729388A (zh) * | 2017-09-19 | 2018-02-23 | 杭州安恒信息技术有限公司 | 一种基于XML协议的app服务器实现方法 |
CN107729388B (zh) * | 2017-09-19 | 2020-04-28 | 杭州安恒信息技术股份有限公司 | 一种基于XML协议的app服务器实现方法 |
CN110110149A (zh) * | 2018-01-11 | 2019-08-09 | 天维讯达(北京)科技有限公司 | 一种scpi命令的解析方法及装置 |
CN110110149B (zh) * | 2018-01-11 | 2023-09-12 | 天维讯达(北京)科技有限公司 | 一种scpi命令的解析方法及装置 |
CN109299223A (zh) * | 2018-10-15 | 2019-02-01 | 百度在线网络技术(北京)有限公司 | 用于查询指令的方法及装置 |
CN113703836A (zh) * | 2021-08-20 | 2021-11-26 | 北京空间飞行器总体设计部 | 一种用于航天器电源***评测的scpi指令管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106919434B (zh) | 一种代码生成方法及装置 | |
Ferrández et al. | The QALL-ME framework: A specifiable-domain multilingual question answering architecture | |
CN103164249B (zh) | 用于脚本语言编译器的扩展机制 | |
CN109343857B (zh) | 线上部署机器学习模型的方法、设备和存储介质 | |
US20150082276A1 (en) | Extensible code auto-fix framework based on xml query languages | |
US20070033520A1 (en) | System and method for web page localization | |
US20020162093A1 (en) | Internationalization compiler and process for localizing server applications | |
CN104156313A (zh) | 一种Web服务测试用例自动生成方法 | |
CN1526104B (zh) | 分析结构化数据 | |
CN107168762B (zh) | 一种基于本体的rucm模型一致性检查方法 | |
CN111831384B (zh) | 语言切换方法和装置、设备及存储介质 | |
CN103559296A (zh) | 一种基于xml的scpi命令解析方法 | |
Zhang et al. | Development of IFC-based construction industry ontology for information retrieval from IFC models | |
CN101739258A (zh) | Aadl模型的自动代码生成方法 | |
CN112395843B (zh) | 一种基于php代码的业务处理方法、装置及设备和介质 | |
CN104598619A (zh) | 一种基于约束求解器的服务组合验证方法 | |
Stolk et al. | Validation of IfcOWL datasets using SHACL. | |
CN109325217B (zh) | 一种文件转换方法、***、装置及计算机可读存储介质 | |
US20200183670A1 (en) | System and method for transforming cold fusion technology environment to open source environment | |
CN108932225B (zh) | 用于将自然语言需求转换成为语义建模语言语句的方法和*** | |
CN102073662A (zh) | 一种解析和创建xml数据的方法及*** | |
CN103235757B (zh) | 基于自动化造数对输入域测试对象进行测试的装置和方法 | |
CN108008947B (zh) | 一种编程语句的智能提示方法、装置、服务器及存储介质 | |
CN115794119B (zh) | 一种案例自动解析方法及装置 | |
CN111311461A (zh) | 基于b-s的结构化动态病历表单的编辑器及生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140205 |