自定义上位机用户界面的方法、电子装置及存储介质与流程

文档序号:26003653发布日期:2021-07-23 21:21阅读:147来源:国知局
自定义上位机用户界面的方法、电子装置及存储介质与流程

本申请涉及计算机技术领域,尤其涉及一种自定义上位机用户界面的方法、电子装置及存储介质。



背景技术:

不同的项目,由于下位机与上位机之间的通信协议不一致,对上位机的功能需求也不一致,导致需要针对每个项目单独开发一款上位机软件。即使对于同一个项目,在不同的开发阶段,通信协议和功能需求也会有较大改变,由于上位机用户界面不能自定义,上位机软件需要更改源代码才能满足需求,相当地耗时耗力,这与客户期望的敏捷开发相悖。因此,亟需提供一种方法解决上述一个或多个问题。



技术实现要素:

有鉴于此,有必要提供一种自定义上位机用户界面的方法、电子装置及存储介质,可以根据用户自身需求自定义用户界面,提升用户体验。

本申请一实施方式提供一种自定义上位机用户界面的方法,所述方法包括:导入脚本文件至上位机;根据所述脚本文件生成用户界面,其中,所述用户界面包括至少一个控件;自定义操作所述用户界面,其中,所述自定义操作包括修改控件属性、删除控件和增加控件;根据自定义操作后的用户界面更新导入的脚本文件,并保存更新后的脚本文件。

根据本申请的一些实施方式,所述控件属性包括标签名、位置和大小。

根据本申请的一些实施方式,所述方法还包括:

基于所述标签名建立所述控件和待显示数据之间的对应关系;

通过所述控件实时更新所述待显示数据至所述用户界面。

根据本申请的一些实施方式,所述通过所述控件实时更新所述待显示数据至所述用户界面包括:

将所述待显示数据的标签与用户界面中的控件的标签名进行匹配;

响应于所述待显示数据的标签与所述控件的标签名匹配成功,赋值所述待显示数据至所述控件。

根据本申请的一些实施方式,所述响应于所述待显示数据的标签与所述控件的标签名匹配成功,赋值所述待显示数据至所述控件包括:

接收采集的原始数据;

调用动态链接库解析所述原始数据;

将解析后的原始数据转换为变体数据,并传输所述变体数据至用户界面;

响应于所述待显示数据的标签与所述控件的标签名匹配成功,将所述变体数据逆转换为所述解析后的原始数据,并赋值所述解析后的原始数据至所述控件。

根据本申请的一些实施方式,所述根据所述脚本文件生成用户界面,其中,所述用户界面包括至少一个控件包括:

读取所述脚本文件;

根据所述脚本文件动态生成对应的控件。

根据本申请的一些实施方式,所述自定义操作所述用户界面包括:

接收所述自定义操作;

基于动态注册响应所述自定义操作;

执行所述自定义操作对应的动作。

根据本申请的一些实施方式,所述脚本文件为.xml文件。

本申请一实施方式提供一种电子装置,所述装置包括:上位机;

处理器;以及

存储器,所述存储器中存储有多个程序模块,所述多个程序模块由所述处理器加载并执行如上所述的自定义上位机用户界面的方法。

本申请一实施方式提供一种存储介质,其上存储有至少一条计算机指令,所述指令由处理器加载并用于执行如上所述自定义上位机用户界面的方法。

与现有技术相比,上述自定义上位机用户界面的方法、电子装置及存储介质,通过用户的自定义操作实现对上位机用户界面的自定义。可以根据用户自身需求自定义用户界面,提升用户体验。进一步地,通过调用动态链接库文件和使用变体数据来传递数据,实现兼容通信协议的效果,还可兼容不同项目,大大减少开发时间。

附图说明

图1是根据本申请一实施方式的电子装置的结构示意图。

图2是根据本申请一实施方式的自定义上位机用户界面的方法的流程图。

图3是根据本申请一实施方式的自定义上位机用户界面系统的模块图。

主要元件符号说明

电子装置1

自定义系统10

存储器11

处理器12

上位机13

导入模块101

生成模块102

自定义模块103

更新模块104

如下具体实施方式将结合上述附图进一步说明本申请。

具体实施方式

下述为对本申请中出现的一些专业名词作的解释说明,以帮助理解本申请。

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

进一步需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者装置中还存在另外的相同要素。

参阅图1所示,自定义上位机用户界面系统10(为了便于描述,下文简称“自定义系统10”)运行于电子装置1中。所述电子装置1包括,但不仅限于,存储器11、至少一个处理器12和上位机13,上述元件之间可以通过总线连接,也可以直接连接。

