掌桥专利:专业的专利平台
掌桥专利
首页

任务执行方法、装置、计算机可读存储介质及车载终端

文献发布时间:2023-06-19 10:41:48


任务执行方法、装置、计算机可读存储介质及车载终端

技术领域

本申请涉及计算机技术领域,特别是涉及一种任务执行方法、装置、计算机可读存储介质及车载终端。

背景技术

可以理解的是,用户如驾驶者通常可通过车载终端设备的用户操作界面向处理平台下发一些需要处理的任务,如网络连接任务、车载终端设备的软件升级的任务,参数设置任务、参数获取任务等。

在当前的嵌入式软件设计中,当需要处理各种任务时,任务请求者直接调用任务的实现接口来执行处理这些任务,任务请求者与任务实现者通常呈现一种“紧耦合”,任务的调用者必须知道任务请求和任务实现的具体细节,来调度任务的具体处理。任务请求者需要知道任务实现的具体细节,这就加深了各个模块之间的耦合性,增加了程序维护的复杂性。

发明内容

本申请提供了一种任务执行方法、装置、计算机可读存储介质及车载终端,降低模块之间的耦合性,有效降低软件维护的难度和复杂程度。

为解决上述技术问题,本发明实施例提供以下技术方案:

本发明实施例一方面提供了一种任务执行方法,包括:

预先创建命令接口和至少2个命令对象,同时为各命令对象指定执行相应任务的接收对象;每个命令对象为所述命令接口的实现对象,且对应一种任务类型;

将用户下发的任务执行指令转化为相应的目标命令;

调用所述命令接口提交命令执行请求至目标命令对象,以使所述目标命令对象调用自己的接收对象执行任务。

可选的,所述调用所述命令接口提交命令执行请求至目标命令对象包括:

预先创建调用对象,所述调用对象存储命令对象;

将所述目标命令下发至目标调用对象;所述目标调用对象存储所述目标命令对象;

所述目标调用对象调用自身的命令对象的执行操作提交命令执行请求,并通过所述命令接口将所述命令执行请求下发给所述目标命令对象。

可选的,所述命令接口封装至少2种类型的命令对象。

可选的,所述调用对象存储至少2种类型的命令对象。

可选的,所述调用所述命令接口提交命令执行请求至目标命令对象之后,还包括:

当接收到任务撤销指令,判断所述任务撤销指令对应的任务是否已成功执行;

若所述任务撤销指令对应的任务还未执行,将所述目标命令设置为可撤销命令,以使所述目标命令对象在执行所述命令执行请求之前存储当前状态。

可选的,所述预先创建命令接口和至少2个命令对象之后,还包括:

当接收到新任务增加指令,判断所述新任务所属任务类型是否已存在;

若所述新任务所属任务类型已存在,将所述新任务与所属任务类型对应的原命令对象建立对应关系,同时在所述原命令对象中指定执行所述新任务的接收对象;

若所述新任务所属任务类型不存在,为所述新任务创建相应的新命令对象,同时为所述新命令对象指定执行所述新任务的接收对象。

本发明实施例另一方面提供了一种任务执行装置,包括:

命令创建模块,用于预先创建命令接口和至少2个命令对象,同时为各命令对象指定执行相应任务的接收对象;每个命令对象为所述命令接口的实现对象,且对应一种任务类型;

任务转化模块,用于将用户下发的任务执行指令转化为相应的目标命令;

命令执行模块,用于调用所述命令接口提交命令执行请求至目标命令对象,以使所述目标命令对象调用自己的接收对象执行任务。

可选的,所述命令执行模块包括:

调用对象创建子模块,用于预先创建调用对象,所述调用对象存储命令对象;

命令调用子模块,用于将所述目标命令下发至目标调用对象;所述目标调用对象存储所述目标命令对象;所述目标调用对象调用自身的命令对象的执行操作提交命令执行请求,并通过所述命令接口将所述命令执行请求下发给所述目标命令对象。

可选的,所述命令创建模块为将至少2种类型的命令对象封装至命令接口的模块。

可选的,所述调用对象创建子模块为调用对象存储至少2种类型的命令对象的模块。

