一种仪器属性管理方法

文档序号:6385478阅读:268来源:国知局
专利名称:一种仪器属性管理方法
技术领域
本发明涉及仪器驱动技术领域,尤其涉及一种用于仪器驱动软件的仪器属性管理方法。
背景技术
目前,仪器驱动向通用性、标准化方向发展。在以往的驱动开发过程中,驱动人员需编写对应于仪器的仪器配置函数。在仪器维护和升级时,涉及到仪器配置函数的维护。同类仪器具有功能可能不同,而且相同功能在不同仪器中属性值也可能不同。例如,目前数据采集类仪器的功能包括模拟输入功能、模拟输出功能、数字输入功能、数字输出功能、定时器/计数器输入功能、定时器/计数器输出功能。不同类型的数据采集类仪器可能包括以上6种功能的部分或全部。以模拟输入功能为例,该功能下可能的性能属性包括模拟通道个数、通道允许输入最大值、通道允许输入最小值、输入方式、增益、藕合方式、阻抗、滤波、触发、定时、读等,但是并不是所有具有模拟输入功能的仪器都包含上述全部性能属性。传统方法在系统开发时,驱动人员分析仪器具有的功能、以及该功能下具有哪些性能属性,并针对仪器所拥有的性能属性编写的仪器配置函数。这样在对仪器进行例如通道配置时,可以调用仪器配置函数实现。可见,由于仪器配置函数是针对仪器开发的,因此不同仪器需要编写不同的仪器配置函数,而且不同驱动人员开发的仪器配置函数不同,不能够共用。因此在标准化仪器驱动的基础上,若能统一管理仪器属性将大大提高仪器驱动开发效率。

发明内容
有鉴于此,本发明提供了一种仪器属性管理方法,不需要针对相同类型的不同仪器分别编写仪器配置函数,只需配置仪器属性即可,能够统一管理仪器属性,大大提高仪器驱动开发效率。为了解决上述技术问题,本发明是这样实现的一种仪器属性管理方法,应用于仪器驱动软件,包括S00、归纳出已有相同类型仪器的功能类型,针对每类功能确定该功能类型下所有可能的性能属性,以及每种性能属性可能的取值;在驱动软件的属性管理模块中,采用宏定义方式定义所有性能属性可能的取值;S01、在属性管理模块中,针对每一个功能下的每个性能属性封装属性函数,该属性函数用于对仪器某个功能下的某个性能属性进行配置;属性函数的输入参数包括仪器型号、性能属性值;通过函数名来区分属性函数对哪个功能下的哪个属性进行配置;S02、在属性管理模块中,建立仪器属性链表;步骤SOO中归纳出的每种功能对应一个仪器属性链表,仪器属性链表的每一个结点对应一个仪器,每个结点中的元素包含相应功能下的所有可能的性能属性;S03、在属性管理模块中,制作仪器属性管理编辑器,该编辑器提供用户界面;编辑器通过用户界面接收用户选定的操作类型当需要对性能属性进行配置时,编辑器接收用户输入的仪器型号、性能属性值和待配置的性能属性属于哪个功能类型,然后根据需要配置的性能属性及其所属功能调用相应属性函数,将用户要配置的仪器型号、性能属性值输入到属性函数中,接着执行属性函数,属性函数查找与所属功能对应的仪器属性链表,如果待配置仪器型号的结点已经存在,在根据待配置性能属性值更新相应结点中的数据,如果待配置仪器型号的结点不存在,则增加结点,并填入待配置性能属性值;当需要对仪器属性进行删除或查找时,编辑器接收用户输入的操作对象,并查找仪器属性链表,将操作对象数据删除或读取;所述操作对象包括仪器型号、功能和/或属性;S04、属性管理模块接收来自外部的属性查询请求,该查询请求中携带了查询对象,属性管理模块根据查询对象查找仪器属性链表,将匹配的数据读出并反馈给请求方。有益效果本发明先针对同类仪器分析其可能的所有功能、属性和属性值,针对每项功能构建链表,链表中结点结构相同,均包含功能下所有可能的属性,并且针对每个属性分别编写一个属性函数。由于属性函数是通用的,因此不需要像传统方案一样针对某个仪器编写仪器配置函数,用户只需要采用本发明提供的属性管理模块配置属性值,属性管理模块会利用相应的属性函数自动将配置信息存储到驱动软件中,大大提高仪器驱动开发效率。在使用时,上层函数也可以利用属性管理模块对链表进行访问,通过链表访问仪器配置信息,继而实现对不同仪器的操作。在仪器升级时,只要更改配置内容即可。该方法减少了驱动函数二次开发环节,大大降低了人员成本和时间成本,同时,维护和升级非常简单。