需要说明的是,图1仅为举例说明的电子装置1。在其他实施例中,电子装置1也可以包括更多或者更少的元件,或者具有不同的元件配置。所述电子装置1可以为手机、平板电脑、个人数字助理、个人电脑,或者任何其他适合的可充电式装置。

尽管未示出,所述电子装置1还可以包括无线保真(wirelessfidelity,wifi)单元、蓝牙单元、扬声器等其他组件,在此不再一一赘述。

请参阅图2,图2为根据本申请一实施方式的自定义上位机用户界面方法的流程图。根据不同的需求,所述流程图中步骤的顺序可以改变,某些步骤可以省略。所述自定义上位机用户界面方法可以包括以下步骤。

步骤s1、导入脚本文件至上位机。

在本实施方式中,在运行上位机软件后,导入脚本文件至上位机,并自动读取所述脚本文件。所述脚本文件可以是上一次保存的脚本文件,为.xml文件。

步骤s2、根据所述脚本文件生成用户界面,其中,所述用户界面包括至少一个控件。

在本实施方式中,在读取所述脚本文件后,根据所述脚本文件动态生成对应的控件。所述控件包括控件属性,所述控件属性包括标签名、位置和大小。所述标签名用于定义控件的名称。所述位置为所述控件在所述用户界面中的位置,可以用坐标来表示。所述大小用于描述控件的长宽高等属性。

具体地,根据脚本文件动态生成对应控件,具体实现过程为利用动态调用vi函数可获取指定路径vi的引用,利用vi脚本中的“打开vi对象引用”函数,以及调用节点中的“移动”即可将一个控件库vi中的指定控件动态移动到用户界面,并指定控件的属性。例如,位置和大小等信息。

步骤s3、自定义操作所述用户界面,其中,所述自定义操作包括修改控件属性、删除控件和增加控件。

在本实施方式中,所述自定义操作所述用户界面包括:接收所述自定义操作;基于动态注册响应所述自定义操作;执行所述自定义操作对应的动作。

具体地,当根据所述脚本文件生成用户界面后,可能所述用户界面上的控件位置或标签名等不是用户想要的。此时用户可以自定义操作所述用户界面。例如,通过鼠标拖动所述用户界面上的控件,移动所述控件到合适的位置。也可以通过鼠标右击控件,选择更改标签名,即可更改控件名;选择删除,可实现控件的删除。或者在所述用户界面的空白处通过点击鼠标右键,选择添加控件。从而可以将控件库中所列控件添加到所述用户界面。这样,用户就可以自定义自己想要的用户界面,并将自定义操作后的用户界面保存到脚本文件。

在本实施方式中,可以利用动态注册事件技术获取新生成控件的引用,从而响应自定义操作事件,对所述控件执行相应操作。所述自定义操作事件是指外部的一些触发动作,如鼠标的单击、双击、点击键盘等操作。而事件注册是指发生哪些事件时,可以执行相应的触发动作。由于用户界面上的控件是动态创建的,无法在控件创建前获取其引用,动态注册事件可在程序运行中将新创建的控件注册到事件结构中,并获取其引用。

例如,当用户通过鼠标点击控件时,程序中事件结构会识别到鼠标点击的事件,并取得所点击控件的引用。将此引用以及此时控件的第一坐标p1(x1,y2)存入移位寄存器。当用户拖动鼠标时,获取鼠标拖动停止时最后的第二坐标p2(x2,y2),通过运算得到p3(x2-x1,y2-y1)。将移位寄存器中的引用连接至控件的属性节点,选择位置,并将p3(x2-x1,y2-y1)赋值到所述属性节点。控件就从起始位置(第一坐标)移动到鼠标拖动停止时的最后位置(第二坐标),达到程序在运行时移动控件的效果。同理,属性节点选择标题文本,即可更改控件的标签名。

添加和删除控件,使用事件结构中的“窗格快捷菜单激活”事件,可实时监控到点击鼠标右键的事件。使用删除菜单项和插入菜单项,自定义右键菜单,静态调用控件库vi,使用所有对象获取控件库中所有控件的标签名,并将标签名赋值给所述右键菜单。从而在点击鼠标右键时,右键菜单可以提供标签名供用户选择。当用户选择其中一个标签名时,再通过vi脚本中的“打开vi对象引用”函数,以及调用节点中的“移动”,即可将控件库vi中的控件一一映射到用户界面,实现动态添加控件的功能。

