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

技术编号:4101421 阅读:190 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种机顶盒界面高效切换的方法,将机顶盒的每个界面作为一个容器,每个容器对应一种状态,然后使用消息引擎技术及事件处理技术,并根据状态表或使用跳转函数实现状态跳转;从而实现机顶盒界面的高效切换。本发明专利技术可以在编写少量代码的情况下,通过配置状态表来实现机顶盒界面的高效切换,可实现在机顶盒一种状态界面下向别的任意状态界面跳转的功能。

【技术实现步骤摘要】

本专利技术涉及一种嵌入式技术,尤其是,特别是属 于机顶盒领域技术。
技术介绍
随着国家数字电视的大规模普及,作为数字电视终端产品的数字电视机顶盒的功 能也越来越强大,作为与用户使用最多的人机交互界面也越来越多样。传统的机顶盒上界 面切换通过程序编写来完成,每进入一个新的界面程序就不断的读取遥控器输入值,根据 读到的遥控器输入值判断程序下一步的执行以及要切换的界面,由于不同的界面在不同的 状态下切换的界面也不同。造成传统方式界面切换必须编写大量的代码来完成界面的切换 工作,因此无法实现在一个界面下向任意界面跳转。传统模式下界面切换的方式如图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事件有关的状态进入事件、状态退出事件、状态的按键和消息相应事件;其次,在机顶盒中设置一缓存区用于缓存消息池和按键池,并提供一消息引擎,将所有事件的事件消息集中在一消息池中,通过消息引擎进行处理,并根据事件消息处理相应的事件;处理完消息池中的消息后,接着检测按键池中是否有按键输入,如果有则向所述消息引擎发送按键事件消息,并根据状态表或使用跳转函数实现状态跳转;所述的状态表包括初始状态、状态的子状态、对应消息、要跳转的状态、跳转的方式。

【技术特征摘要】
一种机顶盒界面高效切换的方法,其特征在于首先,将机顶盒的每个界面作为一个容器,每个容器对应一种状态,每个状态对应一个ID,所述容器包括了与界面相关的界面绘制事件以及与EVENT事件有关的状态进入事件、状态退出事件、状态的按键和消息相应事件;其次,在机顶盒中设置一缓存区用于缓存消息池和按键池,并提供一消息引擎,将所有事件的事件消息集中在一消息池中,通过消息引擎进行处理,并根据事件消息处理相应的事件;处理完消息池中的消息后,接着检测按键池中是否有按键输入,如果有则向所述消息引擎发送按键事件消息,并根据状态表或使用跳转函数实现状态跳转;所述的状态表包括初始状态、状态的子状态、对应消息、要跳转的状态、跳转的方式。2.根据权利要求1所述的一种机顶盒界面高效切换的方法,其特征在于所述消息引 擎的操作流程为等待事件消息和按键输入,当收到事件消息后,找到对应状态下该消息注 册的事件,并执行相应的事件函数,当运行完相应消息的事件后,判断消息池中是否还有消 息,是则继续找到对应状态下该消息注...

【专利技术属性】
技术研发人员:方立
申请(专利权)人:福建新大陆通信科技股份有限公司
类型:发明
国别省市:35[中国|福建]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利