论文部分内容阅读
最近十年间,随着计算机技术和电子技术的高速发展,自动化测试技术也发生了巨大的变化。一套自动化测试系统常常包含几台甚至十几台仪器,最初由于没有统一的标准,各个厂商都使用自己的控制语言,编程人员往往需要学习各种仪器的命令,开发效率很低。为了使各个厂商的控制语言一致,可程控仪器标准命令集SCPI (Standard Commands for Programmable Instruments)诞生了。SCPI标准大大减少了编程人员的开发时间和开发难度,使自动化测试技术得到很大提高。SCPI标准涉及各种仪器的命令,每个仪器通常只选择一个子集作为命令集。仪器不同,一般命令集也不同,并且每个命令集都是树形结构的,参数也非常复杂,这就需要SCPI命令解析软件能够解析不同仪器命令集。为了解决通用性的问题,本课题的主要目标就是开发一种具有跨平台、可重入、多语言接口、可远程控制、低耦合高内聚的具有通用词法语法分析的软件。本课题研究的主要内容有:(1)阐述词法语法分析原理。结合编译原理,详细阐述了词法分析和语法分析的过程,分析了Flex和Bison两个编译器工具,为整个软件提供了理论基础。(2)采用分层架构作为总体设计。针对本课题的目标,总体设计以通用性为目的,以设计模式为基础,以分层架构思想为核心。分层架构将系统按不同的职责组织成有序的层次,低耦合高内聚,提高了软件的可维护性。(3)实现多语言、跨平台和可重入。核心代码使用标准C语言,服务层提供了Python语言接口,采用跨平台的设计,并且支持多线程解析。(4)提供用户界面和远程过程调用。参考MVC模型,提供了基于C语言的GTK+界面库以及基于Python语言的PyGTK界面库。提供了基于XML-RPC的远程过程调用。经测试,本次设计的SCPI命令解析平台的易于使用、扩展性强,达到了项目的目标。