一种人机界面的可视化变量关联组件的方法及系统与流程

文档序号:12550367阅读:224来源:国知局
一种人机界面的可视化变量关联组件的方法及系统与流程

本发明属于人机界面平台技术领域,特别是涉及一种人机界面开发平台及其仿真器所采用的组件关联的方法,旨在采用可视化变量关联组件的方法实现绘图组件之间的信息交互。



背景技术:

人机界面(Human-Machine Interface,HMI)是用户和机器之间进行传递和交互的媒介,可视化的开发平台则能够让开发人员更加方便地进行人机界面的定制化开发。可视化的图形界面开发平台广泛地运用于如今商业界的许多领域的界面开发,包括汽车仪表、智能家居、工业控制等各个领域。采用图形化的开发界面能降低开发难度,并且能提供“所见即所得”的开发优势。

尽管目前已有的大部分人机界面可视化图形界面开发平台很大程度地降低了开发人员编写代码的负担,但是组件之间的数据交互以及联动的问题一直没有得到很好地解决。例如,如何将当前界面的进度条数据传递给当前界面的仪表盘,以及进度条数据发生改变的时候如何通知与其关联的仪表盘也发生相关的改变。

一种常用的图形界面开发平台的实现方式是将图形化界面完全转化为代码,图形化界面的目的是为了简化用户编写部分代码。这种方式可以很方便的利用代码实现不同控件之间的关联,同时控件之间的信息交互也可以通过变量来完成。但是采用这种开发平台的开发人员仍然需要具备一定的编程功底。例如基于java开发的安卓平台就属于这种开发平台。

另一种常用的图形界面开发平台的实现方式则是直接将图形化界面的信息转化为配置信息。这种实现方式的好处是用户可以完全不用编写代码进行界面开发,但是每个绘图组件只能设置自身的属性值,而其他组件没有办法将自身信息传递给该组件。从而无法实现组件之间的信息交互以及组件联动。

本发明的人机界面开发平台采用的是将图形化界面信息完全转化为配置信息的方法,在此基础上加入了“可视化变量”这个概念,从而能使开发人员在完全不用编写代码的前提下又能通过变量实现绘图组件之间的关联和信息交互。

现有技术一的技术方案中:

美国申请公布专利US7681176B2,提出了一种代码与图形互相转换的方式来简化图形界面开发以及建模。该发明提出了将图形化应用封装为代码以及从代码中恢复出图形化界面的方法,从而方便用户通过图形化的方式来修改代码。此方案提供了用图形化界面来简化图形界面开发的方法,但是实现组件之间的关联仍然需要编写代码。

中国申请公布专利CN105912472A提出采用自定义变量的软件设计方法,用该方法在软件设计之初不需要相对固化地定义某些衍生变量。采用这种方案可以由用户自定义变量的方式修改组件的属性。此方案中每个变量都只能绑定到一个组件上,所以只能实现单个控件的改变,但是无法实现控件之间的通信以及联动。

Mikroprojekt公司开发的人机界面开发平台IQ-Editor采用的是名为“Tag”的变量关联组件,当与“Tag”绑定的任一控件发生改变的时候,与其相关联的控件也会同时发生改变。从而通过完全无代码地方式实现了控件之间的联动以及交互。该方案能很好地解决控件之间的交互和联动问题,但是:

a.此方案中每个“Tag”都需要标明数据类型,从而对控件绑定“Tag”带来一定的局限性

b.此方案中“Tag”只能绑定控件,而不能绑定诸如页面等其他绘图组件。



技术实现要素:

本发明的目的在于提供一种人机界面的可视化变量关联组件的方法及系统,通过采用了可视化变量来关联绘图组件的人机界面开发平台,可视化变量来关联绘图组件,实现绘图组件之间的互联和交互。

为解决上述技术问题,本发明是通过以下技术方案实现的:

本发明为一种人机界面的可视化变量关联组件的方法,包括如下过程:

SS0,用户在生成配置文件的时,将可视化变量与控件绑定;

SS1,初始化可视化变量:读取可视化变量的配置信息,并且绑定至组件;

SS2,初始化所有任务:初始化操作系统中所有任务;

SS3,加载页面:加载0号页面信息,可视化变量改变事件;

SS4,刷新绘图:刷新所有的绘图组件并绘制;

SS5,等待事件:通过人机交互等待改变可视化变量的事件发生;

SS6,当可视化变量发生改变的时候,会触发所有绑定的组件;

SS7,调用控制函数:可视化变量发生改变后,调用所有绑定组件的组件控制函数。

