一种处理消息的方法、装置和系统的制作方法
【专利摘要】本发明实施例公开了一种处理消息的方法、装置及系统,通过在外界移动终端和OSD之间增加OSD层中的转换模块,所述OSD层中的转换模块接收移动终端发送的指令消息;所述OSD层中的转换模块将接收到的所述指令消息对应的脉冲信号通过模数转换;所述OSD层中的转换模块将所述数字信号通过预设编码算法编码后,将编码后的数字信号通过UART端口驱动转换后发送给DFB层;所述OSD层中的转换模块通过所述DFB层将所述编码后的数字信号转换为所述指令消息并发送给OSD进行处理,该方案统一采用Tara图形引擎开发,减少了重复开发的工作,从而大大提高了开发效率。
【专利说明】
一种处理消息的方法、装置和系统
技术领域
[0001]本发明实施例涉及数字电视的技术领域,尤其涉及一种处理消息的方法、装置及系统。
【背景技术】
[0002]近几年来,由于计算机技术和网络技术的快速发展,数字电视功能越来越多,不同客户群体、不同国家对OSD要求不一致,同时各芯片方案商也纷纷推出自己的开发工具,甚至有的芯片方案商根据自己的系统特点,使用多个OSD开发工具,导致数字电视软件开发工作量大大增加。OSD开发目前的常用实现可以分以下三种:
[0003]第一种,对于同一套芯片方案,针对不同客户群体要求,需要开发不同的OSD;
[0004]第二种,对于相同的客户群体,对不同的芯片方案,也需要重新开发OSD;
[0005]第三种,不同的芯片方案,不同的客户群体,更是需要重新开发OSD。
[0006]由于数字电视功能复杂多样,客户定制时要求较多,而且不同的芯片方案,OSD开发工具多样也不是使用标准的面向对象开发,因而OSD开发是目前数字电视制造商软件开发中非常繁重的工作之一,目前的开发模式有如下缺点:
[0007]各个芯片方案开发工具使用复杂,构建一个全新的OSD程序需要投入大量的人力和时间成本;各个开发工具不支持重构控件,难以实现复杂多变的效果,不能在Windows环境下模拟,难以发现逻辑和语法错误。现有大多数OSD程序都不能根据当前操作显示去动态分配和释放内存,因而在整个系统中占的资源也较多,因而需要更高的硬件配置;同一套OSD在不同的芯片方案上不能移植,需要再次构建,如此大大浪费开发资源,尤其是同一个客户群体,需要低/高端不同芯片方案;相同和不同芯片方案,OSD架构和交互行为难以统
O
【发明内容】
[0008]本发明实施例的目的在于提出一种处理消息的方法、装置及系统,旨在解决针对数字电视方案多样、客户定制时功能增多、UI开发工具繁多的情况下,如何解决OSD开发任务繁重问题。
[0009]为达此目的,本发明实施例采用以下技术方案:
[0010]第一方面,一种处理消息的方法,其特征在,所述方法包括:
[0011]OSD层中的转换模块接收移动终端发送的指令消息,所述指令消息包括遥控器按键消息、鼠标按键消息、键盘按键消息和/或触屏消息;
[0012]所述OSD层中的转换模块将接收到的所述指令消息对应的脉冲信号通过模数转换,获取转换后的数字信号;
[0013]所述OSD层中的转换模块将所述数字信号通过预设编码算法编码后,将编码后的数字信号通过UART端口驱动转换后发送给DFB层;
[0014]所述OSD层中的转换模块通过所述DFB层将所述编码后的数字信号转换为所述指令消息,并将所述指令消息发送给OSD进行处理。
[0015]优选地,所述预设编码算法包括STBC编码。
[0016]优选地,所述方法还包括:
[0017]应用层初始化创建事件消息处理线程和事件消息队列;
[0018]驱动层监控所述事件消息队列;
[0019]若监控到有消息到达,则所述应用层将所述消息转换为TARA定义的消息,并更新所述OSD的状态。
[0020]优选地,所述方法还包括:
[0021]所述OSD层中的转换模块接收UI层发送的函数指针,并获取所述函数指针对应的ID;
[0022]所述应用层根据所述ID进行二分法查找指令列表,获取所述ID对应的函数;
[0023]若查找到所述ID对应的函数,则所述驱动层执行所述ID对应的函数;
[0024]若未能查找到所述ID对应的函数,则所述驱动层终止执行所述ID对应的函数。
[0025]第二方面,一种处理消息的装置,其特征在于,所述装置包括:
[0026]接收模块,用于接收移动终端发送的指令消息,所述指令消息包括遥控器按键消息、鼠标按键消息、键盘按键消息和/或触屏消息;
[0027]获取模块,用于将接收到的所述指令消息对应的脉冲信号通过模数转换,获取转换后的数字信号;
[0028]第一发送模块,用于将所述数字信号通过预设编码算法编码后,将编码后的数字信号通过UART端口驱动转换后发送给DFB层;
[0029]第二发送模块,用于通过所述DFB层将所述编码后的数字信号转换为所述指令消息,并将所述指令消息发送给OSD进行处理。
[0030]优选地,所述预设编码算法包括STBC编码。
[0031]优选地,所述装置还包括:
[0032]驱动层,用于监控事件消息队列;
[0033]应用层,用于初始化创建事件消息处理线程和所述事件消息队列,以及若监控到有消息到达,则所述应用层将所述消息转换为TARA定义的消息,并更新所述OSD的状态。
[0034]优选地,所述装置还包括:
[0035]所述OSD层中的转换模块,用于接收UI层发送的函数指针,并获取所述函数指针对应的ID;
[0036]所述应用层,用于根据所述ID进行二分法查找指令列表,获取所述ID对应的函数;
[0037]所述驱动层,用于若查找到所述ID对应的函数,则执行所述ID对应的函数;若未能查找到所述ID对应的函数,则终止执行所述ID对应的函数。
[0038]第三方面,一种处理消息的系统,其特征在于,所述系统包括移动终端、OSD层中的转换模块、0SD、应用层和驱动层;
[0039]所述移动终端用于向所述OSD层中的转换模块发送指令消息;
[0040]所述OSD层中的转换模块,用于接收移动终端发送的指令消息,所述指令消息包括遥控器按键消息、鼠标按键消息、键盘按键消息和/或触屏消息;将接收到的所述指令消息对应的脉冲信号通过模数转换,获取转换后的数字信号;将所述数字信号通过预设编码算法编码后,将编码后的数字信号通过UART端口驱动转换后发送给DFB层;通过所述DFB层将所述编码后的数字信号转换为所述指令消息,并将所述指令消息发送给OSD进行处理;
[0041 ]所述驱动层,用于监控事件消息队列;
[0042]所述应用层,用于初始化创建事件消息处理线程和所述事件消息队列,以及若监控到有消息到达,则所述应用层将所述消息转换为TARA定义的消息,并更新所述OSD的状
??τ O
[0043]优选地,所述OSD层中的转换模块,用于接收UI层发送的函数指针,并获取所述函数指针对应的ID;
[0044]所述应用层,用于根据所述ID进行二分法查找指令列表,获取所述ID对应的函数;
[0045]所述驱动层,用于若查找到所述ID对应的函数,则执行所述ID对应的函数;若未能查找到所述ID对应的函数,则终止执行所述ID对应的函数。
[0046]本发明实施例提供一种处理消息的方法、装置及系统,通过在外界移动终端和OSD之间增加OSD层中的转换模块,所述OSD层中的转换模块接收移动终端发送的指令消息,所述指令消息包括遥控器按键消息、鼠标按键消息、键盘按键消息和/或触屏消息;所述OSD层中的转换模块将接收到的所述指令消息对应的脉冲信号通过模数转换,获取转换后的数字信号;所述OSD层中的转换模块将所述数字信号通过预设编码算法编码后,将编码后的数字信号通过UART端口驱动转换后发送给DFB层;所述OSD层中的转换模块通过所述DFB层将所述编码后的数字信号转换为所述指令消息,并将所述指令消息发送给OSD进行处理,与传统的OSD开发相比,该方案摒弃了不同的OSD开发工具,统一采用Tara图形引擎开发;通过一套OSD可以在不同的芯片方案移植,减少了重复开发的工作;该套OSD实现架构层次分明、按键/事件处理流程明朗、接口实现独立,从而大大提高了开发效率。
【附图说明】
[0047]图1是本发明实施例提供的一种处理消息的方法的流程示意图;
[0048]图2是Tara图形引擎OSD在不同平台移植原理图;
[0049]图3是MENU键从发射到UI接收处理的流程图;
[0050]图4是本发明实施例提供的一种处理消息的方法的流程示意图;
[0051 ]图5是事件消息传递机制的流程图;
[0052]图6是本发明实施例提供的一种处理消息的方法的流程示意图;
[0053]图7是本发明实施例提供的一种处理消息的系统的结构示意图。
【具体实施方式】
[0054]下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
[0055]参照图1,图1是本发明实施例提供的一种处理消息的方法的流程示意图。
[0056]在图1中,所述处理消息的方法包括:
[0057]步骤101,0SD层中的转换模块接收移动终端发送的指令消息,所述指令消息包括遥控器按键消息、鼠标按键消息、键盘按键消息和/或触屏消息;
[0058]其中,OSD开发引擎选择一种能在各种嵌入式设备中广泛使用的Tara图形引擎开发。Tara图形引擎,开发工具又称Embedded Wizard,是一套完全基于面向对象,提供了多个动画控件,可以在PC端模拟现实效果的强大开发工具。该引擎内置代码编译器(CodeGenerator)和资源转换器(Resource Converter)根据目标平台的不同,配置不同平台包,可以生成适合平台编译的ANSI C/Java代码,非常适合代码移植和动画效果实现。如图2展示了 Tara图形引擎OSD在不同平台移植原理图。
[0059]步骤102,所述OSD层中的转换模块将接收到的所述指令消息对应的脉冲信号通过模数转换,获取转换后的数字信号;
[0060]步骤103,所述OSD层中的转换模块将所述数字信号通过预设编码算法编码后,将编码后的数字信号通过UART端口驱动转换后发送给DFB层;
[0061]其中,所述预设编码算法包括STBC编码。图形加速选择一种在嵌入式系统平台上广泛应用的DFB(DirectFB)图形库。DFB图形库是专门为满足嵌入式设备要求而开发的小巧、强大、灵活和易于使用的图形库。它提供了图形加速、输入设备处理提取、透明窗口和多重显示层的功能,能够对嵌入式GUI有较好的支持。与那些其它的嵌入式GUI系统相比,它具有非常简洁、高效的体系结构和硬件图形加速功能。
[0062]步骤104,所述OSD层中的转换模块通过所述DFB层将所述编码后的数字信号转换为所述指令消息,并将所述指令消息发送给OSD进行处理。
[0063]具体的,遥控器按键通过红外发射、电视机里键控板红外接收装置,将接收到的脉冲信号通过模数转换,通过STBC编码,由主板芯片的uart端口驱动进行转换,再送给DFB层,DFB收到对应的按键后,发送对应按键消息,Tara Task负责接收和转换DFB传进来的Key消息,最后将消息传给Tara UI(OSD)相关Task处理。图3为MENU键从发射到UI接收处理的流程图。
[0064]另外,对于鼠标、键盘和触屏消息处理同按键处理基本一致,不同之处在于接收设备和DFB转换。如鼠标设备,鼠标驱动接收到消息,通过DFB转换成鼠标按下和鼠标移动消息,再发送给UI处理。
[0065]本发明实施例提供一种处理消息的方法,通过在外界移动终端和OSD之间增加OSD层中的转换模块,所述OSD层中的转换模块接收移动终端发送的指令消息,所述指令消息包括遥控器按键消息、鼠标按键消息、键盘按键消息和/或触屏消息;所述OSD层中的转换模块将接收到的所述指令消息对应的脉冲信号通过模数转换,获取转换后的数字信号;所述OSD层中的转换模块将所述数字信号通过预设编码算法编码后,将编码后的数字信号通过UART端口驱动转换后发送给DFB层;所述OSD层中的转换模块通过所述DFB层将所述编码后的数字信号转换为所述指令消息,并将所述指令消息发送给OSD进行处理,与传统的OSD开发相比,该方案摒弃了不同的OSD开发工具,统一采用Tara图形引擎开发;通过一套OSD可以在不同的芯片方案移植,减少了重复开发的工作;该套OSD实现架构层次分明、按键/事件处理流程明朗、接口实现独立,从而大大提高了开发效率。
[0066]参照图4,图4是本发明实施例提供的一种处理消息的方法的流程示意图。
[0067]在图1的基础上,所述处理消息的方法还包括:
[0068]步骤401,应用层(APP层)初始化创建事件消息处理线程和事件消息队列;
[0069]步骤402,驱动层(Driver层)监控所述事件消息队列;
[0070]步骤403,若监控到有消息到达,则所述应用层将所述消息转换为TARA定义的消息,并更新所述OSD的状态。
[0071]具体的,底层(例如,驱动层Driver层)需要发送相关事件,OSD要同步更新。如扫台过程中,Tuner会根据当前频率发送1ckAmlock事件,OSD需要显示当前频点,搜到节目个数和整个进度。Tara OSD作为一个独立图形引擎模块如何实现与不同的方案平台实现消息传递,图5为展示事件消息传递机制的流程图。
[0072]参照图6,图6是本发明实施例提供的一种处理消息的方法的流程示意图。
[0073]在图1的基础上,所述处理消息的方法包括:
[0074]步骤601,所述OSD层中的转换模块接收UI层发送的函数指针,并获取所述函数指针对应的ID;
[0075]步骤602,所述应用层根据所述ID进行二分法查找指令列表,获取所述ID对应的函数;
[0076]步骤603,若查找到所述ID对应的函数,则所述驱动层执行所述ID对应的函数;
[0077]步骤604,若未能查找到所述ID对应的函数,则所述驱动层终止执行所述ID对应的函数。
[0078]具体的,图6为实现UI在平台的功能体现。实现该层,就可以直接和不同平台的Middleware层功能对接了,如背光、亮度、AVL、环绕声设定等。本方案基于Tara图形开发的功能接口采用函数指针和id数组来实现,Tara中调用指针函数带id来查找对应的函数实现,Tara引擎中支持Native原代码设计。通过在Native区域中,调用指针函数。
[0079]参照图7,图7是本发明实施例提供的一种处理消息的系统的结构示意图。
[0080]在图7中,所述处理消息的系统包括:
[0081 ] 移动终端701、030层中的转换模块702、030703、应用层704和驱动层705;
[0082]所述移动终端701用于向所述OSD层中的转换模块702发送指令消息;
[0083]所述OSD层中的转换模块702,用于接收移动终端701发送的指令消息,所述指令消息包括遥控器按键消息、鼠标按键消息、键盘按键消息和/或触屏消息;将接收到的所述指令消息对应的脉冲信号通过模数转换,获取转换后的数字信号;将所述数字信号通过预设编码算法编码后,将编码后的数字信号通过UART端口驱动转换后发送给DFB层;通过所述DFB层将所述编码后的数字信号转换为所述指令消息,并将所述指令消息发送给OSD进行处理;
[0084]所述驱动层705,用于监控事件消息队列;
[0085]所述应用层704,用于初始化创建事件消息处理线程和所述事件消息队列,以及若监控到有消息到达,则所述应用层704将所述消息转换为TARA定义的消息,并更新所述0SD703的状态。
[0086]优选地,所述OSD层中的转换模块702,用于接收UI层发送的函数指针,并获取所述函数指针对应的ID;
[0087]所述应用层704,用于根据所述ID进行二分法查找指令列表,获取所述ID对应的函数;
[0088]所述驱动层705,用于若查找到所述ID对应的函数,则执行所述ID对应的函数;若未能查找到所述ID对应的函数,则终止执行所述ID对应的函数。
[0089]以上结合具体实施例描述了本发明实施例的技术原理。这些描述只是为了解释本发明实施例的原理,而不能以任何方式解释为对本发明实施例保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明实施例的其它【具体实施方式】,这些方式都将落入本发明实施例的保护范围之内。
【主权项】
1.一种处理消息的方法,其特征在,所述方法包括: OSD层中的转换模块接收移动终端发送的指令消息,所述指令消息包括遥控器按键消息、鼠标按键消息、键盘按键消息和/或触屏消息; 所述OSD层中的转换模块将接收到的所述指令消息对应的脉冲信号通过模数转换,获取转换后的数字信号; 所述OSD层中的转换模块将所述数字信号通过预设编码算法编码后,将编码后的数字信号通过UART端口驱动转换后发送给DFB层; 所述OSD层中的转换模块通过所述DFB层将所述编码后的数字信号转换为所述指令消息,并将所述指令消息发送给OSD进行处理。2.根据权利要求1所述的方法,其特征在于,所述预设编码算法包括STBC编码。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括: 应用层初始化创建事件消息处理线程和事件消息队列; 驱动层监控所述事件消息队列; 若监控到有消息到达,则所述应用层将所述消息转换为TARA定义的消息,并更新所述OSD的状态。4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括: 所述OSD层中的转换模块接收UI层发送的函数指针,并获取所述函数指针对应的ID; 所述应用层根据所述ID进行二分法查找指令列表,获取所述ID对应的函数; 若查找到所述ID对应的函数,则所述驱动层执行所述ID对应的函数; 若未能查找到所述ID对应的函数,则所述驱动层终止执行所述ID对应的函数。5.一种处理消息的装置,其特征在于,所述装置包括: 接收模块,用于接收移动终端发送的指令消息,所述指令消息包括遥控器按键消息、鼠标按键消息、键盘按键消息和/或触屏消息; 获取模块,用于将接收到的所述指令消息对应的脉冲信号通过模数转换,获取转换后的数字信号; 第一发送模块,用于将所述数字信号通过预设编码算法编码后,将编码后的数字信号通过UART端口驱动转换后发送给DFB层; 第二发送模块,用于通过所述DFB层将所述编码后的数字信号转换为所述指令消息,并将所述指令消息发送给OSD进行处理。6.根据权利要求5所述的装置,其特征在于,所述预设编码算法包括STBC编码。7.根据权利要求5或6所述的装置,其特征在于,所述装置还包括: 驱动层,用于监控事件消息队列; 应用层,用于初始化创建事件消息处理线程和所述事件消息队列,以及若监控到有消息到达,则所述应用层将所述消息转换为TARA定义的消息,并更新所述OSD的状态。8.根据权利要求5或6所述的装置,其特征在于,所述装置还包括: 所述OSD层中的转换模块,用于接收UI层发送的函数指针,并获取所述函数指针对应的ID; 所述应用层,用于根据所述ID进行二分法查找指令列表,获取所述ID对应的函数; 所述驱动层,用于若查找到所述ID对应的函数,则执行所述ID对应的函数;若未能查找到所述ID对应的函数,则终止执行所述ID对应的函数。9.一种处理消息的系统,其特征在于,所述系统包括移动终端、OSD层中的转换模块、OSD、应用层和驱动层; 所述移动终端用于向所述OSD层中的转换模块发送指令消息; 所述OSD层中的转换模块,用于接收移动终端发送的指令消息,所述指令消息包括遥控器按键消息、鼠标按键消息、键盘按键消息和/或触屏消息;将接收到的所述指令消息对应的脉冲信号通过模数转换,获取转换后的数字信号;将所述数字信号通过预设编码算法编码后,将编码后的数字信号通过UART端口驱动转换后发送给DFB层;通过所述DFB层将所述编码后的数字信号转换为所述指令消息,并将所述指令消息发送给OSD进行处理; 所述驱动层,用于监控事件消息队列; 所述应用层,用于初始化创建事件消息处理线程和所述事件消息队列,以及若监控到有消息到达,则所述应用层将所述消息转换为TARA定义的消息,并更新所述OSD的状态。10.根据权利要求9所述的系统,其特征在于; 所述OSD层中的转换模块,用于接收UI层发送的函数指针,并获取所述函数指针对应的ID; 所述应用层,用于根据所述ID进行二分法查找指令列表,获取所述ID对应的函数; 所述驱动层,用于若查找到所述ID对应的函数,则执行所述ID对应的函数;若未能查找到所述ID对应的函数,则终止执行所述ID对应的函数。
【文档编号】H04N21/431GK105959826SQ201610280703
【公开日】2016年9月21日
【申请日】2016年4月29日
【发明人】伍以文, 金峰
【申请人】深圳创维-Rgb电子有限公司