一种中间件与用户界面的通信方法和系统.pdf

上传人:32 文档编号:4417800 上传时间:2018-09-30 格式:PDF 页数:14 大小:3.91MB
返回 下载 相关 举报
一种中间件与用户界面的通信方法和系统.pdf_第1页
第1页 / 共14页
一种中间件与用户界面的通信方法和系统.pdf_第2页
第2页 / 共14页
一种中间件与用户界面的通信方法和系统.pdf_第3页
第3页 / 共14页
点击查看更多>>
资源描述

《一种中间件与用户界面的通信方法和系统.pdf》由会员分享,可在线阅读,更多相关《一种中间件与用户界面的通信方法和系统.pdf(14页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102866925 A (43)申请公布日 2013.01.09 C N 1 0 2 8 6 6 9 2 5 A *CN102866925A* (21)申请号 201210327574.0 (22)申请日 2012.09.06 G06F 9/54(2006.01) (71)申请人深圳市九洲电器有限公司 地址 518057 广东省深圳市南山区科技园南 区科技南12路九洲电器大厦6楼 (72)发明人周林青 (74)专利代理机构深圳市顺天达专利商标代理 有限公司 44217 代理人郭伟刚 (54) 发明名称 一种中间件与用户界面的通信方法和系统 (57) 摘要 本发明涉及一。

2、种中间件与用户界面的通信方 法和系统。该系统包括中间件的多个中间件模块、 用户界面的多个用户界面模块、以及与多个中间 件模块一一对应的多个用户功能模块,每一个用 户功能模块设立有全局回调函数、公有函数和信 号,每一个用户界面模块设立有各自的槽。该方法 包括步骤:S1、每一个中间件模块在其特定的业 务事件发生时调用与其对应的用户功能模块中的 全局回调函数;S2、被调用的全局回调函数调用 其所属的用户功能模块中的公有函数,被调用的 公有函数将其所属的用户功能模块中的信号发射 到关联的用户界面模块;S3、关联的用户界面模 块通过其槽接收信号并作出相应的响应处理。实 施本发明,可以达成中间件与用户界面。

3、的高效通 信。 (51)Int.Cl. 权利要求书2页 说明书8页 附图3页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书 8 页 附图 3 页 1/2页 2 1.一种中间件与用户界面的通信方法,其特征在于,所述中间件包括多个中间件模块, 所述用户界面包括多个用户界面模块,预先创建与多个中间件模块一一对应的多个用户功 能模块,为每一个用户功能模块设立各自的全局回调函数、公有函数和信号,为每一个用户 界面模块设立各自的槽,所述通信方法包括步骤: S1、每一个中间件模块在其特定的业务事件发生时调用与其对应的用户功能模块中的 全局回调函数; S2、被调用的全。

4、局回调函数调用其所属的用户功能模块中的公有函数,而被调用的公 有函数将其所属的用户功能模块中的信号发射到关联的用户界面模块; S3、关联的用户界面模块通过其槽接收所述信号并作出相应的响应处理。 2.根据权利要求1所述的中间件与用户界面的通信方法,其特征在于,所述全局回调 函数预先注册到中间件模块,注册方法包括: 为每一个中间件模块设立一个注册回调函数; 为每一个用户功能模块设立一个注册函数; 每一个用户功能模块通过其注册函数调用对应的中间件模块中的注册回调函数以将 其全局回调函数注册到对应的中间件模块中。 3.根据权利要求1所述的中间件与用户界面的通信方法,其特征在于,所述多个用户 功能模块与。

5、所述多个用户界面模块之间是基于QT的信号与槽机制来建立连接的,所述连 接是通过设立用户界面模块管理类和用户功能模块管理类来实现的。 4.根据权利要求3所述的中间件与用户界面的通信方法,其特征在于,所述用户界面 模块管理类维护一个用户界面模块管理列表,所述用户界面模块管理列表包括多个用户界 面模块ID和多个用户界面模块指针,所述多个用户界面模块ID与所述多个用户界面模块 指针一一对应,所述多个用户界面模块指针与所述多个用户界面模块一一对应;所述用户 功能模块管理类维护一个用户功能模块管理列表,所述用户功能模块管理列表包括多个用 户功能模块ID和多个用户功能模块指针,所述多个用户功能模块ID与所述。

6、多个用户功能 模块指针一一对应,所述多个用户功能模块指针与所述多个用户功能模块一一对应;所述 用户功能模块管理类提供连接函数和断开函数,所述连接函数是根据相应的用户功能模块 ID和用户界面模块ID来建立相应的用户功能模块中的信号与相应的用户界面模块中的槽 的连接的,所述断开函数是根据相应的用户功能模块ID和用户界面ID模块来断开相应的 用户功能模块中的信号与相应的用户界面模块中的槽的连接的。 5.根据权利要求4所述的中间件与用户界面的通信方法,其特征在于,所述用户功能 模块管理列表还包括与所述多个用户功能模块一一对应的多个连接信息,每一个连接信息 均包括关联的信号与槽之间的连接计数和连接状态。。

7、 6.一种中间件与用户界面的通信系统,其特征在于,所述通信系统包括中间件的多个 中间件模块、用户界面的多个用户界面模块、以及与多个中间件模块一一对应的多个用户 功能模块,每一个用户功能模块均设立有各自的全局回调函数、公有函数和信号,每一个用 户界面模块均设立有各自的槽,其中: 每一个中间件模块均用于在其特定的业务事件发生时调用与其对应的用户功能模块 中的全局回调函数; 每一个用户功能模块均用于在其全局回调函数被调用时通过其全局回调函数调用其 权 利 要 求 书CN 102866925 A 2/2页 3 公有函数,以及在其公有函数被调用时通过其公有函数将其信号发射到关联的用户界面模 块; 每一个。

8、用户界面模块用于通过其槽接收关联的用户功能模块所发射的信号并作出相 应的响应处理。 7.根据权利要求6所述的中间件与用户界面的通信系统,其特征在于,每一个中间件 模块均设立有各自的注册回调函数,每一个用户功能模块还均设立有各自的注册函数,每 一个用户功能模块是通过其注册函数调用对应的中间件模块中的注册回调函数以将其全 局回调函数注册到对应的中间件模块的。 8.根据权利要求6所述的中间件与用户界面的通信系统,其特征在于,所述多个用户 功能模块与所述多个用户界面模块之间是基于QT的信号与槽机制来建立连接的,所述连 接是通过用户界面模块管理类和用户功能模块管理类来实现的。 9.根据权利要求8所述的实。

9、现中间件与用户界面的通信系统,其特征在于,所述用户 界面模块管理类维护一个用户界面模块管理列表,所述用户界面模块管理列表包括多个用 户界面模块ID和多个用户界面模块指针,所述多个用户界面模块ID与所述多个用户界面 模块指针一一对应,所述多个用户界面模块指针与所述多个用户界面模块一一对应;所述 用户功能模块管理类维护一个用户功能模块管理列表,所述用户功能模块管理列表包括多 个用户功能模块ID和多个用户功能模块指针,所述多个用户功能模块ID与所述多个用户 功能模块指针一一对应,所述多个用户功能模块指针与所述多个用户功能模块一一对应; 所述用户功能模块管理类提供连接函数和断开函数,所述连接函数是根据。

10、相应的用户功能 模块ID和用户界面模块ID来建立相应的用户功能模块中的信号与相应的用户界面模块中 的槽的连接的,所述断开函数是根据相应的用户功能模块ID和用户界面ID模块来断开相 应的用户功能模块中的信号与相应的用户界面模块中的槽的连接的。 10.根据权利要求9所述的中间件与用户界面的通信系统,其特征在于,所述用户功能 模块管理列表还包括与所述多个用户功能模块一一对应的多个连接信息,每一个连接信息 均包括关联的信号与槽之间的连接计数和连接状态。 权 利 要 求 书CN 102866925 A 1/8页 4 一种中间件与用户界面的通信方法和系统 技术领域 0001 本发明涉及机顶盒的通信技术,尤。

11、其涉及一种机顶盒中的中间件与用户界面的通 信方法和系统。 背景技术 0002 随着数字电视的普及,机顶盒进入了千家万户,不仅成为了人们日常生活中必不 可少的数字电视接收终端,更是被定义成家庭娱乐中心的载体。因为功能越来越多,所需的 用户界面也越来越复杂。不少公司倾向于采用跨平台的图形用户界面开发框架QT来实现 其用户界面,而在业务功能的实现上则采用基于C语言开发的中间件软件。 0003 中间件是基础软件的一大类,属于可复用软件的范畴,它处于操作系统软件和应 用软件的中间,能够屏蔽操作系统的复杂性为应用程序提供一个相对稳定的高层应用环 境。中间件能够为应用程序提供多种通信机制,为了使通信接口尽可。

12、能地通用,在现有技术 中,中间件与用户界面的通信是通过采用较庞大的TCP/IP协议来实现的。 0004 TCP/IP协议即传输控制协议/因特网互联协议,协议采用4层结构:网络接口层、 网络层、传输层、应用层,每一层都呼叫它的一下层所提供的服务来完成自己的需求。IP协 议本身是不可靠的,需要TCP协议来保证其通信的可靠性,TCP连接的建立需要经过“三次 握手”的过程,而数据的发送和接收需要经过多层的打包和解包的过程。 0005 因此,受机顶盒主芯片性能的限制,采用TCP/IP协议来实现基于C语言开发的中 间件与基于QT开发的用户界面的通信的效率往往比较低下,导致用户界面更新的速度较 慢或不够实时。

13、。 发明内容 0006 本发明要解决的技术问题在于,针对现有技术的上述因采用TCP/IP协议导致的 基于C语言开发的中间件与基于QT开发的用户界面之间通信效率不高的缺陷,提供一种中 间件与用户界面的通信方法和系统,可以实现中间件与用户界面的高效通信。 0007 本发明解决其技术问题所采用的技术方案是:提供一种中间件与用户界面的通信 方法,其中,中间件包括多个中间件模块,用户界面包括多个用户界面模块,预先创建与多 个中间件模块一一对应的多个用户功能模块,为每一个用户功能模块设立各自的全局回调 函数、公有函数和信号,为每一个用户界面模块设立各自的槽,该通信方法包括步骤: 0008 S1、每一个中间。

14、件模块在其特定的业务事件发生时调用与其对应的用户功能模块 中的全局回调函数; 0009 S2、被调用的全局回调函数调用其所属的用户功能模块中的公有函数;而被调用 的公有函数将其所属的用户功能模块中的信号发射到关联的用户界面模块; 0010 S3、关联的用户界面模块通过其槽接收该信号并作出相应的响应处理。 0011 在本发明所述的中间件与用户界面的通信方法中,全局回调函数预先注册到中间 件模块,注册方法包括: 说 明 书CN 102866925 A 2/8页 5 0012 为每一个中间件模块设立一个注册回调函数; 0013 为每一个用户功能模块设立一个注册函数; 0014 每一个用户功能模块通过。

15、其注册函数调用对应的中间件模块中的注册回调函数 以将其全局回调函数注册到对应的中间件模块中。 0015 在本发明所述的中间件与用户界面的通信方法中,多个用户功能模块与多个用户 界面模块之间是基于QT的信号与槽机制来建立连接的,该连接是通过设立用户界面模块 管理类和用户功能模块管理类来实现的。 0016 在本发明所述的中间件与用户界面的通信方法中,用户界面模块管理类维护一个 用户界面模块管理列表,用户界面模块管理列表包括多个用户界面模块ID和多个用户界 面模块指针,多个用户界面模块ID与多个用户界面模块指针一一对应,多个用户界面模块 指针与多个用户界面模块一一对应;用户功能模块管理类维护一个用户。

16、功能模块管理列 表,用户功能模块管理列表包括多个用户功能模块ID和多个用户功能模块指针,多个用户 功能模块ID与多个用户功能模块指针一一对应,多个用户功能模块指针与多个用户功能 模块一一对应;用户功能模块管理类提供连接函数和断开函数,连接函数是根据相应的用 户功能模块ID和用户界面模块ID来建立相应的用户功能模块中的信号与相应的用户界面 模块中的槽的连接的,断开函数是根据相应的用户功能模块ID和用户界面ID模块来断开 相应的用户功能模块中的信号与相应的用户界面模块中的槽的连接的。 0017 在本发明所述的中间件与用户界面的通信方法中,用户功能模块管理列表还包括 与多个用户功能模块一一对应的多个。

17、连接信息,每一个连接信息均包括关联的信号与槽之 间的连接计数和连接状态。 0018 本发明还提供一种中间件与用户界面的通信系统,该通信系统包括: 0019 中间件的多个中间件模块、用户界面的多个用户界面模块、以及与多个中间件模 块一一对应的多个用户功能模块,每一个用户功能模块均设立有各自的全局回调函数、公 有函数和信号,每一个用户界面模块均设立有各自的槽,其中: 0020 每一个中间件模块均用于在其特定的业务事件发生时调用与其对应的用户功能 模块中的全局回调函数; 0021 每一个用户功能模块均用于在其全局回调函数被调用时通过其全局回调函数调 用其公有函数,以及在其公有函数被调用时通过其公有函。

18、数将其信号发射到关联的用户界 面模块; 0022 每一个用户界面模块用于通过其槽接收关联的用户功能模块所发射的信号并作 出相应的响应处理。 0023 在本发明所述的中间件与用户界面的通信系统中,每一个中间件模块均设立有各 自的注册回调函数,每一个用户功能模块还均设立有各自的注册函数,每一个用户功能模 块是通过其注册函数调用对应的中间件模块中的注册回调函数以将其全局回调函数注册 到对应的中间件模块的。 0024 在本发明所述的中间件与用户界面的通信系统中,多个用户功能模块与所多个用 户界面模块之间是基于QT的信号与槽机制来建立连接的,该连接是通过用户界面模块管 理类和用户功能模块管理类来实现的。。

19、 0025 在本发明所述的中间件与用户界面的通信系统中,用户界面模块管理类维护一个 说 明 书CN 102866925 A 3/8页 6 用户界面模块管理列表,用户界面模块管理列表包括多个用户界面模块ID和多个用户界 面模块指针,多个用户界面模块ID与多个用户界面模块指针一一对应,多个用户界面模块 指针与多个用户界面模块一一对应;用户功能模块管理类维护一个用户功能模块管理列 表,用户功能模块管理列表包括多个用户功能模块ID和多个用户功能模块指针,多个用户 功能模块ID与多个用户功能模块指针一一对应,多个用户功能模块指针与多个用户功能 模块一一对应;用户功能模块管理类提供连接函数和断开函数,连接。

20、函数是根据相应的用 户功能模块ID和用户界面模块ID来建立相应的用户功能模块中的信号与相应的用户界面 模块中的槽的连接的,断开函数是根据相应的用户功能模块ID和用户界面ID模块来断开 相应的用户功能模块中的信号与相应的用户界面模块中的槽的连接的。 0026 在本发明所述的中间件与用户界面的通信系统中,用户功能模块管理列表还包括 与多个用户功能模块一一对应的多个连接信息,每一个连接信息均包括关联的信号与槽之 间的连接计数和连接状态。 0027 实施本发明的技术方案,具有以下技术效果:通过预先创建多个用户功能模块以 作为中间件的多个中间件模块与用户界面的多个用户界面模块之间通信的桥梁,利用函数 调。

21、用及回调,以及采用QT的信号与槽机制,实现了中间件与用户界面的通信,由于函数调 用及回调的时间开销和QT的信号槽机制的时候开销很小,不必通过多层的协议解析,从而 实现中间件与用户界面的高效通信。 附图说明 0028 下面将结合附图及实施例对本发明作进一步说明,附图中: 0029 图1是根据本发明一个实施例的中间件与用户界面的通信系统的结构示意图; 0030 图2是根据本发明一个实施例的建立用户功能模块与用户界面模块的连接的流 程图; 0031 图3是根据本发明一个实施例的中间件与用户界面的通信方法的流程图。 具体实施方式 0032 本发明是一种由计算机程序来实现的技术方案。在机顶盒中,其中间件。

22、包括多个 中间件模块,用户界面包括多个用户界面模块,通过预先创建与多个中间件模块一一对应 的多个用户功能模块以作为多个中间件模块与多个用户界面模块之间通信的桥梁,并为每 一个用户功能模块设立各自的全局回调函数、公有函数和信号,为每一个用户界面模块设 立各自的槽,来实现机顶盒中的基于C语言开发的中间件与基于QT开发的用户界面的通 信。 0033 图1是根据本发明一个实施例的中间件与用户界面的通信系统的结构示意图。本 发明的通信系统包括中间件的多个中间件模块、用户界面的多个用户界面模块、以及与多 个中间件模块一一对应的多个用户功能模块。其中,每一个中间件模块与对应的用户功能 模块之间是利用函数调用。

23、及回调来实现通信的,而多个用户功能模块与多个用户界面模块 之间是基于QT的信号与槽机制来建立连接的,此连接是通过自定义的用户功能管理类以 及用户界面管理类来实现的。在实现中间件与用户界面之间的通信之前,需要预先创建多 个中间件模块、多个用户功能模块和多个用户界面模块,并自定义用户功能管理类和用户 说 明 书CN 102866925 A 4/8页 7 界面管理类,具体如下: 0034 一、基于C语言创建对应于中间件的业务功能的中间件模块,该中间件模块实质 上是一个类。例如,对应于中间件的第一业务功能,创建第一中间件模块;对应于中间件的 第二业务功能,创建第二中间件模块;以此类推,对应于中间件的第。

24、m业务功能(m为自然 数),创建第m中间件模块。这样,所创建的m个中间件模块与中间件的m个业务功能一一 对应。这里的中间件的业务功能可以是USB业务功能、CI卡业务功能等。在本发明的实施 例中,为每一个中间件模块设立各自的注册回调函数和业务函数等接口函数,该注册回调 函数用于实现回调函数的的注册,该业务函数用于得到相应的业务信息,例如,通过业务函 数BLL_USB_GetFileList()可以得到U盘的文件信息。 0035 二、基于QT开发平台的QObject类创建对应于中间件模块的用户功能模块,该用 户功能模块实质上是一个类。例如,对应于第一中间件模块,创建第一用户功能模块;对应 于第二中。

25、间件模块,创建第二用户功能模块;以此类推,对应于第m中间件模块,创建第m用 户功能模块。这样,所创建的m个用户功能模块与m个中间件模块一一对应。为每一个用 户功能模块均设立各自的注册函数、全局回调函数、公有函数和信号等。每一个用户功能模 块通过其注册函数调用对应的中间件模块中的注册回调函数以将其全局回调函数注册到 对应的中间件模块,例如,第一用户功能模块通过第一用户功能模块中的注册函数调用第 一中间件模块中的注册回调函数以将第一用户功能模块中的全局回调函数注册到第一中 间件模块。这样,当中间件的第一业务功能的业务事件发生时(例如,当U盘插入时),系统 消息触发第一中间件模块去调用第一用户功能模。

26、块中的全局回调函数。为每一个用户功能 模块还均设立功能函数,该功能函数可以调用对应的中间件模块中的业务函数以得到相应 的业务信息,即该功能函数封装对应的中间件模块中的业务函数以得到相应的业务信息。 0036 三、基于QT开发平台的QObject类创建对应于用户界面(窗口)的用户界面模块, 该用户功能模块实质上是一个类。例如,对应于第一用户界面,创建第一用户界面模块;对 应于第二用户界面,创建第二用户界面模块;以此类推,对应于第n用户界面,创建第n用户 界面模块。这样,所创建的n个用户界面模块与n个用户界面一一对应。在本发明的实施 例中,为每一个用户界面模块均设立各自的槽。 0037 四、自定义。

27、用户界面管理类。用户界面管理类不继承于任何QT类。在用户界面 管理类中为每一个用户界面模块分配一个用户界面模块ID,用户界面管理类维护一个用户 界面管理列表,该用户界面管理列表包括多个用户界面模块ID和多个用户界面模块指针, 其中,多个用户界面模块ID与多个用户界面模块指针一一对应,多个用户界面模块指针与 多个用户界面模块一一对应,这里的用户界面模块指针是指用户界面模块创建时得到的指 针。这样,可以通过一个用户界面模块ID找到相应的用户界面模块指针所指向的用户界 面模块。如图1所示,用户界面管理列表包括ID_1、ID_2、ID_n,还包括指针_1、指针 _2、指针_3,其中,ID_1表示第一用。

28、户界面模块的用户界面模块ID,ID_2表示第二用户 界面模块的用户界面模块ID,以此类推,ID_n表示第n用户界面模块的用户界面模块ID; 指针_1表示第一用户界面模块的指针,指针_2表示第二用户界面模块的指针,以此类推, 指针_n表示第n用户界面模块的指针。其中,ID_1与指针_1对应,指针_1指向第一用户 界面模块,通过ID_1可以找到第一用户界面模块;ID_2与指针_2对应,指针_2指向第二 用户界面模块,通过ID_2可以找到第二用户界面模块;以此类推,ID_n与指针_n对应,指 说 明 书CN 102866925 A 5/8页 8 针_n指向第n用户界面模块,通过ID_n可以找到第n用。

29、户界面模块。 0038 五、自定义用户功能管理类。用户功能管理类不继承于任何QT类。在用户功能 管理类中为每一个用户功能模块分配一个用户功能模块ID,用户功能管理类维护一个用户 功能管理列表,该用户功能管理列表包括多个用户功能模块ID和多个用户功能模块指针, 其中,多个用户功能模块ID与多个用户功能模块指针一一对应,多个用户功能模块指针与 多个用户功能模块一一对应,这里的用户功能模块指针是指用户功能模块创建时得到的指 针。 0039 这样,可以通过一个用户功能模块ID找到相应的用户功能模块指针所指向的用 户功能模块。如图1所示,用户功能管理列表包括ID1、ID2、IDm,还包括指针1、指针 2。

30、、指针3,其中,ID1表示第一用户功能模块的用户功能模块ID,ID2表示第二用户功能 模块的用户功能模块ID,以此类推,IDm表示第m用户功能模块的用户功能模块ID;指针1 表示第一用户功能模块的指针,指针2表示第二用户功能模块的指针,以此类推,指针m表 示第m用户功能模块的指针。其中,ID1与指针1对应,指针1指向第一用户功能模块,通 过ID1可以找到第一用户功能模块;ID2与指针2对应,指针2指向第二用户功能模块,通 过ID2可以找到第二用户功能模块;以此类推,IDm与指针m对应,指针m指向第m用户功 能模块,通过IDm可以找到第m用户功能模块。 0040 用户功能管理列表还包括与多个用户。

31、功能模块一一对应的多个连接信息,每一个 连接信息均包括关联的信号与槽之间的连接计数和连接状态。如图1所示,用户功能管理 列表包括m个连接信息:第一连接信息、第二连接信息、第m连接信息。例如,若第一用 户功能模块的信号与第一用户界面模块中的槽已建立连接,则在第一连接信息中,第一用 户功能模块的信号与第一用户界面模块中的槽之间的连接计数设置为1,连接状态设置为 已连接;若第一用户功能模块的信号与第一用户界面模块中的槽未建立连接,则在第一连 接信息中,第一用户功能模块的信号与第一用户界面模块中的槽之间的连接计数设置为0, 连接状态设置为未连接。同理,若第一用户功能模块与第二用户界面模块已建立连接,则。

32、在 第一连接信息中,第一用户功能模块的信号与第二用户界面模块中的槽之间的连接计数设 置为1,连接状态设置为已连接;若第一用户功能模块的信号与第二用户界面模块中的槽 未建立连接,则在第一连接信息中,第一用户功能模块的信号与第二用户界面模块中的槽 之间的连接计数设置为0,连接状态设置为未连接。在本发明的实施例中,用户功能模块与 用户界面模块之间的连接是基于QT的信号与槽机制实现的,一个用户功能模块能够和一 个用户界面模块连接或断开,一个用户功能模块也能够和多个用户界面模块连接或断开, 多个用户功能模块也能够和一个用户界面模块连接或断开。 0041 此外,用户功能模块管理类还提供连接函数connec。

33、tBllApp()和断开 函数disconnectBllApp(),其中,传入连接函数connectBllApp()或断开函数 disconnectBllApp()的参数包括用户功能模块ID和用户界面模块ID。连接函数 connectBllApp()是根据相应的用户功能模块ID和用户界面模块ID来建立相应的用户功 能模块中的信号与相应的用户界面模块中的槽的连接的;断开函数disconnectBllApp() 是根据相应的用户功能模块ID和用户界面ID模块来断开相应的用户功能模块中的信号与 相应的用户界面模块中的槽的连接的。 0042 这样,当中间件与用户界面进行通信时,每一个中间件模块均用于在。

34、其特定的业 说 明 书CN 102866925 A 6/8页 9 务事件发生时调用与其对应的用户功能模块中的全局回调函数;每一个用户功能模块均用 于在其全局回调函数被调用时通过其全局回调函数调用其公有函数,以及在其公有函数被 调用时通过其公有函数将其信号发射到关联的用户界面模块;每一个用户界面模块用于通 过其槽接收关联的用户功能模块所发射的信号并作出相应的响应处理。 0043 图2是根据本发明一个实施例的建立用户功能模块与用户界面模块的连接的流 程图。在中间件与用户界面通信前,要先建立用户功能模块的信号和用户界面模块的槽之 间的连接。如图2所示,用户功能模块与用户界面模块的连接的建立开始于步骤。

35、1001,在步 骤1001中,根据传入连接函数connectBllApp()的参数中的用户功能模块ID在用户功能 模块管理列表中查找对应的用户功能模块指针,若找到对应的用户功能模块指针,则进入 步骤1002;若没有找到对应的用户功能模块指针,则连接失败。 0044 在步骤1002中,根据传入连接函数connectBllApp()的参数中的用户界面模块ID 在用户界面模块管理列表中查找对应的用户界面模块指针,若找到对应的用户界面模块指 针,则进入步骤1003;若没有找到对应的用户界面模块指针,则连接失败。 0045 在步骤1003中,判断相应的信号和槽的连接计数是否为0,即判断所找到的用户 功能。

36、模块指针所指向的用户功能模块中的信号和所找到的用户界面模块指针所指向的用 户界面模块中的槽的连接计数是否为0。若为0,即表示该信号和槽未建立连接,则进入步 骤1004;若不是0而是1,即表示该信号和槽已建立连接,则提示重复连接。 0046 在步骤1004中,结合QT提供的connect()函数实际连接相应的用户界面模块的 信号和相应的用户界面模块中的槽,继而进入步骤1005。 0047 在步骤1005中,将用户功能管理列表中相应的连接信息中的连接状态设置为已 连接,连接计数加一。 0048 这样,相应的用户界面模块的信号和相应的用户界面模块中的槽连接成功,为随 后的中间件与用户界面的通信提供信。

37、号与槽连接的基础,以使得在中间件与用户界面通信 时,相应的用户功能模块可以将信号发射到相应的用户界面模块中的槽。当不需要用户功 能模块的功能时,通过断开函数disconnectBllApp()断开相应的用户功能模块和用户界 面模块之间的连接,并使相应的信号和槽的连接计数减一。这样,通过ID管理机制来管理 信号与槽之间的连接,提高了通信连接和断开的灵活性。 0049 图3是根据本发明一个实施例的实现中间件与用户界面通信的方法的流程图。在 本发明的实施例中,预先创建与多个中间件模块一一对应的多个用户功能模块,为每一个 用户功能模块设立各自的全局回调函数、公有函数和信号,为每一个用户界面模块设立各 。

38、自的槽。该通信方法包括以下步骤: 0050 S1、每一个中间件模块在其特定的事件发生时调用与其对应的用户功能模块中的 全局回调函数; 0051 S2、被调用的全局回调函数调用其所属的用户功能模块中的公有函数,而被调用 的公有函数将其所属的用户功能模块中的信号发射到关联的用户界面模块; 0052 S3、关联的用户界面模块通过其槽接收该信号并作出相应的响应处理。 0053 例如,结合图1,假设在中间件与用户界面通信之前,第一用户功能模块中的信号 是与第一用户界面模块中的槽建立好连接的,则当第一业务功能的业务事件发生时(例如U 盘插入时),系统消息触发第一中间件模块去调用第一用户功能模块中的全局回调。

39、函数,该 说 明 书CN 102866925 A 7/8页 10 被调用的全局回调函数通过用户功能管理类得到第一用户功能模块的指针,并通过该指针 去调用第一用户功能模块中的公有函数,该公有函数将第一用户功能模块中的信号发射到 第一用户界面模块中的槽,第一用户界面模块通过其槽接收第一用户功能模块中的信号并 根据该信号的参数所携带的通信数据作出相应的响应处理,第一用户界面模块可以通过本 身的函数作出相应的响应处理,也可以通过调用对应的用户功能模块所封装的中间件模块 的业务函数以得到相应的业务信息以作出相应的响应处理。 0054 这样,对于中间件模块到用户界面模块方向的通信,当某一业务功能的业务事件。

40、 发生时,系统消息触发中间件模块去调用注册到其中的全局回调函数,全局回调函数调用 其所属用户功能模块的一个公有函数,公有函数将信号发送给已与该用户功能模块建立连 接的用户界面模块的一个槽,其中的通信数据由信号的参数所携带。对于用户界面模块到 中间件模块方向的通信,用户界面模块通过其槽接收用户功能模块发射出的信号后,通过 调用用户功能模块所封装的中间件模块的函数的方式来实现相应的响应处理,其中的通信 数据由函数的参数所携带。 0055 为了进一步说明本发明,下面将举例来说明本发明是如何实现用户界面与中间件 的通信的。 0056 假定:一级界面为主窗口(Mainwindow),二级界面为多媒体浏览。

41、窗口 (SubWinMedia),与此二界面相关的功能模块为USB功能模块(BllAppUSB),对应的USB中 间件模块为BllUSB,USB中间件模块BllUSB中包括获取文件列表BLL_USB_GetFileList() (即上面所述的业务函数)和注册回调函数BLL_USB_RegisterCallBack()等接口函数,当U 盘插入时,希望在主窗口(Mainwindow)右上方显示一个表示USB已插入的小图标,同时在 多媒体浏览窗口(SubWinMedia)中更新多媒体文件的列表。 0057 要达到上述功能,在一个较佳的实施例中是这样实现的: 0058 1、基于C语言,创建中间件模块B。

42、1lUSB,实现获取文件列表BLL_USB_ GetFileList()和注册回调BLL_USB_RegisterCallBack()等接口函数。 0059 2、基于QWidget新建主窗口Mainwindow类和多媒体浏览窗口类SubWinMedia。 0060 3、在用户界面模块管理类WindowManager中增加一个Mainwindow类对应的ID: WID_MAINWINDOW和与SubWinMedia类对应的ID:WID_MEDIA。 0061 4、基于QObject新建USB功能模块BllAppUSB类,在BllAppUSB类中包括有全局 回调函数USB_EventCallbac。

43、k()、公有函数sendUSBEvent()和信号signalUSBEvent(),在 BllAppUSB类中调用注册函数registerCallback()将全局回调函数USB_EventCallback() 注册至USB中间件模块BllUSB,其中registerCallback()调用中间件模块BllUSB的BLL_ USB_RegisterCallBack()函数;在BllAppUSB类中还包括实现获取文件列表的功能函数 getFileList(),其中,getFileList()调用中间件模块BllUSB的BLL_USB_GetFileList() 函数。 0062 5、在用户功能模。

44、块管理类BllAppManager中增加一个USB模块ID:MID_USB。 0063 6、在主窗口Mainwindow中建立一个槽slotUSBEvent1(),通过用户功能模块管理 类BllAppManager提供的connectBllApp()接口去连接USB功能模块BllAppUSB类的信号 signalUSBEvent(),并使槽slotUSBEvent1()与信号signalUSBEvent()的连接计数加一, 其中传入connectBllApp()的参数为WID_MAINWINDOW和MID_USB。 说 明 书CN 102866925 A 10 8/8页 11 0064 7、当。

45、U盘插入时,USB功能模块BllAppUSB的全局回调函数USB_EventCallback() 会被中间件调用,随后公有函数sendUSBEvent()被USB_EventCallback()调用,随后信号 signalUSBEvent()被sendUSBEvent()发送,在主窗口Mainwindow的槽slotUSBEvent1() 会接收到signalUSBEvent()信号,此时在主窗口右上方绘制一个表示USB已插入 的小图标;同时在多媒体浏览窗口SubWinMedia的槽slotUSBEvent2()也会接收到 signalUSBEvent()信号,此时调用USB中间件模块(Bll。

46、USB)的BLL_USB_GetFileList()得 到U盘的文件信息并更新多媒体浏览窗口SubWinMedia的多媒体文件显示列表。 0065 8、当退出多媒体浏览窗口SubWinMedia时,在其析构函数中通过调用用户功能模 块管理类BllAppManager提供的disconnectBllApp()可断开多媒体浏览窗口SubWinMedia 和USB功能模块BllAppUSB的连接,并使槽slotUSBEvent2()与信号signalUSBEvent() 的连接计数减一。 0066 上述实施例通过机顶盒的USB相关模块说明一个用户功能模块对应多个用户界 面的情况,类似地,可以建立机顶。

47、盒的CI相关模块,达到:当CI卡插入时,希望在主窗口 (Mainwindow)右上方显示一个表示CI已插入的小图标,同时在CI信息窗口(SubWinCAS) 中更新CI信息的列表。对于用户界面模块Mainwindow而言,与USB用户功能模块 BllAppUSB和CI用户功能模块BllAppCI都进行了连接,由此说明多个用户功能模块与一个 用户界面连接的情况。本发明不局限于所公开的具体实施例。 0067 实施本发明,由于函数调用及回调的时间开销和QT的信号槽机制的时候开销很 小,不必通过多层的协议解析,从而实现中间件与用户界面的高效通信。 0068 虽然本发明是通过具体实施例进行说明的,本领域技术人员应当明白,在不脱离 本发明范围的情况下,还可以对本发明进行各种变换及等同替代。另外,针对特定情形或材 料,可以对本发明做各种修改,而不脱离本发明的范围。因此,本发明不局限于所公开的具 体实施例,而应当包括落入本发明权利要求范围内的全部实施方式。 说 明 书CN 102866925 A 11 1/3页 12 图1 说 明 书 附 图CN 102866925 A 12 2/3页 13 图2 说 明 书 附 图CN 102866925 A 13 3/3页 14 图3 说 明 书 附 图CN 102866925 A 14 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1