优选地,所述SS6,当可视化变量发生改变的时候,会触发所有绑定的组件,执行步骤如下:

a.触发所有绑定页面:跳转至变量值对应页面;

b.触发所有绑定画布:切换画布的当前显示的子画布;

c.触发所有绑定控件:调用控件的控制函数;

d.触发所有绑定指令:发送变量值对应地址所对应的指令。

优选地,所述触发所有绑定控件:调用控件的控制函数具体步骤为:

e.判断控件是否在页面内;

f.判断控件是否被显示;

g.当widgetRefresh=1时或widgetRefresh=0时,调用控件的控制函数。

优选地,所述SS7,调用控制函数:可视化变量发生改变后,调用所有绑定组件的组件控制函数,其中,所述组件控制函数包括页面控制函数、画布控制函数和控件控制函数。

一种人机界面的可视化变量关联组件系统,包括:

绘图组件,用于人机界面的绘图组件之间的信息交互;

可视化变量,包括值与被绑定元件列表;

所述可视化变量实现组件互联模型;

触发可视化变量改变的事件。

优选地,所述绘图组件包括页面、画布、子画布和控件;

所述页面:为动态内存加载的基本单元,一个页面包含多个画布,当切换页面的时候内存数据全部重新加载;

所述画布:绘图的基本单元,所绘制的控件数据存在于画布上,每一个画布包含多个子画布;

所述子画布:为多个控件的集合,同一个画布中不同子画布完全重叠在一起,通过画布来切换当前显示的子画布;

所述控件:为基本的显示单元,控件的类型包含按钮、仪表盘、进度条等多种类型,用于实现人机交互以及界面显示。

优选地,所述可视化变量,包括的值与被绑定元件列表中;

所述值包括整数或者字符串;

所述绑定元件列表中绑定绘图元件和/或串口寄存器。

优选地,所述绑定绘图元件和/或串口寄存器具体为:

所述页面:与页面绑定的可视化变量通过改变值来切换显示的页面,或发送对应页面的页面指令;

所述画布:与画布绑定的可视化变量切换画布当前显示的子画布;

所述控件:与控件绑定的可视化变量改变当前控件的值;

所述串口寄存器:与串口寄存器绑定的可视化变量向串口中发送数据或者从串口中接受数据,通过串口与外界进行信息交互。

优选地,所述可视化变量实现组件互联模型中触发的组件包括:

所述页面:切换至变量值所对应序号的页面;

所述画布:切换至变量值所对应序号的子画布;

所述控件:调用对应控件的控件控制函数;

所述指令:调用变量值所对应地址的指令。

优选地,所述可视化变量可以被内部组件、外部串口或者人机交互过程所改变,这种改变变量的过程称为事件,事件的发生改变了变量,从而改变变量所关联的组件,以此方式实现了组件之间交互或者人机交互,触发可视化变量改变的事件包括:

页面事件:系统初始化或者切换页面时发生,整个页面刷新同时调用页面指令;

鼠标事件:用户触碰屏幕时会调用可触碰控件的控制函数,触碰处理函数修改其绑定的可视化变量;

串口事件:串口通过可视化变量所绑定的寄存器号直接修改可视化变量;

定时器事件:周期性地更改其所绑定的可视化变量;

指令事件:部分指令可以直接修改可视化变量。

本发明具有以下有益效果:

1、本发明通过在人机界面中实现了一种可视化变量与组件绑定的方法,通过该方法可以达到的好处有:通过可视化变量来连接各个组件,使组件之间能够联动,同时不同组件之间以及组件与外界能够方便地进行通信。而且整个界面的开发过程中不需要引入写代码的过程。

2、本发明通过再操作系统上完成了可视化控件的绑定的方法的验证,同时提出了整个人机界面系统的运行流程。这样的好处是:使用了完全无代码的方式实现了组件之间的互联与通信,减少了开发人员的人力成本。

当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的一种人机界面的可视化变量关联组件的方法流程图;

图2为可视化变量触发绑定组件的过程流程图;

图3为组件互联示意图;

图4为绘图组件互联示意图;

图5为事件模型示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

请参阅图1所示,本发明为一种人机界面的可视化变量关联组件的方法,通过可视化变量绑定组件来实现组件的互联与通信的方法运行于自主研发的人机界面操作系统上,首先用户在生成配置文件的时候需要将可视化变量与相关控件绑定,然后人机界面的运行过程分为以下几个步骤:

SS0,用户在生成配置文件的时,将可视化变量与控件绑定;

SS1,初始化可视化变量:读取可视化变量的配置信息,并且绑定至组件;