可选的,任务执行装置还包括任务撤销模块,用于当接收到任务撤销指令,若所述任务撤销指令对应的任务还未执行,将所述目标命令设置为可撤销命令,以使所述目标命令对象在执行所述命令执行请求之前存储当前状态。

可选的,任务执行装置还包括任务增加模块,用于当接收到新任务增加指令,若所述新任务所属任务类型已存在,将所述新任务与所属任务类型对应的原命令对象建立对应关系,同时在所述原命令对象中指定执行所述新任务的接收对象;若所述新任务所属任务类型不存在,为所述新任务创建相应的新命令对象,同时为所述新命令对象指定执行所述新任务的接收对象。

本发明实施例还提供了一种任务执行装置,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如下步骤:

预先创建命令接口和至少2个命令对象,同时为各命令对象指定执行相应任务的接收对象;每个命令对象为所述命令接口的实现对象,且对应一种任务类型;

将用户下发的任务执行指令转化为相应的目标命令;

调用所述命令接口提交命令执行请求至目标命令对象,以使所述目标命令对象调用自己的接收对象执行任务。

可选地,所述处理器用于执行存储器中存储的计算机程序时还可以实现以下步骤:

预先创建调用对象,所述调用对象存储命令对象;

将所述目标命令下发至目标调用对象;所述目标调用对象存储所述目标命令对象;

所述目标调用对象调用自身的命令对象的执行操作提交命令执行请求,并通过所述命令接口将所述命令执行请求下发给所述目标命令对象。

可选地,所述处理器用于执行存储器中存储的计算机程序时还可以实现以下步骤:

将至少2种类型命令对象封装至所述命令接口。

可选地,所述处理器用于执行存储器中存储的计算机程序时还可以实现以下步骤:

所述调用对象存储至少2种类型的命令对象。

可选地,所述处理器用于执行存储器中存储的计算机程序时还可以实现以下步骤:

所述调用所述命令接口提交命令执行请求至目标命令对象之后,还包括:

当接收到任务撤销指令,判断所述任务撤销指令对应的任务是否已成功执行;

若所述任务撤销指令对应的任务还未执行,将所述目标命令设置为可撤销命令,以使所述目标命令对象在执行所述命令执行请求之前存储当前状态。

可选地,所述处理器用于执行存储器中存储的计算机程序时还可以实现以下步骤:

所述预先创建命令接口和至少2个命令对象之后,还包括:

当接收到新任务增加指令,判断所述新任务所属任务类型是否已存在;

若所述新任务所属任务类型已存在,将所述新任务与所属任务类型对应的原命令对象建立对应关系,同时在所述原命令对象中指定执行所述新任务的接收对象;

若所述新任务所属任务类型不存在,为所述新任务创建相应的新命令对象,同时为所述新命令对象指定执行所述新任务的接收对象。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有任务执行程序,所述任务执行程序被处理器执行时实现如下步骤:

预先创建命令接口和至少2个命令对象,同时为各命令对象指定执行相应任务的接收对象;每个命令对象为所述命令接口的实现对象,且对应一种任务类型;

将用户下发的任务执行指令转化为相应的目标命令;

调用所述命令接口提交命令执行请求至目标命令对象,以使所述目标命令对象调用自己的接收对象执行任务。

可选地,所述计算机程序被处理器执行时还可以具体实现以下步骤:

预先创建调用对象,所述调用对象存储命令对象;

将所述目标命令下发至目标调用对象;所述目标调用对象存储所述目标命令对象;

所述目标调用对象调用自身的命令对象的执行操作提交命令执行请求,并通过所述命令接口将所述命令执行请求下发给所述目标命令对象。

可选地,所述计算机程序被处理器执行时还可以具体实现以下步骤:

将至少2种类型命令对象封装至所述命令接口。

可选地,所述计算机程序被处理器执行时还可以具体实现以下步骤:

所述调用对象存储至少2种类型的命令对象。

可选地,所述计算机程序被处理器执行时还可以具体实现以下步骤:

所述调用所述命令接口提交命令执行请求至目标命令对象之后,还包括:

当接收到任务撤销指令,判断所述任务撤销指令对应的任务是否已成功执行;

若所述任务撤销指令对应的任务还未执行,将所述目标命令设置为可撤销命令,以使所述目标命令对象在执行所述命令执行请求之前存储当前状态。

