本发明涉及通信技术领域,特别是涉及一种基于AllJoyn Control Panel的传输方法和装置。
背景技术:
AllJoyn是一个基于客户机/服务器(Client/Server)模型的点对点框架,主要用来实现跨操作系统、跨语言和跨通讯技术的信息交流,是目前国际上影响力很大的一个开源框架。AllJoyn的控制面板(Control Panel)服务框架是AllJoyn的四大基础服务框架之一。
Control Panel允许局域网中设备向该局域网中临近的其他设备广播它的虚拟控制面板,其中,将该广播方称为受控方;局域网中支持Control Panel的设备可以在自己的屏幕上渲染出受控方广播的虚拟控制面板,其中,将渲染的设备称之为控制方,从而用户可以通过控制方来实现对受控方的交互。
目前AllJoyn Control Panel只适用于局域网。如果用户希望跨网操作不同设备的功能,基于目前的Control Panel机制无法实现,因此现有的AllJoyn Control Panel服务框架局限性较大。
例如:用户下班回家前半小时,希望通过自己的手机控制家里的电器,使得它们都处于一种合适的工作状态,比如将房间的温度调整到一个合适的值,将洗浴间的热水器加热,将厨房的热水器插上开始烧水等等。但是基于现有AllJoyn Control Panel机制,没有办法实现用户需求,因为现有的Control Panel机制的适用范围局限在局域网中,跨网操作无法实现。
技术实现要素:
本发明要解决的技术问题是提供一种基于AllJoyn Control Panel的传输方法和装置,用以解决现有AllJoyn Control Panel只适用于局域网的问题。
针对上述技术问题,本发明是通过以下技术方案来解决的。
本发明提供了一种基于AllJoyn Control Panel的传输方法,所述方法在源设备侧执行的步骤包括:根据目的设备所处网络,在报文中写入对应的目的网络标识;将所述报文向网关发送,以使所述网关根据所述目的网络标识,将所述报文向所述目的设备发送。
其中,所述目的网络标识的类型包括:跨网标识和/或内网标识;所述根据目的设备所处网络,在报文中写入对应的目的网络标识,包括:如果目的设备处于源设备所在网络的外部,则在报文中写入跨网标识;和/或,如果目的设备处于源设备所在网络的内部,则在报文中写入内网标识。
其中,所述在报文中写入对应的目的网络标识,包括:在所述报文的预设字段中写入对应的目的网络标识。
其中,如果所述源设备为AllJoyn Control Panel中的被控设备,则通过和所述目的设备传输报文,将所述源设备的虚拟控制面板信息传输给所述目的设备,以使所述目的设备基于所述源设备的虚拟控制面板信息对所述源设备进行控制;如果所述源设备为AllJoyn Control Panel中的控制设备,则通过和所述目的设备传输报文,接收所述目的设备发送的所述目的设备的虚拟控制面板信息,以便基于所述目的设备的虚拟控制面板信息对所述目的设备进行控制。
其中,所述报文为连接请求报文、连接响应报文、数据请求报文、或者数据响应报文。
本发明还提供了一种基于AllJoyn Control Panel的传输方法,所述方法在网关侧执行的步骤包括:在接收到来自源设备的报文之后,提取所述报文中的目的网络标识;向处于所述目的网络标识对应网络中的目的设备发送所述报文。
其中,所述目的网络标识的类型包括:跨网标识和/或内网标识;所述向处 于所述目的网络标识对应网络中的目的设备发送所述报文,包括:如果所述目的网络标识为跨网标识,则表示所述目的设备处于所述源设备所在网络的外部,将所述报文向处于外部网络的所述目的设备发送;和/或,如果所述目的网络标识为内网标识,则表示所述目的设备处于所述源设备所在网络的内部,将所述报文向处于内部网络的所述目的设备发送。
其中,所述提取所述报文中的目的网络标识,包括:在所述报文的预设字段中提取目标网络标识。
其中,所述报文为连接请求报文、连接响应报文、数据请求报文、或者数据响应报文。
本发明还提供了一种基于AllJoyn Control Panel的传输装置,设置在源设备侧的所述装置包括:写入模块,用于根据目的设备所处网络,在报文中写入对应的目的网络标识;第一收发模块,用于将所述报文向网关发送,以使所述网关根据所述目的网络标识,将所述报文向所述目的设备发送。
其中,所述目的网络标识的类型包括:跨网标识和/或内网标识;所述写入模块,用于如果目的设备处于源设备所在网络的外部,则在报文中写入跨网标识;和/或,如果目的设备处于源设备所在网络的内部,则在报文中写入内网标识。
其中,所述写入模块,用于在所述报文的预设字段中写入对应的目的网络标识。
其中,所述第一收发模块,用于:如果所述源设备为AllJoyn Control Panel中的被控设备,则通过和所述目的设备传输报文,将所述源设备的虚拟控制面板信息传输给所述目的设备,以使所述目的设备基于所述源设备的虚拟控制面板信息对所述源设备进行控制;如果所述源设备为AllJoyn Control Panel中的控制设备,则通过和所述目的设备传输报文,接收所述目的设备发送的所述目的设备的虚拟控制面板信息,以便基于所述目的设备的虚拟控制面板信息对所述目的设备进行控制。
其中,所述报文为连接请求报文、连接响应报文、数据请求报文、或者数据响应报文。
本发明还提供了一种基于AllJoyn Control Panel的传输装置,设置在网关侧的所述装置包括:提取模块,用于在接收到来自源设备的报文之后,提取所述报文中的目的网络标识;第二收发模块,用于向处于所述目的网络标识对应网络中的目的设备发送所述报文。
其中,所述目的网络标识的类型包括:跨网标识和/或内网标识;所述第二收发模块,用于如果所述目的网络标识为跨网标识,则表示所述目的设备处于所述源设备所在网络的外部,将所述报文向处于外部网络的所述目的设备发送;和/或,如果所述目的网络标识为内网标识,则表示所述目的设备处于所述源设备所在网络的内部,将所述报文向处于内部网络的所述目的设备发送。
其中,所述提取模块,用于在所述报文的预设字段中提取目标网络标识。
其中,所述报文为连接请求报文、连接响应报文、数据请求报文、或者数据响应报文。
本发明有益效果如下:
本发明实施例通过在报文中增加目的网络标识,区分报文是在局域网中传输还是向外部网络传输,使AllJoyn Control Panel不仅适用于局域网中,还可以应用在跨网场景中,增加了AllJoyn Control Panel的灵活性。
附图说明
图1是根据本发明一实施例的基于AllJoyn Control Panel的传输方法的流程图;
图2是根据本发明一实施例的基于AllJoyn Control Panel的传输方法的流程图;
图3是根据本发明一实施例的连接请求报文的报文格式;
图4是根据本发明一实施例的连接响应报文的报文格式;
图5是根据本发明一实施例的数据请求报文的报文格式;
图6是根据本发明一实施例的数据响应报文的报文格式;
图7是根据本发明一实施例的基于AllJoyn Control Panel的异网远程控制时序图;
图8是根据本发明一实施例的基于AllJoyn Control Panel的异网远程控制时序图;
图9是根据本发明一实施例的基于AllJoyn Control Panel的传输装置的结构图;
图10是根据本发明一实施例的基于AllJoyn Control Panel的传输装置的结构图。
具体实施方式
本发明对报文格式进行了改进,增加了用于识别向内网发送和向外网发送的标志字段,使外网设备可以控制内网设备,实现更灵活的操作,进一步丰富用户的使用场景,从而提升用户体验。
以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
本发明实施例提供了一种在源设备侧执行的基于AllJoyn Control Panel的传输方法,图1是根据本发明一实施例的基于AllJoyn Control Panel的传输方法的流程图。本实施例在源设备侧执行。
步骤S110,根据目的设备所处网络,在报文中写入对应的目的网络标识。
步骤S120,将所述报文向网关发送,以使所述网关根据所述目的网络标识,将所述报文向所述目的设备发送。
源设备和目的设备都是支持AllJoyn框架,且能够连接到网络的设备。在本实施例中,源设备为连接到内部网络的设备,如连接到局域网的设备,目的 设备为连接到该局域网或者连接到外部网络的设备。
目标网络标识用于标识目的设备和源设备是否处于同一网络中。为了区分目的设备处于源设备所在的内部网络中或是处于外部网络中,在报文中写入对应的目的网络标识。目的网络标识的类型包括:跨网标识和/或内网标识。跨网标识表示目的设备和源设备处于不同网络,源设备处于内部网络(局域网),目的设备处于外部网络。内网标识表示目的设备和源设备处于同一网络之中,都处于内部网络中。
如果目的设备处于源设备所在网络的外部,即报文需要向外部网络发送,则在报文中写入跨网标识;和/或,如果目的设备处于源设备所在网络的内部,即报文需要向内部网络发送,则在报文中写入内网标识。进一步地,可以根据目的设备的IP地址确定目的设备处于源设备所在网络的外部或内部。
进一步地,在报文的预设字段中写入对应的目的网络标识。该预设字段可以是在现有报文中增加的新字段,例如:该新字段为远程控制(Remote Control,简称RMT)字段,通过该RMT字段标识报文是向内网发送还是向外网发送。
将生成的报文向源设备侧的网关发送,该网关根据报文中的目的网络标识来判断该报文向内部网络发送或是向外部网络发送。
本发明实施例通过在报文中增加目的网络标识,区分报文是在局域网中传输还是向外部网络传输,使AllJoyn Control Panel不仅适用于局域网中,还可以应用在跨网场景中,增加了AllJoyn Control Panel的灵活性。
本发明实施例提供了一种在网关侧执行的基于AllJoyn Control Panel的传输方法,图2是根据本发明一实施例的基于AllJoyn Control Panel的传输方法的流程图。本实施例在位于源设备侧的网关执行。
步骤S210,在接收到来自源设备的报文之后,提取报文中的目的网络标识。
步骤S220,向处于所述目的网络标识对应网络中的目的设备发送所述报文。
可以在报文的预设字段中提取目标网络标识。例如:在报文的RMT字段中提取目标网络标识。目标网络标识的类型包括:跨网标识和/或内网标识。
如果目的网络标识为跨网标识,则表示目的设备处于源设备所在网络的外部,将报文向处于外部网络的目的设备发送。即源设备在局域网内部,目的设备在外网,根据跨网标识,将报文向位于外网的目的设备发送。
如果目的网络标识为内网标识,则表示目的设备处于源设备所在网络的内部,将报文向处于内部网络的目的设备发送。即源设备和目的设备都在源设备所在的局域网内部,根据内网标识,将报文向局域网内的目的设备发送。
具体的,接收到报文之后,提取报文中的RMT字段;如果RMT字段仅用于携带跨网标识,则判断RMT字段是否携带了跨网标识;如果是,则根据报文的目的地址,将报文发送给局域网外部的目的设备;如果否,则根据报文的目的地址,将报文发送给局域网内部的目的设备。如果RMT字段仅用于携带内网标识,则判断RMT字段是否携带了内网标识;如果是,则根据报文的目的地址,将报文发送给局域网内部的目的设备;如果否,则根据报文的目的地址,将报文发送给局域网外部的目的设备。如果RMT字段既可以携带内网标识也可以携带跨网标识,则上述两种方式择其一执行即可。
针对本发明实施例中的报文,具体而言:
本发明基于AllJoyn Control Panel服务框架,在Control Panel中添加辅助层,来改变现有报文格式,增加用于携带目的网络标识的字段。辅助层用于对现有报文进行再次封装,使报文中的RMT字段变得有意义,使该RMT字段中的目的网络标识可以被网关识别。
为了实现设备控制,报文的类型包括:连接请求报文、连接响应报文、数据请求报文、数据响应报文。连接请求报文用于控制设备请求与被控设备建立连接。连接响应报文用于被控设备应答控制设备的连接请求,与控制设备建立连接。数据请求报文用于控制设备向被控设备请求数据。数据响应报文用于被控设备响应控制设备的数据请求,并将请求的数据反馈给控制设备。在后续对异网远程控制过程进行描述时,将会对报文的使用进行说明。
本实施例提出了图3~图6所示的报文格式。其中,图3是本实施例的连接 请求报文的报文格式;图4是本实施例的连接响应报文的报文格式;图5是本实施例的数据请求报文的报文格式;图6是本实施例的数据响应报文的报文格式。
根据图3~图6可知,在现有连接请求报文、连接响应报文、数据请求报文和数据响应报文中都加入了RMT字段,在RMT字段中写入目的网络标识。这样,根据报文中的RMT字段就可以区分报文是访问内网还是访问外网。
基于本实施例,在AllJoyn Control Panel服务框架下,源设备和目的设备可以实现控制和被控制的功能。如果源设备为控制设备,则目的设备为被控设备;如果源设备为被控设备,则目的设备为控制设备。
具体的,如果源设备为AllJoyn Control Panel中的被控设备,则通过和目的设备传输报文,将源设备的虚拟控制面板信息传输给目的设备,以使目的设备基于源设备的虚拟控制面板信息对源设备进行控制;如果源设备为AllJoyn Control Panel中的控制设备,则通过和目的设备传输报文,接收目的设备发送的目的设备的虚拟控制面板信息,以便基于目的设备的虚拟控制面板信息对目的设备进行控制。其中,虚拟控制面板信息包括:虚拟控件、控制参数、控制动作指令等。
基于本发明实施例,可以实现基于AllJoyn Control Panel的异网远程控制。
由于在异网远程控制中,目的网络标识都为跨网标识,网关起到将内网报文转发至外网,将外网报文转发到内网的作用,因此,在描述异网远程控制时,暂不对网关进行说明,仅对控制设备和被控设备进行描述。
下面给出一种静态的异网远程控制的实施例,来进一步地说明本发明。静态的异网远程控制是指控制设备主动调用被控设备的功能。
图7是根据本发明一实施例的基于AllJoyn Control Panel的异网远程控制时序图。
步骤1,被控设备注册远程组件对象。
被控设备注册远程组件对象就是提供被渲染的界面元素,即提供被控设备可以被控制设备控制的功能信息。
步骤2,控制设备检测是否支持Control Panel.Control Panel接口。
控制设备支持Control Panel.Control Panel接口表示控制设备支持AllJoyn Control Panel服务框架。
步骤3,在控制设备支持Control Panel.Control Panel接口的情况下,控制设备向被控设备发送连接请求报文。
该连接请求报文中的RMT=1,RST=1。
RMT字段用于写入目的网络标识。RMT=1为跨网标识;RMT=0为内网标识。RST字段用于建立连接。RST=1为请求建立连接。
步骤4,控制设备向被控设备发送验证信息。
可以在连接请求报文中携带该验证信息,或者通过在其他类型的报文中携带该验证信息,以达到将验证信息发送到被控设备的目的。
验证信息用于被控设备对控制设备进行验证,确定控制设备是否有控制被控设备的权限。验证信息可以是控制设备的设备信息。如:设备ID、设备的硬件密码等。
步骤5,在验证通过的情况下,被控设备获取和遍历虚拟控制面板的对象和端口。
被控设备根据验证信息对控制设备进行验证,在验证通过的情况下,获取和遍历虚拟控制面板的对象和端口,在验证不通过的情况下,结束流程。
具体的验证方式多种多样,在此不做赘述。
被控设备遍历虚拟控制面板的对象和端口,可以获得虚拟控制面板信息。
步骤6,被控设备向控制设备发送连接响应报文,该连接响应报文中携带被控设备的虚拟控制面板信息。
该连接响应报文中的ACK=1、RST=1、RMT=1。
ACK(Acknowledgement,确认字符)用于对请求报文进行响应,ACK=1 为应答。
被控设备的虚拟控制面板信息可以写入连接响应报文的XML文件数据中。
步骤7,控制设备基于被控设备的虚拟控制面板信息搭建被控设备的虚拟控制面板的组件树。
组件树用于显示被控设备的虚拟控制面板。
步骤8,控制设备向被控设备发送数据请求报文,通过数据请求报文调用被控设备侧Properties.GetAll(),获得当前值(Property)和组件的元数据。
该数据请求报文中的RST=1,RMT=1。
properties.GetAll()函数用于获得被控设备所有的控制函数。元数据为控制函数、当前值为控制函数的参数值。
步骤9,被控设备通过向控制设备发送数据响应报文,将元数据和当前值反馈给控制设备。该数据响应报文中的ACK=1、RST=1、RMT=1。
步骤10,控制设备根据组件树的元数据和当前值渲染被控设备的虚拟控制面板。
步骤11,用户在控制设备侧使用用户界面(User Interface,简称UI)组件改变被控设备的Property值。
当值前可以被改变。被控设备的虚拟控制面板在控制设备侧渲染完成之后,用户可以在控制设备侧使用UI组件来改变被控设备某一元数据的Property值。
步骤12,控制设备向被控设备发送数据请求报文,通过数据请求报文调用被控设备侧的Property.SetValue()函数。
该数据请求报文中的RST=1、RMT=1。
Property.SetValue()函数用于设定某一元数据对应的Property值,即在用户通过UI组件在控制设备改变Property值之后,通过调用Property.SetValue()函数实现该Property值在被控设备侧的最终改变。
步骤13,被控设备通过向控制设备发送数据响应报文,向控制设备发送信号Property.ValueChanged()。
该数据响应报文中的ACK=1、RST=1、RMT=1。
当某一元数据对应的当前值发生改变,Property.SetValue()函数将会触发Property.ValueChanged(),向控制设备发送该元数据改变后的Property值。
步骤14,用户在控制设备侧点击被控设备的虚拟控制面板,启动控制进程。
步骤15,控制设备调用Action.Exec(),对被控设备进行控制。
Action.Exec()函数用于调用被控设备的功能,调用Action.Exec()函数可以向被控设备下达控制命令。
步骤16,被控设备执行命令,实现控制设备对被控设备的异网远程控制。
下面给出一种动态的异网远程控制的实施例,来进一步地说明本发明。动态的异网远程控制是指被控设备的数据发生改变的情况下,控制设备调用被控设备的功能。
图8是根据本发明一实施例的基于AllJoyn Control Panel的异网远程控制时序图。
步骤1,被控设备注册远程组件对象。
步骤2,控制设备检测是否支持Control Panel.Control Panel接口。
步骤3,在控制设备支持Control Panel.Control Panel接口的情况下,控制设备向被控设备发送连接请求报文。该连接请求报文中的RMT=1,RST=1。
步骤4,控制设备向被控设备发送验证信息。
步骤5,在验证通过的情况下,被控设备获取和遍历虚拟控制面板的对象和端口。
步骤6,被控设备向控制设备发送连接响应报文,该连接响应报文中携带被控设备的虚拟控制面板信息。
该连接响应报文中的ACK=1、RST=1、RMT=1。
步骤7,控制设备基于被控设备的虚拟控制面板信息搭建被控设备的虚拟控制面板的组件树。
步骤8,控制设备向被控设备发送数据请求报文,通过数据请求报文调用被控设备侧Properties.GetAll(),获得当前值和组件的元数据。
该数据请求报文中的RST=1,RMT=1。
步骤9,被控设备通过向控制设备发送数据响应报文,将元数据和当前值反馈给控制设备。该数据响应报文中的ACK=1、RST=1、RMT=1。
步骤10,控制设备根据组件树的元数据和当前值渲染被控设备的虚拟控制面板。
步骤11,用户在控制设备侧使用UI组件改变被控设备的Property值。
步骤12,控制设备向被控设备发送数据请求报文,通过数据请求报文调用被控设备侧的Property.SetValue()函数。
该数据请求报文中的RST=1、RMT=1。
步骤13,被控设备通过向控制设备发送数据响应报文,向控制设备发送信号Property.ValueChanged()。
该数据响应报文中的ACK=1、RST=1、RMT=1。
步骤14,用户在控制设备侧点击被控设备的虚拟控制面板,启动控制进程。
步骤15,被控设备通过向控制设备发送数据响应报文,向控制设备发送信号Property.MetaDataChanged()。
该数据响应报文中的ACK=1、RST=1、RMT=1。
如果被控设备的某一元数据的当前值改变,则被控设备向控制设备发送Property.MetaDataChanged(),以便告知控制设备这一改变。
该步骤15即是为了实现控制设备对被控设备的动态异网远程控制。
步骤16,控制设备调用Action.Exec(),对被控设备进行控制。
步骤17,被控设备执行命令。
基于本发明实施例,可以在AllJoyn Control Panel服务框架下,随时随地的访问其他地点的设备,使得用户的操作行为更加灵活,不用局限在局域网内, 并且降低了对远程控制设备的依赖性,源设备不通过远程控制设备就可以将报文发送给目的设备,即控制设备不通过远程控制设备依然可以对被控设备进行控制,灵活且可扩展性高。
本发明提供了一种设置在源设备侧的基于AllJoyn Control Panel的传输装置,图9是根据本发明一实施例的基于AllJoyn Control Panel的传输装置的结构图。
设置在源设备侧的基于AllJoyn Control Panel的传输装置,包括:
写入模块910,用于根据目的设备所处网络,在报文中写入对应的目的网络标识。所述报文为连接请求报文、连接响应报文、数据请求报文、或者数据响应报文。
第一收发模块920,用于将所述报文向网关发送,以使所述网关根据所述目的网络标识,将所述报文向所述目的设备发送。
所述目的网络标识的类型包括:跨网标识和/或内网标识;所述写入模块910,用于如果目的设备处于源设备所在网络的外部,则在报文中写入跨网标识;和/或,如果目的设备处于源设备所在网络的内部,则在报文中写入内网标识。进一步地,所述写入模块910,用于在所述报文的预设字段中写入对应的目的网络标识。
所述第一收发模块920,用于如果所述源设备为AllJoyn Control Panel中的被控设备,则通过和所述目的设备传输报文,将所述源设备的虚拟控制面板信息传输给所述目的设备,以便所述目的设备基于所述源设备的虚拟控制面板信息对所述源设备进行控制;如果所述源设备为AllJoyn Control Panel中的控制设备,则通过和所述目的设备传输报文,接收所述目的设备发送的所述目的设备的虚拟控制面板信息,以便基于所述目的设备的虚拟控制面板信息对所述目的设备进行控制。
本实施例所述的装置的功能已经在图1、图3~图8所示的方法实施例中进行了描述,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说 明,在此不做赘述。
本发明提供了一种设置在网关侧的基于AllJoyn Control Panel的传输装置,图10是根据本发明一实施例的基于AllJoyn Control Panel的传输装置的结构图。
设置在网关侧的基于AllJoyn Control Panel的传输装置,包括:
提取模块1010,用于在接收到来自源设备的报文之后,提取所述报文中的目的网络标识。所述报文为连接请求报文、连接响应报文、数据请求报文、或者数据响应报文。
第二收发模块1020,用于向处于所述目的网络标识对应网络中的目的设备发送所述报文。
所述提取模块1010,用于在所述报文的预设字段中提取目标网络标识。
所述目的网络标识的类型包括:跨网标识和/或内网标识;所述第二收发模块1020,用于如果所述目的网络标识为跨网标识,则表示所述目的设备处于所述源设备所在网络的外部,将所述报文向处于外部网络的所述目的设备发送;和/或,如果所述目的网络标识为内网标识,则表示所述目的设备处于所述源设备所在网络的内部,将所述报文向处于内部网络的所述目的设备发送。
本实施例所述的装置的功能已经在图2~图8所示的方法实施例中进行了描述,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。