人机交互界面对操作指令响应的控制方法及终端
【技术领域】
本发明涉及信息采集与交互技术领域,特别是涉及一种人机交互界面对操作指令响应的控制方法及终端。
【背景技术】
人机交互界面(Human Machine
Interface,HMI)是系统与用户之间进行交互和信息交换的媒介,承担着接收用户的操作指令并对操作指令进行反馈的任务。在实际操作过程中,人机交互界面对用户的操作指令的反馈往往存在一定的延时,具体的延时时长取决于人机交互界面的运行负荷,即,当人机交互界面的运行负荷较重时,其对操作指令的反馈的延时较长。然而较长的延时极易使得用户误认为人机交互界面并没有响应该操作指令,从而继续多次重复下达此尚未被人机交互界面响应的操作指令,这进一步加重了人机交互界面的运行负荷,严重时甚至会出现人机交互界面运行崩溃的情况。
为解决上述问题,现有技术的方法主要有两种:一是在人机交互界面繁忙期间也即运行负荷较重时,暂停响应用户的操作指令,直至人机交互界面空闲后才恢复;二是通过操作指令队列接收用户的操作指令,而后中转发送给人机交互界面进行响应执行。
然而,现有技术中的上述第一种方法完全暂停响应用户的操作指令,极易造成在人机交互界面繁忙期间内用户下达的有效操作指令被遗失。第二种方法不考虑当前人机交互界面繁忙还是空闲,均将接收到的任何操作指令存入操作指令队列中,由于操作指令队列中的所有操作指令最终都会被人机交互界面调出并执行,因此一旦用户在人机交互界面繁忙期间多次重复下达操作指令,即造成大量无效操作指令的积压,加重人机交互界面后期运行的负担,从而大大降低用户的体验度。
【发明内容】
鉴于此,本发明实施例所要解决的技术问题是提供一种人机交互界面对操作指令响应的控制方法及终端,能够在人机交互界面繁忙期间保持对操作指令的接收,并对无效操作指令进行过滤以避免积压,有效的降低人机交互界面的运行负担,缩短对用户操作指令响应的延时时长。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种人机交互界面对操作指令响应的控制方法,包括:获取用户新下达的操作指令;判断操作指令队列中已存储的操作指令的数量是否大于或等于预定阈值;当操作指令队列中已存储的操作指令的数量大于或等于预定阈值时,丢弃用户新下达的操作指令;当操作指令队列中已存储的操作指令的数量小于预定阈值时,判断操作指令队列中已存储的操作指令的数量是否大于第一阈值,以判断人机交互界面是否处于繁忙状态;若操作指令队列中已存储的操作指令的数量大于所述第一阈值,则判定人机交互界面处于繁忙状态,并判断用户新下达的操作指令与预先建立的操作指令队列中位于最末端的操作指令是否相同,若所述用户新下达的操作指令与所述操作指令队列中位于最末端的操作指令相同,则丢弃所述用户新下达的操作指令,并继续执行所述获取用户新下达的操作指令的步骤;若所述操作指令队列中已存储的操作指令的数量小于或等于所述第一阈值,则判定人机交互界面不处于繁忙状态或者用户新下达的操作指令与操作指令队列中位于最末端的操作指令不相同,则将用户新下达的操作指令存储至操作指令队列中,以供人机交互界面调用并执行。
其中,所述获取用户新下达的操作指令的步骤包括:通过触摸屏、键盘、鼠标的至少一种获取用户下达的操作指令。
为解决上述技术问题,本发明采用的另一个技术方案是:提供一种人机交互界面对操作指令响应的控制方法,包括:获取用户新下达的操作指令;判断人机交互界面是否处于繁忙状态;若人机交互界面处于繁忙状态,则判断用户新下达的操作指令与预先建立的操作指令队列中位于最末端的操作指令是否相同;若人机交互界面不处于繁忙状态或者用户新下达的操作指令与操作指令队列中位于最末端的操作指令不相同,则将用户新下达的操作指令存储至操作指令队列中,以供人机交互界面调用并执行。
其中,判断人机交互界面是否处于繁忙状态包括:判断操作指令队列中已存储的操作指令的数量是否大于第一阈值,如果大于则判断人机交互界面处于繁忙状态。
其中,判断人机交互界面是否处于繁忙状态包括:判断在获取用户新下达的操作指令之前预定时间内,人机交互界面对操作指令的平均响应时间是否大于第二阈值,若大于则判断人机交互界面处于繁忙状态。
其中,获取用户新下达的操作指令之后、判断所述人机交互界面是否处于繁忙状态之前包括:判断操作指令队列中已存储的操作指令的数量是否大于或等于第三阈值;当操作指令队列中已存储的操作指令的数量小于第三阈值时,执行判断人机交互界面是否处于繁忙状态的步骤;当操作指令队列中已存储的操作指令的数量大于或等于第三阈值时,丢弃用户新下达的操作指令。
其中,控制方法还包括:若用户新下达的操作指令与操作指令队列中位于最末端的操作指令相同,则丢弃用户新下达的操作指令,并继续执行获取用户新下达的操作指令的步骤。
为解决上述技术问题,本发明采用的又一个技术方案是:提供一种具有人机交互界面的终端,包括:接收模块,用于获取用户新下达的操作指令;第一判断模块,用于判断人机交互界面是否处于繁忙状态;第二判断模块,用于在第一判断模块判断人机交互界面处于繁忙状态时,判断用户新下达的操作指令与预先建立的操作指令队列中位于最末端的操作指令是否相同;存储模块,用于在第一判断模块判断人机交互界面不处于繁忙状态或者第二判断模块判断用户新下达的操作指令与操作指令队列中位于最末端的操作指令不相同时,将用户新下达的操作指令存储至操作指令队列中,以供人机交互界面调用并执行。
其中,第一判断模块用于判断操作指令队列中已存储的操作指令的数量是否大于第一阈值,如果大于则判断人机交互界面处于繁忙状态。
其中,第一判断模块用于判断在获取用户新下达的操作指令之前的预定时间内,人机交互界面对操作指令的平均响应时间是否大于第二阈值,如果大于则判断人机交互界面处于繁忙状态。
其中,终端还包括第三判断模块和处理模块,第三判断模块用于判断操作指令队列中已存储的操作指令的数量是否大于或等于第三阈值;当判断操作指令队列中已存储的操作指令的数量小于第三阈值时,第一判断模块判断人机交互界面是否处于繁忙状态;当判断操作指令队列中已存储的操作指令的数量大于或等于第三阈值时,终端丢弃用户新下达的操作指令。
其中,若第二判断模块判断用户新下达的操作指令与预先建立的操作指令队列中位于最末端的操作指令相同,则终端丢弃用户新下达的操作指令,并控制接收模块继续获取用户新下达的操作指令。
为解决上述技术问题,本发明采用的又一个技术方案是:提供一种人机交互界面对操作指令响应的控制装置,包括:输入设备、输出设备、处理器和存储器,所述处理器用于执行如下步骤:获取用户新下达的操作指令;判断人机交互界面是否处于繁忙状态;若人机交互界面处于繁忙状态,则判断用户新下达的操作指令与预先建立的操作指令队列中位于最末端的操作指令是否相同;若人机交互界面不处于繁忙状态或者用户新下达的操作指令与操作指令队列中位于最末端的操作指令不相同,则将用户新下达的操作指令存储至操作指令队列中,以供人机交互界面调用并执行。
其中,处理器判断操作指令队列中已存储的操作指令的数量是否大于第一阈值,如果大于则判断人机交互界面处于繁忙状态。
其中,处理器判断在获取用户新下达的操作指令之前预定时间内,人机交互界面对操作指令的平均响应时间是否大于第二阈值,若大于则判断人机交互界面处于繁忙状态。
其中,处理器在获取用户新下达的操作指令之后、判断所述人机交互界面是否处于繁忙状态之前,还用于:判断操作指令队列中已存储的操作指令的数量是否大于或等于第三阈值;当操作指令队列中已存储的操作指令的数量小于第三阈值时,执行判断人机交互界面是否处于繁忙状态的步骤;当操作指令队列中已存储的操作指令的数量大于或等于第三阈值时,丢弃用户新下达的操作指令。
其中,处理器还用于判断:若用户新下达的操作指令与操作指令队列中位于最末端的操作指令相同,则丢弃用户新下达的操作指令,并继续执行获取用户新下达的操作指令的步骤。
本发明实施例的有益效果是:区别于现有技术的情况,本发明实施例通过在人机交互界面繁忙时将获取的用户下达的操作指令与操作指令队列中位于最末端的操作指令进行比较,并在判断二者不相同时才将用户下达的操作指令存储至操作指令队列中以供人机交互界面调用并执行。另外在人机交互界面不繁忙时,不再将用户下达的操作指令与操作指令队列中位于最末端的操作指令进行比较,而是直接将用户下达的操作指令存储至操作指令队列中以供人机交互界面调用并执行。可见,本发明在人机交互界面繁忙期间依然能够通过操作指令队列保持对操作指令的接收,不会造成有效操作指令的遗失;并且在系统繁忙时通过对相同操作指令的丢弃能够实现对用户多次重复下达的操作指令的过滤,避免无效操作指令的积压,从而有效的降低人机交互界面的运行负担,缩短对操作指令响应的延时时长,提高用户的体验度。
【附图说明】
图1是本发明第一实施例的人机交互界面对操作指令响应的控制方法的流程示意图;
图2是本发明第二实施例的人机交互界面对操作指令响应的控制方法的流程示意图;
图3是本发明第三实施例的人机交互界面对操作指令响应的控制方法的流程示意图;
图4是本发明第四实施例的人机交互界面对操作指令响应的控制方法的流程示意图;
图5是本发明优选实施例的具有人机交互界面的终端的原理示意框图。
【具体实施方式】
为使本发明的目的、技术方案和技术效果更加清楚,下面结合附图1~5对本发明的实施例作进一步地的详细描述。
图1是本发明第一实施例的人机交互界面对操作指令响应的控制方法的流程示意图。请参阅图1所示,本实施例的控制方法可以包括:
步骤S11:获取用户新下达的操作指令。
举例来说,本实施例的人机交互界面可以包括一个或多个具有菜单项的终端操作界面,并且优选将终端设备的操作系统的功能调用和各个应用程序接口封装至其中。当用户通过终端设备的输入工具下达操作指令时,人机交互界面的硬件部分通过接口适配层提供的操作系统的功能调用接口以及应用程序调用接口,将该操作指令传输至处理器,以完成对用户新下达的操作指令的获取。
本实施例的终端设备可以为具有人机交互界面的任何终端设备,例如可以是可编程序控制器(Programmable
Logic Controller
,PLC)、变频器、直流调速器、仪表等工业控制设备,也可以是电子记事簿、个人数字助理(PAD)、便携式通信装置、智能手机等移动终端,当然并不局限于此。人机交互界面可以利用上述终端设备的显示屏显示,通过触摸屏、键盘、鼠标等输入工具获取用户下达的操作指令或输入的工作参数,以实现其信息的内部形式与人类可接受形式之间的转换。
步骤S12:判断人机交互界面是否处于繁忙状态。
人机交互界面作为一种人机接口,其在实际应用场景中由硬件和软件两部分组成。硬件部分可以包括处理器、显示单元、输入单元、通讯接口、数据存储单元等,其中处理器的性能决定了整个人机交互界面的性能,是其核心单元。软件部分一般包括运行于硬件部分中的系统软件和运行于PC机(Personal
Computer,个人计算机或电脑)中的Windows等操作系统下的画面组态软件。需要指出的是,人机交互界面的硬件部分可以是终端设备的硬件并且软件部分可以是终端设备的操作系统,因此可将其看作是终端设备的一种嵌入式操作系统。
人机交互界面对预先建立的操作指令队列中的操作指令进行处理,操作指令队列的建立举例来说,可以首先使用人机交互界面的画面组态软件编程一种能够表示操作指令队列的工程文件,然后通过PC机与人机交互界面的硬件部分(的输入单元)的串行式通讯接口的连接,将编程好的工程文件传输至处理器以运行。可以理解的是,操作指令队列在实际应用场景中表现为一串各个操作指令对应的数据编码的组合。
人机交互界面处于繁忙状态表示其运行负荷较重,具体可以表现为其对操作指令的反馈的延时较长。若判断人机交互界面处于繁忙状态,则执行步骤S13,若判断人机交互界面不处于繁忙状态,则保持当前对操作指令的处理方式,即执行步骤S14。
步骤S13:判断用户新下达的操作指令与预先建立的操作指令队列中位于最末端的操作指令是否相同。
若判断用户新下达的操作指令与预先建立的操作指令队列中位于最末端的操作指令相同,则丢弃用户新下达的操作指令,并继续执行获取用户新下达的操作指令的步骤S11。
若判断用户新下达的操作指令与预先建立的操作指令队列中位于最末端的操作指令不相同,则执行步骤S14。
步骤S14:将用户新下达的操作指令存储至操作指令队列中,以供人机交互界面调用并执行。
人机交互界面的处理器通过接口适配层提供的操作系统的功能调用接口从数据存储单元中调用操作指令队列中的操作指令,并通过接口适配层提供的应用程序调用接口调用给终端设备,以供终端设备对应安装的应用程序执行。值得注意的是,操作指令的调用和执行遵循先入先出的原则,即先存入操作指令队列的操作指令被先调出并执行、后存入操作指令队列的操作指令被后调出并执行。
图2是本发明第二实施例的人机交互界面对操作指令响应的控制方法的流程示意图。请参阅图2所示,在第一实施例的基础上进行描述,本实施例的控制方法包括:
步骤S21:获取用户新下达的操作指令。
步骤S22:判断操作指令队列中已存储的操作指令的数量是否大于第一阈值,如果大于则判断人机交互界面处于繁忙状态,即相当于第一实施例中的步骤S12,而后执行步骤S23。如果小于或等于则判断人机交互界面不处于繁忙状态,则执行步骤S24。
本实施例与现有技术的第二种方法的区别在于:对于用户新下达的一个操作指令,人机交互界面在完成获取后并不立刻将其加入操作指令队列中,而是需要考虑将其加入后会不会超出操作指令队列的可承受范围,以免人机交互界面的处理器的超负荷运行。
基于此,本实施例为操作指令队列设置第一阈值作为其可承受范围的评判标准,即该第一阈值为判断人机交互界面处于繁忙状态时操作指令队列对应存储的操作指令的数量,其不仅能够保证人机交互界面的处理器的稳定运行,而且其范围不能较小,应该能够最大程度的保证不会遗失用户后续下达的操作指令。本领域技术人员可以通过实际应用场景中发生的多次具体事件的分析与总结得到其具体取值或取值范围,且该第一阈值为大于等于零且优选为无符号整型数。
步骤S23:判断用户新下达的操作指令与预先建立的操作指令队列中位于最末端的操作指令是否相同。
若判断用户新下达的操作指令与预先建立的操作指令队列中位于最末端的操作指令相同,则执行步骤S25丢弃用户新下达的操作指令,并继续执行获取用户新下达的操作指令的步骤S21。
若判断用户新下达的操作指令与预先建立的操作指令队列中位于最末端的操作指令不相同,则执行步骤S24。
步骤S24:将用户新下达的操作指令存储至操作指令队列中,以供人机交互界面调用并执行。
步骤S25:丢弃用户新下达的操作指令。
图3是本发明第三实施例的人机交互界面对操作指令响应的控制方法的流程示意图。请参阅图3所示,在第一实施例的基础上进行描述,本实施例的控制方法包括:
步骤S31:获取用户新下达的操作指令。
步骤S32:判断在获取用户新下达的操作指令之前的预定时间内,人机交互界面对操作指令的平均响应时间是否大于第二阈值。
如果大于则判断人机交互界面处于繁忙状态,即相当于第一实施例中的步骤S12,而后执行步骤S33。如果小于或等于则判断人机交互界面不处于繁忙状态,则执行步骤S34。
其中,第二阈值作为本实施例的繁忙状态的评判标准,表示人机交互界面对操作指令的平均响应时间在不处于繁忙状态时的最大值。
步骤S33:判断用户新下达的操作指令与预先建立的操作指令队列中位于最末端的操作指令是否相同。
若判断用户新下达的操作指令与预先建立的操作指令队列中位于最末端的操作指令相同,则执行步骤S35丢弃用户新下达的操作指令,并继续执行获取用户新下达的操作指令的步骤S31。
若判断用户新下达的操作指令与预先建立的操作指令队列中位于最末端的操作指令不相同,则执行步骤S34。
步骤S34:将用户新下达的操作指令存储至操作指令队列中,以供人机交互界面调用并执行。
步骤S35:丢弃用户新下达的操作指令。
第二实施例及第三实施例对判断人机交互界面是否繁忙的具体方法进行了举例说明,当然还可以采用其它合适的判断方法来判断人机交互界面是否繁忙,例如通过处理器使用率的高低来判断,当处理器使用率高于某一预定阈值时判断为人机交互界面繁忙,在此不对判断人机交互界面是否繁忙的具体方法进行限制。
图4是本发明第四实施例的人机交互界面对操作指令响应的控制方法的流程示意图。请参阅图4所示,在第一至第三实施例的基础上进行描述,本实施例的控制方法包括:
步骤S41:获取用户新下达的操作指令。
步骤S42:判断操作指令队列中已存储的操作指令的数量是否大于或等于第三阈值。
当操作指令队列中已存储的操作指令的数量小于第三阈值时,执行步骤S43判断人机交互界面是否处于繁忙状态。
当操作指令队列中已存储的操作指令的数量大于或等于第三阈值时,执行步骤S46丢弃用户新下达的操作指令。
本实施例中的第三阈值(预定阈值)表示操作指令队列中允许存储的操作指令的数量上限,而第二实施例中的第一阈值表示人机交互界面处于繁忙状态时操作指令队列对应存储的操作指令的数量,因此第三阈值大于第一阈值。
步骤S43:判断人机交互界面是否处于繁忙状态。
若判断人机交互界面处于繁忙状态,则执行步骤S44。若判断人机交互界面不处于繁忙状态,则执行步骤S45。
该步骤中,判断人机交互界面是否处于繁忙状态可以包括上述第二实施例的步骤S22或第三实施例的步骤S32。
步骤S44:判断用户新下达的操作指令与预先建立的操作指令队列中位于最末端的操作指令是否相同。
若判断用户新下达的操作指令与预先建立的操作指令队列中位于最末端的操作指令相同,则执行步骤S46丢弃用户新下达的操作指令,并继续执行获取用户新下达的操作指令的步骤S41。
若判断用户新下达的操作指令与预先建立的操作指令队列中位于最末端的操作指令不相同,则执行步骤S45。
步骤S45:将用户新下达的操作指令存储至操作指令队列中,以供人机交互界面调用并执行。
步骤S46:丢弃用户新下达的操作指令。
基于上述,可知本实施例在人机交互界面繁忙期间仍然能够通过操作指令队列保持对操作指令的接收,不会造成有效操作指令的遗失;并且通过对相同操作指令的丢弃能够实现对用户多次重复下达的操作指令的过滤,避免无效操作指令的积压,从而有效的降低人机交互界面的运行负担,缩短对操作指令响应的延时时长,提高用户的体验度。
本发明还提供一种具有人机交互界面的终端,请参阅图5所示的具有人机交互界面56的终端50,该终端50可包括接收模块51、第一判断模块52、第二判断模块53以及存储模块54。其中:
接收模块51可用于获取用户新下达的操作指令。
第一判断模块52可用于判断人机交互界面56是否处于繁忙状态。
第二判断模块53可用于在第一判断模块52判断人机交互界面56处于繁忙状态时,判断接收模块51获取的用户新下达的操作指令与预先建立的操作指令队列中位于最末端的操作指令是否相同。
在第一判断模块52判断人机交互界面56不处于繁忙状态或者第二判断模块53判断用户新下达的操作指令与操作指令队列中位于最末端的操作指令不相同时,存储模块54可用于将用户新下达的操作指令存储至操作指令队列中,以供人机交互界面56调用并执行。
若第二判断模块53判断用户新下达的操作指令与预先建立的操作指令队列中位于最末端的操作指令相同,则终端50可丢弃用户新下达的操作指令,并控制接收模块51继续获取用户新下达的操作指令。
在本发明实施例中,第一判断模块52判断人机交互界面56是否处于繁忙状态,可以通过操作指令队列中已存储的操作指令的数量或人机交互界面对操作指令的平均响应时间进行判断。具体而言:
第一判断模块52可用于判断操作指令队列中已存储的操作指令的数量是否大于第一阈值,如果大于则判断人机交互界面处于繁忙状态。或者,
第一判断模块52可用于判断在获取用户新下达的操作指令之前的预定时间内,人机交互界面56对操作指令的平均响应时间是否大于第二阈值,如果大于则判断人机交互界面56处于繁忙状态。
鉴于操作指令队列中允许存储的操作指令的数量上限,与人机交互界面56处于繁忙状态时操作指令队列对应存储的操作指令的数量,可以是不相同的,进一步地,终端50还可以包括第三判断模块55。
第三判断模块55用于判断操作指令队列中已存储的操作指令的数量是否大于或等于第三阈值。
其中,第三阈值表示操作指令队列中允许存储的操作指令的数量的最大值,而第一阈值表示人机交互界面56处于繁忙状态时操作指令队列对应存储的操作指令的数量,因此第三阈值大于第一阈值。
当第三判断模块55判断操作指令队列中已存储的操作指令的数量小于第三阈值时,第一判断模块52判断人机交互界面56是否处于繁忙状态。当第三判断模块55判断操作指令队列中已存储的操作指令的数量大于或等于第三阈值时,终端50丢弃用户新下达的操作指令。
本发明图5所示实施例的终端50,基于图1所示实施例的控制方法,因此具有与其相同的有益效果。同时各个功能模块能够执行且对应执行方法实施例的步骤,本发明对此不再一一赘述。
应该理解到,本发明实施例所揭露的终端50的描述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块结合或者集成到另一个系统中,或一些特征可以忽略,或不执行。另外,模块相互之间的耦合或通信连接可以是通过一些接口,也可以是电性或其它的形式。
上述各个功能模块作为终端50的组成部分,可以是或者也可以不是物理框,既可以位于一个地方,也可以分布到多个网络单元上,既可以采用硬件的形式实现,也可以采用软件功能框的形式实现。本领域技术人员可以根据实际的需要,选择其中的部分或者全部模块来实现本发明技术方案的目的。
图6是本发明实施例用户设备20的结构示意图。用户设备20可包括输入设备210、输出设备220、处理器230和存储器240。
其中,输入设备210、输出设备220、处理器230和存储器240可以通过总线250实现总线连接,当然,输入设备210、输出设备220、处理器230和存储器240也可以采用其它连接方式,在此不作限制。
存储器240可以包括只读存储器和随机存取存储器,并向处理器230提供指令和数据。存储器240的一部分还可以包括非易失性随机存取存储器(NVRAM)。
在本发明实施例中,处理器230通过调用存储器240存储的操作指令(该操作指令可存储在操作系统中),执行如下操作:
获取用户新下达的操作指令;
判断所述人机交互界面是否处于繁忙状态;
若所述人机交互界面处于繁忙状态,则判断所述用户新下达的操作指令与预先建立的操作指令队列中位于最末端的操作指令是否相同;
若所述人机交互界面不处于繁忙状态或者所述用户新下达的操作指令与所述操作指令队列中位于最末端的操作指令不相同,则将所述用户新下达的操作指令存储至所述操作指令队列中,以供所述人机交互界面调用并执行。
其中,处理器230判断操作指令队列中已存储的操作指令的数量是否大于第一阈值,如果大于则判断人机交互界面处于繁忙状态。或者,处理器230判断在获取用户新下达的操作指令之前预定时间内,人机交互界面对操作指令的平均响应时间是否大于第二阈值,若大于则判断人机交互界面处于繁忙状态。
优选地,处理器230在获取用户新下达的操作指令之后、判断所述人机交互界面是否处于繁忙状态之前,还用于:判断操作指令队列中已存储的操作指令的数量是否大于或等于第三阈值;当操作指令队列中已存储的操作指令的数量小于第三阈值时,执行判断人机交互界面是否处于繁忙状态的步骤;当操作指令队列中已存储的操作指令的数量大于或等于第三阈值时,丢弃用户新下达的操作指令。
优选地,处理器230还用于判断:若用户新下达的操作指令与操作指令队列中位于最末端的操作指令相同,则丢弃用户新下达的操作指令,并继续执行获取用户新下达的操作指令的步骤。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,例如各实施例之间技术特征的相互结合,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。