一种机顶盒界面高效切换的方法

文档序号:6332416阅读:682来源:国知局
专利名称:一种机顶盒界面高效切换的方法
一种机顶盒界面高效切换的方法
技术领域
本发明涉及一种嵌入式技术,尤其是一种机顶盒界面高效切换的方法,特别是属 于机顶盒领域技术。
背景技术
随着国家数字电视的大规模普及,作为数字电视终端产品的数字电视机顶盒的功 能也越来越强大,作为与用户使用最多的人机交互界面也越来越多样。传统的机顶盒上界 面切换通过程序编写来完成,每进入一个新的界面程序就不断的读取遥控器输入值,根据 读到的遥控器输入值判断程序下一步的执行以及要切换的界面,由于不同的界面在不同的 状态下切换的界面也不同。造成传统方式界面切换必须编写大量的代码来完成界面的切换 工作,因此无法实现在一个界面下向任意界面跳转。传统模式下界面切换的方式如图5所 示机顶盒在开机后处于一个初始状态,每个状态对于了一个界面和一些功能。在某个状态 里,都是不断等待机顶盒的按键输入或者其他如定时器等消息,当等到按键输入或消息时, 根据程序的相应设置选择需要的状态,然后运行相应的功能和绘制新的界面。在每个新的 状态中继续按照如图5中的流程进行。对增加新的界面都要按照这个流程编写新的分支程 序。这个做法工作量大,编程容易出错。特别是不能在某个状态下,随意向其他状态切换, 如图4所示,当处在状态6时,如程序需要切换到状态9,就必须先退到状态3,然后从状态 3退到状态1,然后从状态1切换到状态4,然后从状态4切换到状态9,而不能直接从状态 6直接切换到状态9。这样界面切换必须编写大量的代码来完成。

发明内容本发明要解决的技术问题,在于提供一种机顶盒界面高效切换的方法,可以在编 写少量代码的情况下,通过配置状态表来实现机顶盒界面的高效切换,可实现在机顶盒一 种状态界面下向别的任意状态界面跳转的功能。本发明是这样实现的一种机顶盒界面高效切换的方法,其特征在于首先,将机 顶盒的界面作为一个容器,每个容器对应一种状态,每个状态对应一个ID,所述容器包括了 与界面相关的界面绘制事件以及与EVENT事件有关的状态进入事件、状态退出事件、状态 的按键和消息相应事件;其次,在机顶盒中设置一缓存区用于缓存消息池和按键池,提供一消息引擎,将所 有事件的事件消息集中在一消息池中,通过消息引擎进行处理,并根据事件消息处理相应 的事件;处理完消息池中的消息后,接着检测按键池中是否有按键输入,如果有则向所述 消息引擎发送按键事件消息,并根据状态表或使用跳转函数实现状态跳转;所述的状态表 包括初始状态、状态的子状态、对应消息、要跳转的状态、跳转的方式。本发明具有如下优点该方法将机顶盒的每个界面作为一个容器,每个容器对应 一种状态,然后使用消息引擎技术及事件处理技术,并根据状态表或使用跳转函数实现状态跳转。本发明可以在编写少量代码的情况下,通过配置状态表来实现机顶盒界面的高效 切换,可实现在机顶盒一种状态界面下向别的任意状态界面跳转的功能。