可选地,所述计算机程序被处理器执行时还可以具体实现以下步骤:

所述预先创建命令接口和至少2个命令对象之后,还包括:

当接收到新任务增加指令,判断所述新任务所属任务类型是否已存在;

若所述新任务所属任务类型已存在,将所述新任务与所属任务类型对应的原命令对象建立对应关系,同时在所述原命令对象中指定执行所述新任务的接收对象;

若所述新任务所属任务类型不存在,为所述新任务创建相应的新命令对象,同时为所述新命令对象指定执行所述新任务的接收对象。

本发明实施例最后还提供了一种车载终端,包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现如下步骤:

预先创建命令接口和至少2个命令对象,同时为各命令对象指定执行相应任务的接收对象;每个命令对象为所述命令接口的实现对象,且对应一种任务类型;

将用户下发的任务执行指令转化为相应的目标命令;

调用所述命令接口提交命令执行请求至目标命令对象,以使所述目标命令对象调用自己的接收对象执行任务。

可选地,所述处理器用于执行存储器中存储的计算机程序时还可以实现以下步骤:

预先创建调用对象,所述调用对象存储命令对象;

将所述目标命令下发至目标调用对象;所述目标调用对象存储所述目标命令对象;

所述目标调用对象调用自身的命令对象的执行操作提交命令执行请求,并通过所述命令接口将所述命令执行请求下发给所述目标命令对象。

可选地,所述处理器用于执行存储器中存储的计算机程序时还可以实现以下步骤:

将至少2种类型的命令对象封装至所述命令接口。

可选地,所述处理器用于执行存储器中存储的计算机程序时还可以实现以下步骤:

所述调用对象存储至少2种类型的命令对象。

可选地,所述处理器用于执行存储器中存储的计算机程序时还可以实现以下步骤:

所述调用所述命令接口提交命令执行请求至目标命令对象之后,还包括:

当接收到任务撤销指令,判断所述任务撤销指令对应的任务是否已成功执行;

若所述任务撤销指令对应的任务还未执行,将所述目标命令设置为可撤销命令,以使所述目标命令对象在执行所述命令执行请求之前存储当前状态。

可选地,所述处理器用于执行存储器中存储的计算机程序时还可以实现以下步骤:

所述预先创建命令接口和至少2个命令对象之后,还包括:

当接收到新任务增加指令,判断所述新任务所属任务类型是否已存在;

若所述新任务所属任务类型已存在,将所述新任务与所属任务类型对应的原命令对象建立对应关系,同时在所述原命令对象中指定执行所述新任务的接收对象;

若所述新任务所属任务类型不存在,为所述新任务创建相应的新命令对象,同时为所述新命令对象指定执行所述新任务的接收对象。

本申请提供的技术方案的优点在于,将用户需要软件执行的任务抽象为命令,使用命令模式,请求以命令的形式包裹在对象中,调用命令接口发送命令执行指令以触发命令并要求命令执行相应操作,命令寻找可以处理该命令的合适的对象并把该命令传给相应的接收对象,接收对象执行命令,命令的发出和执行命令是分开的,命令模式允许请求的一方和接收的一方独立开来,使得请求的一方不必知道接收请求的一方的接口,更不必知道请求是怎么被接收,以及操作是否被执行、何时被执行,以及是怎么被执行的,也即可以将现有技术中的任务请求者和任务实现者分开,降低两者之间的耦合性,从而可有效降低软件维护的难度和复杂程度,提升软件的可维护性。

此外,本发明实施例还针对任务执行方法提供了相应的实现装置、计算机可读存储介质及车载终端,进一步使得所述方法更具有实用性,所述装置、计算机可读存储介质及车载终端具有相应的优点。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。

附图说明

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

图1为本发明实施例提供的一种任务执行方法的流程示意图;

图2为本发明实施例提供的另一种任务执行方法的流程示意图;

图3为本发明实施例提供的S103在一种实施方式下的流程示意图;

图4为本发明实施例提供的再一种任务执行方法的流程示意图;

图5为本发明实施例提供的任务执行装置的一种具体实施方式结构图;

