CN103605496A - 一种实现快速解析基于scpi协议的通信指令的方法 - Google Patents

一种实现快速解析基于scpi协议的通信指令的方法 Download PDF

Info

Publication number
CN103605496A
CN103605496A CN201310630799.8A CN201310630799A CN103605496A CN 103605496 A CN103605496 A CN 103605496A CN 201310630799 A CN201310630799 A CN 201310630799A CN 103605496 A CN103605496 A CN 103605496A
Authority
CN
China
Prior art keywords
instruction
node
brotgher
empty
level
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
Application number
CN201310630799.8A
Other languages
English (en)
Inventor
王东峰
陈伟峰
张睿
王卫龙
刘佳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin Optical Electrical Communication Technology Co Ltd
Original Assignee
Tianjin Optical Electrical Communication Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tianjin Optical Electrical Communication Technology Co Ltd filed Critical Tianjin Optical Electrical Communication Technology Co Ltd
Priority to CN201310630799.8A priority Critical patent/CN103605496A/zh
Publication of CN103605496A publication Critical patent/CN103605496A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Communication Control (AREA)

Abstract

本发明涉及可编程器件及设备、板级之间的通信技术,具体涉及一种C语言描述的实现快速解析基于SCPI协议的通信指令的方法。本方法将SCPI指令按照层次设置成二叉树的结构,然后采用迭代的方式解析出指令所代表的含义,即该指令的指令号,每个指令号代表一种对仪器设备的操作,首先对于新接收到的指令首先从根节点开始进行分析,然后对于接收到的指令的每一级节点进行解析,通过采用本方法,可以便捷地实现SCPI指令的解释,即让设备执行此指令相应的操作。SCPI有非常好的可读性,可维护性,可广泛的应用于设备,板级之间的通信。本方法可在诸如MCU,ARM,POWERPC,MIPS,FPGA等可编程器件上实现。

Description

一种实现快速解析基于SCPI协议的通信指令的方法
技术领域
本发明涉及可编程器件及设备、板级之间的通信技术,具体涉及一种实现快速解析基于SCPI协议的通信指令的方法。
背景技术
随着通信及计算机技术的发展,现在的设备与设备之间,设备中各个子单元的通信指令变得更加复杂。SCPI(Standard Commands for Programmable Instrument)语言本身定义了一组基本的子系统关键字,同时允许用户增加或减少关键字,这些关键字通常是一些有意义的英文单词,以方便记忆,也称助记符。通过SCPI可以很方便的制定通信协议,并且协议比较容易理解。
发明内容
本发明的目的是提供一种C语言描述的实现快速解析基于SCPI协议的通信指令的方法。该方法基于SCPI协议使用层次化结构——“树”形结构,每条“树”指令都是以根层次指令(也称“子系统”)开始,每个根层次指令下面又有许多层次指令。只有按照从树根到叶子的完整路径发送指令,仪器设备才能正确执行相应的操作指令。
本发明采取的技术方案是:.一种实现快速解析基于SCPI协议的通信指令的方法,其特征在于,将SCPI指令按照层次设置成二叉树的结构,然后采用迭代的方式解析出指令所代表的含义,即该指令的指令号,每个指令号代表一种对仪器设备的操作,其指令解析步骤如下:
步骤一:对于新接收到的指令首先从根节点开始进行分析;
步骤二:对于接收到的指令的每一级节点进行解析,每一级解析步骤如下:a.首先判断该节点的子节点是否为空;若不为空,则比较该节点的指令与指令树中该级指令字符是否匹配;若不匹配,则判断其兄弟节点是否为空;若兄弟节点不为空,则迭代解析其兄弟节点;若兄弟节点为空,返回错误,说明指令输入错误;b.若该级节点指令的字符与指令树中该级指令字符匹配,则入栈本节点的指令号,并迭代解析其子节点;c.若判断该节点的子节点为空,则比较该节点的指令与指令树中该级指令字符是否匹配,若不匹配,判断其兄弟节点是否为空,若兄弟节点不为空,则迭代解析其兄弟节点,若兄弟节点为空,返回错误,说明指令输入错误;d:若该节点的指令与指令树中该级指令字符匹配,则入栈该节点的指令号,然后出栈全部指令号,并计算总指令号。
本发明所述的总指令号的计算方法为各级节点指令号Ni乘以Ki的代数和,其中i表示第i级,i=1,2,3…,Ni表示第i级节点的指令号,Ki则是第i级的加权值,Ki的计算方法为第i级的最大指令号Nmax的(i-1)次方。
本发明所产生的有益效果是:通过采用本方法,可以便捷地实现SCPI指令的解释,即让设备执行此指令相应的操作。SCPI有非常好的可读性,可维护性,可广泛的应用于设备,板级之间的通信。本方法可在诸如MCU,ARM,POWERPC,MIPS,FPGA等可编程器件上实现。
附图说明
图1是本发明解析SCPI指令的流程图。
具体实施方式
 以下结合附图对本发明作进一步说明:设置整个指令树中的各个节点格式,用C语言描述如下: 
