一种嵌入式的数字电视业务平台的实现方法
技术领域
本发明涉及一种嵌入式的数字电视业务平台的实现方法,属于数字电视接收技术领域。
背景技术
本发明的背景技术是数字电视接收设备技术。
数字电视接收设备泛指能够接收、解码和显示数字电视信号的硬件设备,它应用于数字电视领域,是模拟电视数字化得以实现的终端(见图2)。数字电视接收设备所接收的是数字化的图像和数据信息,因此,不同于传统的模拟电视信号的接收与处理,数字电视接收设备对数字化的图像信息和数据的接收及处理是通过其内部的CPU及与其相连接的外围器件进行的。接收系统就是在相应的硬件及操作系统的基础上开发出数字电视接收设备适用的应用程序;同样,一些专业的数字广播内容服务商也需要根据不同的数字电视接收设备的硬件性能和功能开发出相应的服务软件。
在电视台或电视运营商的广播设备中,音视频信号与数据内容经过前端的复用器混合,形成传输流(TS流)。传输流经过调制形成电磁信号传送到数字电视接收设备中。数字电视信号经过调谐选择器获取,经过解调器获取相应的TS流信息,然后经过MPEG解复用获得相应的音视频和数据信号。音视频信号经过MPEG解码器和图像处理器,得到音视频信号,输出到显示屏(电视机)上。数据流则通过解复用器流入到CPU中,由在中央处理器(CPU)上运行的系统程序进行处理。处理的结果可以与音视频流一起进行混合,输出到显示器件上。
数字电视在原有音视频业务的基础上增加了大量的数据业务,数据通过轮播方式循环广播到接收设备。然而要实现数据业务,必须使数字电视接收设备能够执行各种应用,使得广播的数据能够显示给电视用户和观众。应用程序用来提供各种各样的交互功能,如电子节目指南、游戏、网上购物、电子银行等。在现有的数字电视接收设备技术中,将要执行的应用直接嵌入在数字电视接收设备中,而且应用与接收设备的启动层直接联结,使得应用依赖于下层硬件平台,可移植降低。在同一电视网路中,不同硬件组成和设计架构的接收设备之间不能兼容,运营商必须重新开发不同的应用,极大的浪费了事件和金钱,而且不同的应用在不同的数字电视接收设备上显示的结果不同,给电视用户也造成了不同的感觉和印象,影响了数字电视的运营。
本发明的方法就是针对传统技术的不足而提出的解决办法。
发明内容 本发明要解决的技术问题是一种嵌入式的数字电视业务平台的实现方法,该方法的好处就是通过在数字电视接收设备(或称机顶盒)中基于数字电视硬件、驱动层建立一种数字电视业务的执行平台,使得各种应用与驱动层硬件结构和软件系统独立,能够直接下载到机顶盒中,以便实现数字电视领域的数据业务。
本发明通过以下的技术方案使以上问题得到解决。基于机顶盒硬件平台和驱动层的架构,采用一种层次型架构和模块化组合的设计方法,提供一个应用可下载到机顶盒中执行和可控制的操作环境,使得系统易于升级和扩展。
下面详细说明本发明的技术方案。
本方法的步骤:
本方法是在数字电视接收设备中实现一个基于机顶盒硬件和驱动层之上的应用核心处理系统,它将应用与机顶盒硬件平台隔开,它由下列几部份组成(如图1所示):
■机顶盒驱动层:本发明的方法规范和统一了一个标准接口,使得上层的各种内嵌的各种模块能够基于一个统一的接口之上,增加可移植性。此层接口,它提供MPEG-2表格数据提取、条件接收和智能卡控制、信道参数设定、音/视频流控制、Modem管理、Flash存储管理和其它的功能。
主要资源模块有:
◆TUNER/DEMODULATOR解调模块
◆DLOAD数据装载模块
◆AUDIO DECODER音频解码模块
◆VIDEO DECODER视频解码模块
◆INPUT DEVICE输入设备模块(包括遥控器,前面板按键和键盘)
◆FRONTPAD DISPLAY前面板显示模块
◆SERIAL PORT串口模块
◆TCP/IP模块
◆STORAGE存储模块
◆SMART CARD智能卡模块
■系统核心模块:它由一系列模块组成,包括内存管理、事件管理、安全性控制、数据下载管理及网络协议管理(DSMCC、HTTP等)。
■图形模块:此模块与下层平台接口,提供高级的函数用于绘图、多视窗管理、图像文件装载与显示等功能。数字电视机顶盒中的图像系统支持五层结构,从底层到上层依次为:背景层、静止图像层、视频层、图形层和光标层。
■SI引擎(SI Engine):此模块用于管理服务信息(SI)数据库,它负责缓存EPG信息、提取网络信息表(NIT)、节目映射表(PMT)等常用SI表格数据,并且具有监测功能。它可提供频道搜寻时已储存的数据,如频道名称等。图4显示了机顶盒有关节目信息接收存储的方法。
■Java虚拟机:这个虚拟机符合J2ME标准,用来解释执行JavaTM应用程序,并提供JavaTM程序调试、寻错(debug)等功能。
■网页浏览器:它是一个可选的模块,它支持HTML3.2/4.0、XHTML、DOM/CSS等,显示HTML网页,提供上网功能。
■应用管理器:它是内置于接收端业务平台中、协调各种交互式应用程序不可或缺的管理模块。
下面详细地说明驱动层接口的特征。
资源模块层的结构:资源模块层可以有不同的结构,本发明的不对资源模块层的结构设计做出硬性规定,各个软件设计可根据不同的硬件平台及驱动层模块的具体功能做出不同的设计方案。不管方案如何,各个模块之间应有一定独立性。它意味着硬件平台所提供的各设备资源模块均被看作一个个独立的模块,对这些模块的调用均可按对象方法看待,任何调用均看作资源的利用。对于某些临界保护的设备,其对象是一个实际的驱动,执行驱动对应的硬件操作;而某些对象是一个虚拟的设备,在调用该对象时由设备服务器层进行处理和解释,并执行相应的功能,但没有实际唯一对应的设备进行响应,或许是几个设备的一个组合,或许是一个逻辑的数据处理过程。
随着硬件技术的发展,为了支持多路信号输入、解码、播放的机顶盒方案,使资源管理器能构良好的管理各资源模块间的关联性,我们定义设备环境(DeviceContext)。一个设备环境是一组相互连通的、覆盖了从输入到输出整个数据通道的所有驱动模块的集合。其典型组成是一组相互连通的解调器(tuner)、解复用器(demux/section filter)、A/V解码器。假设在接收设备中存在有多个tuner、demux、A/V解码器,这些芯片之间的相互联接在设计时就已固定。这样,每个设备环境都是一个基本的完整的输入、解码、输出单元。在使用资源模块时,一定要指明使用的是哪个设备环境中的哪个驱动(Device)。同时下层实现要保证,同一个设备环境中的各资源模块在物理上是相互连通的。
资源模块与调用层的关系:资源模块具有下面一些特征:
●每个资源模块均对应着一个相应的下层驱动设备,此设备由硬件或软件组成。
●每个资源模块相对于其它的资源模块而言单独运行。它控制自身的硬件行为,处理中断,通过事件/消息和其它资源模块和应用程序单独通信。
●中间件可以在多个线程里同时或不同时调用同一个资源模块功能。对相同资源模块的调用及其环境值的保护均由资源模块封装层进行协调和管理。
●资源驱动模块的功能调用可以是实际对应的硬件操作,如:解调,也可以是虚拟的设备,如:数据装载等。
●对于应用层,每一个资源模块的调用都看作是一独立的行为,各资源模块之间的相互关系和系统资源共享等处理是系统设计和开发者的任务。
●应用程序对资源模块请求数据的回传方式有两种,一种是同步返回,即直接通过调用接口返回值返回。一种是异步返回,即驱动层执行到需要回传数据给客户端时以消息方式传给应用程序。
下面结合附图对本发明的方法作进一步的说明。
附图说明 下面通过附图对本发明的方法来做进一步的说明。
图1显示了本发明方法的总体特征,它基于机顶盒硬件和驱动模块,依赖于标准接口,实现应用的可执行环境和平台。
图2显示了机顶盒的主要硬件和驱动模块。数字电视接收设备的硬件功能结构示意见图2。机顶盒工作的原理如下:
◆调谐/选择模块接受到电磁信号并选择一定范围的带宽。
◆解调模块把信号转换为位流。
◆解复用模块从数据流(Bitstreams)中抽出期望信息并将其以合适的方式提供给不同的解码器,它包括与条件接收模块合作的解扰器。
◆视频解码模块转换显示的图像序列中的视频位流。
◆音频解码模块转换模拟音频信号中的音频位流。
◆图形引擎建立图形层在发送之前将其和对PAL/NTSC的模拟信号请求中的视频混合。
◆前面控制板部分负责解释通过接收遥控器、无线键盘或前面板发出的用户命令。
图3显示了机顶盒图形模块的层次性结构。背景层:是一个全屏的单一颜色层。除背景层外,其它可视性都是可设的:可设为可视或不可视;图像层:通常是静态图像的输出显示;视频层:是解码器输出MPEG-2解码结果的图像显示;图形层:是图形系统的输出显示;光标层:是用于显示光标和进行鼠标操作的控制和显示点定位;图像层,视频层和图形层都可具有Alpha混合功能。一个应用能在它的图形平面上的矩形区域内绘制视频和图形等。一个应用也能在视频平面上控制视频,及放置静止的图像或在背景平面上填充颜色。
图4显示了嵌入在机顶盒中的图形模块的实现方法。
图5显示了典型的业务应用电子节目指南(EPG)数据接收和管理模块的实现方法。EPG的信息量一般都非常大,如果采用即时加载的方法,必定需要等待很长的时间,这是用户所不能容许的。在本发明的方法中,SI引擎采用将EPG数据预先装载、存储的方法,这样当用户启动EPG应用时,只在缓存(EPG Cache)中提取数据,这样数据的提取与显示都非常快,用户才会满意。本发明的方法中的EPG Cache模块共有以下几个子模块:
●Engine:负责提供对外共用接口,并且协调该系统各个模块的任务执行;
●Loader:负责装载EPG表格数据,并提供给Analyser模块;
●Analyzer:负责解析有关的EPG数据,并且储存在Cache中;
●Cache:负责存储有关的EPG数据,并提供排序、检索功能;
●Monitoring:负责Monitor EPG表格数据的版本变化,并通知Loader进行数据的装载。
图6显示资源模块与驱动器(driver)的关系。通常情况下,一个资源模块对应着驱动层的一个硬件驱动或软件驱动,如音视频解码器为硬件驱动,数据装载(Dload)为软件驱动模块。实际上,资源模块是一逻辑概念,是应用模块和系统操作驱动模块的一层软件接口。例如,如果在接收设备中有多个Tuner(解调器)或音视频解码器(Audio,Video decoder),则相应的资源模块便可操作多个驱动。
图7(包括图7a、图7b和图7c)描述了设备环境(Device Context)的实现方法。假设在接收设备中存在有多个Tuner、Demux、A/V解码器,这些芯片之间的相互联接在设计时就已固定,则设备环境的构成见图7a所示。这样,每个设备环境都是一个基本的完整的输入、解码、输出单元。在使用资源模块时,一定要指明使用的是哪个设备环境中的哪个驱动(Device)。同时下层实现要保证,同一个设备环境中的各资源模块在物理上是相互连通的。
此外,一个设备可以同时属于多个设备环境只要它们在物理上是相连接的。例如,对于图7b所示的物理连接,设备环境可以规划为:
设备环境1包括tuner、demuxl、A/V解码器1
设备环境2包括tuner、demux2、A/V解码器2
在一个设备环境中,不能同时有两个或两个以上的同类型设备。如果某种类型的设备在物理连接上有多个,则系统初始化时就应绑定其中一个,并且在系统关闭之前不能改变。例如物理连接如图7c所示。tuner1和tuner2不能同时放入一个设备环境之中,如果这种连接只规划为一个设备环境,则系统初始化时,只能选择其中一个Tuner进行绑定。如果系统中存在N个设备环境,则编号为1~N。对于独立的资源,其设备不与某个设备环境具体关联,则缺省认为该设备同时属于所有的设备环境,即无论用哪个设备环境标识(context_id)都可以操作该设备。
以下结合具体的实施实例对本发明作进一步的详细说明。
具体实施方式 具体的实施方式如下:
1.实现机顶盒驱动层的接口,它包括但不限于下列驱动模块及其接口:
◆视频资源模块:视频压缩数据流的获取有两个来源,一个是从TS流里解复用出来的视频部分数据流;一个是从一段固定存储区里保存的一段视频流。主要的视频控制方法一览表:
方法与流程实现的名称 |
完成的任务 |
工作方式 |
PIF_VIDEO_CREATE_SEQUENCE |
创建一个视频SEQUENCE |
同步调用 |
PIF_VIDEO_DELETE_SEOUENCE |
删除一个视频SEQUENCE |
同步调用 |
PIF_VIDEO_SET_INPUT |
指明视频流数据源 |
同步调用 |
PIF_VIDEO_ADD_DATA |
为内存视频SEQUENCE添加数据 |
同步调用 |
PIF_VIDEO_SET_OUTPUT |
设置VIDEO显示窗口 |
同步调用 |
PIF_VIDEO_SET_SCALE |
设置VIDEO显示缩放比例 |
同步调用 |
PIF_VIDEO_SET_DISPLAY_TYPE |
设置VIDEO显示类型 |
同步调用 |
PIF_VIDEO_GET_STREAM_TYPE |
获取视频流的类型 |
同步调用 |
PIF_VIDEO_SET_ZOOM |
设置VIDEO显示的ZOOM |
同步调用 |
PIF_VIDEO_RESET_ZOOM |
取消设置的VIDEOZOOM |
同步调用 |
PIF_VIDEO_START |
启动VIDEO解码和显示 |
异步调用 |
PIF_VIDEO_Stop |
停止VIDEO解码和显示 |
异步调用 |
PIF_VIDEO_PAUSE |
暂停VIDEO解码和显示 |
异步调用 |
PIF_VIDEO_RESUME |
继续VIDEO解码和显示 |
异步调用 |
PIF_VIDEO_FREEZE |
冻结VIDEO解码和显示 |
同步调用 |
PIF_VIDEO_FFW |
跳到下一个BUFFER |
异步调用 |
PIF_VIDEO_RW |
跳到上一个BUFFER |
异步调用 |
PIF_VIDEO_GET_SEOUENCES |
获取所有创建的SEOUENCE数口 |
同步调用 |
PIF_VIDEO_SET_BLACK_SCREEN |
将VIDEO显示屏幕置成黑色 |
同步调用 |
◆音频资源模块:音频解码模块是用来控制音频解码,并输出到不同的声道中,音频压缩数据流的获取有两个来源,一个是从TS流里解复用出来的音频部分数据流;一个是从一段固定存储区里保存的一段音频流。主要音频控制方法有:
方法与流程实现的名称 |
完成的任务 |
工作方式 |
PIF_AUDIO_CREATE_SEOUENCE |
创建一个音频SEOUENCE |
同步调用 |
PIF_AUDIO_DELETE_SEQUENCE |
删除一个音频SEOUENCE |
同步调用 |
PIF_AUDIO_SET_INPHT |
指明音频流数据源 |
同步调用 |
PIF_AUDIO_ADD_DATA |
为内存音频SEQUENCE添加数据 |
同步调用 |
PIF_AUDIO_SET_CHANNEL |
设置AUDIO输出的声道 |
同步调用 |
PIF_AUDIO_GET_STREAM_TYPE |
获取音频流的类型 |
同步调用 |
PIF_AUDIO_START |
启动AUDIO解码和显示 |
异步调用 |
PIF_AUDIO_Stop |
停止AUDIO解码和显示 |
异步调用 |
PIF_AUDIO_PAUSE |
暂停AUDIO解码和显示 |
异步调用 |
PIF_AUDIO_RESUMEPIF_AUDIO_FFW |
继续AUDIO解码和显示 |
异步调用 |
跳到下一个BUFFER |
异步调用 |
PIF_VIDEO_RW |
跳到上一个BUFFER |
异步调用 |
PIF_AUDIO_BEEP |
产生BEEP声 |
异步调用 |
PIF_AUDIO_GET_SEOUENCES |
获取所有创建的SEQUENCE数目 |
同步调用 |
PIF_AUDIO_SET_GAIN |
设置音频输出音量 |
同步调用 |
PIF_AUDIO_SET_VOLUEME |
设置音频输出音量 |
同步调用 |
PIF_AUDIO_SET_MUTE |
设置静音 |
同步调用 |
◆Tuner模块:Tuner资源模块的功能是操作硬件平台的Tuner。它有两个模式:解调(Tuning)和频道搜寻(Scanning):解调模式(Tuning):它使解调器定位到某一个特定的频率段(Transponder)上,以便能够获取一个Transport Stream上的数据;频道搜寻(Scanning):它能够自动搜寻载波频段,查找频道,返回符号率(Symbol rate),BER,AGC等数据。主要解调器控制方法有:
方法与流程实现的名称 |
完成的任务 |
工作方式 |
PIF_Tuner_Get_Type |
查询Tuner的类型 |
同步调用 |
PIF_Tuner_Get_Frequency |
查询Tuner所能支持的频率 |
同步调用 |
PIF_Tuner_Goto |
将Tuner定位到某个Transponder(TS)上 |
异步调用 |
PIF_Tuner_Get_Status |
获取Tuner的状态信息 |
同步调用 |
PIF_Tuner_Scanning_Start |
对某一频段里的所有波段开始进行扫描 |
异步调用 |
PIF_Tuner_Scanning Continue |
继续进行扫描 |
异步调用 |
PIF_Tuner_Scanning_Cancel |
取消扫描 |
同步调用 |
◆解复用模块(dload):解复用资源模块,又称数据装载模块(dload),是对传送流(TS流)中各项复用内容如音视频流(AUDIO,VIDEO)、MPEG-2段数据、图文流(TELETEX)及字幕流(SUBTITLE)等解析复原的一个功能模块,并通过特定的过滤器过滤出特定数据,供上层调用。解复用设备底层主要由以下几个部分组成:解复用控制、解复用过滤器、解复用通道等。主要的数据提取方法有:
方法与流程实现的名称 |
完成的任务 |
PIF_Dload_Get_Available_Filters |
获取可利用的过滤器数 |
PIF_Dload_Load_Sections |
接收段数据 |
PIF_Dload_Laod_Table |
接收表数据 |
PIF_Dload_Stop |
取消一个正在进行的数据接收 |
◆Flash(闪存)模块:定义Flash和EEPROM(可编程的ROM)的读写功能。
Flash是一种可擦可写的永久储存介质。它一般是分页(page)或分区(sectoror section)的。每个页或区的大小是固定的,在存储数据时是分页/区进行的。它的擦写次数有限,但在机顶盒的寿命周期内一般情况下也是难以达到其极限的。当一页已写上内容时,在再写时一定要先将内容擦去,然后才可重写。EEPROM是一种可编程和可重复擦写的ROM,它一般用来存储核心系统的永久信息。EEPROM的价格较贵,在机顶盒中使用的EEPROM一般以Kbyte为单位。主要的闪存与EEPROM控制方法有:
方法与流程实现的名称 |
完成的任务 |
工作方式 |
flash_safe_acquire |
获取安全操作的权利 |
同步调用 |
flash_safe_release |
释放安全操作的权利 |
同步调用 |
flash_safe_read |
进行安全读的操作 |
同步调用 |
flash_safe_write |
进行安全写的操作 |
同步调用 |
flash_getpart |
获取FLASH的某一区域 |
同步调用 |
flash_get_direct_pointer |
获取FLASH某一区域上的指针 |
同步调用 |
flash_erase_region |
擦调某一区域 |
同步调用 |
flash_erasable_size |
得到可擦区域的大小 |
同步调用 |
flash_memset |
进行FLASH内存置换 |
同步调用 |
flash_init |
将整块FLASH初始化 |
同步调用 |
flash_get_partitions |
获取PARTITION的信息 |
同步调用 |
eeprom_get_info |
获取EEPROM的有关信息区域 |
同步调用 |
eeprom_init |
将应用EEPROM驱动初始化 |
同步调用 |
eeprom_read |
从EEPROM读取数据 |
同步调用 |
eeprom_write |
将数据写入到EEPROM中 |
同步调用 |
◆Picture模块:模块用来解码MPEG-2静止图像(MPEG still picture),并在Bakcground层和Picture层显示图像数据。可显示的图像数据除了still picture外,还有一般图像数据。一般图像数据可来源于解码解压后的JPEG、GIF等图像。这说明JPEG、GIF等图像,需要应用者预先将数据解码出来。主要的图像控制方法有:
方法与流程实现的名称 |
完成的任务 |
工作方式 |
PIF_Picture_Create |
创建一个图像解码、显示ID |
同步调用 |
PIF_Picture_Delete |
删除一个图像解码、显示ID |
同步调用 |
PIF_Picture_Set_Display_Mode |
指示图像颜色和显示的模式 |
同步调用 |
PIF_Picture_Display |
显示图像 |
不限制 |
PIF_Picture_Move |
移动图像 |
同步调用 |
PIF_Picture_Copy |
COPY图像 |
同步调用 |
PIF_Picture_Set _Dimension |
指示或变换图像显示的位置大小 |
同步调用 |
PIF_Picture_Set_Color |
设置某个显示区域的颜色 |
同步调用 |
PIF_Picture_Get_PlaneInfo |
获取显示层信息 |
同步调用 |
PIF_Picture_Get_PixelAspectRatio |
得到某个显示层的像素幅型比 |
同步调用 |
PIF_Picture_Get_PixelResolution |
得到某个显示层的像素分辨率 |
同步调用 |
PIF_Picture_Get_ScreenArea |
得到某个显示层的显示区域 |
同步调用 |
PIF_Picture_Get_Interlaced |
得到某个显示层是否为隔行显示 |
同步调用 |
PIF_Picture_Get_AntiFlickering |
得到某个显示层是否支持抗闪烁 |
同步调用 |
◆条件接收(CA)模块:解扰器是CA模块的一部分,负责MPEG-2TS流和PES流的解扰工作,体现在中间件系统方面,用通俗的话说就是某个service的音视频流能否完整地呈现出来或数据包能否过虑出来。主要的条件接收模块控制方法有:
方法与流程实现的名称 |
完成的任务 |
PIF_CAM_GetSystemIDs |
返回系统所支持的CA systemId |
PIF_CAM_StartDescramblingService |
开始解扰某个service的若干个ES流 |
PIF_CAM_StartDescramblingES |
开始解扰某个ES流 |
PIF_CAM_StopDescrambling |
停止解扰某个ES流 |
PIF_CAM_StopAllDescrambling |
停止所有解扰 |
PIF_CAM_ListEntitlements |
列出当前正在进行的所有的解扰 |
| |
◆CA用户信息管理器(智能卡)模块:用户信息管理器是储存用户授权信息的模块,在DVB-CI模式下,这些信息储存在独立的通过PCMCIA与接收设备相联的CA模块中;在目前通用的情况下,这些信息储存在智能卡中(Smartcard)。主要的智能卡控制方法有:
方法与流程实现的名称 |
完成的任务 |
PIF_CAM_Reset |
重新设置与复位CA模块(包括智能卡模块) |
PIF_CAM_GetSerialId |
返回CA模块序列号 |
PIF_CAM_GetCardInfo |
获取Card插槽信息 |
PIF_CAM_GetPinCode |
返回用户Pin code |
PIF_CAM_Set_PinCode |
设置用户Pin code |
PIF_CAM_GetSubscription |
返回用户授权信息 |
PIF_CAM_SetSubscription |
设置用户授权信息 |
PIF_CAM_GetEMoney |
返回用户电子钱包的数目 |
PIF_CAM_SetEMoney |
设置用户电子钱包的数目 |
PIF_CAM_GetHistoryInfo |
获取历史信息 |
PIF_CAM_OpenSession |
打开与CA模块的对话 |
PIF_CAM_CloseSession |
关闭与CA模块的对话 |
PIF_CAM_SendMessage |
向CA模块发送指令 |
PI_EV_SMARTCARD_INSERTED |
发送IC卡插入事件 |
PI_EV_SMARTCARD_EXTRACTED |
发送IC卡取出事件 |
◆Input模块:Input(用户输入)模块直接与用户输入设备相联,是用来处理用户输入按钮事件把它们传递给应用程序。对数字电视机顶盒而言,一般有三种不同的用户输入设备:遥控器,无线键盘和前面板;高端机顶盒也支持鼠标输入。在3种输入方式(前面板,遥控器和无线红外键盘),每按一下按钮,输入资源模块都会将按钮代码按表2的定义以事件的方式传给应用程序。事件的代码(code)为键值(以4字节int32表示),它是发给任意应用的,键值以code的形式播发出去便于应用去监听某些键值的事件。因此,本资源模块的通信机制与其它的不同:
·使用本资源模块之前,机顶盒硬件系统应能自动将其初始化,当有键盘输入时,自动将用户输入以广播的方式播放给所有应用。在需要
·在它的函数调用中,无需将客户标识(clientId)传递给函数。
·前面板、遥控器与键盘的事件结构中,域data为NULL。
事件的类型定义如下:
若按键由前面板发出:则其type为:
#define PI_EV_INPUT_FRONTBOARD 0x3002
若按键由遥控器发出:则其type为:
#define PI_EV_INPUT_REMOTE_CTRL 0x3001
若按键由无线红外键盘发出:则其type为:
#define PI_EV_INPUT_KEYBOARD 0x3003
事件的代码(code)
Meta(16bits) |
Keycode(16bits) |
meta表示键盘的Meta键是否按下,以及按键的方式(即键按下还是键松开),其定义如下:
#define KEY_SHIFT 0x0001
#define KEY_CTRL 0x0002
#define KEY_ALT 0x0004
#define KEY_PRESS 0x0100
#define KEY_RELEASE 0x0200
当使用鼠标时,当鼠标移动和/或鼠标上的某个键被按下/释放都应传送一事件,并通知相应的鼠标位图热点(hotspot)所在的位置,此一位置是相对于整个显示屏幕的原点而言的(屏幕原点在左上角)。事件的定义如下:则事件的type为:
#define PI_EV_INPUT_MOUSE 0x3004
事件的code定义如下:
#define MOUSE_LEFT 0x0001
#define MOUSE_MIDDLE 0x0002
#define MOUSE_RIGHT 0x0004
#define MOUSE_PRESS 0x0100
#define MOUSE_RELEASE 0x0200
#define MOUSE_MOVE 0x0400
2.基于上述接口之上,实现图1所示的主要系统模块,主要有:图形处理模块、事件管理器、内存管理器、文件系统、DSMCC管理器、业务信息(SI)管理模块、Java虚拟机等。
3.将上述整个系统嵌入到机顶盒硬件芯片上,形成一个完整的业务平台系统,以便能够执行各种下载的应用。
最后所应说明的是:本发明提供的是一种嵌入式的数字电视业务平台的实现方法及其设计思想,以上实施例仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。