图6为本发明实施例提供的任务执行装置的另一种具体实施方式结构图;

图7为本发明实施例提供的任务执行装置的再一种具体实施方式结构图;

图8为本发明实施例提供的车载终端的一种具体实施方式结构图;

图9为本发明实施例提供的一个示例性应用场景的流程示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。

本申请的发明人经过研究发现,在当前的嵌入式软件设计中,当需要处理各种任务时,任务请求者直接调用任务的实现接口,任务请求者需要知道任务实现的具体细节,任务请求者与任务实现者通常呈现一种“紧耦合”,软件维护困难。

鉴于此,本申请通过使用命令模式,可以把现有技术中的任务请求者和任务实现者分开,降低两者之间的耦合性,提升软件维护性能。

基于上述本发明实施例的技术方案,下面对本申请的技术方案涉及的一些可能的应用场景进行举例介绍,以车载终端设备软件为例,驾驶者提供车载终端上的UI界面下发鸣笛任务,车载终端软件系统在接收到该鸣笛任务后,后台将鸣笛任务转化为系统可识别的控制命令,这个控制指令到达存储鸣笛控制命令的invoke中,invoke调用命令接口提交一个鸣笛执行请求,鸣笛命令基于自身存储的接收者信息调用喇叭执行鸣笛这个操作。整个过程中,任务的请求者、任务的调用者和任务的执行者是分割开的,相应的车载终端软件的各个功能模块的耦合性低,增强车载终端软件的可维护性。

需要注意的是,上述应用场景仅是为了便于理解本申请的思想和原理而示出,本申请的实施方式在此方面不受任何限制。相反,本申请的实施方式可以应用于适用的任何场景。

在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实施方式。

首先参见图1,图1为本发明实施例提供的一种任务执行方法的流程示意图,本发明实施例可包括以下内容:

S101:预先创建命令接口和至少2个命令对象,同时为各命令对象指定执行相应任务的接收对象。

本申请的命令接口为一个抽象接口,作为命令的接口,用于声明执行的方法。命令对象是命令接口的实现对象,是“虚”的实现,其持有接收对象,并调用接收对象的功能来完成命令要执行的操作。接收对象是真正执行命令的对象。任何类都可能成为一个接收者,只要它能够实现命令要求实现的相应功能。一个命令对象对应一种任务类型,举例来说,命令对象例如可为ControlCmd,UpgradeCmd,ParamCmd,ConnectCmd。其中,ControlCmd为控制命令,控制命令对应的任务类型为控制任务,以车载终端软件为了,控制命令可用于实现车辆的控制,例如:开门、关门、鸣笛、双闪等;UpgradeCmd为升级命令,升级命令对应的任务类型为软件升级任务,该命令可实现软件的升级功能;ParamCmd为参数命令,可用于实现参数设置和参数查询功能,对应执行的任务为参数设置任务和参数查询任务,同属执行参数类任务;ConnectCmd为联网命令,可实现网络的连接的功能,对应任务为网络连接任务。作为一种可选的实施方式,可将每个命令封装起来,然后再封装至命令接口,即命令接口封装至少2种类型的命令对象。本步骤通过引入命令接口实现命令模式,命令模式是一种数据驱动的设计模式,它属于行为型模式,请求以命令的形式包裹在对象中,命令发送者针对抽象命令接口编程,只有实现了抽象命令接口的具体命令才能与接收对象相关联。命令模式允许请求的一方和接收的一方独立开来,使得请求的一方不必知道接收请求的一方的接口,更无需知道请求是怎么被接收,以及操作是否被执行、何时被执行,以及是怎么被执行的等这些内容。

S102:将用户下发的任务执行指令转化为相应的目标命令。

可以理解的是,任务是用户通过用户操作界面如UI下达给系统的,系统后台在接收到用户下发的任务时,将接收到的任务转化为系统可识别的数据。由于本申请采用命令模式,所以系统会将任务执行指令转化为目标命令,举例来说,若用户通过UI界面下发软件升级任务,那么系统会将软件升级任务转化为UpgradeCmd。

S103:调用命令接口提交命令执行请求至目标命令对象,以使目标命令对象调用自己的接收对象执行任务。