typedef  struct TreeNode  *PtrToNode;
struct TreeNode 
{
Figure 795487DEST_PATH_IMAGE001
 节点的关键字符内容 
Figure 301203DEST_PATH_IMAGE002
unsignedchar 
Figure 750639DEST_PATH_IMAGE003
str; 
Figure 182757DEST_PATH_IMAGE001
节点的指令号,指令号为ERR表示错误的指令号 
Figure 135670DEST_PATH_IMAGE002
unsigned char CommandNO;   
PtrToNode FirstChild;   
Figure 995041DEST_PATH_IMAGE001
节点的子节点 
Figure 856074DEST_PATH_IMAGE002
PtrToNode NextBrer;    
Figure 91884DEST_PATH_IMAGE001
节点的下一个兄弟节点
Figure 164882DEST_PATH_IMAGE002
}
例如MEASure子系统中测量电压周期的指令:MEA-Sure:VOLTage:PERiod
Figure 2013106307998100002DEST_PATH_IMAGE005
”。
SCPI指令一般是按照层次的树型结构,这样不便于操作,将树型结构转化成二叉树这种特殊的结构,同一层次的节点互为兄弟节点,每个节点有一个子节点和一个兄弟节点,如果没有,则就指向空节点null。
采用动态接收指令的方式,将指令缓存到指令buffer,将指令中的参数缓存到参数buffer。接收到指令结束字节后,提取指令buffer中的指令进行指令解析,解析的方法如图1所示。

Claims (2)

1.一种实现快速解析基于SCPI协议的通信指令的方法,其特征在于,将SCPI指令按照层次设置成二叉树的结构,然后采用迭代的方式解析出指令所代表的含义,即该指令的指令号,每个指令号代表一种对仪器设备的操作,其指令解析步骤如下:
步骤一:对于新接收到的指令首先从根节点开始进行分析;
步骤二:对于接收到的指令的每一级节点进行解析,每一级解析步骤如下:a.首先判断该节点的子节点是否为空;若不为空,则比较该节点的指令与指令树中该级指令字符是否匹配;若不匹配,则判断其兄弟节点是否为空;若兄弟节点不为空,则迭代解析其兄弟节点;若兄弟节点为空,返回错误,说明指令输入错误;b.若该级节点指令的字符与指令树中该级指令字符匹配,则入栈本节点的指令号,并迭代解析其子节点;c.若判断该节点的子节点为空,则比较该节点的指令与指令树中该级指令字符是否匹配,若不匹配,判断其兄弟节点是否为空,若兄弟节点不为空,则迭代解析其兄弟节点,若兄弟节点为空,返回错误,说明指令输入错误;d:若该节点的指令与指令树中该级指令字符匹配,则入栈该节点的指令号,然后出栈全部指令号,并计算总指令号。
2.根据权利要求1所述的一种实现快速解析基于SCPI协议的通信指令的方法,其特征在于,所述的总指令号的计算方法为各级节点指令号Ni乘以Ki的代数和,其中i表示第i级,i=1,2,3…,Ni表示第i级节点的指令号,Ki则是第i级的加权值,Ki的计算方法为第i级的最大指令号Nmax的(i-1)次方。
CN201310630799.8A 2013-12-02 2013-12-02 一种实现快速解析基于scpi协议的通信指令的方法 Pending CN103605496A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310630799.8A CN103605496A (zh) 2013-12-02 2013-12-02 一种实现快速解析基于scpi协议的通信指令的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310630799.8A CN103605496A (zh) 2013-12-02 2013-12-02 一种实现快速解析基于scpi协议的通信指令的方法