图1为本发明中所述容器的结构示意图。图2为本发明中所述的状态表结构示意图。图3为本发明中所述消息引擎的操作流程示意图。图4为现有机顶盒界面状态切换示意图。图5为现有机顶盒界面切换方法流程示意图。
具体实施方式下面参照图1至图3结合实施例对本发明作进一步的说明一种机顶盒界面高效切换的方法,是通过以下方式实现的首先,将机顶盒的界面作为一个容器,每个容器对应一种状态,每个状态对应一个 ID,见图1所示所述容器包括了与界面绘制相关的界面的绘制事件以及与EVENT事件函数 有关的状态的进入事件、状态的退出事件、状态的按键和消息相应事件;其次,在机顶盒中设置一缓存区用于缓存消息池和按键池,提供一消息引擎,将所 有事件的事件消息集中在一消息池中,通过消息引擎进行处理,并根据事件消息处理相应 的事件;处理完消息池中的消息后,接着检测按键池中是否有按键输入,如果有则向所述 消息引擎发送按键事件消息,并根据状态表或使用跳转函数实现状态跳转;见图2所示所 述的状态表包括初始状态、状态的子状态、对应消息、要跳转的状态、跳转的方式;所述跳转 的方式包括直接跳转和带返回的跳转,所述带返回的跳转指的是跳转结束后在一定时间范 围内还会回到原来状态。其中所述消息引擎的操作流程见图3所示等待事件消息和按键输入,当收到事 件消息后,找到对应状态下该消息注册的事件,并执行相应的事件函数,当运行完相应消息 的事件后,判断消息池中是否还有消息(消息池是当有事件处理时,把相应的事件处理消 息放入缓存区,该缓存区是消息池),是则继续找到对应状态下该消息注册的事件,并执行 相应的事件函数,如此反复操作,直到消息池中没有消息为止,否则等待事件消息和按键输 入;当按键池中有按键输入时(按键池是当有按键输入时,把相应的按键值及按键状态放 入缓存区,该缓存区是按键池,其中按键状态分为按下状态和弹起状态),则向消息引擎发 送按键事件消息,并读取状态表,判断状态表中是否有初始状态和子状态,以及对应该按键 的消息,是则系统通过状态表实现状态跳转,否则等待事件消息和按键输入。其中当系统通过状态表或者使用跳转函数实现状态跳转时,具体的流程为首先 发送原状态的退出事件消息到消息引擎,然后发送跳转状态的绘制消息到消息引擎,最后 发送跳转状态的进入消息到消息引擎,然后所有的消息将在消息引擎中得以执行。其中所述跳转函数的参数包括了原状态的ID,跳转状态的ID,以及跳转方式。其中值得一提的是在每个状态中包括许多子状态,在每个状态中对响应按键的 输入或消息池中的消息的位置,这些都是状态的子状态。
4
总之,机顶盒界面高效切换的方法,将机顶盒的每个界面作为一个容器,每个容器 对应一种状态,然后使用消息引擎技术及事件处理技术,并根据状态表或使用跳转函数实 现状态跳转。本发明可以在编写少量代码的情况下,通过配置状态表来实现机顶盒界面的 高效切换,可实现在机顶盒一种状态界面下向别的任意状态界面跳转的功能。以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与 修饰,皆应属本发明的涵盖范围。
权利要求
一种机顶盒界面高效切换的方法,其特征在于首先,将机顶盒的每个界面作为一个容器,每个容器对应一种状态,每个状态对应一个ID,所述容器包括了与界面相关的界面绘制事件以及与EVENT事件有关的状态进入事件、状态退出事件、状态的按键和消息相应事件;其次,在机顶盒中设置一缓存区用于缓存消息池和按键池,并提供一消息引擎,将所有事件的事件消息集中在一消息池中,通过消息引擎进行处理,并根据事件消息处理相应的事件;处理完消息池中的消息后,接着检测按键池中是否有按键输入,如果有则向所述消息引擎发送按键事件消息,并根据状态表或使用跳转函数实现状态跳转;所述的状态表包括初始状态、状态的子状态、对应消息、要跳转的状态、跳转的方式。
2.根据权利要求1所述的一种机顶盒界面高效切换的方法,其特征在于所述消息引 擎的操作流程为等待事件消息和按键输入,当收到事件消息后,找到对应状态下该消息注 册的事件,并执行相应的事件函数,当运行完相应消息的事件后,判断消息池中是否还有消 息,是则继续找到对应状态下该消息注册的事件,并执行相应的事件函数,如此反复操作, 直到消息池中没有消息为止,否则等待事件消息和按键输入;当按键池中有按键输入时,则 向消息引擎发送按键事件消息,并读取状态表,判断状态表中是否有初始状态和子状态,以 及对应该按键的消息,是则系统通过状态表实现状态跳转,否则等待事件消息和按键输入。
3.根据权利要求1所述的一种机顶盒界面高效切换的方法,其特征在于当系统通过 状态表或者使用跳转函数实现状态跳转时,具体的流程为首先发送原状态的退出事件消 息到消息引擎,然后发送跳转状态的绘制消息到消息引擎,最后发送跳转状态的进入消息 到消息引擎,然后所有的消息将在消息引擎中得以执行。
4.根据权利要求1所述的一种机顶盒界面高效切换的方法,其特征在于所述跳转的 方式包括直接跳转和带返回的跳转,所述带返回的跳转指的是跳转结束后在一定时间范围 内还会回到原来状态。
5.根据权利要求1所述的一种机顶盒界面高效切换的方法,其特征在于所述跳转函 数的参数包括了原状态的ID,跳转状态的ID,以及跳转方式。
全文摘要
本发明提供一种机顶盒界面高效切换的方法,将机顶盒的每个界面作为一个容器,每个容器对应一种状态,然后使用消息引擎技术及事件处理技术,并根据状态表或使用跳转函数实现状态跳转;从而实现机顶盒界面的高效切换。本发明可以在编写少量代码的情况下,通过配置状态表来实现机顶盒界面的高效切换,可实现在机顶盒一种状态界面下向别的任意状态界面跳转的功能。
文档编号G06F3/048GK101937314SQ20101028787
公开日2011年1月5日 申请日期2010年9月20日 优先权日2010年9月20日
发明者方立 申请人:福建新大陆通信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1