本步骤的目标命令对象与S102步骤的目标命令对应同一个任务,不同的是,S102的目标命令只是一个标识是什么命令的命令,不持有接收对象,目标命令对象为S101创建的命令对象的一个,其持有接收对象。一个任务对应一个命令,也即对应一个操作,请求的一方发出请求,要求执行一个操作;接收的一方收到请求,并执行操作。在S102转换为目标命令后,本步骤会基于转化的这个目标命令,调用命令接口中的目标命令中的接收对象来执行S102下发的任务。也就是说,本步骤是寻找可以处理该S102转化的命令的合适的对象,并把该命令传给相应的对象,使该对象执行命令。

在本发明实施例提供的技术方案中,将用户需要软件执行的任务抽象为命令,使用命令模式,请求以命令的形式包裹在对象中,调用命令接口发送命令执行指令以触发命令并要求命令执行相应操作,命令寻找可以处理该命令的合适的对象并把该命令传给相应的接收对象,接收对象执行命令,命令的发出和执行命令是分开的,命令模式允许请求的一方和接收的一方独立开来,使得请求的一方不必知道接收请求的一方的接口,更不必知道请求是怎么被接收,以及操作是否被执行、何时被执行,以及是怎么被执行的,也即可以将现有技术中的任务请求者和任务实现者分开,降低两者之间的耦合性,从而可有效降低软件维护的难度和复杂程度,提升软件的可维护性。

可以理解的是,用户有时下发任务后,又想撤回任务,或者是某两个任务之间存在冲突,就需要取消一个任务以便另外一个任务顺利执行。为了解决这种应用场景下的用户需求,基于上述实施例,在将调用命令接口提交命令执行请求至目标命令之后,请参阅图2,还可包括:

S201:接收任务撤销指令。

S202:判断任务撤销指令对应的任务是否已成功执行,若是,则结束,若否,则执行S203。

S203:将目标命令设置为可撤销命令,以使目标命令对象在执行命令执行请求之前存储当前状态。

也就是说,若在提交命令执行请求之后,命令还未将命令执行请求发送至接收对象或者是发送了但接收对象还未执行任务,用户下发的撤销指令就有效,相应的目标命令是可撤销的,目标命令就在执行任务操作之前存储当前状态以用于取消该命令。举例来说,用户下发了一个开门任务,系统会将其转化为控制命令,并将这个执行这个控制命令的开门任务发送至命令接口中的控制命令中,如果在执行开门之前,想撤销开门的这个命令,可以通过保存的这个控制命令状态,取消该控制命令。

本实施例通过提供命令撤销功能,可有效提升用户体验。

在上述实施例中,对于如何执行步骤S103并不做限定,本实施例中给出一种调用命令接口提交命令执行请求至目标命令的实施方式,如图3所示,S103包括如下步骤:

S301:预先创建调用对象,调用对象存储命令对象。

S302:将目标命令下发至目标调用对象;目标调用对象存储目标命令对应的目标命令对象。

S303:目标调用对象调用自身的命令对象的执行操作提交命令执行请求,并通过命令接口将命令执行请求下发给目标命令对象。

其中,调用对象存可以储一种类型命令的命令对象,也可存储至少2种类型命令的命令对象,存储至少2个命令对象相对会节省调用对象的创建流程和管理操作,所属领域技术人员可根据实际需求进行选择,本申请对此不做任何限定。调用对象用于要求命令对象执行请求,通常会持有命令对象,其是真正触发命令并要求命令执行相应操作的地方,也就是说相当于使用命令对象的入口。

本实施例将请求以命令的形式包裹在对象中,并传给调用对象,调用对象寻找可以处理该命令的合适的接收对象,并把该命令传给相应接收对象,接收对象执行命令。将命令的调用者或者是说请求者和命令的执行者分开,调用者无需了解任务实现的具体细节,降低模块耦合性。

可以理解的是,软件在上线后不会不对其更新,随着用户在某些方面的需求增加,或者是发现原软件的某些功能模块有漏洞,需要进行修复等等,这些均会涉及到在原有系统软件中增加一些新的内容,本申请是针对任务的执行,相应的,本实施例可以在软件系统中增加新任务,请参阅图4,可包括下述内容:

S401:接收新任务增加指令。

