使用状态机构建电视机软件系统的方法技术方案

技术编号:3633282 阅读:162 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种使用状态机构建电视机软件系统的方法,包括以下步骤:(1)根据电视机软件需求创建状态;(2)创建管理所述状态的状态管理器;(3)构建电视机软件系统。本发明专利技术可以快速地构建一个电视机软件系统,运行速度快且稳定;可以标准化电视机软件各部分,在标准化软件的同时,并不降低其灵活性;可以使软件各部分完全区别开,不互相干扰,灵活程度得到提高;可以使电视机软件模块化,并让其调试、维护变得简单化,降低成本。

【技术实现步骤摘要】

本专利技术涉及嵌入式操作系统领域,尤其是涉及一种。
技术介绍
在电视机领域中,每个电视机程序基本上都是从初始化开始,显示LOGO,显示菜单,然后正式运行程序,可能会同时出现多个状态——比如程序过程中弹出菜单。传统的处理多状态的方式是使用大量的判断、循环、分支语句。电视机初始化,退出LOGO状态后就开始一直循环,直到按下一个键;然后菜单就显示了,直到完成了选择操作。每一次程序循环,必须得检查是应该显示菜单还是简单的等待。而且,处理事件的那部分程序还必须判断输入究竟是菜单来相应还是程序来相应。所有的这些组合起来就形成了一个主循环,可以发现这个系统比较难以理解,且调试和维护也不方便。因此,在电视机应用程序设计时,必须注意对于状态的处理,设计一个方便、统一的状态处理机制能极大地加速开发速度、降低调试和维护成本。
技术实现思路
本专利技术要解决的技术问题是克服上述现有技术存在的不足,提供一种,使程序设计在标准化的同时,更加灵活,更易于维护。本专利技术提供一种实现,包括以下步骤(1)根据电视机软件需求创建状态;(2)创建管理所述状态的状态管理器;(3)构建电视机软件系统。所述状态包括处理事件、数据处理及计算、绘图、初始化、释放、暂停及恢复。所述状态管理器包括初始化、释放、改变状态、暂停状态、恢复状态、处理状态事件、处理状态数据及绘制状态。当一个状态开始时,所述状态管理器调用状态初始化,然后循环处理状态事件、处理状态数据、绘制状态,直至状态结束,调用状态释放。从当前状态切换到另一状态时,可直接使用所述状态管理器改变状态。如果当前状态需要挂起,使用所述状态管理器暂停状态并切换至另一状态,所述状态管理器自动保存当前状态于状态栈,待另一状态结束,调用恢复状态恢复至当前状态。与现有电视类软件相比,本专利技术具有以下有益的效果可以快速地构建一个电视机软件系统,运行速度快且稳定;可以标准化电视机软件各部分,在标准化软件的同时,并不降低其灵活性;可以使软件各部分完全区别开,不互相干扰,灵活程度得到提高;可以使电视机软件模块化,并让其调试、维护变得简单化,降低成本。附图说明图1是本专利技术中状态的一般组成。图2是本专利技术中状态管理器的组成。图3是本专利技术的一个简单应用。图4是本专利技术中状态切换的实施例示意图。具体实施例方式请参照图1所示,本专利技术提供一种实现,包括以下步骤步骤一根据电视机软件需求创建状态;步骤二创建管理所述状态的状态管理器;步骤三构建电视机软件系统。此处先说明三个基本概念状态(State)指的是对象在其生命周期中的一种状况,处于某个特定状态中的对象必然会满足某些条件、执行某些动作或者是等待某些事件。事件(Event)指的是在时间和空间上占有一定位置,并且对状态机来讲是有意义的那些事情。事件通常会引起状态的变迁,促使状态机从一种状态切换到另一种状态。切换(Transition)指的是两个状态之间的一种关系,表明对象将在第一个状态中执行一定的动作,并将在某个事件发生同时某个特定条件满足时进入第二个状态。请参照图2所示,状态就像是大系统中的一个单独的小系统。每个系统需要以不同的方式处理事件,需要在屏幕上绘制不同的内容;还需要处理它自己的事件、等待;应该能够加载图形、初始化、释放资源,并且有时系统还需要暂停,还要能够恢复。因此,可以确定状态应该拥有处理事件(HandleEvents)、数据处理及计算(Update)、绘图(Draw)、初始化(Init)、释放(Cleanup)、暂停(Pause)、恢复(Resume)这几个方法。有了状态的描述,还需要一个状态管理体制来对其进行管理,以实现优质高效的状态切换。请参照图3所示,在状态管理器中,需要做的是初始化和完成后的清理工作;需要检查状态管理器是否仍然在运行、是否退出,以及处理事件、更新程序、绘制菜单。在实现状态管理器时,我们使用“状态栈”来管理各种不同的程序状态。“状态栈”是一个存储状态的堆栈,其中当前状态存储于栈顶。可使用STL的矢量vector来实现状态栈。除此之外,还需要改变状态的方法,以及入栈和出栈方法。状态管理器中的处理状态事件(HandleEvents)、处理状态数据(Update)、绘制状态(Draw)只需简单的调用“状态栈”顶当前状态对象相应的成员即可。当一个状态开始时,状态管理器调用状态初始化(Init),然后循环处理状态事件(HandleEvents)、处理状态数据(Update)、绘制状态(Draw)。直至状态结束,调用状态释放(CleanUp)。最后需要考虑的是状态之间的切换方法。请再参照图4所示,(注意在本专利技术中,状态管理器并不知道状态何时切换到另一个状态,只有当前的状态知道什么时候转向下一个状态。这一设计能大大提高了应用的灵活性,减少代码量,提高执行速度。)当前状态想要切换到另一状态时,可直接使用状态管理器改变状态(ChangeState)。如果当前状态需要挂起,也可以使用状态管理器暂停状态(PushState)切换至另一状态,状态管理器自动保存当前状态于“状态栈”,待另一状态结束,调用恢复状态(PopState)恢复至当前状态。本方法在嵌入式领域引入了状态,并巧妙地设计了一个状态管理体制,使程序设计在标准化的同时,更加灵活。各个状态之间相互独立,无干扰,更易于维护。权利要求1.一种,包括以下步骤(1)根据电视机软件需求创建状态;(2)创建管理所述状态的状态管理器;(3)根据电视运行需求构建电视机软件系统。2.根据权利要求1所述的方法,其特征在于所述状态包括处理事件、数据处理及计算、绘图、初始化、释放、暂停及恢复。3.根据权利要求1所述的方法,其特征在于所述状态管理器包括初始化、释放、改变状态、暂停状态、恢复状态、处理状态事件、处理状态数据及绘制状态。4.根据权利要求3所述的方法,其特征在于当一个状态开始时,所述状态管理器调用状态初始化,然后循环处理状态事件、处理状态数据、绘制状态,直至状态结束,调用状态释放。5.根据权利要求1所述的方法,其特征在于从当前状态切换到另一状态时,可直接使用所述状态管理器改变状态。6.根据权利要求3所述的方法,其特征在于如果当前状态需要挂起,使用所述状态管理器暂停状态并切换至另一状态,所述状态管理器自动保存当前状态于状态栈,待另一状态结束,调用恢复状态恢复至当前状态。全文摘要本专利技术提供一种,包括以下步骤(1)根据电视机软件需求创建状态;(2)创建管理所述状态的状态管理器;(3)构建电视机软件系统。本专利技术可以快速地构建一个电视机软件系统,运行速度快且稳定;可以标准化电视机软件各部分,在标准化软件的同时,并不降低其灵活性;可以使软件各部分完全区别开,不互相干扰,灵活程度得到提高;可以使电视机软件模块化,并让其调试、维护变得简单化,降低成本。文档编号G06F9/455GK1889644SQ200610032840公开日2007年1月3日 申请日期2006年1月13日 优先权日2006年1月13日专利技术者白骥, 郭敏强, 徐勇, 何彦, 黄黎明, 许雪松 申请人:深圳创维-Rgb电子有限公司本文档来自技高网...

【技术保护点】
一种使用状态机构建电视机软件系统的方法,包括以下步骤:(1)根据电视机软件需求创建状态;(2)创建管理所述状态的状态管理器;(3)根据电视运行需求构建电视机软件系统。

【技术特征摘要】

【专利技术属性】
技术研发人员:白骥郭敏强徐勇何彦黄黎明许雪松
申请(专利权)人:深圳创维RGB电子有限公司
类型:发明
国别省市:94[中国|深圳]

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

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