嵌入式浏览器在IPTV 机顶盒中的移植与实现
基于嵌入式Linux的IPTV机顶盒浏览器的研究与实现

基于嵌入式Linux的IPTV机顶盒浏览器的研究与实现王静【期刊名称】《计算机与现代化》【年(卷),期】2012(000)001【摘要】With the continuous development of Internet technology and increasing popularity of Internet technology application, network television is quietly rising, and may be instead of existing broadcast TV. This paper analyzes network television and IPTV set-top box browser technology in detail, proposes embedded browser based on Webkit, and describes its work flow and design steps. The experimental results show that the embedded browser supports multiwindow opening page links, Chinese display, picture rendering speed, at the same time, Webkit provides history page caching, as well as backward, forward, historical display and so on.%随着互联网技术的不断发展和应用的不断普及,网络电视已悄然崛起,并有代替现有广播电视的趋势.本文详细分析网络电视以及IPTV机顶盒浏览器技术,提出基于Webkit的嵌入式浏览器,并详细叙述其工作流程及设计步骤.实验结果表明,该嵌入式浏览器支持多窗口打开页面链接,支持中文显示,图片渲染速度快;同时,Webkit 提供历史页面的缓存,支持后退、前进以及历史显示等功能.【总页数】4页(P203-206)【作者】王静【作者单位】安徽理工大学计算机科学与工程学院,安徽淮南232001【正文语种】中文【中图分类】TP393【相关文献】1.基于嵌入式linux的IPTV机顶盒设计 [J], 许联国;顾民2.AVS IPTV数字电视机顶盒浏览器的设计 [J], 李双全;张激3.基于嵌入式Linux的视频点播IPTV机顶盒设计 [J], 吴复奎;苏骏;陈铮4.基于嵌入式Linux的视频点播IPTV机顶盒设计 [J], 吴复奎;苏骏;陈铮5.IPTV机顶盒嵌入式浏览器的设计与实现 [J], 李美因版权原因,仅展示原文概要,查看原文内容请购买。
IPTV机顶盒嵌入式浏览器研究

IPTV机顶盒嵌入式浏览器研究
随着通信技术的迅速发展,传统电视逐步向着数字化、网络化、智能化的方向前进。
为了满足人们的需求,机顶盒应运而生。
从本质上说,机顶盒也是嵌入式系统,包括硬件部分和软件部分,而嵌入式浏览器作为软件部分的重要组成部分,能够使用户实现上网功能。
本学位论文主要讨论IPTV机顶盒嵌入式浏览器。
首先,明确了机顶盒和网络电视机顶盒的概念,研究了网络电视机顶盒的结构和功能,并对相关厂商进行了介绍。
然后,从互联网和浏览器的发展入手,研究了浏览器的关键技术,包括标记语言、文档对象模型、脚本语言、层叠样式表、排版引擎、用户图形界面等内容,并对嵌入式浏览器进行了定位和描述。
接着,从实践角度,论文讲解了在IPTV机顶盒上移植EnReach公司的eBrowser嵌入式浏览器的过程。
实验证明,移植后的浏览器能够成功的下载、解析、排版、显示HTML网页。
然后,以美国Mozilla基金会的开源浏览器产品Firefox的源代码为研究对象,介绍了Mozilla软件开发平台,并深入分析了Firefox浏览器的各个关键模块的设计和实现,包括HTML解析模块、排版模块、脚本模块等。
最后,设计并实现了为IPTV机顶盒流媒体播放器提供的HTTP客户端,并进行了测试。
基于嵌入式Linux的IPTV机顶盒浏览器的研究与实现

