CN100498714C - 使用状态机构建电视机软件***的方法 - Google Patents

使用状态机构建电视机软件***的方法 Download PDF

Info

Publication number
CN100498714C
CN100498714C CNB2006100328401A CN200610032840A CN100498714C CN 100498714 C CN100498714 C CN 100498714C CN B2006100328401 A CNB2006100328401 A CN B2006100328401A CN 200610032840 A CN200610032840 A CN 200610032840A CN 100498714 C CN100498714 C CN 100498714C
Authority
CN
China
Prior art keywords
state
supervisor
software system
initialization
treatment
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.)
Expired - Fee Related
Application number
CNB2006100328401A
Other languages
English (en)
Other versions
CN1889644A (zh
Inventor
白骥
郭敏强
徐勇
何彦
黄黎明
许雪松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Skyworth RGB Electronics Co Ltd
Original Assignee
Shenzhen Skyworth RGB Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Skyworth RGB Electronics Co Ltd filed Critical Shenzhen Skyworth RGB Electronics Co Ltd
Priority to CNB2006100328401A priority Critical patent/CN100498714C/zh
Publication of CN1889644A publication Critical patent/CN1889644A/zh
Application granted granted Critical
Publication of CN100498714C publication Critical patent/CN100498714C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种使用状态机构建电视机软件***的方法,包括以下步骤:(1)根据电视机软件需求创建状态;(2)创建管理所述状态的状态管理器;(3)构建电视机软件***。本发明可以快速地构建一个电视机软件***,运行速度快且稳定;可以标准化电视机软件各部分,在标准化软件的同时,并不降低其灵活性;可以使软件各部分完全区别开,不互相干扰,灵活程度得到提高;可以使电视机软件模块化,并让其调试、维护变得简单化,降低成本。

Description

使用状态机构建电视机软件***的方法
技术领域
本发明涉及嵌入式操作***领域,尤其是涉及一种使用状态机构建电视机软件***的方法。
背景技术
在电视机领域中,每个电视机程序基本上都是从初始化开始,显示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)恢复至当前状态。
本方法在嵌入式领域引入了状态,并巧妙地设计了一个状态管理体制,使程序设计在标准化的同时,更加灵活。各个状态之间相互独立,无干扰,更易于维护。

Claims (4)

1、一种使用状态机构建电视机软件***的方法,包括以下步骤:
(1)根据电视机软件需求创建状态;
(2)创建管理所述状态的状态管理器;所述状态管理器包括初始化、释放、改变状态、暂停状态、恢复状态、处理状态事件、处理状态数据及绘制状态;当一个状态开始时,所述状态管理器调用状态初始化,然后循环处理状态事件、处理状态数据、绘制状态,直至状态结束,调用状态释放;
(3)根据电视运行需求构建电视机软件***。
2、根据权利要求1所述的方法,其特征在于:所述状态包括处理事件、数据处理及计算、绘图、初始化、释放、暂停及恢复。
3、根据权利要求1所述的方法,其特征在于:从当前状态切换到另一状态时,可直接使用所述状态管理器改变状态。
4、根据权利要求1所述的方法,其特征在于:如果当前状态需要挂起,使用所述状态管理器暂停状态并切换至另一状态,所述状态管理器自动保存当前状态于状态栈,待另一状态结束,调用恢复状态恢复至当前状态。
CNB2006100328401A 2006-01-13 2006-01-13 使用状态机构建电视机软件***的方法 Expired - Fee Related CN100498714C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100328401A CN100498714C (zh) 2006-01-13 2006-01-13 使用状态机构建电视机软件***的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100328401A CN100498714C (zh) 2006-01-13 2006-01-13 使用状态机构建电视机软件***的方法

Publications (2)

Publication Number Publication Date
CN1889644A CN1889644A (zh) 2007-01-03
CN100498714C true CN100498714C (zh) 2009-06-10

Family

ID=37578901

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100328401A Expired - Fee Related CN100498714C (zh) 2006-01-13 2006-01-13 使用状态机构建电视机软件***的方法

Country Status (1)

Country Link
CN (1) CN100498714C (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019695B (zh) * 2012-11-22 2016-07-06 用友网络科技股份有限公司 数据对象与状态控制逻辑分离***和方法
CN107977230A (zh) * 2017-12-01 2018-05-01 广东雅达电子股份有限公司 一种基于状态机机制的应用管理方法
CN113031921A (zh) * 2020-12-31 2021-06-25 南京汉隆科技有限公司 一种网络话机应用软件的开发框架及实现方法

Also Published As

Publication number Publication date
CN1889644A (zh) 2007-01-03

Similar Documents

Publication Publication Date Title
CN103984598B (zh) 用于线程调度的方法以及***
US8560876B2 (en) Clock acceleration of CPU core based on scanned result of task for parallel execution controlling key word
US8468514B2 (en) System and method for updating unified extensible firmware interface setting information
KR101702728B1 (ko) 멀티-환경 운영 체제
US9904575B2 (en) System and method for selective timer rate limiting
CN110300328B (zh) 一种视频播放控制方法、装置及可读存储介质
US8793697B2 (en) Method and system for scheduling requests in a portable computing device
CN110806923A (zh) 一种区块链任务的并行处理方法、装置、电子设备和介质
CN105051690A (zh) 使用具有客操作***及虚拟处理器的超管理器的***及方法
CN102473102A (zh) 用于发起多环境操作***的***和方法
CN101814024A (zh) 一种跨平台3d界面设计架构和工具
CN101097514A (zh) 启用同时多线程(smt)的***及其管理方法
CN105786603B (zh) 一种基于分布式的高并发业务处理***及方法
CN102200916A (zh) 电子设备、可配置的部件及该部件的配置信息存储方法
WO2014178898A1 (en) Second screen view with multitasking
CN111459645B (zh) 一种任务调度方法、装置和电子设备
CN104823155A (zh) 基于存储器的旗语
US9367350B2 (en) Meta-scheduler with meta-contexts
US9542230B2 (en) System and method for selective timer coalescing
CN100498714C (zh) 使用状态机构建电视机软件***的方法
CN110008027A (zh) 进程的运行方法、装置、终端及存储介质
CN102262555A (zh) 加载java三方库的不同版本的方法和装置
US10521275B2 (en) Asynchronous dispatcher for application framework
CN101349975B (zh) 一种在嵌入式操作***上实现中断底半部机制的方法及装置
CN110704187A (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
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090610

Termination date: 20120113