一种通过网关控制设备的方法和装置
技术领域
本发明涉及通信技术领域,特别是涉及一种通过网关控制设备的方法和装置。
背景技术
AllJoyn技术是开源技术联盟AllSeen开发的、用于物联网设备之间通信的统一框架。AllJoyn技术可以应用在智能家电中,用于智能家电的相互连接、服务发现和家电控制。为了实现对不同厂家、相同类型的智能家电进行控制,AllJoyn HAE项目对智能家电的AllJoyn服务接口进行标准化,使相同类型的智能家电的AllJoyn服务接口相同。
在基于AllJoyn技术构建的集中式控制***中,控制终端可以通过网关对网络中的所有智能家电进行集中控制。
在对智能家电进行集中控制时,智能家电上线,控制终端首先向网关查询该智能家电的AllJoyn服务接口,然后才能对智能家电进行控制。但是,现有的集中式控制***中经常包括多个相同类型的智能家电,如:在家中安装多个智能空调,每上线一个同类型智能家电,控制终端都要向网关查询一次AllJoyn服务接口,这将导致控制终端和网关执行较多的重复性工作。因此,上述集中控制方式效率较低,而且,这些重复性工作都需要用户协助完成,用户体验效果不佳。
发明内容
本发明提供一种通过网关控制设备的方法和装置,用以解决在现有集中式控制***中,每上线一个同类型智能家电,控制终端都要向网关查询一次AllJoyn服务接口,导致控制终端和网关的重复性工作较多的问题。
基于上述技术问题,本发明是通过以下技术方案来解决的。
本发明提供了一种通过网关控制设备的方法,在所述网关侧执行的步骤包括:接收待控设备发送的所述待控设备的设备信息和设备类型;获取所述设备类型对应的标准控制插件;基于所述设备信息,实例化所述标准控制插件,得到设备控制插件;将所述设备控制插件发送给控制终端,以便所述控制终端基于所述设备控制插件控制所述待控设备。
其中,获取所述设备类型对应的标准控制插件,包括:从本端或者从网络侧,获取所述设备类型对应的标准控制插件。
其中,从网络侧获取所述设备类型对应的标准控制插件,包括:从网络侧获取所述设备类型对应的设备描述文件;在所述设备描述文件中,查询所述待控设备的逻辑设备类型;从网络侧获取所述逻辑设备类型对应的标准控制插件。
其中,所述设备信息包括:所述待控设备的唯一标识信息;或者,所述设备信息包括:所述待控设备的唯一标识信息、以及所述待控设备的AllJoyn服务接口信息。
其中,如果所述设备信息不包含所述待控设备的AllJoyn服务接口信息,则在基于所述设备信息,实例化所述标准控制插件之前,所述方法还包括:获取所述待控设备的AllJoyn服务接口信息。
本发明还提供了一种通过网关控制设备的装置,位于网关侧的所述装置包括:接收模块,用于接收待控设备发送的所述待控设备的设备信息和设备类型;获取模块,用于获取所述设备类型对应的标准控制插件;实例化模块,用于基于所述设备信息,实例化所述标准控制插件,得到设备控制插件;发送模块,用于将所述设备控制插件发送给控制终端,以便所述控制终端基于所述设备控制插件控制所述待控设备。
其中,所述获取模块,用于从本端或者从网络侧,获取所述设备类型对应的标准控制插件。
其中,从网络侧获取所述设备类型对应的标准控制插件时,所述获取模块具体用于:从网络侧获取所述设备类型对应的设备描述文件;在所述设备描述文件中,查询所述待控设备的逻辑设备类型;从网络侧获取所述逻辑设备类型对应的标准控制插件。
其中,所述设备信息包括:所述待控设备的唯一标识信息;或者,所述设备信息包括:所述待控设备的唯一标识信息、以及所述待控设备的AllJoyn服务接口信息。
其中,如果所述设备信息不包含所述待控设备的AllJoyn服务接口信息,则所述实例化模块还用于:获取所述待控设备的AllJoyn服务接口信息。
本发明有益效果如下:
本发明在网关侧,根据待控设备的设备信息和设备类型,为待控设备生成对应的设备控制插件,控制终端基于该设备控制插件控制待控设备。通过本发明可以避免待控设备每次上线,控制终端都需要查询待控设备的AllJoyn服务接口,降低控制终端和网关的重复性工作,提供工作效率,提升用户体验效果。
附图说明
图1是根据本发明第一实施例的通过网关控制设备的方法的流程图;
图2是根据本发明第二实施例的通过网关控制设备的方法的流程图;
图3是根据本发明第三实施例的获取标准控制插件的步骤的流程图;
图4是根据本发明第四实施例的通过网关控制设备的装置的结构图。
具体实施方式
集中式控制***包括:网关、控制终端和待控设备。其中,待控设备的数量可以是一个或多个。例如:在家庭环境中,设置包含网关功能的路由器、智能家电、用于控制智能家电的移动终端。进一步地,网关接入物联网,以便和云平台建立通信。
本发明的主要思想在于,本发明在网关侧,根据待控设备的设备信息和设备类型,为待控设备生成对应的设备控制插件,并将设备控制插件发送给控制终端,控制终端基于该设备控制插件控制待控设备。通过本发明可以避免待控设备每次上线,控制终端都需要查询待控设备的AllJoyn服务接口,降低控制终端和网关的重复性工作,提供工作效率,提升用户体验效果。
以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
实施例一
本实施例提供一种通过网关控制设备的方法。图1为根据本发明第一实施例的通过网关控制设备的方法的流程图。
步骤S110,接收待控设备发送的该待控设备的设备信息和设备类型。
待控设备包括:智能家电。例如:智能空调、智能洗衣机等等。
设备信息包括:待控设备的唯一标识信息;或者,设备信息包括:待控设备的唯一标识信息、以及待控设备的AllJoyn服务接口信息。唯一标识信息用于区分不同的待控设备。待控设备的唯一标识信息例如是:Lighting1。AllJoyn服务接口信息包括接口名称、以及接口方法和/或接口属性。例如:接口名称为org.AllJoyn.LightingController,接口方法为开On、关Off(),接口属性为灯光颜色调节LightingColor。
设备类型为:智能家电的种类。例如:智能空调类、智能洗衣机类等等。
设备信息和设备类型可以由待控设备发送到网关。例如:待控设备在网关注册时,在注册信息中携带设备信息和设备类型。
步骤S120,获取设备类型对应的标准控制插件。
标准控制插件为标准化模型,该标准控制插件提供待控设备的功能控制信息。相同设备类型的待控设备共用一个标准控制插件,即设备类型与标准控制插件一一对应。标准控制插件包括设备信息、设备类型、功能控制命令。其中,标准控制插件中的设备信息为空。
具体的,接收到设备类型,就可以获取设备类型对应的标准控制插件;或者,先将接收到的设备类型进行缓存,通知控制终端待控设备上线,如果接收到控制终端发送的控制插件生成请求,则获取设备类型对应的标准控制插件。
从本端(网关)或者从网络侧,获取设备类型对应的标准控制插件。进一步地,判断本端是否存在与设备类型对应的标准控制插件;若是,则从本端获取设备类型对应的标准控制插件;若否,则从网络侧获取设备类型对应的标准控制插件。
若本端存在设备类型对应的标准控制插件,则表示网关已经针对与待控设备同类型的其他设备,执行过标准控制插件的获取;或者表示网关已经预先存储了多种标准控制插件。
步骤S130,基于设备信息,实例化标准控制插件,得到设备控制插件。
设备控制插件是实例化后的标准控制插件。基于待控设备的设备信息,将标准控制插件创建为具体的对象,该对象为待控设备对应的设备控制插件。
经过实例化处理,设备控制插件与待控设备相对应,设备控制插件可以对待控设备进行功能控制。
实例化标准控制插件,是将标准控制插件与待控设备进行绑定,进而创建出用于控制指定待控设备的插件。
如果设备信息不包含待控设备的AllJoyn服务接口信息,则在基于设备信息,实例化标准控制插件之前,还需要获取待控设备的AllJoyn服务接口信息。
步骤S140,将设备控制插件发送给控制终端,以便控制终端基于设备控制插件控制待控设备。
控制终端接收并加载设备控制插件。这样,在控制终端就具有了控制待控设备的功能。当需要对待控设备进行控制时,控制终端仅需将控制命令通过网关发送到待控设备,就可以实现对待控设备的控制。
需要说明的是,待控设备在发送设备信息和设备类型时,可以将设备信息和设备类型一同发送,也可以分开发送,进一步地,设备信息可以在设备类型之后发送,设备信息只要保证在实例化处理之前发送即可。
基于本实施例,网关自动生成待控设备对应的设备控制插件,控制终端基于该设备控制插件对待控设备进行控制,避免待控设备每次上线,控制终端都要查询其AllJoyn服务接口信息。
实施例二
图2为根据本发明第二实施例的通过网关控制设备的方法的流程图。
步骤S210,接收待控设备发送的注册信息,并完成设备注册;该注册信息中携带有设备信息和设备类型。
设备信息包括:待控设备的设备名称,唯一标识信息。
设备类型为标准化的设备类型。同一设备类型的描述方式相同,例如:AllJoynLighting,表示AllJoyn标准的照明设备。
待控设备首次上线,需要向网关发送注册信息,以便在网关完成注册之后,加入集中式控制***。进一步地,待控设备调用网关的RegisterControllee方法,在网关侧完成设备注册。待控设备注册完成后,在集中式控制***中上线。
步骤S220,向控制终端发送待控设备已上线的信息,并接收控制终端针对该待控设备发送的控制插件生成请求。
向控制终端发送上线信息,用于告知控制终端,在其网络环境中有新注册的待控设备,询问控制终端是否需要生成该待控设备的设备控制插件。
因为待控设备为首次上线设备,控制终端还不具备控制该待控设备的设备控制插件,因此,控制终端需要安装该设备控制插件。
本实施例还可以在控制终端侧判断是否存在仅用于控制待控设备的专用应用程序(Application,简称APP),若存在,则结束流程,不向网关发送控制插件生成请求,使用该专用APP来控制待控设备,或者,在卸载该专用APP之后向网关发送控制插件生成请求;若不存在,则向网关发送控制插件生成请求。
控制终端调用网关的GenerateControllee方法,请求网关生成该待控设备的设备控制插件。
步骤S230,在接收到控制终端发送的控制插件生成请求之后,从网络侧获取待控设备的设备类型对应的标准控制插件。
标准控制插件提供了同类型待控设备的功能控制命令。例如:照明设备的标准控制插件包括:照明设备的打开、关闭、灯光颜色调节等功能的控制命令。
步骤S240,接收网络侧返回的与该设备类型对应的标准控制插件。
步骤S250,获取待控设备的AllJoyn服务接口信息。
因为注册信息中未携带AllJoyn服务接口信息,因此,网关需要通过AllJoynIntropect接口获取方法,获取待控设备的AllJoyn服务接口信息。
本实施例只需网关在生成设备控制插件之前获取待控设备的AllJoyn服务接口信息,避免了被控终端每次上线,控制终端都要获取待控设备的AllJoyn服务接口信息。
步骤S260,根据AllJoyn服务接口信息和设备信息,实例化标准控制插件,得到设备控制插件。
实例化包括:将设备信息绑定标准控制插件中的设备信息;将AllJoyn服务接口信息中的接口方法、接口属性分别绑定到标准控制插件的相应控制命令。
根据设备类型不同,AllJoyn服务接口信息中包括接口方法和/或接口属性。例如:温度计仅有温度属性;照明设备有开方法、关方法、灯光颜色调节属性。因此,仅将AllJoyn服务接口信息中包含的接口方法、接口属性进行绑定。
例如:照明设备的唯一标识信息为Lighting1;照明设备的标准控制插件包括:照明设备名称,照明设备的打开、关闭、灯光颜色调节等功能的控制命令;照明设备的AllJoyn服务接口信息包括开方法、关方法、灯光颜色调节属性;在实例化过程中,将唯一标识信息Lighting1与照明设备名称绑定、将的打开控制命令与开方法绑定、将关闭控制命令与关方法绑定、将灯光颜色调节控制命令与灯光颜色调节属性绑定。
如果待控设备A和待控设备B的设备类型相同,且已经生成了待控设备A的设备控制插件A,在生成待控设备B的设备控制插件时,首先生成待控设备B的设备控制插件B,然后利用设备控制插件A和设备控制插件B形成一个实例化文件,也可以分别形成各自对应的实例化文件。
步骤S270,将设备控制插件发送给控制终端。
控制终端加载设备控制插件,用户在控制终端中进行操作,控制终端将操作对应的控制命令发送到网关,再由网关发送至待控设备,实现对待控设备的控制。
因为相同设备类型的设备之间AllJoyn服务接口信息相同,所以,在获取标准控制插件之前,如果在本端存在其他设备的设备控制插件、且该其他设备与待控设备的设备类型相同,则可以复制并更新该设备控制插件,将该设备控制插件中的其他设备信息更新为待控设备的设备信息,设备控制插件中的其他绑定关系不变,进而得到待控设备的设备控制插件。
实施例三
根据国际物联网标准组织OneM2M在标准文件中提出了物理设备和逻辑设备的概念,可以根据物理设备的功能,将物理设备抽象成一个或多个逻辑设备,例如:智能空调包括制冷功能和温度传感器功能,可以将智能空调抽象为制冷器和温度传感器;又如:电视机包括显示器和音响,可以将电视机抽象为显示器和音响。
因此,设备类型可以抽象出一个或多个逻辑设备类型。例如:设备类型为智能空调类,智能空调类包括两个逻辑设备类型,分别为制冷器类和温度传感器类。本实施例可以为每个逻辑设备类型配置对应的标准控制插件,进而根据标准控制插件,生成逻辑设备对应的设备控制插件,以便通过设备控制插件控制逻辑设备。
如图3所示,为根据本发明第三实施例的获取标准控制插件的步骤的流程图。
步骤S310,从网络侧获取待控设备的设备类型对应的设备描述文件。
该待控设备是指物理设备。
设备描述文件为标准化文件,相同设备类型的待控设备的设备描述文件相同。设备描述文件包括:待控设备的设备类型、待控设备的逻辑设备索引LogicDeviceIndex。逻辑设备索引包括:逻辑设备名称LogicDeviceName和逻辑设备类型LogicDeviceType等等。逻辑设备名称例如是照明设备,逻辑设备类型例如是AllJoynLighting。
步骤S320,在设备描述文件中,查询待控设备的逻辑设备类型。
步骤S330,从网络侧获取逻辑设备类型对应的标准控制插件。
标准控制插件提供该逻辑设备类型的逻辑设备的功能控制信息。该标准控制插件包含该逻辑设备的逻辑设备名称、逻辑设备控制命令,例如:控制命令1=打开/关闭,控制命令2=设置颜色。
因为,逻辑设备是物理设备的抽象,因此,在实例化逻辑设备类型对应的标准控制插件时,需要使用物理设备的设备信息,实例化标准控制插件。
实施例四
本发明提供了一种通过网关控制设备的装置,如图4所示,为根据本发明第四实施例的通过网关控制设备的装置的结构图。该装置位于网关侧。
该装置包括:
接收模块410,用于接收待控设备发送的该待控设备的设备信息和设备类型。其中,所述设备信息包括:所述待控设备的唯一标识信息;或者,所述设备信息包括:所述待控设备的唯一标识信息、以及所述待控设备的AllJoyn服务接口信息。
获取模块420,用于获取所述设备类型对应的标准控制插件。进一步地,获取模块420,用于从本端或者从网络侧,获取所述设备类型对应的标准控制插件。更进一步地,从网络侧获取所述设备类型对应的标准控制插件时,获取模块420具体用于:从网络侧获取所述设备类型对应的设备描述文件;在所述设备描述文件中,查询所述待控设备的逻辑设备类型;从网络侧获取所述逻辑设备类型对应的标准控制插件。
实例化模块430,用于基于所述设备信息,实例化所述标准控制插件,得到设备控制插件。
发送模块440,用于将所述设备控制插件发送给控制终端,以便所述控制终端基于所述设备控制插件控制所述待控设备。
在一个实施例中,如果所述设备信息不包含所述待控设备的AllJoyn服务接口信息,则实例化模块430还用于:获取所述待控设备的AllJoyn服务接口信息。
本实施例所述的装置的功能已经在图1-3所示的方法实施例中进行了描述,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。