验结果表 明, 该嵌入 式浏览器支持 多窗 口打开页面链接 , 支持 中文显 示, 图片渲 染速度快 ; 同时, b i提供 历 史页面的 Wekt 缓存 , 支持后退 、 前进以及 历史显 示等功能。
关键 词 : 嵌入式 ; fV;Wekt II y bi 引擎 ; iu 术;浏览器;P Lnx技 E G流程
提供 包括 数字 电视 在 内 的多 种交 互 式 服务 的新 兴技
术 。I 】r 用 A S A y e i Dg a S bc br I= 利 y、 1 D L( smm tc i tl u sr e r i i Ln ) 以太 网或者 有 线 电视 H C H bi ie —C — ie 、 F ( y r Fbr o d
s t o o rws rtc n lg n d ti ,p o o e mb d e r w e a e n W e k t n d d s rb s i r o n e i n e— p b x b o e h o o i e al r p s s e e d d b o s rb s d o b i ,a e c e t wok f w a d d sg t e y i s l
计
21 0 2年第 1 期
算
机
与
现
代
化
总第 17期 9
J U N IY IN AHU I A J U XA D I A S
文章编号 :0 62 7 ( 02 o -230 10 - 5 2 1 ) l 0 -4 4 0
基 于嵌 入 式 Lnx的 IT iu P V机 顶盒 浏览 器 的研究 与实 现
很 大 的成 就 。网络 电视是 信 息产 业 中互 联 网和广 播 电视相结 合 的产物 , 表着未 来整个 信息产 业 的发展 代
基于WebKit的嵌入式浏览器研究与移植(1)

摘要随着嵌入式设备日新月异的发展,嵌入式浏览器作为获取网络信息的一种重要工具,逐渐成为嵌入式设备必不可少的一部分。
然而,由于嵌入式设备的多样性和差异性,开发人员往往需要针对不同的设备开发相应的嵌入式浏览器,导致大量人力与物力的投入。
为了解决这些问题,研发人员开发了一个既方便又快捷的新浏览器引擎WebKit。
同时,随着Google公司基于WebKit引擎的浏览器Google Chrome的成功开发,WebKit引擎才渐渐引起了人们的广泛关注。
目前国外已经推出了几款基于WebKit引擎的嵌入式浏览器,如iPhone和Android的内置浏览器。
随着我国数字电视机顶盒的大面积普及,机顶盒市场对嵌入式浏览器的需求日益增大。
在这种情况下,研究设计基于WebKit的嵌入式浏览器可以推动国内机顶盒市场的发展。
本文研究了WebKit引擎的排版技术;结合几种常用图形库详细研究了WebKit 引擎如何实现对不同的图形库提供支持,同时对如何实现支持新图形库做了探讨;结合Qt网络库和cURL网络库研究了WebKit引擎对不同网络库的支持机制。
本课题设计了基于WebKit引擎和Qt/Embedded平台的数字电视嵌入式浏览器架构;实现了遥控器驱动插件,修改了Cookie功能存在的问题,并进行了图像解码库的替换。
同时设计并实现了浏览器用户界面,从而最终完整地实现了基于WebKit引擎的数字电视嵌入式浏览器。
最后,结合具体的开发板STB225,完成了对该嵌入式浏览器功能与性能的测试。
关键词:WebKit,嵌入式浏览器,图形库,Qt/EmbeddedABSTRACTWith the rapid development of embedded devices, more and more embedded devices are required in surfing the Internet. As an important tool to obtain network information, the browser becomes an essential part of embedded devices. However, due to the diversifications and differences of embedded devices, the designer has to develop a different embedded browser for different devices, which leads to a large number of human and material inputs. In order to solve these problems, researchers developed a convenient and efficient browser engine WebKit. Meanwhile, with the successful development of Google Chrome browser which based on WebKit, WebKit engine was beginning to attract people's attention. Foreign workers have developed several WebKit-based embedded browsers, for instance, iPhone and Android's built-in browser. With digital TV set-top boxes spreading around China, the demand of embedded browser is increasing rapidly in set-top box market. In this case, the study and design of embedded browser based on WebKit can promote the domestic development of set-top box market.This thesis studys the layout technology of WebKit engine. Combining with several common graphics library, explores the WebKit engine how to provide support to different graphics library in detail, also discusses how to transplate a new graphics library, studys how WebKit support different network library combined with the Qt network library and cURL network library.This thesis designs a digital TV embedded browser which is based on WebKit engine and Qt/Embedded platform, realizes the remote controller plugin, modifies the functional problems of Cookie, and takes the place of the image decoding library. Meanwhile, this thesis designs and realizes the browser user interface, eventually achieves the digital TV embedded browser based on WebKit engine. Finally, combining with the specific development STB225, this thesis achieves the testing of the embedded browser both on function and performance.Keywords:WebKit, embedded browser, graphics library, Qt/Embedded目 录第一章引言 (1)1.1研究背景及意义 (1)1.2国内外研究现状 (1)1.3研究内容及章节安排 (3)第二章 WebKit引擎及Qt/Embedded技术介绍 (5)2.1浏览器相关技术介绍 (5)2.2常见图形库介绍 (6)2.3 WebKit排版引擎介绍 (9)2.3.1发展现状 (9)2.3.2组成结构与管理 (9)2.3.3内存管理机制 (10)2.4 Qt/Embedded技术介绍 (11)2.4.1 Qt与Qt/Embedded概述 (11)2.4.2信号和槽机制 (12)2.4.3虚拟帧缓冲 (13)2.4.4 Qt服务器 (14)2.4.5应用程序的显示 (15)2.4.6编译工具qmake (17)2.5 本章小结 (18)第三章 WebKit引擎排版技术及移植机制研究 (20)3.1排版技术研究 (20)3.1.1 WebKit引擎排版流程 (20)3.1.2 HTTP请求处理流程 (21)3.1.3 DOM树和Render树 (22)3.1.4布局和绘制 (23)3.2移植机制研究 (24)3.2.1底层库支撑架构 (24)3.2.2 图形库支撑研究 (25)3.2.2.1 WebCore (25)3.2.2.2 WebCore Support (34)3.2.2.3 WebView与WebFrame (37)3.2.3 网络库支撑研究 (40)3.3本章小结 (44)第四章数字电视嵌入式浏览器移植 (45)4.1开发环境的搭建 (45)4.1.1硬件平台 (45)4.1.2软件平台 (46)4.2移植WebKit引擎 (46)4.2.1移植架构设计 (46)4.2.2遥控器插件的实现 (47)4.2.3 Cookie功能的改进 (50)4.2.4图像解码库替换 (53)4.2.5用户界面设计 (54)4.2.6交叉编译 (55)4.3功能性能测试 (57)4.4本章小结 (58)第五章总结与展望 (60)致谢 (61)参考文献 (62)攻硕期间取得的研究成果 (65)第一章 引言1.1研究背景及意义近年来,随着嵌入式设备的发展,越来越多的嵌入式设备对网络功能提出了要求,例如手机、数字电视机顶盒、PDA等。
一种基于IPTV的嵌入式浏览器的设计与实现

体 .向 家 庭 用 户 提 供 包 括 数 字 电视 在 内 的 多 种 交 互
式 服 务 的 崭 新 技 术 I V机 顶 盒 的 软件 体 系结 构 一般 Pr 可 以 分 为 操 作 系统 层 、 动 程 序 层 、 间 件 层 和 应 用 程 驱 中 序 层 .其 中 中间 件 层 是 IrV机 顶 盒 软 件 的核 心 层 次 . fr 主 要 包 括 嵌 入 式 浏 览 器 、a a虚 拟 机 、 视频 处 理 程 序 Jv 音 等 I。目前 . 于嵌 入 式 信 息设 备 应 用 之 一 的 Ir l j 基 PI ’ 顶 V机
目前 国 内外 许 多 公 司都 看 到 了嵌 入 式 浏 览 器 广 阔 的 发 展 前 景 , 纷 致 力 于 其 相 关 技 术 的研 发 在 国 内 . 纷 比较 出色 的是 茁 壮 、 维 、 盛 世 三 家 公 司 。 国外 微 软 创 新
势 . 分 有 效 地 利 用 了 网 络 资 源 IT 是 一 种 利 用 宽 充 PV 带 有 线 电 视 网 , 互 联 网 、 媒 体 、 信 等 多 种 技 术 于 集 多 通
0 引
言
嵌 入 式 浏 览 器 主 要 应 用 在 便 携 式 网 络 终 端 和 信 息 家 电 中 , 如 手 机 、D 数 字 电 视 机 顶 盒 、 T 例 P A、 I V机 顶 盒 等 。 P 与普通 P C上 的 浏 览 器 不 同 .嵌 人 式 浏 览 器 具 有 体 积 小 、 C U 和 内 存 的 开 销 低 、 度 快 和 实 时 性 强 等 特 对 P 速
[ 2 1
。
随着 计 算 机 和 数 字 电子 技 术 的 高 速 发 展 .多 媒 体
和 It t ne me 的迅 速 普 及 , 算 机 、 信 、 费 电子 一 体 化 计 通 消 的 趋 势 越 来 越 明 显 , 动 信 息设 备 、 字 机 顶 盒 、 息 移 数 信
【豆丁推荐】-》IPTV机顶盒JSE应用方法的实现

1引言在IPTV 系统中应用较多的是结合嵌入式浏览器实现IPTV 中间件的技术[1-2]。
其中嵌入式浏览器除了提供HTML 的解析和用户界面的绘制之外[3],其中比较重要的功能是执行机顶盒系统功能的调用,这主要依靠各种JSE 功能调用来实现,因而如何比较高效正确稳定地实现各种JSE 功能调用是系统实现的关键。
2JSE 的使用方法2.1JSE 的注册以嵌入式浏览器为基础进行机顶盒用户界面开发都要编写各种控制机顶盒功能的页面。
这些纷繁复杂的功能目前可以采用包含Javascript 脚本的网页来实现。
对于Javascript 的使用,其中比较重要的功能是利用其中的文档对象来进行处理。
这个公用的文档对象层次结构包括window ,document ,location 等层次结构。
但这些对象结构并不能满足机顶盒功能需要和客户的需求。
为了扩展Javascript 的功能,提高它处理机顶盒特定功能的能力,一般是以Javascript extension (JSE )的形式由嵌入式浏览器提供仿造Javacript 语言来实现。
这种定制的Javascript extension 由于不是标准Javascript 语法的部分,在应用的时候都需要去注册。
对于不同的注册方法就有不同的实现JSE 的方法。
如果是在浏览器启动时注册的JSE object 变量就是全局变量;如果是在访问不同网页时进行注册的就是基于局部变量的方法。
2.2基于全局变量的JSE 实现在嵌入式浏览器中一般都按照图1所示方法来实现JSE 函数。
基于全局变量实现JSE 的方法虽然在不同的嵌入式浏览器里有不同的实现方法,但基本上都采用了图1所示的模式。
比较流行的嵌入式浏览器ant Fresco 的做法是先定义如下的结构:staticCONST_DATA(struct jseFunctionDescription )videodisplay_fns[]=..;而在ant Galio 以及Oregan 里则把这个工作用XML 文本结合统一的应用程序来做。
嵌入式浏览器在IPTV 机顶盒中的移植与实现
本文介绍的这款IPTV机顶盒浏览器主要实现的功能包括:向用户完整呈现EPG服务器 下发的信息,对用户的交互请求做出响应。为实现上述功能,该浏览器必须达到以下要求: 1.必须是一个网络信息浏览器,支持HTTP传输协议,支持HTML、CSS、JavaScript等标记语 言,可以完成EPG网页的浏览功能;2.必须能够响应用户遥控器的输入,满足互动性的需求; 3.必须适合在受限于CPU速度、存储空间和功耗的嵌入式设备中存在、运行并完整实现通信 传输协议、标记语言所规定的功能,必须能够根据嵌入式设备的多样性需要而方便地进行裁
static int read_IR_key (unsigned int *key)
static int write_IR_key(unsigned int key)
{
{
if(sem_trywait(&IRsem)!=0)
sem_wait(&IRsem);
return 0;
if (quekey.tail + 1 == quekey.head ||
减和修改[1]。
嵌入式浏览器的实现,与它所处的底层环境有关。一般来说,浏览器的内核相对独立, 不随底层环境的变化而改变,但它接口层各个模块的实现,有赖于底层操作系统,在不同的 环境下,接口层的实现是不一样的。本文通过实现浏览器接口层的各模块,结合现有浏览器 内核,完成对浏览器的移植,使浏览器在IPTV机顶盒特定的嵌入式环境下实现上述的功能。
一种基于IPTV的嵌入式浏览器的设计与实现
一种基于IPTV的嵌入式浏览器的设计与实现林俊男;杨晨晖【期刊名称】《现代计算机(专业版)》【年(卷),期】2011(000)023【摘要】介绍嵌入式浏览器发展背景及现状,提出一种基于IPTV(交互式网络电视)的嵌入式浏览器的设计方法。
利用Qt开放源代码中的Webkit模块,通过交叉编译和移植,设计和实现基于ST-9150板子上的嵌入式浏览器。
并通过设计一些用户接口,能基本满足用户通过浏览器上网的需求。
%Introduces the background and development of embedded browser, proposes a design method of IPTV-based embedded browser. Designs and realizes an embedded browser by means of crosscompiling and porting the webkit module in the Qt open source codes to ST-9150 board. To satisfy user's need of accessing to the Internet through the browser, designs some user interfaces.【总页数】3页(P67-69)【作者】林俊男;杨晨晖【作者单位】厦门大学信息科学与技术学院计算机科学系,厦门361005;厦门大学信息科学与技术学院计算机科学系,厦门361005【正文语种】中文【中图分类】TP393.092【相关文献】1.基于嵌入式浏览器的交互式IPTV [J], 李晓泉;黄浩2.基于Android系统移动终端嵌入式浏览器的设计与实现 [J], 曾树洪;林伟航3.一种嵌入式浏览器内存管理架构的设计与实现 [J], 张晶;潘梁;胡琳琳4.一种嵌入式浏览器内存管理架构的设计与实现 [J], 张晶;潘梁;胡琳琳5.IPTV机顶盒嵌入式浏览器的设计与实现 [J], 李美因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
是否有新存
Y
入的键值
N 查看存放网络数 据的消息队列
Y
浏览器对数据做解 析,布局,呈现
是否有新 数据
N 完成其它任务
调用相应 JavaScript 扩展 接口函数响应键值输入
图2 主线程流程图
3.1 网络通信模块的实现
浏览器内核基于HTTP协议,而HTTP属于应用层协议,在网络层之上,因此通过编写 TCP/IP接口函数实现网络层连接。浏览器与EPG服务器采用请求/应答的交互方式,它一边 接受EPG数据,一边做解析,一般网页内容并非一次性下发到浏览器。有些内容如图片等是 浏览器在解析网页内容的过程中,遇到存放此内容的URL,通过此URL重新向EPG服务器发 起请求。另外为了加快网页内容的下发速度,网页通常被分块通过不同的socket连接下发。 如何管理多个socket连接,就是网络通信模块所要实现的功能之一。
sem_post(&IRsem);
return 1;
return 0;
}
}
其中函数read_IR_key为主线进程调用,读取键值;函数write_IR_key为键值输入线程调
用,写入键值。这两个函数在处理信号灯上有一点区别。前者当信号灯的值已经是0时,它
不进入阻塞状态,而是返回主程序去处理别的事件。而后者在遇到信号灯是0时,就一直阻
2. 浏览器接口层:将浏览器内核与底层操作系统以及硬件相关的部分隔离,相当于中 间件。它实现内存管理、图像及网络驱动、本地文件读写、事件管理等与底层系统 相关的功能。对于不同的操作系统,只需要改写浏览器的接口层模块即可完成移植。
3. 浏览器内核层:采用Ipanel公司IPTV终端浏览器内核。它支持HTML4.01、 Javascript1.5、CSS1.0/2.0等WEB标准,主要负责解释HTML文档,生成带有显示信 息和控制信息的中间结果,同时也负责解释执行网页中的JavaScript脚本,响应用户 交互请求。
网络通信模块基于TCP/IP协议栈,实现与EPG服务器的数据交互。键值输入模块基于 底层红外接收器模块,捕获遥控器按键。由于这两个模块在浏览器工作过程中起到较为关键 的作用,并且被频繁调,系统单独创建两个线程——网络通信线程和键值输入线程,来实现 这两个模块[3]。
除了网络通信模块和键值输入模块由专门的线程实现外,浏览器的其它功能都在主线 程中实现。主线程与其它两个线程通过消息队列或全局变量共享数据,并通过消息机制同步 处理行为。具体实现如图2所示。
是否取到 Y 事件
1 调用 socket_close(),
关闭指定套接口
Socket 管理器删除 此套接口的记录
判断事件类型
2
调用 socket_send(), 发送数据
3
调用 socket_recv(),将接收 到的数据放入指定的消息
接收完所有数据后,调用 SocketManager_put_event( ),put 一个事件到 socket 管 理器,事件类型为 SOCKET_CLOSE
RTOS (Montavista)
硬件抽象层 与硬件无关的软件模块
图1 浏览器总体结构框图
如图1所示,浏览器共分为操作系统层,浏览器接口层,浏览器内核层,图形用户界面 四大功能模块,各模块的分别实现以下功能:
1. 操作系统层:采用montavista嵌入式实时多任务操作系统,它在整个系统中承担了承 上启下的任务,为整个系统提供线程、消息队列、内存分配的管理,管理硬件驱动 和基本的网络通信协议栈。
*key = quekey.keylist[quekey.head++];
quekey.keylist[quekey.tail++] = key;
if(quekey.head == 65) quekey.head = 0;
if(quekey.tail == 65) quekey.tail = 0;
sem_post(&IRsem);
本文介绍的这款IPTV机顶盒浏览器主要实现的功能包括:向用户完整呈现EPG服务器 下发的信息,对用户的交互请求做出响应。为实现上述功能,该浏览器必须达到以下要求: 1.必须是一个网络信息浏览器,支持HTTP传输协议,支持HTML、CSS、JavaScript等标记语 言,可以完成EPG网页的浏览功能;2.必须能够响应用户遥控器的输入,满足互动性的需求; 3.必须适合在受限于CPU速度、存储空间和功耗的嵌入式设备中存在、运行并完整实现通信 传输协议、标记语言所规定的功能,必须能够根据嵌入式设备的多样性需要而方便地进行裁
从图2可以看出,浏览器是事件驱动的单任务工作方式。在主线程中,通过不断的while 循环来处理事件。其中,键值输入和网络通信事件的优先级最高。每次循环刚开始时,主线 程都要先查看是否有键值输入,若有,先处理之;其次查看是否有网络数据过来,若有,就 做解析处理;最后才处理其它事件。
-2-
浏览器初始化
减和修改[1]。
嵌入式浏览器的实现,与它所处的底层环境有关。一般来说,浏览器的内核相对独立, 不随底层环境的变化而改变,但它接口层各个模块的实现,有赖于底层操作系统,在不同的 环境下,接口层的实现是不一样的。本文通过实现浏览器接口层的各模块,结合现有浏览器 内核,完成对浏览器的移植,使浏览器在IPTV机顶盒特定的嵌入式环境下实现上述的功能。
1. 引言
IPTV 即网络电视,是一种利用宽带互联网的基础设施,以家用电视机作为主要终端,通过 互联网协议( IP) 来提供包括电视节目在内的多种数字媒体服务和增值业务的新兴技术。 IPTV 最大的优势在于“互动性”和“按需观看”,彻底改变了以往传统电视只能单向广播的局 面。IPTV系统通过EPG(Electronic Program Guide 电子节目向导) 服务器向用户下发电视节 目菜单及增值业务内容。为了让用户能在电视终端上浏览EPG信息及点播节目,通常需要在 IPTV机顶盒中实现嵌入式浏览器。
4. 图形用户界面:负责调用图形库函数,将解析模块生成的中间结果组织成能在电视 屏幕上显示的数据。
3. 嵌入式浏览器接口层的移植实现
嵌入式浏览器接口层按其功能的不同可又分成若干个子模块,分别完成内存管理、本地 文件操作、网络功能、图像处理、事件处理等与底层操作系统直接相关的功能。其中网络通 信模块、键值输入模块相对复杂,且较为关键。接下来将着重阐述这两个模块的实现原理。
塞在当前位置,直到信号灯变为1。
4. 结束语
本文介绍的这款基于Ipanel浏览器内核的浏览器已在IPTV机顶盒中移植成功。它能够 很好地支持HTML3.2,CSS,JavaScript。完整地显示EPG服务器下发的内容,准确地响应用 户的交互请求。
随着宽带网络和IPTV的发展,嵌入式浏览器在机顶盒中的地位将越来越重要,同时也 将实现更多的功能。将来嵌入式浏览器还应对以下两项重要技术提供更好的支持:一个是 XML技术,它具有良好的扩展性和自我描述性,能更好地适应IPTV业务的快速发展;另一 项技术是Java,它能为IPTV带来更强大的交互功能,如游戏等。
static int read_IR_key (unsigned int *key)
static int write_IR_key(unsigned int key)
{
{
if(sem_trywait(&IRsem)!=0)
sem_wait(&IRsem);
return 0;
if (quekey.tail + 1 == quekey.head ||
读取键值,做处理。由于此结构体中的数据为两个线程所共享,它们不能同时做读写操作,
我们采用二值信号灯的方式来保证每次只有一个线程对此结构体做操作。只有当信号灯的值
为1时,线程才能对结构体中的数据做操作 。在操作过程中,信号灯值减1,变为0。若另一
个线程也要做操作,只有等此线程完成操作,将信号灯的值增为1才行。具体实现伪码如下:
2. 嵌入式浏览器的总体结构框图
本文所实现的嵌入式浏览器基于montavista嵌入式Linux操作系统和Ipanel浏览器内核, 总体结构框图如图1所示[2]:
-1-
浏览器接口
图形用户界面(GUI) 浏览器内核(Ipanel)
网络接口
键值输入接口
其它接口
浏览器只负责对收到数据做解析,至于与EPG服务器的数据交互完全由网络通信接口 实现。网络通信模块与浏览器内核通过收发消息队列传递数据。当EPG服务器有数据下发时, 通信模块接收数据,并将数据写入接收数据的消息队列,浏览器从此消息队列中取得数据做 解析处理;当浏览器有数据要发送时,只需将数据写入发送消息队列,由通信模块负责将数 据发送出去。
SocketManager_pop_event(), 从管理器中取事件
N
SocketManager_poll(),以轮询 的方式监听各个套接口,将 所有有数据过来的 socket 编 号都加入到文件描述符集中
FD_ISSET(),确定有数据过 来的 socket 编号
SocketManager_put_event(), 向管理器 put 一个事件,类型 为 SOCKET READ
嵌入式浏览器在 IPTV 机顶盒中的移植与实现
赵睿1,王志谦 2,李青 1
1 北京邮电大学电信工程学院,北京(100876) 2 北京邮电大学信息网络中心,北京(100876)
E-mail:zhaorui302@
摘 要:本文实现一款应用在 IPTV 机顶盒中的嵌入式浏览器。此浏览器基于 Ipanel 公司的 浏览器内核,通过设计完成浏览器接口模块,实现对此浏览器的移植。本文首先从整体上介 绍浏览器的结构框图,然后详细阐述浏览器接口中重要模块的实现原理。 关键词:IPTV 机顶盒,嵌入式浏览器,网络通信,移植