SS2,初始化所有任务:初始化操作系统中所有任务;

SS3,加载页面:加载0号页面信息,可视化变量改变事件;

SS4,刷新绘图:刷新所有的绘图组件并绘制;

SS5,通过人机交互等待改变可视化变量的事件发生,当可视化变量发生改变的时候,会触发所有绑定的组件,当可视化变量发生改变时调用的函数,用来更改绑定的组件;

SS6,调用控制函数:可视化变量发生改变后,调用所有绑定组件的组件控制函数。

其中如图2所示,SS6,当可视化变量发生改变的时候,会触发所有绑定的组件,执行步骤如下:

a.触发所有绑定页面:跳转至变量值对应页面;

b.触发所有绑定画布:切换画布的当前显示的子画布;

c.触发所有绑定控件:调用控件的控制函数;

d.触发所有绑定指令:发送变量值对应地址所对应的指令。

其中,当可视化变量发生改变,触发所有绑定控件:调用控件的控制函数具体步骤为:

e.判断控件是否在页面内;

f.判断控件是否被显示;

g.当widgetRefresh=1时或widgetRefresh=0时,调用控件的控制函数。

其中如图3所示,SS7,调用控制函数:可视化变量发生改变后,调用所有绑定组件的组件控制函数,其中,组件控制函数包括页面控制函数、画布控制函数和控件控制函数,该页面控制函数、画布控制函数和控件控制函数通过HMI显示进行显示,调用HMI重新绘制;可视化变量发生改变后,调用指令控制函数发送指令。

一种人机界面的可视化变量关联组件系统,包括:

绘图组件,用于人机界面的绘图组件之间的信息交互;

可视化变量,包括值与被绑定元件列表;

可视化变量实现组件互联模型;

触发可视化变量改变的事件。

其中如图4所示,人机界面开发平台包含的绘图组件包括页面(page),画布(canvas),子画布(subcanvas)以及控件(widget);

页面:为动态内存加载的基本单元,一个页面包含多个画布,当切换页面的时候内存数据全部重新加载;

画布:绘图的基本单元,所绘制的控件数据存在于画布上,每一个画布包含多个子画布;

子画布:为多个控件的集合,同一个画布中不同子画布完全重叠在一起,通过画布来切换当前显示的子画布;

控件:为基本的显示单元,控件的类型包含按钮、仪表盘、进度条等多种类型,用于实现人机交互以及界面显示。

其中,可视化变量,可视化变量包含两个基本信息:值与被绑定元件列表。值可以设置为任意类型,包括整数或者字符串。绑定元件列表中可以绑定绘图元件或者串口寄存器。绑定不同元件所实现的功能不同:

值包括整数或者字符串;

绑定元件列表中绑定绘图元件和/或串口寄存器。

其中,绑定绘图元件和/或串口寄存器具体为:

页面:与页面绑定的可视化变量通过改变值来切换显示的页面,或发送对应页面的页面指令;

画布:与画布绑定的可视化变量切换画布当前显示的子画布;

控件:与控件绑定的可视化变量改变当前控件的值;

串口寄存器:与串口寄存器绑定的可视化变量向串口中发送数据或者从串口中接受数据,通过串口与外界进行信息交互。

其中,当有内部或者外部的事件触发可视化变量的改变的时候,可视化变量会依次触发其所绑定的所有组件,从而将同一变量所绑定的组件实现互联,可视化变量实现组件互联模型中触发的组件包括:

页面:切换至变量值所对应序号的页面;

画布:切换至变量值所对应序号的子画布;

控件:调用对应控件的控件控制函数;

指令:调用变量值所对应地址的指令。

其中如图5所示,可视化变量可以被内部组件、外部串口或者人机交互过程所改变,这种改变变量的过程称为事件,事件的发生改变了变量,从而改变变量所关联的组件,以此方式实现了组件之间交互或者人机交互,触发可视化变量改变的事件包括:

页面事件:系统初始化或者切换页面时发生,整个页面刷新同时调用页面指令;

鼠标事件:用户触碰屏幕时会调用可触碰控件的控制函数,触碰处理函数修改其绑定的可视化变量;

串口事件:串口通过可视化变量所绑定的寄存器号直接修改可视化变量;

定时器事件:周期性地更改其所绑定的可视化变量;

指令事件:部分指令可以直接修改可视化变量。

改变可视化变量所发生的事件需要调用的各个任务,包括鼠标任务、页面切换任务、定时器任务、串口任务和指令发送任务

值得注意的是,上述系统实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘或光盘等。

以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。

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