CN105511303A - 仪器支持自定义面板操作的方法 - Google Patents
仪器支持自定义面板操作的方法 Download PDFInfo
- Publication number
- CN105511303A CN105511303A CN201510765480.5A CN201510765480A CN105511303A CN 105511303 A CN105511303 A CN 105511303A CN 201510765480 A CN201510765480 A CN 201510765480A CN 105511303 A CN105511303 A CN 105511303A
- Authority
- CN
- China
- Prior art keywords
- instrument
- function
- customization
- user
- sequence number
- 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
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明涉及一种仪器支持自定义面板操作的方法,包括以下步骤:步骤一:从仪器下载功能文件;步骤二:用户自定义面板操作;步骤三:生成面板配置文件;步骤四:上传面板配置文件到仪器;步骤五:仪器动态生成用户自定义面板并实现对按键的响应。本发明的仪器前面板实际上成为一个可程控的本地用户交互接口,使得仪器不但能符合用户的个性化操作,而且其操作效率可以在不增加外控主机的前提下,和使用程控命令控制仪器相当。
Description
技术领域
本发明属于电子测量仪器技术领域,具体说来是一种仪器支持自定义面板操作的方法。
背景技术
电子测量仪器通过前面板上的键与用户进行交互,键可分为硬键和软键,硬键是一组分布在仪器前面板上特定区域的橡胶材质的突起物;软键是一组由仪器软件绘制在前面板触摸屏上的图形化按钮控件,软键通常由仪器软件以多级菜单的形式进行组织和管理。
电子测量仪器在出厂时,通常厂家已经固化了仪器面板上每个键的功能,用户无法改变键的定义。这样一旦按键设计不能很好的符合用户的使用习惯,用户就会认为仪器难操作,不好用;而由于每个用户有其个性化的操作习惯,厂家也很难做出一种普适性的设计。另一方面,用户在使用仪器时,通常都有固定程式化的操作步骤,因此用户希望尽可能的减少操作过程中的按键次数,避免机械性的重复,如果能做到一键设置,就可以大幅提高操作的效率。
不管用户按下的是硬键还是软键,最终都会被操作系统抽象为一个消息发给仪器驻机应用程序,应用程序根据消息参数中的键值,查找对应的例程,然后执行该例程作为对用户按键的响应。
键与仪器功能之间的关联是由厂家在仪器软件中实现的,用户无法改变。为了满足用户个性化的需求,厂家通常会在前面板上保留一个“宏”键,“宏”键不关联任何仪器功能,而是与一个脚本绑定,用户可以事先把自己的操作步骤录制到脚本里,这样当按下“宏”键后,仪器就会依次执行脚本中的批量操作。
使用“宏”键并不能很好的满足用户需求。这是因为1)仪器前面板上只有一个“宏”键,只能关联一个批量操作,如果用户需要多种批量操作,则需要切换脚本,效率低下;2)面板上的其他键仍然由厂家固定关联了功能,用户必须按照厂家定义的方式操作仪器,这有可能会导致仪器不符合用户的使用习惯。
因此,如何使仪器面板满足每个用户的个性化操作需求、如何简化用户的操作步骤,成为摆在本领域研发人员面前的一大难题。
发明内容
本发明的目的是为了克服现有技术中存在的上述缺陷,提供一种仪器支持自定义面板操作的方法。
为解决上述问题,本发明提出的一种仪器支持自定义面板操作的方法,包括以下步骤:
步骤一:从仪器下载功能文件;
步骤二:用户自定义面板操作;
步骤三:生成面板配置文件;
步骤四:上传面板配置文件到仪器;
步骤五:仪器加载面板配置文件动态生成用户自定义面板并实现对按键的响应。
在上述技术方案中,所述步骤一中,功能文件用来描述仪器固有的功能,功能文件由功能项集合段、带参功能项描述段、功能名称字符串段和功能描述字符串段组成。
在上述技术方案中,所述功能文件的功能项集合段开始4字节为无符号长整数,用于记录功能项的数量,随后每6个字节描述一个功能项,其中前两个字节是序号,用作功能项的标识,中间两个字节是功能项名称在功能名称字符串段的索引,最后两个字节是功能项描述在功能描述字符串段的索引,序号具有唯一性,每个仪器功能项和用户定制项都对应一个序号值,序号值的范围划分为:从0到0x7FFF共32768个序号预留给用户作为定制项的序号,仪器固有的功能项序号起始于0x8000,从0x8000到0xBFFF共16384个序号对应无参功能项,仪器执行该功能不需要额外的参数,从0xC000到0xFFFF共16384个序号对应带参功能项,仪器执行该功能需要用户提供参数;
所述功能文件的带参功能项描述段用来指明每个带参功能项的参数类型,该段开始四字节为无符号长整数,用于记录仪器带参功能项的数量,随后每4个字节描述一个带参项,其中前2字节为带参项的序号,后2字节标识参数类型;
所述功能文件的功能名称字符串段记录了每个功能项的名称,使用Unicode编码格式,每个字符占16位,以0x0000作为每个字符串的结束符,所述功能文件的功能描述字符串段记录了每个功能项的具体说明,说明包括功能项的用途和注意事项,该段同样使用Unicode编码格式。
在上述技术方案中,面板配置文件用来描述用户自定义的前面板操作,面板配置文件由布局段、定制项集合段、定制项名称字符串段、功能组名称字符串段、定制项描述段和关联段组成。
在上述技术方案中,所述布局段记录所有需要显示在软键按钮控件上的功能项和定制项的布局,布局信息包括两项,一是该项所属功能组的序号,二是该项在功能组中的位置。该段开始4字节为无符号长整数,用于记录布局条目的个数,随后每6个字节描述一个布局条目,其中前两个字节记录的是要布局的功能项或定制项的序号,中间两个字节记录的是该项所属的功能组序号,最后两个字节记录的是该项在功能组中的位置;所述定制项集合段记录了用户为仪器新增加的定制项的通用信息,包括一键设置项、已配参项和导向项,该段开始4字节为无符号长整数,用于记录用户定制项的数量,随后每4个字节描述一个定制项,其中前两个字节记录的是该项名称在定制项名称字符串段的索引,同时该值也视为该定制项的序号;后两个字节用于标识该定制项的类型;功能组名称字符串段记录每个功能组的名称,功能组代表仪器的菜单,当用户希望某个功能项或定制项关联到软键上时,先将其归入一个功能组;
所述定制项描述段说明了各种定制项的具体细节,每种定制项类型都有各自的特点和属性,该段包含一键设置项、已配参项和导向项三个数组,每个数组的元素采用不同的数据结构对各种定制项进一步具体描述;其中一键设置项数组记录了所有的一键设置项,一键设置项是多个功能项和定制项的组合,当用户按下一个与一键设置项关联的软键或硬键后,仪器将自动执行按该项所记录的功能组合;已配参项数组记录了所有已经被用户配置了参数的带参功能项;导向项数组记录了所有的导向项,导向项用来记录功能组的层级关系,用户在按下导向项时,仪器的菜单将切换成该导向键所指向的功能组;
所述关联段记录了功能项定制项与仪器前面板键的对应关系,该段包含硬件关联和仪器关联两个数组,分别用于记录硬键与各项的关联以及仪器其它模块与各项的关联;硬键关联数组的元素包含3个字段,其中第一个字段占2字节,为仪器硬键的键值,第二个字段占2字节,当字段值为0时表示该硬键与功能项或定制项关联,当字段值为1时表示该硬键与功能组关联,第三个字段占2字节,为功能项、定制项或功能组的序号;仪器关联数组的元素包含2个字段,每个字段占2字节,其中第一个字段为仪器模块的标识,第二个字段是功能组的序号。
在上述技术方案中,所述步骤五中,仪器动态生成用户自定义的前面板操作,包括以下步骤:
(一)、加载面板配置文件,当面板配置文件上传到仪器之后,仪器可对该文件进行加载,仪器读取文件并建立数据结构和字符串数组;
(二)、创建定制项,在加载完成之后,仪器根据定制项通用信息数组、定制项名称数组、一键设置项信息数组、已配参项信息数组、导向项信息数组创建定制项;
(三)、生成功能组,仪器根据功能组名称数组创建功能组对象,并以功能组对象的序号为键,建立一个哈希表,仪器可以通过序号从哈希表中找到对应的功能组;创建完所有的功能组后,仪器遍历布局段的条目,根据条目的功能项或定制项的序号,找到功能项或定制项对象,再根据条目的功能组序号找到该项对应的功能组对象,把功能项或定制项的首地址和它在功能组所处的位置信息写入到功能组对象中;
(四)、记录关联,驻机软件从面板配置文件中加载关联段的内容,生成硬键关联数组和仪器关联数组,当用户按下硬键时,从硬键关联数组中找到该硬键对应的功能项或定制项,亦或者功能组,如果关联的是功能项或定制项,就让仪器内部模块响应该项,否则就进行功能组的切换;当用户切换窗口焦点时,就从仪器功关联数组中找到窗口对应的功能组,进行功能组的切换。
在上述技术方案中,所述步骤五中,仪器对按键的响应包括非一键设置项的响应和一键设置项的响应;
当用户按下非一键设置项的按键,仪器的响应过程如下:
(一)、用户的按键动作被用户交互模块捕获,得知用户按键的键值,由于键值已经和功能项或定制项的序号关联,用户交互模块可以根据序号,从哈希表中找到该项并调用该项的OnTouch()接口;
(二)、功能项或定制项在该接口的实现中,负责制作一条指令并将其送往指令分发模块,所述指令的格式是一个结构体,结构体的第一个字段是2字节的无符号数,记录的是功能项或定制项的序号,第二个字段是一个指向参数对象的Parameter*类型指针,如果指针不为空,指令携带一个参数;
(三)、指令分发模块利用路由表,查找到可以响应该指令的仪器内部模块,然后将指令送往该模块;
(四)、仪器内部模块响应完指令后,通过指令分发模块向用户交互模块反馈响应结果;
当用户按下一键设置项的按键,仪器的响应过程如下:
(一)、用户的按键动作被用户交互模块捕获,得知用户按键的键值,由于键值已经和功能项或定制项的序号关联,用户交互模块可以根据序号,从哈希表中找到该项并调用该项的OnTouch()接口;
(二)、一键设置项在OnTouch()接口的实现中,从它的序号链表头部开始取子项的序号,然后在哈希表中找到该子项,调用该子项的OnTouch()接口,根据面向对象多态的特点,如果该子项是非一键设置项,则会执行非一键设置项的响应中的步骤(二)、(三)、(四),若该子项仍是一个一键设置项,则会递归的调用一键设置项的OnTouch();
(三)、在OnTouch()返回时查看仪器响应结果,若为零说明仪器已正常响应该子项,则继续取下一个子项执行步骤2直到列表取空,若结果不为零,则说明仪器响应有错误发生,在这种情况下一键设置项就停止取下一个子项,退出迭代;
(四)、通过指令分发模块向用户交互模块反馈最后一个被执行的子项响应结果。
本发明与现有技术方案相比具有以下有益效果和优点:
1、用户可改变仪器前面板软硬键与仪器功能的关联。
2、用户可定义新的辅助功能,可通过已配参项把仪器快速设置到特定状态,可通过一键设置项简化操作。
3、一键设置项既可以与仪器的硬键关联,又可以放入到功能组中与软键关联,也就是说用户可以把仪器面板上的任意硬键或软键当作一键设置键,并且不限制其数量。进一步的,一键设置项不但可以包含功能项,还可以包含用户定制的已配参项和一键设置项,用户可以随意组合,可以通过多个已配参项的组合,把仪器快速设定到一个符合个性化需要的测量状态,也可以把多个一键设置项再次组合形成一个操作步骤更加复杂的一键设置项,极大简化用户的操作步骤。
4、通过本发明,仪器的前面板实际上成为一个可程控的本地用户交互接口,使得仪器不但能符合用户的个性化操作,而且其操作效率可以在不增加外控主机的前提下,和使用程控命令控制仪器相当。
附图说明
图1为本发明的一种仪器支持自定义面板操作的方法的流程示意图;
图2是本发明的功能文件的结构示意图;
图3是本发明的功能项的结构示意图;
图4是本发明的功能项和定制项的序号范围示意图;
图5是本发明的面板配置文件的结构示意图;
图6是本发明的已配参项数据结构示意图;
图7是本发明功能组生成步骤框图。
具体实施方式
以下结合附图和具体实施例对本发明作进一步的详细描述:
本发明提供的一种仪器支持自定义面板操作的方法,主要包括以下内容:功能文件和面板配置文件的结构,仪器动态生成用户自定义面板,仪器对按键的响应,参阅图1所示:
(一)功能文件和面板配置文件的结构
功能文件描述的是仪器的功能,面板配置文件描述的是用户自定义面板操作的配置。对每台仪器而言,因为仪器的功能是不能改变的,所以功能文件具有唯一性和只读的属性;而由于允许用户创建或修改前面板操作的配置,所以面板配置文件不唯一并且可读写。在下文中,把仪器固有的功能称为功能项,用户新定义的操作称为定制项。
1.1功能文件的结构
功能文件由功能项集合段、带参功能项描述段、功能名称字符串段和功能描述字符串段组成,功能文件的结构如图2所示。
功能项集合段描述了该仪器所具有的功能。该段开始4字节为无符号长整数,用于记录功能项的数量,随后每6个字节描述一个功能项,其结构如图3所示。其中序号是功能项的标识,名称和描述字段均为一个索引,通过该索引可在相应字符串段中找到该功能项的名称和描述字符串。在本发明中,所有的功能项和定制项都对应一个序号,序号的使用约定如图4所示。序号对于仪器至关重要,因为仪器根据该序号值查找可执行该功能的模块。在图4中,从0到0x7FFF共32768个序号预留给用户作为定制项的序号。仪器固有的功能项序号起始于0x8000,从0x8000到0xBFFF共16384个序号对应无参功能项,仪器执行该功能不需要额外的参数,从0xC000到0xFFFF共16384个序号对应带参功能项,仪器执行该功能需要外界提供参数,例如“设置中心频率到1GHz”就是一个带参功能项,其中的1GHz为参数。
带参功能项描述段用来指明每个带参功能项的参数类型。该段开始四字节为无符号长整数,用于记录仪器带参功能项的数量,随后每4个字节描述一个带参项,其中前2字节为带参项的序号,后2字节标识参数类型。
功能名称字符串段记录了每个功能项的名称,使用Unicode编码格式,每个字符占16位,以0x0000作为每个字符串的结束符。功能描述字符串段记录了每个功能项的具体说明,说明包括功能项的用途和注意事项,该段同样使用Unicode编码格式。
1.2面板配置文件的结构
面板配置文件由布局段、定制项集合段、定制项名称字符串段、功能组名称字符串段、定制项描述段和关联段组成,面板配置文件的结构如图5所示。
布局段记录了所有需要显示在软键按钮控件上的功能项和定制项的布局。布局信息包括两项,一是所属功能组的序号,二是该项在功能组中的位置。该段开始4字节为无符号长整数,用于记录布局条目的个数。随后每6个字节描述一个布局条目,其中前两个字节记录的是要布局的功能项或定制项的序号,中间两个字节记录的是该项所属的功能组序号,最后两个字节记录的是该项在功能组中的位置。
定制项集合段记录了用户为仪器新增加的定制项的通用信息。定制项并不是用户为仪器定义的新功能,而是用户为了方便使用仪器所创建的快捷和辅助操作,它包括一键设置项、已配参项和导向项。该段开始4字节为无符号长整数,用于记录用户定制项的数量。随后每4个字节描述一个定制项,其中前两个字节记录的是该项名称在定制项名称字符串段的索引,同时该值也视为该定制项的序号;后两个字节用于标识该定制项的类型,为了避免与功能项类型标识冲突,定制项类型只使用其中的高8位,0x0100表示一键设置项,0x0200表示带参项,0x0400表示下级导向项,0x0800表示上级导向项。
定制项名称字符串段记录了每个定制项的名称,使用Unicode编码格式。
功能组名称字符串段记录了每个功能组的名称。功能组代表了仪器的菜单,当用户希望某个功能项或定制项关联到软键上时,必须先将其归入一个功能组。
定制项描述段进一步说明了各种定制项的具体细节。由于每种类型都有各自的特点和属性,该段包含三个数组,每个数组的元素采用不同的数据结构对各种定制项进一步具体描述。
一键设置项数组记录了所有的一键设置项。一键设置项是多个功能项和定制项的组合,当用户按下一个与一键设置项关联的软键或硬键后,仪器将自动执行按该项所记录的功能组合,从而简化用户的操作步骤。该数组的元素包含三个字段,首个字段为2字节无符号数,表示一键设置项的序号,中间字段为2字节无符号数,表示该项包含的功能项或定制项的数目N,第三个字段是一个长度为2*N字节的二进制块,其中每两个字节记录一个功能项或定制项的序号。
已配参项数组记录了所有已经被用户配置了参数的带参功能项。该数组的元素包含三个定长字段和一个不定长字段,如图6所示。其中,带参功能项序号记录了与项关联的带参功能项,参数类型记录了该项携带的参数类型,参数数据记录了该项的参数内容,由于仪器参数类型的多样性,参数数据为不定长的二进制数据。为了实现参数存取的一般化操作,本发明采用一种参数继承体系来统一处理仪器参数,仪器的所有参数类型都应该派生自一个Parameter的基类,在该基类中规定了所有派生类型都必需具备的功能,但功能的具体实现由派生类自己负责。在Parameter基类中,规定所有的派生类都必须实现一个“序列化”的功能,该功能使得参数对象可以访问图6中的参数数据。仪器利用参数继承体系,可以在加载面板配置文件时,依据图6中的参数类型字段动态创建参数对象,然后使用该对象的序列化功能加载参数内容。
导向项数组记录了所有的导向项,导向项用来记录功能组的层级关系,用户在按下导向项时,仪器的菜单将切换成该导向键所指向的功能组。借助这种导向项,用户可以自行建立所有功能组的层级关系。该数组的元素包含2个字段,每个字段占2字节,其中第一个字段为导向项的序号,第二个字段为与之关联的功能组的序号,功能组的序号值就是该功能组名字在功能组名称字符串段的索引。
关联段记录了功能项定制项与仪器前面板键的对应关系。该段包含两个数组,分别用于记录硬键与各项的关联和仪器其它模块与各项的关联。
硬键关联数组的元素包含3个字段,其中第一个字段占2字节,为仪器硬键的键值,第二个字段占2字节,当字段值为0时表示该硬键与功能项或定制项关联,当字段值为1时表示该硬键与功能组关联,第三个字段占2字节,为功能项、定制项或功能组的序号。
仪器关联数组的元素包含2个字段,每个字段占2字节,其中第一个字段为仪器模块的标识,第二个字段是功能组的序号。该数组通常用于综合测试类仪器,这类仪器的界面会同时显示多个测试窗口,当窗口焦点切换时,仪器的菜单也要跟随切换。如果用户希望仪器菜单切换到自己定制的功能组,就需要在该数组中设置测试窗口与功能组的对应关系。
(二)自定义面板的动态生成
仪器执行自定义面板的动态生成,包括以下步骤:
2.1加载面板配置文件
当面板配置文件上传到仪器之后,仪器可对该文件进行加载。所谓加载就是仪器读取文件并建立数据结构和字符串数组。具体建立的数组包括布局数组、定制项通用信息数组、定制项名称数组、功能组名称数组、一键设置项信息数组、已配参项信息数组、导向项信息数组、硬键关联数组、软键关联数组、仪器关联数组。
2.2创建定制项
在加载完成之后,仪器根据定制项通用信息数组、定制项名称数组、一键设置项信息数组、已配参项信息数组、导向项信息数组创建定制项。具体的,仪器先根据定制项通用信息数组和定制项名称数组创建所有的定制项对象,使用一个哈希表为这些对象建立索引,哈希表的键是定制项的序号,哈希表的值是定制项对象在内存中的首地址;然后仪器遍历一键设置项信息数组、已配参项信息数组和导向项信息数组,为刚创建的定制项对象设置用户的定制数据。
2.3生成功能组
仪器根据功能组名称数组创建功能组对象,并以功能组对象的序号为键,建立一个哈希表,仪器可以通过序号从哈希表中找到对应的功能组。创建完所有的功能组后,仪器遍历布局条目数组,根据条目的功能项或定制项的序号,找到功能项或定制项对象,再根据条目的功能组序号找到该项对应的功能组对象,把功能项或定制项的首地址和它在功能组所处的位置信息写入到功能组对象中。该步骤的具体过程如图7所示,需要注意的是功能组记录的只是功能项或定制项的首地址,这意味着一个功能项可以重复出现在不同的功能组中。在这一步完成时,功能组的层级关系也已经确定,层级关系记录在用户定制的导向项中。
2.4记录关联
记录关联就是指驻机软件要从面板配置文件中加载关联段的内容,生成硬键关联数组和仪器关联数组。当用户按下硬键时,就从硬键关联数组中找到该硬键对应的功能项或定制项,亦或者功能组。如果关联的是功能项或定制项,就让仪器内部模块响应该项,否则就进行功能组的切换;当用户切换窗口焦点时,就从仪器功关联数组中找到窗口对应的功能组,进行功能组的切换。
(三)仪器对按键的响应
3.1.非一键设置项的响应
当用户按下按键,若该按键关联到功能项或非一键设置项的其它定制项时,仪器的响应过程如下。
(1)用户的按键动作被用户交互模块捕获,得知用户按键的键值,由于键值已经和功能项或定制项的序号关联,用户交互模块可以根据序号,从哈希表中找到该项并调用该项的OnTouch()接口;
(2)功能项或定制项在该接口的实现中,负责制作一条指令并将其送往指令分发模块;
(3)指令分发模块利用路由表,查找到可以响应该指令的仪器内部模块,然后将指令送往该模块;
(4)仪器内部模块响应完指令后,通过指令分发模块向用户交互模块反馈响应结果。
所述指令的格式是一个结构体,结构体的第一个字段是2字节的无符号数,记录的是功能项或定制项的序号,第二个字段是一个指向参数对象的Parameter*类型指针,如果指针不为空,说明该指令携带一个参数。所述指令分发模块,处于用户交互模块与仪器内部功能模块之间,为两者传递命令和响应结果。所述路由表是一个路由项的集合,每个路由项包含两个字段,第一个字段是功能项的序号,第二个字段是可执行该功能的仪器内部模块的ID。所述响应结果是一个4字节的错误码,错误码为零说明仪器正常响应,其它值由具体仪器自行定义其含义,用户可以通过仪器的使用说明书了解错误信息。
3.2一键设置项的响应
当用户按下按键,若该按键关联到一键设置项,仪器的响应过程如下。
(1)同3.1的步骤1;
(2)一键设置项在OnTouch()接口的实现中,从它的序号链表头部开始取子项的序号,然后在哈希表中找到该子项,调用该子项的OnTouch()接口,根据面向对象多态的特点,如果该子项是非一键设置项,则会执行3.1中的步骤2,3,4,若该子项仍是一个一键设置项,则会递归的调用一键设置项的OnTouch()。
(3)在OnTouch()返回时查看仪器响应结果,若为零说明仪器已正常响应该子项,则继续取下一个子项执行步骤2直到列表取空,若结果不为零,则说明仪器响应有错误发生,在这种情况下一键设置项就停止取下一个子项,退出迭代。
(4)通过指令分发模块向用户交互模块反馈最后一个被执行的子项响应结果。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (7)
1.一种仪器支持自定义面板操作的方法,其特征在于,包括以下步骤:
步骤一:从仪器下载功能文件;
步骤二:用户自定义面板操作;
步骤三:生成面板配置文件;
步骤四:上传面板配置文件到仪器;
步骤五:仪器加载面板配置文件动态生成用户自定义面板并实现对按键的响应。
2.根据权利要求1所述一种仪器支持自定义面板操作的方法,其特征在于,所述步骤一中,功能文件用来描述仪器固有的功能,功能文件由功能项集合段、带参功能项描述段、功能名称字符串段和功能描述字符串段组成。
3.根据权利要求2所述一种仪器支持自定义面板操作的方法,其特征在于,所述功能文件的功能项集合段开始4字节为无符号长整数,用于记录功能项的数量,随后每6个字节描述一个功能项,其中前两个字节是序号,用作功能项的标识,中间两个字节是功能项名称在功能名称字符串段的索引,最后两个字节是功能项描述在功能描述字符串段的索引,序号具有唯一性,每个仪器功能项和用户定制项都对应一个序号值,序号值的范围划分为:从0到0x7FFF共32768个序号预留给用户作为定制项的序号,仪器固有的功能项序号起始于0x8000,从0x8000到0xBFFF共16384个序号对应无参功能项,仪器执行该功能不需要额外的参数,从0xC000到0xFFFF共16384个序号对应带参功能项,仪器执行该功能需要用户提供参数;
所述功能文件的带参功能项描述段用来指明每个带参功能项的参数类型,该段开始四字节为无符号长整数,用于记录仪器带参功能项的数量,随后每4个字节描述一个带参项,其中前2字节为带参项的序号,后2字节标识参数类型;
所述功能文件的功能名称字符串段记录了每个功能项的名称,使用Unicode编码格式,每个字符占16位,以0x0000作为每个字符串的结束符,所述功能文件的功能描述字符串段记录了每个功能项的具体说明,说明包括功能项的用途和注意事项,该段同样使用Unicode编码格式。
4.根据权利要求1所述一种仪器支持自定义面板操作的方法,其特征在于,所述面板配置文件用来描述用户自定义的前面板操作,面板配置文件由布局段、定制项集合段、定制项名称字符串段、功能组名称字符串段、定制项描述段和关联段组成。
5.根据权利要求4所述一种仪器支持自定义面板操作的方法,其特征在于,所述布局段记录所有需要显示在软键按钮控件上的功能项和定制项的布局,布局信息包括两项,一是该项所属功能组的序号,二是该项在功能组中的位置,该段开始4字节为无符号长整数,用于记录布局条目的个数,随后每6个字节描述一个布局条目,其中前两个字节记录的是要布局的功能项或定制项的序号,中间两个字节记录的是该项所属的功能组序号,最后两个字节记录的是该项在功能组中的位置;所述定制项集合段记录了用户为仪器新增加的定制项的通用信息,包括一键设置项、已配参项和导向项,该段开始4字节为无符号长整数,用于记录用户定制项的数量,随后每4个字节描述一个定制项,其中前两个字节记录的是该项名称在定制项名称字符串段的索引,同时该值也视为该定制项的序号,后两个字节用于标识该定制项的类型;功能组名称字符串段记录每个功能组的名称,功能组代表仪器的菜单,当用户希望某个功能项或定制项关联到软键上时,先将其归入一个功能组;
所述定制项描述段说明了各种定制项的具体细节,该段包含一键设置项、已配参项和导向项三个数组,每个数组的元素采用不同的数据结构对各种定制项进一步具体描述;其中一键设置项数组记录了所有的一键设置项,一键设置项是多个功能项和定制项的组合,当用户按下一个与一键设置项关联的软键或硬键后,仪器将自动执行按该项所记录的功能组合;已配参项数组记录了所有已经被用户配置了参数的带参功能项;导向项数组记录了所有的导向项,导向项用来记录功能组的层级关系,用户在按下导向项时,仪器的菜单将切换成该导向键所指向的功能组;
所述关联段记录了功能项定制项与仪器前面板键的对应关系,该段包含硬件关联和仪器关联两个数组,分别用于记录硬键与各项的关联以及仪器其它模块与各项的关联;硬键关联数组的元素包含3个字段,其中第一个字段占2字节,为仪器硬键的键值,第二个字段占2字节,当字段值为0时表示该硬键与功能项或定制项关联,当字段值为1时表示该硬键与功能组关联,第三个字段占2字节,为功能项、定制项或功能组的序号;仪器关联数组的元素包含2个字段,每个字段占2字节,其中第一个字段为仪器模块的标识,第二个字段是功能组的序号。
6.根据权利要求1所述一种仪器支持自定义面板操作的方法,其特征在于,所述步骤五中,仪器动态生成用户自定义的前面板操作,包括以下步骤:
(一)、加载面板配置文件,当面板配置文件上传到仪器之后,仪器可对该文件进行加载,仪器读取文件并建立数据结构和字符串数组;
(二)、创建定制项,在加载完成之后,仪器根据定制项数组、定制项名称数组、一键设置项信息数组、已配参项信息数组、导向项信息数组创建定制项;
(三)、生成功能组,仪器根据功能组名称数组创建功能组对象,并以功能组对象的序号为键,建立一个哈希表,仪器可以通过序号从哈希表中找到对应的功能组;创建完所有的功能组后,仪器遍历布局段的条目,根据条目的功能项或定制项的序号,找到功能项或定制项对象,再根据条目的功能组序号找到该项对应的功能组对象,把功能项或定制项的首地址和它在功能组所处的位置信息写入到功能组对象中;
(四)、记录关联,驻机软件从面板配置文件中加载关联段的内容,生成硬键关联数组和仪器关联数组,当用户按下硬键时,从硬键关联数组中找到该硬键对应的功能项或定制项,亦或者功能组,如果关联的是功能项或定制项,就让仪器内部模块响应该项,否则就进行功能组的切换;当用户切换窗口焦点时,就从仪器功关联数组中找到窗口对应的功能组,进行功能组的切换。
7.根据权利要求1所述一种仪器支持自定义面板操作的方法,其特征在于,所述步骤五中,仪器对按键的响应包括非一键设置项的响应和一键设置项的响应;
当用户按下非一键设置项的按键,仪器的响应过程如下:
(一)、用户的按键动作被用户交互模块捕获,得知用户按键的键值,由于键值已经和功能项或定制项的序号关联,用户交互模块可以根据序号,从哈希表中找到该项并调用该项的OnTouch()接口;
(二)、功能项或定制项在该接口的实现中,负责制作一条指令并将其送往指令分发模块;
(三)、指令分发模块利用路由表,查找到可以响应该指令的仪器内部模块,然后将指令送往该模块;所述指令的格式是一个结构体,结构体的第一个字段是2字节的无符号数,记录的是功能项或定制项的序号,第二个字段是一个指向参数对象的Parameter*类型指针,如果指针不为空,指令携带一个参数;
(四)、仪器内部模块响应完指令后,通过指令分发模块向用户交互模块反馈响应结果;
当用户按下一键设置项的按键,仪器的响应过程如下:
(一)、用户的按键动作被用户交互模块捕获,得知用户按键的键值,由于键值已经和功能项或定制项的序号关联,用户交互模块可以根据序号,从哈希表中找到该项并调用该项的OnTouch()接口;
(二)、一键设置项在OnTouch()接口的实现中,从它的序号链表头部开始取子项的序号,然后在哈希表中找到该子项,调用该子项的OnTouch()接口,根据面向对象多态的特点,如果该子项是非一键设置项,则会执行非一键设置项的响应中的步骤(二)、(三)、(四),若该子项仍是一个一键设置项,则会递归的调用一键设置项的OnTouch();
(三)、在OnTouch()返回时查看仪器响应结果,若为零说明仪器已正常响应该子项,则继续取下一个子项执行步骤2直到列表取空,若结果不为零,则说明仪器响应有错误发生,在这种情况下一键设置项就停止取下一个子项,退出迭代;
(四)、通过指令分发模块向用户交互模块反馈最后一个被执行的子项响应结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510765480.5A CN105511303A (zh) | 2015-11-06 | 2015-11-06 | 仪器支持自定义面板操作的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510765480.5A CN105511303A (zh) | 2015-11-06 | 2015-11-06 | 仪器支持自定义面板操作的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105511303A true CN105511303A (zh) | 2016-04-20 |
Family
ID=55719373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510765480.5A Pending CN105511303A (zh) | 2015-11-06 | 2015-11-06 | 仪器支持自定义面板操作的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105511303A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106406861A (zh) * | 2016-08-31 | 2017-02-15 | 杭州鸿雁智能科技有限公司 | 用于控制面板的显示定义方法及带显示的智能开关 |
CN113342446A (zh) * | 2021-06-25 | 2021-09-03 | 中国船舶重工集团公司第七0七研究所 | 一种支持用户自定义显示内容的实现方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101510833A (zh) * | 2009-04-07 | 2009-08-19 | 杭州华三通信技术有限公司 | 一种设备面板的生成方法和装置 |
CN101635806A (zh) * | 2009-08-25 | 2010-01-27 | 天津三星电子显示器有限公司 | 一种自定义工具菜单功能的实现方法及电视机 |
CN101984398A (zh) * | 2010-11-11 | 2011-03-09 | 中兴通讯股份有限公司 | 一种生成软键盘的方法、装置及终端设备 |
CN102566864A (zh) * | 2010-12-24 | 2012-07-11 | 新奥特(北京)视频技术有限公司 | 一种灵活的自定义界面操作方法及系统 |
US20120227000A1 (en) * | 2011-03-03 | 2012-09-06 | Sony Network Entertainment International Llc | Methods and systems for use in providing customized system menus |
CN103577191A (zh) * | 2013-10-31 | 2014-02-12 | 中国电子科技集团公司第四十一研究所 | 一种可配置的仪器菜单系统 |
-
2015
- 2015-11-06 CN CN201510765480.5A patent/CN105511303A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101510833A (zh) * | 2009-04-07 | 2009-08-19 | 杭州华三通信技术有限公司 | 一种设备面板的生成方法和装置 |
CN101635806A (zh) * | 2009-08-25 | 2010-01-27 | 天津三星电子显示器有限公司 | 一种自定义工具菜单功能的实现方法及电视机 |
CN101984398A (zh) * | 2010-11-11 | 2011-03-09 | 中兴通讯股份有限公司 | 一种生成软键盘的方法、装置及终端设备 |
CN102566864A (zh) * | 2010-12-24 | 2012-07-11 | 新奥特(北京)视频技术有限公司 | 一种灵活的自定义界面操作方法及系统 |
US20120227000A1 (en) * | 2011-03-03 | 2012-09-06 | Sony Network Entertainment International Llc | Methods and systems for use in providing customized system menus |
CN103577191A (zh) * | 2013-10-31 | 2014-02-12 | 中国电子科技集团公司第四十一研究所 | 一种可配置的仪器菜单系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106406861A (zh) * | 2016-08-31 | 2017-02-15 | 杭州鸿雁智能科技有限公司 | 用于控制面板的显示定义方法及带显示的智能开关 |
CN113342446A (zh) * | 2021-06-25 | 2021-09-03 | 中国船舶重工集团公司第七0七研究所 | 一种支持用户自定义显示内容的实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101266520B (zh) | 一种可实现灵活键盘布局的系统 | |
JP5924859B2 (ja) | コンテキスト・アウェアな入力データを提供するための方法及び装置 | |
CN103136196A (zh) | 用于向电子设备输入文本和纠错的方法 | |
CN101551710A (zh) | 一种维吾尔语输入系统及输入方法 | |
CN101776970A (zh) | 触控键盘的设置方法及装置 | |
CN103577191A (zh) | 一种可配置的仪器菜单系统 | |
CN112016173A (zh) | 一种电气图的制作方法 | |
CN105511303A (zh) | 仪器支持自定义面板操作的方法 | |
CN103197765B (zh) | 键盘布局调整方法 | |
CN103135786B (zh) | 用于向电子设备输入文本的方法 | |
CN101303628A (zh) | 一种利用数字键盘进行字词输入的方法和装置 | |
US8140722B2 (en) | Mobile terminal, character conversion apparatus, character conversion process, computer program, and computer usable medium | |
JP2008009781A (ja) | 表示制御装置 | |
CN103220387B (zh) | 一种触摸屏手机用搜索方法及装置 | |
KR20030050741A (ko) | 화면 크기와 입력키의 수가 제한되는 휴대용 기기에서의빠르고 간편한 캐릭터 입력 방법 및 이를 이용하는 휴대용기기 | |
CN101135939A (zh) | 采用数字键的字符输入装置和方法 | |
JP2013020437A (ja) | 要件管理支援装置 | |
CN103135787B (zh) | 用于向电子设备输入文本的方法及键盘系统 | |
CN116774131A (zh) | 一种高自由度的电能表测试系统 | |
TW200820722A (en) | Mobile phone capable of creating a quick launch item according a search result and related method | |
CN100561469C (zh) | 创建和使用中文语言数据和用户自纠正数据的方法和系统 | |
CN101556657A (zh) | 一种属性自定义系统以及方法 | |
CN108958502A (zh) | 一种多学科键盘 | |
CN100489745C (zh) | 多语言文字和数字输入的系统及方法 | |
CN106126048B (zh) | 一种移动设备的联系人信息的查询方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160420 |