S402:判断新任务所属任务类型是否已存在,若是,则执行S403,若否,则执行S404。

S403:将新任务与所属任务类型对应的命令对象建立对应关系,并指定接收对象。

S404:为新任务创建相应的新命令对象,同时为新命令对象指定执行新任务的接收对象。

由于一种命令对应一种类型的任务,当新添加的任务所属类型的命令已创建,那么可以在该命令下直接增加实现该任务的接收对象即可,举例来说,S101预先创建了一个控制指令,可控制车辆的车门的开闭、车灯的双闪。S401增加的新任务为鸣笛,而鸣笛属于控制任务,所以可将鸣笛任务与控制指令建立关系,并在控制命令中添加喇叭作为执行鸣笛任务的接收对象。若新添加的任务所属类型的命令没有创建,则按照S101的步骤为该任务创建相应的命令。

本实施例可以在软件系统中增加新的任务,提升软件系统的扩展性,进一步提升用户使用体验。

需要说明的是,本申请中各步骤之间没有严格的先后执行顺序,只要符合逻辑上的顺序,则这些步骤可以同时执行,也可按照某种预设顺序执行,图1-图4只是一种示意方式,并不代表只能是这样的执行顺序。

本发明实施例还针对任务执行方法提供了相应的装置,进一步使得所述方法更具有实用性。其中,装置可从功能模块的角度和硬件的角度分别说明。下面对本发明实施例提供的任务执行装置进行介绍,下文描述的任务执行装置与上文描述的任务执行方法可相互对应参照。

基于功能模块的角度,参见图5,图5为本发明实施例提供的任务执行装置在一种具体实施方式下的结构图,该装置可包括:

命令创建模块501,用于预先创建命令接口和至少2个命令对象,同时为各命令对象指定执行相应任务的接收对象;每个命令对象为命令接口的实现对象,且对应一种任务类型;

任务转化模块502,用于将用户下发的任务执行指令转化为相应的目标命令;

命令执行模块503,用于调用命令接口提交命令执行请求至目标命令,以使目标命令对象调用自己的接收对象执行任务。

可选的,在本实施例的一些实施方式中,上述命令执行模块503还可包括:

调用对象创建子模块,用于预先创建调用对象,调用对象存储命令对象;

命令调用子模块,用于将目标命令下发至目标调用对象;目标调用对象存储目标命令对应的目标命令对象;目标调用对象调用自身的命令对象的执行操作提交命令执行请求,并通过命令接口将命令执行请求下发给目标命令对象。

作为上述实施例的一种实施方式,调用对象创建子模块可为调用对象存储至少2种类型的命令对象的模块。

在本实施例的另一些实施方式中,上述命令创建模块501为将至少2种类型命令对象封装至命令接口的模块。

可选的,在本实施例的另一些实施方式中,请参阅图6,上述装置还可以任务撤销模块504,该模块用于当接收到任务撤销指令,若任务撤销指令对应的任务还未执行,将目标命令设置为可撤销命令,以使目标命令对象在执行命令执行请求之前存储当前状态。

在本实施例的其他一些实施方式中,上述装置例如还可包括任务增加模块505,该模块用于当接收到新任务增加指令,若新任务所属任务类型已存在,将新任务与所属任务类型对应的原命令对象建立对应关系,同时在原命令对象中指定执行新任务的接收对象;若新任务所属任务类型不存在,为新任务创建相应的新命令对象,同时为新命令对象指定执行新任务的接收对象。

本发明实施例所述任务执行装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

由上可知,本发明实施例降低模块之间的耦合性,有效降低软件维护的难度和复杂程度。

上文中提到的任务执行装置是从功能模块的角度描述,进一步的,本申请还提供一种任务执行装置,是从硬件角度描述。图7为本申请实施例提供的另一种任务执行装置的结构图。如图7所示,该装置包括存储器70,用于存储计算机程序;处理器71,用于执行计算机程序时实现如上述任一实施例提到的任务执行方法的步骤。

其中,处理器71可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器71可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器71也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器71可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器71还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。

