CN113821279A - 一种状态转换的方法、装置及嵌入式设备 - Google Patents
一种状态转换的方法、装置及嵌入式设备 Download PDFInfo
- Publication number
- CN113821279A CN113821279A CN202111405775.3A CN202111405775A CN113821279A CN 113821279 A CN113821279 A CN 113821279A CN 202111405775 A CN202111405775 A CN 202111405775A CN 113821279 A CN113821279 A CN 113821279A
- Authority
- CN
- China
- Prior art keywords
- state
- event
- time
- state machine
- machine
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4498—Finite state machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
Abstract
本申请实施例公开了一种状态转换的方法、装置及嵌入式设备,应用于嵌入式系统,该方法可以包括如下步骤:获取状态机的第一状态,第一状态为状态机的当前状态;根据预设周期查询是否有事件发生,其中,事件用于控制第一状态转换为其他状态,事件为普通事件和时间事件中的至少一种,时间事件为与时间相关的事件,普通事件为除时间事件之外的其他事件;在存在事件发生的情况下,根据事件以及转换路径的优先级将状态机的状态由第一状态转换为目标状态。通过实施本申请实施例,可以提高状态机在嵌入式领域使用时的实时性,使得状态机更适用于嵌入式领域。
Description
技术领域
本申请涉及嵌入式领域,尤其涉及一种状态转换的方法、装置及嵌入式设备。
背景技术
状态机由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作、完成特定操作的控制中心。
在现有技术中,状态机的设计方法过于复杂,更适用于大型计算机应用软件的框架设计。对于嵌入式领域而言,还存在诸多问题,例如实时性还不够高。因此,如何使得状态机更适用于嵌入式领域是需要解决的问题。
发明内容
本申请实施例提供了一种状态转换的方法、装置及嵌入式设备,可以提高状态机在嵌入式领域使用时的实时性,使得状态机更适用于嵌入式领域。
第一方面,本申请实施例提供了一种状态转换的方法,应用于嵌入式系统,包括:
获取状态机的第一状态,所述第一状态为所述状态机的当前状态;
根据预设周期查询是否有事件发生,其中,所述事件用于控制所述第一状态转换为其他状态,所述事件为普通事件和时间事件中的至少一种,所述时间事件为与时间相关的事件,所述普通事件为除时间事件之外的其他事件;
在存在所述事件发生的情况下,根据所述事件以及转换路径的优先级将所述状态机的状态由所述第一状态转换为目标状态。
可选的,在获取状态机的第一状态,所述第一状态为所述状态机的当前状态之后,还包括:
持续执行第一动作,所述第一动作由所述第一状态触发。
可选的,所述方法还包括:
在所述状态机的状态由所述第一状态转换为所述目标状态时,执行第二动作。
可选的,所述方法还包括:
在存在第一状态定时器服务于所述第一状态的情况下,在所述状态机的状态由其他状态转换为所述第一状态时复位所述第一状态定时器。
可选的,所述方法还包括:
在存在通用定时器服务于所有状态的情况下,在所述状态机的状态发生转换时复位所述通用定时器。
可选的,所述方法还包括:
在查询到发生强制动作的情况下,将所述状态机的状态转换为第二状态,所述第二状态的优先级高于其他状态。
第二方面,本申请实施例提供了一种状态转换的装置,应用于嵌入式系统,所述装置包括:
状态获取模块,用于获取状态机的第一状态,所述第一状态为所述状态机的当前状态;
查询模块,用于根据预设周期查询是否有事件发生,其中,所述事件用于控制所述第一状态转换为其他状态,所述事件为普通事件和时间事件中的至少一种,所述时间事件为与时间相关的事件,所述普通事件为除时间事件之外的其他事件;
转换模块,用于在存在所述事件发生的情况下,根据所述事件以及转换路径的优先级将所述状态机的状态由所述第一状态转换为目标状态。
第三方面,本申请实施例提供了一种嵌入式设备,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如第一方面所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如第一方面所述的方法。
第五方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机可操作来使计算机执行如第一方面所述的方法。
通过实施本申请实施例,增加时间事件用以控制状态转换,从而可以提高状态机在嵌入式领域使用时的实时性,使得状态机更适用于嵌入式领域。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种状态转换的方法的流程示意图;
图2为本申请实施例提供的一种状态转换示意图;
图3为本申请实施例提供的一种状态转换的装置的组成示意图;
图4为本申请实施例提供的一种嵌入式设备的组成示意图。
具体实施方式
下面结合附图对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
本申请的说明书以及附图中的术语“第一”和“第二”等是用于区分不同的对象,或者用于区别对同一对象的不同处理,而不是用于描述对象的特定顺序。此外,本申请的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
需要说明的是,本申请实施例中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方法不应被解释为比其他实施例或设计方案更优地或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。在本申请实施例中,“A和/或B”表示A和B,A或B两个含义。“A,和/或B,和/或C”表示A、B、C中的任一个,或者,表示A、B、C中的任两个,或者,表示A和B和C。
下面,结合图1-图2对本申请实施例提供的状态转换的方法进行详细说明。
请参见图1,为本申请实施例提供的一种状态转换的方法的流程示意图,可包括如下步骤:
步骤S101:获取状态机的第一状态,所述第一状态为所述状态机的当前状态。
状态具有唯一性、确定性、互斥性和全面性。确定性是指状态机一定会处于状态机中包括的状态中的某一个状态。唯一性是指状态机只能处于状态机中包括的状态中的某一个状态。互斥性是指状态机中所有的状态相互之间不存在重叠的部分,界限清晰。全面性是指状态机中所有的状态应当满足场景下的所有可能出现的状态,不能存在遗漏。
需要说明的是,第一状态不是表示固定的某一状态,而是指状态机的当前状态,若当前状态发生了变化,那么第一状态所指的状态也相应的变化。例如,在一个状态机中,包括状态a、状态b、状态c和状态d。若当前状态为状态a,那么此时第一状态所表示的状态为状态a;若当前状态为状态b,那么此时第一状态所表示的状态为状态b;若此时状态机的状态由状态c转换为了状态c,那么在转换之前,第一状态所表示的状态为状态c,在转换之后,第一状态所表示的状态为状态d。
在一种可能的实现方式中,持续执行第一动作,所述第一动作由所述第一状态触发。
触发是指动作的产生行为。示例性的,如图2所示,为本申请实施例提供的一种状态转换示意图。通过图2可以看出,状态A上存在动作Ma,状态B上存在动作Mb。也就是说,当状态机的状态处于状态A时,将会持续执行动作Ma。这就是状态A触发了动作Ma,使得动作Ma持续执行。同理,当状态机的状态处于状态B时,将会持续执行动作Mb。
步骤S102:根据预设周期查询是否有事件发生,其中,所述事件用于控制所述第一状态转换为其他状态,所述事件为普通事件和时间事件中的至少一种,所述时间事件为与时间相关的事件,所述普通事件为除时间事件之外的其他事件。
在一种可能的实现方式中,预设周期可以是1秒、2秒,也可以是1毫秒、2毫秒等,本申请实施例不作任何限定。
控制是指事件对状态转换的干涉行为。发生事件的情况下,第一状态可以转换为其他状态,这就是事件对状态转换的控制。
转换是指状态的转换,是一种状态转变为另一种状态的过程。状态转换通常基于事件的驱动而进行的,也就是事件控制状态的转换。在一种可能的实现方式中,状态转换也可以没有事件来驱动。这种无需事件驱动转换而成的状态通常是一种过渡状态,是为了保证状态机的可读性而存在的。
通过将常规的转换过程分解为控制、转换和触发,可以实现更加精细化的实时管理和控制,更满足嵌入式系统的需求。
时间事件是针对嵌入式领域所特别提出的一种事件,是定时器独立运行的结果。定时器包括但不限于外部定时器和特定定时器。外部定时器为中断式定时器,其运行过程独立,不受外界条件限定。特定定时器是为特定事件而设定的定时器,其运行的启动和结束,与所设定的特定事件相关。特定定时器既可以服务于单一状态,也可以服务于所有状态。示例性的,判断是否发生某时间事件的一种情形可以是:设定状态机处于状态a的时长需要达到3秒后才能转换成状态b,那么可以通过定时器在状态机的状态转换成状态a时开始计时,当定时器计时未达到3秒之前,则说明未满足该时间事件,也就是说,此时状态a不满足转换成状态b的条件;当定时器达到了3秒,则说明已满足该时间事件,也就是说,在该时间事件上状态a已满足转换成状态b的条件。但是,若状态a转换成状态b还需发生其他事件,则还需要根据其他事件是否发生确定是否满足状态a转换成状态b的条件。
普通事件是除时间事件之外的,在嵌入式软件执行过程中,可能产生的条件。例如,可以是判定某一情形是否满足预设情形。若满足预设情形,则说明发生该普通事件;若不满足预设情形,则说明未发生该普通事件。
事件为普通事件和时间事件中的至少一种是指可以通过普通事件控制第一状态转换为其他状态,也可以通过时间事件控制第一状态转换为其他状态,还可以通过普通事件以及时间事件共同控制第一状态转换为其他状态。此外,还可以通过普通事件或者时间事件控制第一状态转换成其他状态,也就是说,普通事件发生或者时间事件发生,那么则认为满足第一状态转换成其他状态的条件。在实际应用中,需要根据具体情况确定如何控制第一状态转换成其他状态,本申请实施例对此不作任何限定。示例性的,在一种情况下可以通过时间事件t控制状态a转换为状态b。在另一种情况下可以通过普通事件n控制状态a转换成状态b。在又一种情况下可以通过普通事件n1和时间事件t1共同控制状态a转换成状态b,也就是说,需要既发生了时间事件t1还发生了普通事件n1,才认为满足了状态a转换成状态b的条件。若只发生了时间事件t1而未发生普通事件n1或者只发生了普通事件n1而未发生时间事件t1,则均认为未满足状态a转换成状态b的条件。在又一种情况下,可以通过时间事件t2或者普通事件n2控制状态a转换成状态b,也就是说,若时间事件t2发生而普通事件n2未发生或者普通事件n2发生而时间事件t2未发生或者时间事件t2以及普通事件n2都发生均可认为满足状态a转换成状态b的条件。
示例性的,如图2所示,在第一状态为状态Z的情况下,若发生普通事件NA2,则满足状态Z转换为状态A的条件;在第一状态为状态A的情况下,若发生时间事件TB,则满足状态A转换为状态B的条件;在第一状态为状态B的情况下,若发生普通事件NA或者时间事件TA,则满足状态B转换为状态A的条件;在第一状态为状态C的情况下,若发生普通事件NA1并且发生时间事件TA1,则满足状态C转换为状态A的条件。
步骤S103:在存在所述事件发生的情况下,根据所述事件以及转换路径的优先级将所述状态机的状态由所述第一状态转换为目标状态。
在一种可能的实现方式中,若在事件发生的情况下,可以由第一状态转换成两个或以上的其他状态,那么此时可以根据转换路径的优先级确定目标状态。
示例性的,如图2所示,若当前的第一状态为状态B。图2中,若普通事件NA和时间事件TA中的至少一个发生,那么状态B可以转换为状态A;若普通事件NC和时间事件TC中的至少一个发生,那么状态B可以转换为状态C。而根据状态的唯一性可以知道,状态B无法既转换为状态A又转换为状态C。在这种情况下,可以根据转换路径的优先级确定状态B转换为的状态,也就是目标状态。从图2中所示的路径转换的优先级中可以知道,状态B转换为状态A这一转换路径的优先级为1,状态B转换为状态C这一转换路径的优先级为2,状态B转换为状态A这一转换路径的优先级高于状态B转换为状态C这一转换路径的优先级。在一种可能的实现方式中,可以优先查询是否发生普通事件NA或者时间事件TA,若普通事件NA和时间事件TA中的至少一个发生,那么状态B可以转换为状态A,从而无需查询普通事件NC和时间事件TC是否发生;若普通事件NA和时间事件TA均未发生,再查询是否发生普通事件NC或者时间事件TC,若普通事件NC和时间事件TC中的至少一个发生,那么状态B可以转换为状态C。在另一种可能的实现方式中,若查询到普通事件NA和时间事件TA中的至少一个发生并且查询到普通事件NC和时间事件TC中的至少一个发生,那么此时根据转换路径的优先级可以确定状态B将向状态A进行转换。其中,转换路径的优先级顺序可以预先设定。
可以知道的是,当某状态下的转换路径仅存在一条时,该条转换路径即为优先级最高的转换路径,而该路径所指向的状态即为目标状态。示例性的,状态a在事件ea发生的情况下向状态b发生转换,除此之外状态a不存在其他转换路径向其他路径转换。那么在这种情况下,状态a转换成状态b的转换路径即为状态a转向其他状态的优先级最高的路径。若状态机处于状态a的情况下,事件ea未发生,那么状态机的状态保持为状态a而不向其他状态转换。
在一种可能的实现方式中,在所述状态机的状态由所述第一状态转换为所述目标状态时,执行第二动作。
在一种可能的实现方式中,若目标状态下存在第三动作,那么在状态机的状态处于目标状态的情况下,持续执行第三动作。示例性的,如图2所示,第一状态为状态A,目标状态为状态B,那么也就是说状态机的当前状态为状态A。当状态机的状态处于状态A时,持续执行动作Ma,当状态机处于状态A时发生了时间事件TB,那么状态机的状态将由状态A转换为目标状态,该情况下的目标状态为状态B。当状态机的状态由状态A转换为状态B后,也就是说,此时状态机的状态处于状态B,那么此时不再执行动作Ma,而是持续执行状态B上存在的动作Mb。
示例性的,如图2所示,由状态B转换为状态C的转换过程中存在动作Mbc。也就是说,当状态B转换为状态C时将会执行动作Mbc。
在一种可能的实现方式中,在存在第一状态定时器服务于所述第一状态的情况下,在所述状态机的状态由其他状态转换为所述第一状态时复位所述第一状态定时器。
示例性的,如图2所示,若存在特定定时器服务于状态A,那么当状态机的状态由其他状态(例如,状态Z或者状态C)转换为状态A时,该特定定时器将进行复位并重新开始计时。
在一种可能的实现方式中,在存在通用定时器服务于所有状态的情况下,在所述状态机的状态发生转换时复位所述通用定时器。
示例性的,如图2所示,若存在通用定时器服务于所有状态,那么该通用计时器可用于得到状态机在某一状态下保持的时长。例如,当状态机的状态由状态A转换成状态B时,对通用定时器进行复位并重新开始计时。然后状态机的状态由状态B转换成状态C时,再次对通用定时器进行复位,该两次复位之间的时间差即为状态机在状态B这一状态下所保持的时长。
在查询到发生强制动作的情况下,将所述状态机的状态转换为第二状态,所述第二状态的优先级高于其他状态。
示例性的,如图2所示,动作M为强制动作。当获取到发生了动作M这一信息时,无论此时状态机处于哪种状态,均会转换至状态Z。可以看出,状态Z即第二状态,这一状态的优先级高于其他状态。可以理解的是,当获取到发生了动作M这一信息,状态机的状态转换为状态Z的情况下,此时的第一状态为状态Z。在该状态下查询是否有事件发生,根据事件转换成其他状态的具体实施方式可参考图1-图2对应的方法步骤,此处不再进行赘述。
可以理解的是,图2所示的状态转换示意图仅为一种示例,不应对本申请实施例构成任何限定。
下面结合附图介绍本申请实施例涉及的装置。
请参见图3,为本申请实施例提供的一种状态转换的装置的组成示意图,应用于嵌入式系统,状态转换的装置300可以包括:
状态获取模块301,用于获取状态机的第一状态,所述第一状态为所述状态机的当前状态;
查询模块302,用于根据预设周期查询是否有事件发生,其中,所述事件用于控制所述第一状态转换为其他状态,所述事件为普通事件和时间事件中的至少一种,所述时间事件为与时间相关的事件,所述普通事件为除时间事件之外的其他事件;
转换模块303,用于在存在所述事件发生的情况下,根据所述事件以及转换路径的优先级将所述状态机的状态由所述第一状态转换为目标状态。
可选的,状态转换的装置300还可以包括:
第一动作执行模块304,用于持续执行第一动作,所述第一动作由所述第一状态触发。
可选的,状态转换的装置300还可以包括:
第二动作执行模块305,用于在所述状态机的状态由所述第一状态转换为所述目标状态时,执行第二动作。
可选的,状态转换的装置300还可以包括:
第一状态定时器复位模块306,用于在存在第一状态定时器服务于所述第一状态的情况下,在所述状态机的状态由其他状态转换为所述第一状态时复位所述第一状态定时器。
可选的,状态转换的装置300还可以包括:
通用定时器复位模块307,用于在存在通用定时器服务于所有状态的情况下,在所述状态机的状态发生转换时复位所述通用定时器。
可选的,状态转换的装置300还可以包括:
强制转换模块308,在查询到发生强制动作的情况下,将所述状态机的状态转换为第二状态,所述第二状态的优先级高于其他状态。
其中,状态转换的装置300的具体功能实现可以参见图1-图2对应的方法步骤,此处不再进行赘述。
请参见图4,为本申请实施例提供的一种嵌入式设备的组成示意图。可包括:处理器110、存储器120;其中,处理器110、存储器120和通信接口130通过总线140连接,该存储器120用于存储指令,该处理器110用于执行该存储器120存储的指令,以实现如上图1-图2对应的方法步骤。
处理器110用于执行该存储器120存储的指令,以控制通信接口130接收和发送信号,完成上述方法中的步骤。其中,所述存储器120可以集成在所述处理器110中,也可以与所述处理器110分开设置。
作为一种实现方式,通信接口130的功能可以考虑通过收发电路或者收发的专用芯片实现。处理器110可以考虑通过专用处理芯片、处理电路、处理器或者通用芯片实现。
该终端所涉及的与本申请实施例提供的技术方案相关的概念,解释和详细说明及其他步骤请参见前述方法或其他实施例中关于装置执行的方法步骤的内容的描述,此处不做赘述。
作为本实施例的另一种实现方式,提供一种计算机可读存储介质,其上存储有指令,该指令被执行时执行上述方法实施例中的方法。
作为本实施例的另一种实现方式,提供一种包含指令的计算机程序产品,该指令被执行时执行上述方法实施例中的方法。
本领域技术人员可以理解,为了便于说明,图4中仅示出了一个存储器和处理器。在实际的终端或服务器中,可以存在多个处理器和存储器。存储器也可以称为存储介质或者存储设备等,本申请实施例对此不作限制。
应理解,在本申请实施例中,处理器可以是中央处理单元(Central ProcessingUnit,简称CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
还应理解,本申请实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,简称ROM)、可编程只读存储器(Programmable ROM,简称PROM)、可擦除可编程只读存储器(Erasable PROM,简称EPROM)、电可擦除可编程只读存储器(Electrically EPROM,简称EEPROM)或闪存。易失性存储器可以是随机存取存储器(RandomAccess Memory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,简称SRAM)、动态随机存取存储器(Dynamic RAM,简称DRAM)、同步动态随机存取存储器(Synchronous DRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,简称DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,简称ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,简称SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,简称DR RAM)。
需要说明的是,当处理器为通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件时,存储器(存储模块)集成在处理器中。
应注意,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
该总线除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线。
还应理解,本文中涉及的第一、第二、第三、第四以及各种数字编号仅为描述方便进行的区分,并不用来限制本申请的范围。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各种说明性逻辑块(illustrative logical block,简称ILB)和步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种状态转换的方法,其特征在于,应用于嵌入式系统,包括:
获取状态机的第一状态,所述第一状态为所述状态机的当前状态;
根据预设周期查询是否有事件发生,其中,所述事件用于控制所述第一状态转换为其他状态,所述事件为普通事件和时间事件中的至少一种,所述时间事件为与时间相关的事件,所述普通事件为除时间事件之外的其他事件;
在存在所述事件发生的情况下,根据所述事件以及转换路径的优先级将所述状态机的状态由所述第一状态转换为目标状态。
2.根据权利要求1所述的方法,其特征在于,在获取状态机的第一状态,所述第一状态为所述状态机的当前状态之后,还包括:
持续执行第一动作,所述第一动作由所述第一状态触发。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述状态机的状态由所述第一状态转换为所述目标状态时,执行第二动作。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在存在第一状态定时器服务于所述第一状态的情况下,在所述状态机的状态由其他状态转换为所述第一状态时复位所述第一状态定时器。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在存在通用定时器服务于所有状态的情况下,在所述状态机的状态发生转换时复位所述通用定时器。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
在查询到发生强制动作的情况下,将所述状态机的状态转换为第二状态,所述第二状态的优先级高于其他状态。
7.一种状态转换的装置,其特征在于,应用于嵌入式系统,所述装置包括:
状态获取模块,用于获取状态机的第一状态,所述第一状态为所述状态机的当前状态;
查询模块,用于根据预设周期查询是否有事件发生,其中,所述事件用于控制所述第一状态转换为其他状态,所述事件为普通事件和时间事件中的至少一种,所述时间事件为与时间相关的事件,所述普通事件为除时间事件之外的其他事件;
转换模块,用于在存在所述事件发生的情况下,根据所述事件以及转换路径的优先级将所述状态机的状态由所述第一状态转换为目标状态。
8.一种嵌入式设备,其特征在于,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111405775.3A CN113821279A (zh) | 2021-11-24 | 2021-11-24 | 一种状态转换的方法、装置及嵌入式设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111405775.3A CN113821279A (zh) | 2021-11-24 | 2021-11-24 | 一种状态转换的方法、装置及嵌入式设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113821279A true CN113821279A (zh) | 2021-12-21 |
Family
ID=78918192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111405775.3A Pending CN113821279A (zh) | 2021-11-24 | 2021-11-24 | 一种状态转换的方法、装置及嵌入式设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113821279A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5469553A (en) * | 1992-04-16 | 1995-11-21 | Quantum Corporation | Event driven power reducing software state machine |
US20070094192A1 (en) * | 2005-07-12 | 2007-04-26 | Puneet Aurora | Inferential state machines |
CN103455328A (zh) * | 2013-08-16 | 2013-12-18 | 奥博杰天软件(西安)有限公司 | 基于多层次状态机的媒体播放控制器、播放器及播放方法 |
CN107656819A (zh) * | 2016-07-25 | 2018-02-02 | 武汉票据交易中心有限公司 | 一种业务流程的处理方法及相关系统 |
CN108845844A (zh) * | 2018-05-30 | 2018-11-20 | 郑州云海信息技术有限公司 | 一种状态转换方法及装置 |
CN111273969A (zh) * | 2020-01-20 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 状态切换方法、装置、设备和存储介质 |
-
2021
- 2021-11-24 CN CN202111405775.3A patent/CN113821279A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5469553A (en) * | 1992-04-16 | 1995-11-21 | Quantum Corporation | Event driven power reducing software state machine |
US20070094192A1 (en) * | 2005-07-12 | 2007-04-26 | Puneet Aurora | Inferential state machines |
CN103455328A (zh) * | 2013-08-16 | 2013-12-18 | 奥博杰天软件(西安)有限公司 | 基于多层次状态机的媒体播放控制器、播放器及播放方法 |
CN107656819A (zh) * | 2016-07-25 | 2018-02-02 | 武汉票据交易中心有限公司 | 一种业务流程的处理方法及相关系统 |
CN108845844A (zh) * | 2018-05-30 | 2018-11-20 | 郑州云海信息技术有限公司 | 一种状态转换方法及装置 |
CN111273969A (zh) * | 2020-01-20 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 状态切换方法、装置、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10997093B2 (en) | NVME data processing method and NVME device | |
CN109981737B (zh) | 一种网络请求的处理方法、装置、终端及存储介质 | |
CN103399840A (zh) | 一种计算机配置文件的带外修改方法及计算机 | |
CN108141471B (zh) | 压缩数据的方法、装置和设备 | |
EP3979088A1 (en) | Inter-core data processing method and system, system on chip and electronic device | |
US10803004B2 (en) | Modular UPS system and data transmission method for power device | |
CN110020383B (zh) | 一种页面数据请求处理方法及装置 | |
CN114143140A (zh) | 一种数据传输系统、方法、存储介质及电子设备 | |
CN108959139A (zh) | 一种cpld管脚复用方法与装置 | |
EP3188446B1 (en) | Remote resource access method and switching device | |
CN113821279A (zh) | 一种状态转换的方法、装置及嵌入式设备 | |
EP2750030A1 (en) | Method, apparatus and processor for reading BIOS | |
CN110505127B (zh) | 一种指令处理方法及装置 | |
TWI698137B (zh) | 無線設備的掃描啟停方法及無線設備 | |
CN104052831A (zh) | 一种基于队列的数据传输方法、装置及通信系统 | |
CN112153114A (zh) | 一种分时访问共享器件的方法、系统、设备及介质 | |
CN109308219B (zh) | 任务处理方法、装置及分布式计算机系统 | |
US9170862B2 (en) | Converting apparatus, conversion method, and information processing system | |
KR102206313B1 (ko) | 시스템 인터커넥트 및 시스템 인터커넥트의 동작 방법 | |
CN112154419A (zh) | 性能监测装置、方法、片上系统、可移动平台及相机 | |
CN112235630A (zh) | 一种数据备份传输方法、led网状环路备份系统及电子设备 | |
CN112416636A (zh) | 一种对数据库访问的熔断方法及电子设备 | |
CN117440088B (zh) | 通话方法及相关设备 | |
CN112416677B (zh) | 一种具有软关机功能的服务器和软关机方法 | |
CN115981924B (zh) | 设备控制方法、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211221 |
|
RJ01 | Rejection of invention patent application after publication |