Publications (1)

Publication Number Publication Date
CN103605496A true CN103605496A (zh) 2014-02-26

Family

ID=50123727

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310630799.8A Pending CN103605496A (zh) 2013-12-02 2013-12-02 一种实现快速解析基于scpi协议的通信指令的方法

Country Status (1)

Country Link
CN (1) CN103605496A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106341197A (zh) * 2016-08-11 2017-01-18 中国电子科技集团公司第四十研究所 一种用于多用户接入控制的接收机程控解析算法
CN110110149A (zh) * 2018-01-11 2019-08-09 天维讯达(北京)科技有限公司 一种scpi命令的解析方法及装置
CN110933077A (zh) * 2019-11-29 2020-03-27 深圳市风云实业有限公司 一种报文解析系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1431586A (zh) * 2002-08-22 2003-07-23 智慧第一公司 非暂存存储器参照的控制机制
CN102521250A (zh) * 2011-11-16 2012-06-27 中国电子科技集团公司第四十一研究所 一种智能测量仪器通用语法分析的实现方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1431586A (zh) * 2002-08-22 2003-07-23 智慧第一公司 非暂存存储器参照的控制机制
CN102521250A (zh) * 2011-11-16 2012-06-27 中国电子科技集团公司第四十一研究所 一种智能测量仪器通用语法分析的实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘震: "SCPI命令解析平台的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106341197A (zh) * 2016-08-11 2017-01-18 中国电子科技集团公司第四十研究所 一种用于多用户接入控制的接收机程控解析算法
CN106341197B (zh) * 2016-08-11 2018-11-20 中国电子科技集团公司第四十一研究所 一种用于多用户接入控制的接收机程控解析算法
CN110110149A (zh) * 2018-01-11 2019-08-09 天维讯达(北京)科技有限公司 一种scpi命令的解析方法及装置
CN110110149B (zh) * 2018-01-11 2023-09-12 天维讯达(北京)科技有限公司 一种scpi命令的解析方法及装置
CN110933077A (zh) * 2019-11-29 2020-03-27 深圳市风云实业有限公司 一种报文解析系统及方法

Similar Documents

Publication Publication Date Title
CN111026470B (zh) 用于输入数据的验证和转换的系统和方法
CN111831814B (zh) 摘要生成模型的预训练方法、装置、电子设备和存储介质
CN106713357A (zh) 一种通用的网络协议解析方法
US10223550B2 (en) Generating canonical representations of JSON documents
CN103853650A (zh) 一种模糊测试的测试用例生成方法及装置
AU2015210760A1 (en) Static feature extraction from structured files
CN104750663B (zh) 页面中文本乱码的识别方法及装置
US9367432B2 (en) Testing system
US20220147498A1 (en) Generation of schemas with error resolve
WO2023098043A1 (zh) 一种接口参数校验方法及装置
CN104579748A (zh) Scd在线校核的网络分析方法及系统
CN103605496A (zh) 一种实现快速解析基于scpi协议的通信指令的方法
CN105721451B (zh) 一种可拓展的Modbus协议解析方法及装置
JP2023002730A (ja) テキスト誤り訂正とテキスト誤り訂正モデルの生成方法、装置、機器及び媒体
US8903715B2 (en) High bandwidth parsing of data encoding languages
CN109542968A (zh) 一种基于vasp软件计算数据处理方法与装置
CN113467777A (zh) 路径识别方法、装置和系统
CN105005496B (zh) 一种跨语言转换网络数据包定义文件的处理系统及方法
CN114489594A (zh) 一种命令解析器的构建方法、命令解析处理方法及装置
Bouras et al. A tool for automating network simulation and processing tracing data files
Liu et al. Extracting sent message formats from executables using backward slicing
CN111245633A (zh) 微电网主设备的配置文件及其运行方法
CN103455307B (zh) 对命令行输出的信息进行处理的方法和装置
US20140201474A1 (en) On-disk multimap
CN105808549B (zh) 基于映射文件自动组帧及分析帧的客户端方法

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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140226