存储器70可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器70还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器70至少用于存储以下计算机程序701,其中,该计算机程序被处理器71加载并执行之后,能够实现前述任一实施例公开的任务执行方法的相关步骤。另外,存储器70所存储的资源还可以包括操作系统702和数据703等,存储方式可以是短暂存储或者永久存储。其中,操作系统702可以包括Windows、Unix、Linux等。数据703可以包括但不限于任务执行结果对应的数据等。

在一些实施例中,任务执行装置还可包括有显示屏72、输入输出接口73、通信接口74、电源75以及通信总线76。

本领域技术人员可以理解,图7中示出的结构并不构成对任务执行装置的限定,可以包括比图示更多或更少的组件,例如还可包括传感器77。

本发明实施例所述任务执行装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

由上可知,本发明实施例降低模块之间的耦合性,有效降低软件维护的难度和复杂程度。

可以理解的是,如果上述实施例中的任务执行方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请上述各个实施例提到的任务执行方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、磁碟或者光盘等各种可以存储程序代码的介质。

基于此,本发明实施例还提供了一种计算机可读存储介质,存储有任务执行程序,所述任务执行程序被处理器执行时如上任意一实施例所述任务执行方法的步骤。

本发明实施例所述计算机可读存储介质的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

由上可知,本发明实施例降低模块之间的耦合性,有效降低软件维护的难度和复杂程度。

本发明实施例最后还提供了一种车载终端8,本实施例是用户或者是说驾驶者和车载终端之间的交互,用户通过车载终端的UI界面下发一个任务,这个任务的执行过程是通过车载终端设备的软件逻辑来实现的。也就是说,请参见图8,车载终端8可包括处理器81和存储器82,处理器81用于执行存储器82中存储的计算机程序时实现如上任一个方法实施例中所述任务执行方法的步骤。

为了使所属领域技术人员更加清楚明白本申请的技术方案,本实施例结合图9阐述了车载终端软件执行任务的一种实施方式,可包括下述内容:

Client为客户端,也可称为装配者,创建具体的命令对象,并且设置命令对象的接收对象。也即将任务如控制任务、升级任务、参数任务、联网任务等抽象为命令,并对这些命令进行封装。Command为抽象的命令接口,其内封装命令接口实现的对象,命令例如可为控制命令ControlCmd、升级命令UpgradeCmd、参数命令ParamCmd和联网命令ConnectCmd,每个命令会持有接收对象Receiver,并调用接收对象Receiver的功能来完成命令要执行的操作。其中,ControlCmd可控制车辆的车门关闭、开启、鸣笛、车灯的双闪等;UpgradeCmd可实现软件的升级;ParamCmd可实现车辆参数的设置和车辆参数的查询;ConnectCmd实现车辆网络的连接。Receiver为真正执行命令的对象,任何类都可能成为一个接收者,只要它能够实现命令要求实现的相应功能。Invoker是调用者或者是说调用对象,其要求命令对象执行请求,通常会持有命令对象,可以持有很多的命令对象,Invoker可持有至少2个命令对象。其是客户端真正触发命令并要求命令执行相应操作的地方,相当于使用命令对象的入口。

基于上述逻辑结构,车载终端的命令模式工作流程为:

Client创建ControlCmd、UpgradeCmd、ParamCmd、ConnectCmd对象,并指定他们对应的Receiver对象。某个Invoker对象存储执行该任务的Command对象。该Invoker通过调用Command对象的Execute操作来提交一个请求。若该命令是可撤销的,xxxCmd也即上述的Command对象就在执行Execute操作之前存储当前状态以用于取消该命令。xxxCmd对象对调用它的Receiver的一些操作,以执行该请求。若需要在软件系统中增加新的任务时,根据任务类型为其创建命令或者是在已有命令中直接指定接收对象。

本发明实施例所述车载终端的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

本实施例在车载终端设备设计中,使用命令模式,抽象任务为命令,实现各种任务的处理,降低任务请求者和任务执行者之间的耦合性。支持添加新的任务到软件系统中,提高车载终端软件的扩展性和可维护性。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

以上对本申请所提供的一种任务执行方法、装置、计算机可读存储介质及车载终端进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

相关技术
  • 任务执行方法、装置、计算机可读存储介质及车载终端
  • 双面屏多任务执行方法、移动终端及计算机可读存储介质
技术分类

06120112641279