一种智能测量仪器通用语法分析的实现方法技术

技术编号:7472736 阅读:216 留言:0更新日期:2012-07-02 21:41
本发明专利技术涉及一种测量仪器语法分析方法,尤其涉及一种智能测量仪器通用语法分析的实现方法,属于程控测量仪器技术领域,该方法针对不同门类的智能测量仪器,搭建出通用语法分析平台满足其程控要求,开发人员依据SCPI命令规范编写出该仪器所有程控命令的文本文件,自动生成高效的命令树,同时可对此文本文件进行审阅;完成编译之后,把此方法内嵌于测量仪器中实现对该仪器的程控,对于不同的测量仪器,只需要重新创建、编译一下程控命令的文本文件即可,通用性强,可靠性、稳定性好。

【技术实现步骤摘要】

本专利技术涉及一种测量仪器语法分析方法,尤其涉及,属于程控测量仪器

技术介绍
目前智能型测量仪器门类繁多,例如功率计、频谱仪、网络仪、信号源、噪声仪、频率计、示波器等。这些智能测量仪器具有一个共同特点可以通过任何可与之通讯的控制器进行系统集成。这些控制器可能是个人电脑、小型计算机或者卡槽上的插卡,乃至一些人工智能的设备。由控制器通过相应的测试总线,GP-IB、网络等向测量仪器发送程控命令,实现对测量仪器的程控操作(如附图1所示)。但是如何正确输入有效命令、测量仪器如何获取正确指令、如何正确解析在发送过程中可能会出现的发送错误例如关键字错误、参数个数、参数数据类型不匹配、参数超界等,却是本领域所面临的常见问题。如果测量仪器不能很好地识别这些错误,将无法实现指定功能,甚至可能会造成测量仪器的崩溃。因此,必须对通过通讯接口所接收到的数据和程控命令信息进行解析,判断其合法性,提取有效指令和相应的参数。语法分析是一项繁琐、复杂的工作,但针对测量仪器又不可或缺。由于用户的输入可能错综复杂,所以稍有考虑不周,就可能出现误判、漏判,从而出现意想不到的情况。由于不同的测量仪器具有不同的测试功能,所以每种测量仪器的生产厂商都要针对自身仪器进行包括语法分析在内的程控的重复开发。这无疑会造成大量、重复的劳动,造成极大的人力、物力浪费。而经多方查阅,到目前为止还没有一套完整的、完善的、针对不同测量仪器通用的语法分析方法。因此,能否针对不同门类的智能测量仪器,搭建出一套完善的通用语法分析平台以同时满足其各自程控的要求,成为本领域技术人员亟待解决的技术难题。
技术实现思路
为了解决上述技术问题,提出本专利技术。本专利技术旨在提供一种智能测量仪器通用语法分析的实现方法,其基于 SCPI (Standard Commands for Programmable Instruments-可程控设备的标准命令,一个基于标准IEEE488. 2建立的、适合所有仪器的命令集),针对多种智能测量仪器开发的。用于使不同测量仪器相同功能具有相同的程控命令,以实现程控命令的通用性。其采用的技术方案如下该种智能测量仪器通用语法分析的实现方法包括以下步骤1)生成命令树利用二叉树的方式来构建数据结构,将整个语法分析的过程分成生成树过程和遍历树过程;2)语法分析与接口相应的线程接收来自接口的命令和数据,并送语法分析先进先出队列,激活语法分析;逐个分离出用户输入命令的关键字,依据生成树中的数据结构, 判断输入的整条命令在每个具体部位是否存在问题,然后对正确的分析进行解析解码,把3相应的命令和参数分别送入命令队列,激活命令处理线程进行相应的命令处理;对错误的命令予以抛弃,并进行示警和错误定位。优选地,所述命令树包括如下五个数据结构命令和关键字结构、节点结构、叶子节点结构、参数链表结构以及C参数链表。优选地,在所述语法分析步骤中,还使用命令结构和参数结构,在语法分析完成某条命令之后,这两个结构分别写入命令处理线程。优选地,在遍历树的过程中,如果在同级的目录中没有找到,在下级中查找乃至一直找到叶子节点;如果在叶子节点还没有找到,回溯到之前正确的解析部位,在其兄弟节点乃至兄弟节点的子节点中继续查找。优选地,所述用户输入命令包括大数据块命令。优选地,所述用户输入命令中还包括关联命令,在语法分析步骤中关联命令出现问题时,把前面判断正确的命令包括命令码和参数送给命令处理,而出错之后的命令包括本条进行清除。优选地,其特征在于,所述接口为GPIB或网络。优选地,对于大数据块关联命令还包括如下处理步骤分析到大数据块参数时,把所有滞留命令全部一并写入命令先进先出队列中,然后等待;命令处理到这条命令时,发消息给语法分析,并给语法分析一个缓冲区的指针,然后命令处理处于等待状态;语法分析直接从语法先进先出队列中按当前的数据格式进行读取,然后写入到对应的内存中;如果在处理大数据的过程中出现错误,则发送消息给命令处理线程,结束该命令的处理,同时设置该条命令的关联码为最后一个;如果没有出错,就要看是否是关联命令的中间一条,要等到下一条命令处理完毕,得到正确的关联码之后才给命令处理发消息;如果不是中间一条,则在处理完之后给命令处理发消息。优选地,对于大数据块关联命令还包括如下处理步骤大数据块命令处理时,如果发现通道或者测量不存在,给语法传送一个指针,长度为-1 ;语法分析把数据写入缓冲区内,同时设置接收的长度为有效长度。与现有技术相比,本专利技术具有如下优点1、通用性强,适用于多种智能测量仪器,大大降低了科研工作量和科研成本;2、方便用户采用,操作简单,定位和查错功能强;3、经多个内嵌仪器验证,可靠性强、稳定性好。附图说明图1现有技术中的程控流程图2本专利技术中命令及结构的简要说明图3本专利技术中生成命令树的流程图4本专利技术中数据结构简图1;图5本专利技术中语法分析流程图6本专利技术中3条关联命令的处理图7本专利技术中3条大数据块关联命令的处理图图8本专利技术中数据结构简图2。具体实施例方式下面结合附图和实施例对本专利技术作进一步说明该实现方法主要包括以下步骤生成命令树(如图3所示)在具体设计上,为了满足速度、通用性和易集成性等要求,利用二叉树的方式来构建数据结构,将整个语法分析的过程分成生成树过程和遍历树过程。命令树优选为主要由如下五个数据结构来进行管理(如图2、4、8所示):命令和关键字结构、节点结构、叶子节点结构、参数链表结构以及C参数链表。命令和关键字结构包括关键字编码、首节点指向的节点结构。节点结构,用来放置每个命令节点的相关信息,包括节点缺省标识、节点可否带参数、节点参数缺省标识、缺省值、最小值、最大值、父指针、兄弟指针、孩子指针(当是最后一个命令时,指向叶子结构)、是否叶子节点。叶子结构,存放整条命令信息和参数特性,包括命令编码、是否可查询、是否交迭、查询时,所有参数是否全部返回、总参数个数、缺省参数个数、参数链表入口。参数链表结构,保存每个参数的信息,包括参数是否可缺省、是否支持最值、参数类型、参数单位、是否有C缺省、C参数链表的起始下标。C参数链表仅用于C参数,存放内容为该C在关键字结构中的索引,最后用-1结束ο在下面的语法分析步骤中,优选还使用了另外两个结构命令结构和参数结构,在语法分析完成某条命令之后,这两个结构分别写入命令处理线程。命令结构包括命令来源、命令码、参数个数、命令查询标识、是否存在语法错、命令关联码、节点参数个数和节点参数。参数结构包括参数类型、整型参数、浮点型参数、字符串型参数、C型参数、参数单位、指向下一个参数的指针。这些数据结构是本专利技术实现方法的重点,生成树是生成这些数据结构,而语法分析,则完全依靠这些结构来判断用户输入的命令是否合法。所以,这些结构的合理性和完善性是极其重要的。语法分析(如图5所示)与接口(例如GPIB、网络等)相应的线程接收来自接口的命令和数据,并送语法分析先进先出队列,激活语法分析;逐个分离出用户输入命令的关键字,依据生成树中的五个数据结构,判断输入的整条命令在每个具体部位是否存在问题, 然后对正确的分析进行解析编码,把相应的命令和参数分别送入命令队列,激活命令处理线程进行相应的命令处理;对错误的命令予以抛弃,并进行示警和错误定位。由于用户输入的情况复杂,所本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:郭永瑞井涛李树彪孙朋德刘丹李明太赵学强赵立军
申请(专利权)人:中国电子科技集团公司第四十一研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术