CN102929697A - 一种状态机、调度方法、装置及usb媒体播放控制装置 - Google Patents
一种状态机、调度方法、装置及usb媒体播放控制装置 Download PDFInfo
- Publication number
- CN102929697A CN102929697A CN2012103787128A CN201210378712A CN102929697A CN 102929697 A CN102929697 A CN 102929697A CN 2012103787128 A CN2012103787128 A CN 2012103787128A CN 201210378712 A CN201210378712 A CN 201210378712A CN 102929697 A CN102929697 A CN 102929697A
- Authority
- CN
- China
- Prior art keywords
- state
- event
- control module
- event handling
- usb
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明适用于计算机应用领域,提供了一种状态机、调度方法、装置及USB媒体播放控制装置,状态机为层次状态机,其每个状态的数据信息包括:状态特征号、父状态特征号、与状态相关联的事件处理表;所述事件处理表包括:该状态所需处理的事件的特征号、该状态所需处理的事件所对应的事件处理函数。所述基于层次状态机的调度方法包括:根据接收到的事件的特征号查找当前状态及依次追溯当前状态的父状态相关联的事件处理表中是否包括事件的特征号;当查找到包括事件的特征号的事件处理表时,从该事件处理表中获取与事件对应的事件处理函数及目标状态;退出当前状态后执行事件处理函数并迁移至目标状态,大大降低了事件处理表的规模且易于扩展和维护。
Description
技术领域
本发明属于计算机应用领域,尤其涉及一种状态机、调度方法、装置及USB媒体播放控制装置。
背景技术
状态机是一种***调度的抽象模型,使用有限的状态来描述***的行为,其要素包括状态、条件、事件、动作和迁移。层次状态机是状态机理论中的一种层次结构模型,各个状态按照树状层次结构组织起来,***根据层次状态机中所设置的调度方法对事件进行处理并通过状态迁移实现***的调度。现有的层次状态机虽然能够较为有效地进行***的调度,然而仍存在不少缺陷,如:层次状态机中的每个状态都要根据所有可能的事件建立事件处理表和事件处理函数,耗费大量代码及存储空间,例如,状态机共有N个状态和M个可能的事件,则共需要N*M个事件处理表,使得事件处理表的规模过于庞大占用大量存储空间。此外,现有的层次状态机难以扩展,如:***增加一个状态,则需要修改所有现有的事件处理表中的状态迁移信息,增大了事件处理表的规模及***调度的复杂度。
发明内容
本发明实施例的目的在于提供一种状态机、调度方法及装置,旨在解决现有的层级状态机耗费大量代码及存储空间且不易扩展的问题。另外,本发明还提出一种USB媒体播放的控制装置,所述USB播放装置基于所述的层次状态机与对应的状态机调度装置,解决了在资源较小的设备下控制USB资源播放的问题。
本发明实施例是这样实现的,一种状态机,所述状态机为层数为N的层次状态机,所述层次状态机为树状结构,所述层次状态机中每个状态的数据信息包括:状态特征号、父状态特征号、与状态相关联的事件处理表;所述层次状态机中与每个状态相关联的事件处理表包括:该状态所需处理的事件的特征号、该状态所需处理的事件所对应的事件处理函数。
本发明实施例的另一目的在于提供一种基于所述状态机的调度方法,所述方法包括:
根据接收到的事件的特征号查找当前状态及依次追溯当前状态的父状态相关联的事件处理表中是否包括所述事件的特征号;
当查找到包括所述事件的特征号的事件处理表时,从该包括所述事件的特征号的事件处理表中获取与所述事件对应的事件处理函数及目标状态;
退出当前状态后执行与所述事件对应的事件处理函数并迁移至目标状态。
本发明实施例的另一目的在于提供一种基于所述状态机的调度装置,所述装置包括:
事件查找模块,用于根据接收到的事件的特征号查找当前状态及依次追溯当前状态的父状态相关联的事件处理表中是否包括所述事件的特征号;
迁移状态信息获取模块,用于当查找到包括所述事件的特征号的事件处理表时,从该包括所述事件的特征号的事件处理表中获取与所述事件对应的事件处理函数及目标状态;
状态迁移模块,用于退出当前状态后执行与所述事件对应的事件处理函数并迁移至目标状态。
本发明实施例的另一目的在于提供一种基于层次状态机的调度装置的USB媒体播放控制装置,其特征在于,所述的装置包括:
第一层状态控制模块,其包括两个第二层的受控的子状态模块:睡眠控制模块及开机控制模块;
设置在所述开机控制模块中的第三层状态控制模块,其包括初始化控制模块、USB已拔出控制模块、USB已***控制模块;
设置在USB已***控制模块的第四层状态控制模块,其包括无法识别USB控制模块、无法读取文件控制模块、正在读取文件控制模块、读取文件结束控制模块、正在播放控制模块、停止播放控制模块;
设置在正在播放控制模块中的第五层状态控制模块,其包括正常播放控制模块、扫描播放控制模块、快进播放控制模块、快退播放控制模块。
在本发明实施例中,该层次状态机中的每个状态可以单独设计,每个状态只需在与其相关联的事件处理表中关注该状态所需要处理的事件,而不需要对所有事件定义对应的处理函数,大大降低了事件处理表的规模;此外,由于每个状态单独管理其所需处理的事件,因而无论状态的数量和层次如何变化,状态机的事件处理引擎始终保持不变,并且***的状态可随时根据需求新增或调整,不会影响其他状态,易于扩展和维护。
附图说明
图1是本发明第一实施例提供的状态机的状态图;
图2是本发明第二实施例提供的基于实施例一提供的状态机的调度方法的流程图;
图3是本发明第三实施例提供的基于实施例一提供的状态机的调度方法的流程图;
图4是本发明第四实施例提供的基于实施例一提供的状态机的调度装置的结构示意图;
图5是本发明第五实施例提供的基于实施例四提供的状态机的调度装置的USB媒体播放控制装置的结构示意图;
图6是本发明第六实施例提供的一种USB媒体播放的控制装置的一实例的示意图;
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
本发明第一实施例提供了一种状态机,为了便于说明,仅示出了与本发明实施例相关的部分。
在本发明实施例中,首先提供一种层数为N的层次状态机,该层次状态机为树状结构,每个状态对应树中的一个节点,根据状态在树状结构中的位置不同,状态分为枝节点状态和叶节点状态两种,如图1所示为层次状态机的状态图。
在图1中,一共包括四层状态,其中S1为根状态,S1的子状态包括第二层状态的状态S1_1,状态S1_2,状态S1_1的子状态包括第三层的状态S1_1_1,状态S1_1_2,第三层状态S1_1_1的子状态包括第四层状态S1_1_1_1,状态S1_1_1_2,状态S1_1_1_3。其他状态以此类同,在此不再赘述。
其中,该状态机中的每个状态都包括了数据信息,每个状态的数据信息包括但不限于:状态特征号、父状态特征号、与状态相关联的事件处理表、状态所处的层次(状态在状态机中所处的层数)、入口函数(用于对状态执行入口操作的函数)、退出函数(用于对状态执行退出操作的函数)及默认子状态(状态的默认子状态)。同时,每个状态都有一个与之相关联的事件处理表,每个事件处理表中包括但不限于:该状态所需处理的事件的特征号、该状态所需处理的事件所对应的事件处理函数、目标状态、状态迁移条件及状态迁移动作
在本发明实施例中,该层次状态机中的每个状态可以单独设计,每个状态只需在与其相关联的事件处理表中关注该状态所需要处理的事件,而不需要对所有事件定义对应的处理函数,大大降低了事件处理表的规模;此外,由于每个状态单独管理其所需处理的事件,因而无论状态的数量和层次如何变化,状态机的事件处理引擎始终保持不变,并且***的状态可随时根据需求新增或调整,不会影响其他状态,易于扩展和维护。例如,若***需要增加一个独立的状态,则只需添加一个新状态,定义其层次、父状态、事件处理表等,即可实现该状态的所有逻辑,无需更改状态机的引擎部分。
实施例二:
如图2所示为本发明第二实施例提供的基于实施例一提供的状态机的调度方法的流程图,为了便于说明,仅示出了与本发明实施例相关的部分。
在步骤S201中,状态机接收到事件。
在步骤S202中,根据接收到的事件的特征号查找当前状态及依次追溯当前状态的父状态相关联的事件处理表中是否包括接收到的事件的特征号,是则执行步骤S203,否则执行步骤S205。
在本发明实施例中,当层次状态机接收到事件时,查找当前状态及依次追溯当前状态的父状态相关联的事件处理表,查找包括接收到的事件的特征号的事件处理表。
具体为,首先查找与当前状态相关联的事件处理表,若与当前状态相关联的事件处理表中包括接收到的事件的特征号则不再继续查找;若与当前状态相关联的事件处理表中不包括接收到的事件的特征号,则继续查找当前状态的父状态所关联的事件处理表中是否包括接收到的事件的特征号,若包括则不再继续查找,否则再继续向上查找当前状态的父状态的父状态,直到查找与根节点相关联的事件处理表。
在步骤S203中,从包括事件的特征号的事件处理表中获取与事件对应的事件处理函数及目标状态。
在本发明实施例中,在依次查找与当前状态及当前状态的所有父状态相关联的事件处理表的过程中,只要查找到包括事件的特征号的事件处理表,就停止继续查找其他的事件处理表,并从该事件处理表中获取与事件对应的事件处理函数及目标状态。
在步骤S204中,判断是否符合状态迁移的条件,是则执行步骤S206,否则执行步骤S205。
在本发明实施例中,用于判断是否符合状态迁移条件的判断方法由用户设计状态时定义,例如根据电子设备控制USB外设播放,从U盘***到U盘正常播放,状态迁移受用户的操作定义。
在步骤S205中,丢弃接收到的事件。
在本发明实施例中,若直到查找到与根节点相关联的事件处理表都没有查找到接收到的事件的特征号,则丢弃接收到的事件。
在步骤S206中,退出当前状态后执行与所述事件对应的事件处理函数并迁移至目标状态。
在本发明实施例中,查找到与事件对应的事件处理函数及目标状态且符合状态迁移条件,则退出当前状态,并在执行与所述事件对应的事件处理函数后迁移至目标状态。
在本发明实施例中,该层次状态机中的每个状态可以单独设计,每个状态只需在与其相关联的事件处理表中关注该状态所需要处理的事件,而不需要对所有事件定义对应的处理函数,大大降低了事件处理表的规模;此外,由于每个状态单独管理其所需处理的事件,因而无论状态的数量和层次如何变化,状态机的事件处理引擎始终保持不变,并且***的状态可随时根据需求新增或调整,不会影响其他状态,易于扩展和维护。
实施例三:
如图3所示为本发明第三实施例提供的基于实施例一提供的状态机的调度方法的流程图,为了便于说明,仅示出了与本发明实施例相关的部分。
在步骤S301中,状态机接收到事件。
在步骤S302中,根据接收到的事件的特征号查找当前状态及依次追溯当前状态的父状态相关联的事件处理表中是否包括接收到的事件的特征号,是则执行步骤S303,否则执行步骤S305。
在步骤S303中,从包括事件的特征号的事件处理表中获取与事件对应的事件处理函数及目标状态。
在步骤S304中,判断是否符合状态迁移的条件,是则执行步骤S306,否则执行步骤S305。
在步骤S305中,丢弃接收到的事件,在前述步骤中,根据父节点追溯与该事件关联的特征号,在该步骤中因为没有找到特征号,故丢弃该事件。
在步骤S306中,查找当前状态与目标状态的最近共同祖先状态。
在本发明实施例中,查找到当前状态与目标状态的最近共同祖先状态,即在树状结构中,当前状态所处的节点与目标状态所处的节点的最近共同祖先节点。其中,在树中查找最近共同祖先节点的方法可为多种,在此不做限制。
在步骤S307中,依次从当前状态到最近共同祖先状态执行退出动作,并在执行与所述事件对应的事件处理函数后,依次从第一最近共同祖先状态到目标状态执行入口动作。所述的退出动作包括程序清理现场,释放资源等。
在本发明实施例中,在查找到最近共同祖先状态后,存储目标状态到最近共同祖先状态的路径,随之依次从当前状态到最近共同祖先状态执行退出动作。当执行到最近共同祖先状态时,执行状态迁移,根据所存储的目标状态到最近共同祖先状态的路径,在执行与事件对应的事件处理函数后,依次从最近共同祖先状态到目标状态执行入口动作。最后,在目标状态执行其默认子状态的入口动作。
由于目标状态与当前状态在树状结构的层级状态机中所处的层数可能有所不同,因此状态的迁移过程可为如下三种。
其一,当目标状态与当前状态处于同一层,则查找当前状态与目标状态的最近共同祖先状态(此处命名为第一最近共同祖先状态),依次从当前状态到第一最近共同祖先状态执行退出动作,并在执行与所述事件对应的事件处理函数后,依次从第一最近共同祖先状态到目标状态执行入口动作。
其二,当目标状态与当前状态未处于同一层且当前状态的所处的层数大于目标状态所处的层数时,将当前状态追溯到与目标状态处于同一层的当前状态的祖先状态,并查找所追溯的当前状态的祖先状态与目标状态的最近共同祖先状态(此处命名为第二最近共同祖先状态),依次从所追溯的当前状态的祖先状态到第二最近共同祖先状态执行退出动作,并在执行与所述事件对应的事件处理函数后,依次从第二最近共同祖先状态到目标状态执行入口动作。
其三,当目标状态与当前状态未处于同一层且当前状态的所处的层数小于目标状态所处的层数时,存储目标状态的特征号,将目标状态追溯到与当前状态处于同一层的目标状态的祖先状态,并查找所追溯的目标状态的祖先状态与当前状态的最近共同祖先状态(此处命名为第三最近共同祖先状态),依次从当前状态到第三最近共同祖先状态执行退出动作,并在执行与所述事件对应的事件处理函数后,依次从第三最近共同祖先状态到目标状态执行入口动作。
实施例四:
图4为本发明第四实施例提供的基于实施例一提供的状态机的调度装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部份。其中:
事件查找模块41,用于根据接收到的事件的特征号查找当前状态及依次追溯当前状态的父状态相关联的事件处理表中是否包括接收到的事件的特征号。
迁移状态信息获取模块42,用于当查找到包括所述事件的特征号的事件处理表时,从该包括所述事件的特征号的事件处理表中获取与所述事件对应的事件处理函数及目标状态。
状态迁移条件判断模块43,用于判断是否符合状态迁移的条件。
在本发明实施例中,用于判断是否符合状态迁移条件的判断方法由用户设计状态时定义,例如根据电子设备控制USB外设播放,从U盘***到U盘正常播放,状态迁移受用户的操作定义。
事件丢弃模块44,用于当事件查找模块41未查找到包括所述事件特征号的事件处理表或状态迁移条件判断模块43判断不符合状态迁移的条件时,丢弃事件。
状态迁移模块45,用于退出当前状态后执行与所述事件对应的事件处理函数并迁移至目标状态。
在本发明实施例中,所述状态迁移模块45包括:
共同祖先状态查找模块451,用于查找当前状态与目标状态的最近共同祖先状态。
状态迁移子模块452,用于依次从当前状态到最近共同祖先状态执行退出动作,并在执行与所述事件对应的事件处理函数后,依次从第一最近共同祖先状态到目标状态执行入口动作。
在本发明实施例中,该层次状态机中的每个状态可以单独设计,每个状态只需在与其相关联的事件处理表中关注该状态所需要处理的事件,而不需要对所有事件定义对应的处理函数,大大降低了事件处理表的规模;此外,由于每个状态单独管理其所需处理的事件,因而无论状态的数量和层次如何变化,状态机的事件处理引擎始终保持不变,并且***的状态可随时根据需求新增或调整,不会影响其他状态,易于扩展和维护。例如,若***需要增加一个独立的状态,则只需添加一个新状态,定义其层次、父状态、事件处理表等,即可实现该状态的所有逻辑,无需更改状态机的引擎部分。
实施例五:
图5为本发明第五实施例提供的基于实施例四提供的状态机的调度装置的USB媒体播放控制装置,为了便于说明,仅示出了与本发明实施例相关的部份。其中:
该USB媒体播放控制装置的根状态为第一层状态控制模块1,该第一层状态控制模块1包括两个第二层的受控的子状态模块:睡眠控制模块21及开机控制模块22。其中:
睡眠控制模块21,用于控制USB媒体播放控制装置处入待机状态。
开机控制模块22,用于控制USB媒体播放控制装置处于工作状态。
其中,设置在开机控制模块22中的第三层状态控制模块包括:初始化控制模块31、USB已拔出控制模块32、USB已***控制模块33;其中:
初始化控制模块31,用于初始化USB媒体播放控制装置;
USB已拔出控制模块32,用于控制USB设备处于已拔出状态;
USB已***控制模块33,用于控制USB设备处于已***状态。
当USB设备处于已***状态时,设置在USB已***控制模块33中的第四层状态控制模块,其包括无法识别USB控制模块41、无法读取文件控制模块42、正在读取文件控制模块43、读取文件结束控制模块44、正在播放控制模块45、停止播放控制模块46。其中:
无法识别USB控制模块41,用于当***无法识别USB设备时,控制USB媒体播放控制装置处于无法识别USB状态;
无法读取文件控制模块42,用于当***无法读取文件时,控制USB媒体播放控制装置处于无法读取状态;
正在读取文件控制模块43,用于控制USB媒体播放控制装置处于正在读取文件状态;
读取文件结束控制模块44,用于当读取文件结束时,控制USB媒体播放控制装置处于读取文件结束状态;
正在播放控制模块45,用于控制USB媒体播放控制装置处于正在播放媒体状态;
停止播放控制模块46,用于控制USB媒体播放控制装置处于停止播放媒体状态。
在本发明实施例中,设置在正在播放控制模块45中的第五层状态控制模块包括:正常播放控制模块51、扫描播放控制模块52、快进播放控制模块53、快退播放控制模块54。其中:
正常播放控制模块51,用于控制USB媒体播放控制装置处于正常速度播放媒体的状态;
扫描播放控制模块52,用于控制USB媒体播放控制装置处于扫描媒体文件后播放的状态;
快进播放控制模块53,用于控制USB媒体播放控制装置处于快速前进播放媒体的状态;
快退播放控制模块54,用于控制USB媒体播放控制装置处于快速倒退播放媒体的状态。
在本发明实施例中,设置在所述快进播放控制模块53的第六层状况控制第一模块,其包括低速快进播放控制模块611、高速快进播放控制模块612、帧扫描快进播放控制模块613;其中:
低速快进播放控制模块611,用于控制USB媒体播放控制装置处于低速快进播放媒体的状态;
高速快进播放控制模块612,用于控制USB媒体播放控制装置处于高速快进播放媒体的状态;
帧扫描快进播放控制模块613,用于控制USB媒体播放控制装置处于帧扫描快进播放媒体的状态。
设置在所述快退播放控制模块54的第六层状况控制第二模块,其包括低速快退播放控制模块621、高速快退播放控制模块622、帧扫描快退播放控制模块623。其中:
低速快退播放控制模块621,用于控制USB媒体播放控制装置处于低速快退播放媒体的状态;
高速快退播放控制模块622,控制USB媒体播放控制装置处于高速快进播放媒体的状态;
帧扫描快退播放控制模块623,用于控制USB媒体播放控制装置处于帧扫描快退播放媒体的状态。
在本发明实施例中,USB播放装置基于所述的层次状态机与对应的状态机调度装置,解决了在资源较小的设备下控制USB资源播放的问题。
实施例六:
如图6所示为本发明第六实施例提供的一个在USB(Universal Serial BUS,通用串行总线)媒体播放中应用的USB媒体播放的控制方法的示意图,为了便于说明,仅示出了与本发明实施例相关的部分。
如图6所示,该状态机的根状态为第一层的状态STUSB,它包括两个第二层子状态:睡眠(PWROFF)及开机(PWRON);开机(PWRON)状态又包括三个第三层子状态:初始化(INIT)、USB已拔出(PLUG_OUT)、USB已***(PLUG_IN);USB已***(PLUG_IN)状态包括六个第四层子状态:无法识别USB(CHKUSB)、无法读取音乐文件(TOC_ERR、正在读取音乐文件(READ_TOC)、读取音乐文件结束(TOC_END)、停止播放(STOP)、正在播放(PLAY);正在播放(PLAY)状态包括四个第五层子状态:正常播放(NORMALPLAY)、扫描播放(SCAN)、快进播放(FW)、快退播放(BW);快进播放(FW)状态包括一个第六层子状态:高速快进(FW_HIGH);快退播放(BW)状态包括一个第六层子状态:高速快退(BW_HIGH)。每个状态都存储其父状态的特征号。
假如,当前状态机处于快进播放(FW)状态下,收到USB拔出事件(EVENT_PLUG_OUT)时,其调度流程如下:
首先,从当前快进播放(FW)状态开始向上逐层追溯快进播放(FW)状态的父状态相关联的事件处理表,查找USB拔出事件(EVENT_PLUG_OUT)的特征号。因当前快进播放(FW)状态的事件处理表中不含USB拔出事件(EVENT_PLUG_OUT)的特征号,则查找当前状态的父状态,即正在播放(PLAY)状态,其相关联的事件处理表中仍无USB拔出事件(EVENT_PLUG_OUT)的特征号,继续往上查找父状态USB已***(PLUG_IN)状态,USB已***(PLUG_IN)状态相关联的事件处理表中包括USB拔出事件(EVENT_PLUG_OUT)的特征号,且由该事件处理表中获知事件处理的目标状态为USB已拔出(PLUG_OUT)状态,跳转动作为Action。
紧接着,查找事件处理的目标状态与当前状态的最近共同祖先状态。由于当前状态快进播放(FW)状态处于第五层,而目标状态USB已拔出(PLUG_OUT)状态处于第三层,因此快进播放(FW)状态开始往上追溯至与USB已拔出(PLUG_OUT)状态同一层的祖先状态,即:USB已***(PLUG_IN)状态。同时将目标状态USB已拔出(PLUG_OUT)状态的特征号入栈,比较USB已***(PLUG_IN)状态与USB已拔出(PLUG_OUT)状态的父状态,都是开机(PWRON)状态,则开机(PWRON)状态即为当前状态与目标状态的最近共同祖先状态。
执行从源状态至最近共同祖先状态的退出动作后,执行事件处理的跳转动作Action,再执行从最近共同祖先状态至目标状态的出栈操作及PLUG_OUT状态的入口动作(Entry),即完成了整个USB拔出事件(EVENT_PLUG_OUT)的处理流程。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包括在本发明的保护范围之内。
Claims (11)
1.一种状态机,其特征在于,所述状态机为层数为N的层次状态机,所述层次状态机为树状结构,所述层次状态机中每个状态的数据信息包括:状态特征号、父状态特征号、与状态相关联的事件处理表;所述层次状态机中与每个状态相关联的事件处理表包括:该状态所需处理的事件的特征号、该状态所需处理的事件所对应的事件处理函数。
2.如权利要求1所述的状态机,其特征在于,所述层次状态机中每个状态的数据信息还包括:状态所处的层次、入口函数、退出函数及默认子状态;所述层次状态机中与每个状态相关联的事件处理表还包括:状态迁移条件、状态迁移动作及目标状态。
3.一种基于权利要求1或2所述的状态机的调度方法,其特征在于,所述方法包括:
根据接收到的事件的特征号查找当前状态及依次追溯当前状态的父状态相关联的事件处理表中是否包括所述事件的特征号;
当查找到包括所述事件的特征号的事件处理表时,从该包括所述事件的特征号的事件处理表中获取与所述事件对应的事件处理函数及目标状态;
退出当前状态后执行所述事件处理函数并迁移至目标状态。
4.如权利要求3所述的方法,其特征在于,所述根据接收到的事件的特征号依次查找与当前状态及当前状态的所有父状态相关联的事件处理表中是否包括所述事件的特征号之后,还包括:
当未查找到包括所述事件特征号的事件处理表时,丢弃所述事件。
5.如权利要求3所述的方法,其特征在于,所述退出当前状态后执行所述事件处理函数并迁移至目标状态包括:
查找当前状态与目标状态的最近共同祖先状态;
依次从当前状态到最近共同祖先状态执行退出动作,并在执行与所述事件对应的事件处理函数后,依次从第一最近共同祖先状态到目标状态执行入口动作。
6.如权利要求3所述的方法,其特征在于,所述退出当前状态后执行与所述事件对应的事件处理函数并迁移至目标状态之前,所述方法还包括:
判断是否符合状态迁移的条件;
是则退出当前状态后执行与所述事件对应的事件处理函数并迁移至目标状态;
否则丢弃所述事件。
7.一种基于权利要求1或2所述的状态机的调度装置,其特征在于,所述装置包括:
事件查找模块,用于根据接收到的事件的特征号查找当前状态及依次追溯当前状态的父状态相关联的事件处理表中是否包括所述事件的特征号;
迁移状态信息获取模块,用于当查找到包括所述事件的特征号的事件处理表时,从该包括所述事件的特征号的事件处理表中获取与所述事件对应的事件处理函数及目标状态;
状态迁移模块,用于退出当前状态后执行所述事件处理函数并迁移至目标状态。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:
状态迁移条件判断模块,用于判断是否符合状态迁移的条件;
事件丢弃模块,用于当事件查找模块未查找到包括所述事件特征号的事件处理表或状态迁移条件判断模块判断不符合状态迁移的条件时,丢弃事件。
9.如权利要求7所述的装置,其特征在于,所述状态迁移模块包括:
共同祖先状态查找模块,用于查找当前状态与目标状态的最近共同祖先状态;
状态迁移子模块,用于依次从当前状态到最近共同祖先状态执行退出动作,并在执行与所述事件对应的事件处理函数后,依次从第一最近共同祖先状态到目标状态执行入口动作。
10.一种基于权利要求7所述的层次状态机的调度装置的USB媒体播放控制装置,其特征在于,所述的装置包括:
第一层状态控制模块,其包括两个第二层的受控的子状态模块:睡眠控制模块及开机控制模块;
设置在所述开机控制模块中的第三层状态控制模块,其包括初始化控制模块、USB已拔出控制模块、USB已***控制模块;
设置在USB已***控制模块的第四层状态控制模块,其包括无法识别USB控制模块、无法读取文件控制模块、正在读取文件控制模块、读取文件结束控制模块、正在播放控制模块、停止播放控制模块;
设置在正在播放控制模块中的第五层状态控制模块,其包括正常播放控制模块、扫描播放控制模块、快进播放控制模块、快退播放控制模块。
11.如权利要求10所述的播放控制装置,其特征在于,还包括:
设置在所述快进播放控制模块的第六层状况控制第一模块,其包括低速快进播放控制模块、高速快进播放控制模块、帧扫描快进播放控制模块;
设置在所述快退播放控制模块的第六层状况控制第二模块,其包括低速快退播放控制模块、高速快退播放控制模块、帧扫描快退播放控制模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012103787128A CN102929697A (zh) | 2012-10-09 | 2012-10-09 | 一种状态机、调度方法、装置及usb媒体播放控制装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012103787128A CN102929697A (zh) | 2012-10-09 | 2012-10-09 | 一种状态机、调度方法、装置及usb媒体播放控制装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102929697A true CN102929697A (zh) | 2013-02-13 |
Family
ID=47644506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012103787128A Pending CN102929697A (zh) | 2012-10-09 | 2012-10-09 | 一种状态机、调度方法、装置及usb媒体播放控制装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102929697A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455328A (zh) * | 2013-08-16 | 2013-12-18 | 奥博杰天软件(西安)有限公司 | 基于多层次状态机的媒体播放控制器、播放器及播放方法 |
CN107679107A (zh) * | 2017-09-13 | 2018-02-09 | 全球能源互联网研究院有限公司 | 一种基于图数据库的电网设备可达性查询方法及*** |
CN107918558A (zh) * | 2017-11-17 | 2018-04-17 | 郑州云海信息技术有限公司 | 基于状态机的业务流程控制方法、装置及设备 |
CN108062076A (zh) * | 2016-11-09 | 2018-05-22 | 株式会社东芝 | 数据收集***、处理***以及存储介质 |
CN108255525A (zh) * | 2016-12-28 | 2018-07-06 | 比亚迪股份有限公司 | 基于轨道交通的控制方法和装置 |
CN109814726A (zh) * | 2019-02-28 | 2019-05-28 | 亮风台(上海)信息科技有限公司 | 一种执行智能交互处理模块的方法与设备 |
CN112540809A (zh) * | 2020-12-09 | 2021-03-23 | 北京首钢自动化信息技术有限公司 | 一种基于状态机的事件状态控制方法和装置 |
CN112559261A (zh) * | 2020-11-27 | 2021-03-26 | 中国船舶重工集团公司第七0九研究所 | 一种基于层次状态机的axi总线性能分析方法及装置 |
CN112638144A (zh) * | 2020-12-21 | 2021-04-09 | 合肥安迅精密技术有限公司 | 一种采用层次状态机的贴片机控制方法 |
CN113942497A (zh) * | 2021-10-18 | 2022-01-18 | 长春一汽富晟集团有限公司 | 一种影像融合泊车控制器状态机跳转方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101018341A (zh) * | 2007-02-06 | 2007-08-15 | 浙江大学 | 基于嵌入式***的音视频播放状态控制装置和方法 |
US20100146256A1 (en) * | 2000-01-06 | 2010-06-10 | Super Talent Electronics Inc. | Mixed-Mode ROM/RAM Booting Using an Integrated Flash Controller with NAND-Flash, RAM, and SD Interfaces |
-
2012
- 2012-10-09 CN CN2012103787128A patent/CN102929697A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100146256A1 (en) * | 2000-01-06 | 2010-06-10 | Super Talent Electronics Inc. | Mixed-Mode ROM/RAM Booting Using an Integrated Flash Controller with NAND-Flash, RAM, and SD Interfaces |
CN101018341A (zh) * | 2007-02-06 | 2007-08-15 | 浙江大学 | 基于嵌入式***的音视频播放状态控制装置和方法 |
Non-Patent Citations (1)
Title |
---|
刘晋,任玉帅: "层次状态机在嵌入式用户界面中的应用研究", 《微计算机应用》, 30 November 2008 (2008-11-30) * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455328A (zh) * | 2013-08-16 | 2013-12-18 | 奥博杰天软件(西安)有限公司 | 基于多层次状态机的媒体播放控制器、播放器及播放方法 |
CN108062076B (zh) * | 2016-11-09 | 2020-10-27 | 株式会社东芝 | 数据收集***、处理***以及存储介质 |
CN108062076A (zh) * | 2016-11-09 | 2018-05-22 | 株式会社东芝 | 数据收集***、处理***以及存储介质 |
CN108255525A (zh) * | 2016-12-28 | 2018-07-06 | 比亚迪股份有限公司 | 基于轨道交通的控制方法和装置 |
CN107679107B (zh) * | 2017-09-13 | 2020-10-27 | 全球能源互联网研究院有限公司 | 一种基于图数据库的电网设备可达性查询方法及*** |
CN107679107A (zh) * | 2017-09-13 | 2018-02-09 | 全球能源互联网研究院有限公司 | 一种基于图数据库的电网设备可达性查询方法及*** |
CN107918558A (zh) * | 2017-11-17 | 2018-04-17 | 郑州云海信息技术有限公司 | 基于状态机的业务流程控制方法、装置及设备 |
CN109814726A (zh) * | 2019-02-28 | 2019-05-28 | 亮风台(上海)信息科技有限公司 | 一种执行智能交互处理模块的方法与设备 |
CN109814726B (zh) * | 2019-02-28 | 2022-07-01 | 亮风台(上海)信息科技有限公司 | 一种执行智能交互处理模块的方法与设备 |
CN112559261A (zh) * | 2020-11-27 | 2021-03-26 | 中国船舶重工集团公司第七0九研究所 | 一种基于层次状态机的axi总线性能分析方法及装置 |
CN112540809A (zh) * | 2020-12-09 | 2021-03-23 | 北京首钢自动化信息技术有限公司 | 一种基于状态机的事件状态控制方法和装置 |
CN112638144A (zh) * | 2020-12-21 | 2021-04-09 | 合肥安迅精密技术有限公司 | 一种采用层次状态机的贴片机控制方法 |
CN112638144B (zh) * | 2020-12-21 | 2022-03-22 | 合肥安迅精密技术有限公司 | 一种采用层次状态机的贴片机控制方法 |
CN113942497A (zh) * | 2021-10-18 | 2022-01-18 | 长春一汽富晟集团有限公司 | 一种影像融合泊车控制器状态机跳转方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102929697A (zh) | 一种状态机、调度方法、装置及usb媒体播放控制装置 | |
CN102467408B (zh) | 一种虚拟机数据的访问方法和设备 | |
CN104731896B (zh) | 一种数据处理方法及*** | |
CN103198122B (zh) | 重启内存数据库的方法和装置 | |
CN103714097A (zh) | 一种访问数据库的方法和装置 | |
CN103593257B (zh) | 一种数据备份方法及装置 | |
CN101794261B (zh) | 映射表数据恢复方法及装置 | |
CN102231852A (zh) | 一种机顶盒序列号烧写方法及装置 | |
CN101667274A (zh) | 电子广告的广告播放计划生成方法和装置 | |
CN102959548B (zh) | 数据存储方法、查找方法及装置 | |
CN104778271A (zh) | 一种视频数据的缓存方法及装置 | |
CN102243884B (zh) | 一种存储流媒体数据的方法及装置 | |
CN104185088A (zh) | 一种视频处理方法及装置 | |
CN103136244A (zh) | 基于云计算平台的并行数据挖掘方法及*** | |
CN103400074A (zh) | 一种隐藏进程的检测方法及装置 | |
CN106294387A (zh) | 数据迁移方法和装置 | |
CN103152633A (zh) | 一种关键词的识别方法及装置 | |
CN103778120A (zh) | 全局文件标识生成方法、生成装置及相应的分布式文件*** | |
CN102262562A (zh) | 任务处理方法及*** | |
CN104636218B (zh) | 数据恢复方法及装置 | |
CN106446133A (zh) | 同时对接两个数据库的方法及装置 | |
CN102187340A (zh) | 断点信息管理方法和断点信息管理器 | |
CN103309993A (zh) | 一种关键词的提取方法及装置 | |
CN102339305A (zh) | 基于偏序关系日志的数据库集群故障恢复方法 | |
CN102436453A (zh) | 一种父子维的处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130213 |
|
RJ01 | Rejection of invention patent application after publication |