在本实施方式中,由于vi在运行时不能将控件删除,所以需要动态调用一个可重入的vi来删除用户界面上的控件。具体地,首先动态调用用户界面vi,使用中止vi调用节点停止运行。再使用所有对象属性节点索引要删除的控件引用,连接引用至删除调用节点,此时已将控件删除。最后再将用户界面vi使用运行调用节点运行,实现在运行状态下删除控件的操作。

步骤s4、根据自定义操作后的用户界面更新导入的脚本文件,并保存更新后的脚本文件。

在本实施方式中,在自定义操作用户界面后,可将界面上所有控件的信息保存至.xml文件,包括控件的标签名、位置和大小等信息。具体地,将用户界面vi引用连接至前面板和控件属性节点,使用for循环索引出所有控件的“标签”和“主区域边界”,将“主区域边界”中的“top”和“left”捆绑为一个第一簇,再将“标签”和第一簇捆绑为第二簇,将第二簇连接至“平化至xml”函数,使用“写入xml文件”函数,即可完成用户界面上所有控件的信息保存至脚本文件。

步骤s5、基于所述标签名建立所述控件和待显示数据之间的对应关系。

在本实施方式中,用户界面上控件的标签名是唯一的,可以通过标签名将程序中的待显示数据与界面上的控件一一对应,实现程序中的待显示数据实时更新到自定义用户界面。

步骤s6、通过所述控件实时更新所述待显示数据至所述用户界面。

在本实施方式中,将所述待显示数据的标签与用户界面中的控件的标签名进行匹配;响应于所述待显示数据的标签与所述控件的标签名匹配成功,赋值所述待显示数据至所述控件。

所述响应于所述待显示数据的标签与所述控件的标签名匹配成功,赋值所述待显示数据至所述控件包括:接收采集的原始数据;调用动态链接库解析所述原始数据;将解析后的原始数据转换为变体数据,并传输所述变体数据至用户界面;响应于所述待显示数据的标签与所述控件的标签名匹配成功,将所述变体数据逆转换为所述解析后的原始数据,并赋值所述解析后的原始数据至所述控件。

由于界面上的控件数据类型不一定相同,所以需要使用变体数据来传递数据。而数据的解析模块是通过调用动态链接库(dll文件)来实现,如果通信协议变更,只需替换动态链接库文件即可实现兼容。

通过上述自定义上位机用户界面的方法可在软件发布后,根据用户自身需求自定义用户界面,并可通过替换动态链接库文件实现兼容通信协议的效果,还可兼容不同项目,大大减少开发时间。另外,由于灵活的用户界面,可以提升用户体验。

请参阅图3,在一实施方式中,所述自定义系统10可以被分割成一个或多个模块,所述一个或多个模块存储在所述存储器11中,并由至少一个处理器(本实施例为一个处理器12)执行,以完成本申请。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,所述指令段用于描述所述自定义系统10在所述电子装置1中的执行过程。例如,所述自定义系统10可以被分割成图3中的导入模块101、生成模块102、自定义模块103及更新模块104。

具体地,所述导入模块101用于导入脚本文件至上位机;所述生成模块102用于根据所述脚本文件生成用户界面,其中,所述用户界面包括至少一个控件;所述自定义模块103用于自定义操作所述用户界面,其中,所述自定义操作包括修改控件属性、删除控件和增加控件;所述更新模块104用于根据自定义操作后的用户界面更新导入的脚本文件,并保存更新后的脚本文件。本申请的自定义系统10可以根据用户自身需求自定义用户界面,提升用户体验。具体内容可以参见上述自定义上位机用户界面方法的实施例,在此不再详述。

在本实施例中,所述存储器11可以是电子装置1的内部存储器,即内置于所述电子装置1的存储器。在其他实施例中,所述存储器11也可以是电子装置1的外部存储器,即外接于所述电子装置1的存储器。

在一些实施例中,所述存储器11用于存储程序代码和各种数据,例如,存储安装在所述电子装置1中的自定义系统10的程序代码,并在电子装置1的运行过程中实现高速、自动地完成程序或数据的存取。例如,在本实施例中,所述自定义系统10用于采用上述的方法可以自定义上位机的用户界面。

在一些实施例中,所述存储器11可以包括随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘、智能存储卡(smartmediacard,smc)、安全数字(securedigital,sd)卡、闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

在一实施方式中,所述处理器12可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者所述处理器12也可以是其它任何常规的处理器等。

所述自定义系统10中的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性可读存储介质中,所述计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述非易失性可读介质可以包括:能够携带所述计算机可读指令代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)等。

可以理解的是,以上所描述的模块划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本申请各个实施例中的各功能模块可以集成在相同处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在相同单元中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将本申请上述的实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1