图1为本发明仪器属性管理方法的流程图。图2为仪器属性链表结构示意图。图3为用户界面示意图。图4为属性管理模块组成示意图。
具体实施例方式下面结合附图并举实施例,对本发明进行详细描述。本发明提供了一种仪器属性管理方法,应用于仪器驱动软件,如图1所示流程,该方法包括如下步骤S00、针对相同类型的仪器,归纳出已有该类型仪器的功能,针对每类功能确定该功能下所有可能的性能属性,以及每种性能属性可能的取值。本实施例以数据采集仪器为例
①归纳出已有数据采集仪器的功能类型;目前数据采集类仪器的功能能够归纳出如下6项:模拟输入功能、模拟输出功能、数字输入功能、数字输出功能、定时器/计数器输入功能、定时器/计数器输出功能。②针对每类功能确定该功能类型下所有可能的性能属性,以及每种性能属性可能的取值;上述每项功能都具有多种性能属性。但是对于不同仪器来说,即便功能相同,功能具有的性能属性及其属性值也不一定相同。以“模拟输入功能”为例,仪器的属性包括通道类型、通道个数、通道名称、测量设备类型、单位、耦合方式、阻抗、增益、输入方式(终端类型)、是否低通滤波、允许最大值、允许最小值。对于仪器A其具有其中全部性能属性,对于仪器B来说只具有其中部分。具有同种功能的仪器差异在于仪器的性能属性,可能仪器A的输入方式包括参考单端、非参考单端、差分、伪差分,仪器B的输入方式可能仅包括差分方式。为了便于在程序中引用不同的输入方式,采用宏定义方式定义所有性能属性取值,例如:
#defme Attribute—RSE10083 // 单端 #define Attribute—NRSE10078 // -非单端 #define Attribute—Diff10106// 差分 #def!ne Attribute PseudoDiff12529 // 伪差分
`
SO1、根据仪器可能的性能属性,定义属性函数。
`
本步骤中,针对每一个功能下的每个性能属性封装一个属性函数,该属性函数用于对仪器某个功能下的某个性能属性进行配置,具体过程在后续步骤S03中会介绍到;属性函数的输入参数包括仪器型号、性能属性值;通过函数名来区分属性函数对哪个功能下的哪个属性进行配置。该属性函数的特点是具有标准化函数接口,适用于所有的数据采集类仪器产品。例如,仪器的模拟输入功能Al中“输入方式”的属性函数:int32_CFUNC SetAITermCfg(int DeviceCode, int32TermData[]);函数接口参数说明:DeviceCode:仪器型号,输入参数;如输入4324表不仪器型号为4324。TermData []:仪器输入方式,输入参数;该接口参数如输入TermData[4] = {Attribute_RSE, Attribute_NRSE, Attribute_Diff, Attribute—PseudoDiff},表示型号为4324的仪器具有单端、非单端、差分、伪差分四种输入方式。从上述属性函数的函数名SetAITermCfg可以看出,其中隐含了功能类型Al,以及属性Term,该属性函数的功能是对仪器DeviceCode中Al功能下的Term属性进行配置,配置值为 TermData [4]。在编写属性函数时,并不是针对某个仪器进行编写的,而是针对功能进行编写。每个功能下都具有η个属性函数,分别对应该功能下η个性能属性。
S02、建立仪器属性链表如前所述,不同的仪器是有着相互联系的,因为它们可能具有相同的仪器属性。因此,采用链表记载仪器属性信息,步骤SOO中归纳出的每种功能对应一个仪器属性链表,链表的一个结点为一个仪器,每个结点中的元素包含相应功能下的所有可能的性能属性。由于仪器属性可以是数值类型、字符类型、数组类型等,因此以结构体变量作为链表结点最为合适,定义如下:
struct AIDevice /*定义模拟输入仪器属性信息资源链表*/
{
intAddr;
unsignedModuieName;
int32PiOductCategory;
BOOLChanne !Type;
u n s i gne dCha n neIN u m;
float64MaxVai Lie;
iloal64MinVaiue;
structAIDevice *next;
};通过链表不同的仪器有机的联系在一起,实现了对不同仪器属性的统一管理。图2示出了,Al功能的链表结构。通过对链表的插入、删除、查询、比对、修改等实现对仪器属性的管理。链表的大小能够动态分配,可以增减结点数量,避免内存浪费。S03、制作仪器属性管理编辑器;该编辑器是用户在配置仪器属性时使用的。该编辑器提供用户界面,编辑器通过用户界面接收用户选定的操作类型:当需要对性能属性进行配置时,编辑器接收用户输入的仪器型号、性能属性值和待配置的性能属性属于哪个功能类型,然后根据需要配置的性能属性及其所属功能调用相应属性函数,将用户要配置的 仪器型号、性能属性值输入到属性函数中,接着执行属性函数,属性函数查找与所属功能对应的仪器属性链表,如果待配置仪器型号的结点已经存在,在根据待配置性能属性值更新相应结点中的数据,这里的更新是指无数据时的加入和有数据时的覆盖;如果待配置仪器型号的结点不存在,则增加一个新结点,并填入待配置性能属性值。当需要对仪器属性进行删除时,编辑器接收用户输入的删除对象,并查找仪器属性链表,将删除对象数据删除,这里,删除对象可以是仪器型号、功能、属性中的一种或任意组合;删除对象如果只有仪器型号,说明需要删除仪器型号对应的节点,如果删除对象有仪器型号+功能+属性,则找到功能对应的链表后,将仪器型号中的指定属性处的数据删除。当需要对仪器属性进行查找时,编辑器接收用户输入的查找对象,并查找仪器属性链表,将查找到的数据读取,继而可以反馈在界面上,供用户查看。所述查找对象可以为仪器型号、功能、属性中的一种或任意组合。在设计编辑器时,可以设计为向导形式。例如首页先让用户选择操作类型,例如用户选择了配置,则下一页显示选项,如图3所示,包括显示选项包括仪器型号、仪器功能和当前页上需要用户配置的属性,并提供给用户属性值选项,或者属性值输入框,每一页上配置的属性均不相同。用户随着向导就可以完成某一仪器所有信息的配置。S04、上述性能属性的宏定义、属性函数、仪器属性链表和仪器属性管理编辑器都位于属性管理模块,如图4所示。根据需要对仪器硬件完成的配置功能,利用配置通道,在驱动软件中编写硬件配置函数,用于实现对仪器硬件的配置。属性管理模块接收来自硬件配置函数的属性查询请求,该查询请求中携带了查询对象,属性管理模块根据查询对象查找仪器属性链表,将匹配的数据读出并反馈给硬件配置函数。这样硬件配置函数就可以根据读取的仪器属性对仪器硬件进行配置了。这里硬件配置函数查询的对象可以是整个仪器型号的属性,也可以是某个仪器某个功能下的指定属性。综上,完成了一种仪器属性管理方法。该方法的有益效果是,提供了一种通用的、标准化的仪器属性管理软件架构,打破目前的空白。另外,无需驱动开发者进行驱动程序的二次开发,在仪器的后期维护和升级过程中,只需更改或更新“仪器属性管理”编辑器内容即可更新仪器属性信息。综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种仪器属性管理方法,应用于仪器驱动软件,其特征在于,包括: .500、归纳出已有相同类型仪器的功能类型,针对每类功能确定该功能类型下所有可能的性能属性,以及每种性能属性可能的取值;在驱动软件的属性管理模块中,采用宏定义方式定义所有性能属性可能的取值; .501、在属性管理模块中,针对每一个功能下的每个性能属性封装属性函数,该属性函数用于对仪器某个功能下的某个性能属性进行配置;属性函数的输入参数包括仪器型号、性能属性值;通过函数名来区分属性函数对哪个功能下的哪个属性进行配置; .502、在属性管理模块中,建立仪器属性链表;步骤SOO中归纳出的每种功能对应一个仪器属性链表,仪器属性链表的每一个结点对应一个仪器,每个结点中的元素包含相应功能下的所有可能的性能属性; .503、在属性管理模块中,制作仪器属性管理编辑器,该编辑器提供用户界面;编辑器通过用户界面接收用户选定的操作类型: 当需要对性能属性进行配置时,编辑器接收用户输入的仪器型号、性能属性值和待配置的性能属性属于哪个功能类型,然后根据需要配置的性能属性及其所属功能调用相应属性函数,将用户要配置的仪器型号、性能属性值输入到属性函数中,接着执行属性函数,属性函数查找与所属功能对应的仪器属性链表,如果待配置仪器型号的结点已经存在,在根据待配置性能属性值更新相应结点中的数据,如果待配置仪器型号的结点不存在,则增加结点,并填入待配置性能属性值; 当需要对仪器属性进行删除或查找时,编辑器接收用户输入的操作对象,并查找仪器属性链表,将操作对象数据删除或读取;所述操作对象包括仪器型号、功能和/或属性; . 504、属性管理模块接收来自外部的属性查询请求,该查询请求中携带了查询对象,属性管理模块根据查询 对象查找仪器属性链表,将匹配的数据读出并反馈给请求方。
全文摘要
本发明公开了一种仪器属性管理方法,归纳出已有相同类型仪器的功能类型,针对每类功能确定该功能类型下所有可能的性能属性,以及每种性能属性可能的取值;在属性管理模块中,针对每一个功能下的每个性能属性封装属性函数,并建立每种功能的仪器属性链表;仪器属性链表的每一个结点对应一个仪器,每个结点中的元素包含相应功能下的所有可能的性能属性;采用仪器属性管理编辑器配置链表内容。当需要获取仪器属性时,从仪器属性链表中读出。本发明不需要针对相同类型的不同仪器分别编写仪器配置函数,只需配置仪器属性即可,能够统一管理仪器属性,大大提高仪器驱动开发效率。
文档编号G06F17/30GK103077195SQ20121057316
公开日2013年5月1日 申请日期2012年12月25日 优先权日2012年12月25日
发明者张伟楠, 许崴稚, 杨立杰, 楚艳丽, 史雄伟 申请人:北京航天测控技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1