设备调用方法、设备信息发送方法及装置
技术领域
本发明涉及物联网领域,特别是涉及一种设备调用方法、设备信息发送方法及装置。
背景技术
AllJoyn是一种基于客户端/服务端架构的设备之间点对点通信框架,其中,服务端称为Provider,客户端称为Consumer。在AllJoyn通信框架中,存在两种订阅通知模式,一种是以服务为导向的(Service-oriented),另一种是以数据为中心的(Data-centric)。
以数据为中心的服务框架中,客户端中有一个模块Observer(观察模块),来负责与服务端通信。Observer负责通信的过程中,由于服务端和客户端之间的松耦合性,造成服务端和客户端并不知道对方的任何信息。所以调用相应功能的时候,客户端不知道应该调用哪个服务端的功能,从而产生调用功能时的二义性,无法定位到一个特定的符合用户要求的服务端。
例如,当用户通过客户端启动服务端的热水器进行烧水的时候,会发出一个功能调用指令,由于热水器都提供同样的接口(interface),而Observer也只观察同样的接口,这就导致对于客户端来说,调用不同的热水器其实是没有区别的,当家中不同的地点有多个热水器,这时就不能确定,该指令是发给哪个热水器的,调用的功能可能会出现偏差,与用户的本意不符。而此时家中不同地点的热水器均能被调用,热水器调用对应的方法,同时执行相应的命令,例如,同时开始加热烧水,造成资源浪费的同时,甚至可能会因为超过电路额定功率造成停电或火灾的危险。
发明内容
本发明要解决的技术问题是提供一种设备调用方法、设备信息发送方法及装置,用以解决现有技术中调用网络内设备执行功能时,用户终端无法指定符合用户要求的设备问题。
为解决上述技术问题,一方面,本发明提供一种设备调用方法,包括:
接收功能调用指令,所述功能调用指令携带用于识别被调用设备的设备信息;
根据所述用于识别被调用设备的设备信息,选取被调用设备;
向所述选取的被调用设备发送所述功能调用指令。
进一步,选取被调用设备之后,还包括:
获取所述选取的被调用设备的状态信息,所述状态信息包括使用状态、空闲状态和故障状态;
当所述选取的被调用设备的状态为使用状态或故障状态时,不发送所述功能调用指令;
当所述选取的被调用设备的状态为空闲状态时,向所述选取的被调用设备发送所述功能调用指令。
另一方面,本发明提供一种设备信息发送方法,包括:
在设备的接口信息中加入用于唯一识别该设备的设备信息,将所述接口信息发送给用户终端。
进一步,所述将所述接口信息发送给用户终端之前,还包括:
在所述设备的接口信息中加入该设备的状态信息;所述设备的状态信息包括使用状态、空闲状态和故障状态。
进一步,当所述设备的状态发生变化时,相应的对所述设备的状态信息进行修改。
另一方面,本发明还提供一种用户终端,包括:
指令接收单元,用于接收功能调用指令,所述功能调用指令携带用于识别被调用设备的设备信息;
设备信息接收单元,用于根据所述用于识别被调用设备的设备信息,选取被调用设备;
指令发送单元,用于向所述选取的被调用设备发送所述功能调用指令。
进一步,指令发送单元,还用于获取所述选取的被调用设备的状态信息,所述状态信息包括使用状态、空闲状态和故障状态;
当所述选取的被调用设备的状态为使用状态或故障状态时,不发送所述功能调用指令;
当所述选取的被调用设备的状态为空闲状态时,向所述选取的被调用设备发送所述功能调用指令。
再一方面,本发明提供一种设备,包括:
信息发送单元,用于在设备的接口信息中加入用于唯一识别该设备的设备信息,将所述接口信息发送给用户终端。
进一步,信息发送单元,还用于在所述设备的接口信息中加入该设备的状态信息;所述设备的状态信息包括使用状态、空闲状态和故障状态。
进一步,信息发送单元,还用于当所述设备的状态发生变化时,相应的对所述设备的状态信息进行修改。
本发明有益效果如下:本发明通过接收网络内所有设备发送的设备的信息,在所有的设备的信息中选取与功能调用指令中的名称和位置相同的设备,向选取的设备发送所述功能调用指令,有效的解决了功能调用的二义性问题,避免了多个设备同时执行相同功能,节省了资源。
附图说明
图1是本发明实施例中一种设备调用方法的流程图;
图2是本发明实施例中用户终端与设备的信息交互示意图;
图3是本发明实施例中一种用户终端的结构示意图;
图4是本发明实施例中一种设备的结构示意图。
具体实施方式
为了解决现有技术中调用网络内设备执行功能时,用户终端无法指定符合用户要求的设备问题,本发明提供了一种设备调用方法、设备信息发送方法及装置,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
实施例一
本发明实施例涉及设备和用户终端两部分,设备属于服务端(Provider),用户终端属于客户端(Consumer)。其中,设备为提供具体功能的智能设备,例如为热水器、空调、加湿器等;用户终端用于发送功能调用指令,例如为手机、平板电脑等。设备通过通信网络与用户终端相连接,设备通过一些连接方式连接到通信网路中,连接方式包Wi-Fi,Bluetooth,Zigbee等。
如图1所示,本发明实施例提供一种设备调用方法,包括:
S101,接收功能调用指令;功能调用指令为用户在用户终端上输入的或者在用户终端上选择的功能调用指令,功能调用指令携带用于识别被调用设备的设备信息;被调用的设备信息为能唯一识别出被调用设备的设备信息,可以为设备名称、位置和设备编码,以及设备名称、位置和编码等两两组合或同时组合。
S102,根据所述用于识别被调用设备的设备信息选取被调用设备;即在所有的设备中,选取设备信息与所述被调用设备的设备信息相同的设备为被调用设备;具体说,接收网络内所有设备发送的各自的设备信息,将接收的设备信息和被调用设备信息进行比对,若比对结果不同,则继续进行比对,若比对结果相同,则筛选出该设备,筛选出的设备即为选取的被调用设备。当然,该步骤中的设备信息可以与S101中的设备信息一致,也可以包括S101中的设备信息。
S103,向选取的被调用设备发送所述功能调用指令。
本发明实施例通过接收网络内所有设备发送的设备的信息,在所有的设备的信息中选取与功能调用指令中的设备信息相同的设备,向选取的设备发送所述功能调用指令,有效的解决了功能调用的二义性问题,避免了多个设备同时执行相同功能,节省了资源。
如果某个设备处于一种功能不可调用的状态,用户终端强行向其发送指令,可能会导致设备损坏,或者对用户家庭用电安全产生威胁;例如若当该热水器正处于加热状态,发送过来的指令可能会导致该热水器的逻辑功能出错,严重的会损坏电器。而若当该设备已损坏,调用命令发送过来,可能会对用户用电安全产生威胁。
为了解决该问题,本发明实施例的方法还包括:
在选取被调用设备之后,向选取的被调用设备发送所述功能调用指令之前,
获取选取的被调用设备的状态信息,所述状态信息包括使用状态、空闲状态和故障状态;
当选取的被调用设备的状态为使用状态或故障状态时,不发送所述功能调用指令,显示提示信息;
当选取的被调用设备的状态为空闲状态时,则执行S103,向选取的被调用设备发送所述功能调用指令。
也就是说,故障状态表示该设备故障,无法被调用,比如设备的功能损坏;使用状态表示该设备正在被使用,无法再次被调用;空闲状态表示该设备处于空闲,可以被调用。
本步骤根据设备的状态信息,向选取的设备发送所述方法调用指令,有效的解决了这一问题,保证了用户家庭用电安全。
在S102中被调用设备的设备信息可以采用被调用设备名称和被调用设备位置的组合形式,设备的位置具体为设备在家庭中的安放位置;名称和位置的前后顺序不做限定例如,用户发出调用一楼的热水器烧水的功能调用指令,此时功能调用指令为:热水器一楼,或者一楼热水器。;如果同一楼层有多个具有相同功能的设备,还可以进一步对该设备进行顺序编号,例如功能调用指令为:一楼热水器1,一楼热水器2,等等。
被调用设备的设备信息也可以采用编码形式,例如,用户发出调用一楼的热水器烧水的功能调用指令,此时功能调用指令为:Floor1WH;如果同一楼层有多个具有相同功能的设备,还可以进一步对该设备进行顺序编号,例如功能调用指令为:Floor1WH1,Floor1WH2等等。
该步骤中编码形式优选采用正则表达式,当采用正则表达式的形式,可以有效的缩短功能调用指令的执行时间。
以下基于AllJoyn技术,用一具体实例详细描述本发明实施例方法中涉及的智能设备(以下简称设备)和用户终端(以下简称终端)之间的相互交互过程。
如图2所示,设备侧执行的动作包括:
步骤1,Topic即为接口(Interface),在设备的接口信息中加入设备信息,设备信息采用编码形式,该编码由设备地点、设备名称(Providername)、设备状态编码组成,形成一个设备地点+设备名称的编码串。
步骤2,将接口信息发送给用户终端,也就是说在总线上广播接口信息。
步骤3,若该设备处于空闲状态,接收功能调用指令并执行功能;
步骤4,将状态修改为使用状态,修改接口信息后;
步骤5,执行步骤2,在总线上广播接口信息。
终端侧执行的动作包括:
步骤1,用户发出功能调用指令,终端接收该指令,由终端(Consumer)传递给管理模块(Governor)。
步骤2,Governor端解析用户指令,找出用户想要调用相应功能的设备的位置,确定筛选条件。
步骤3,观察模块(Observer)将发现的设备信息发送给Governor,也就是说,接收了网络内所有设备发送的设备信息。
步骤4,将接收的设备信息依次和功能调用指令中设备信息进行比对,在发现的设备信息中过滤出能实现用户需要调用的功能的设备的名称、所在位置。
步骤5,Governor将筛选结果告知Observer,通知Observer调用功能,Observer向步骤4中过滤出的设备发出功能调用指令。
步骤6,Observer将发现的设备信息发送给Governor。
实施例二
如图3所示,本发明实施例是基于实施例一的同一发明构思,应用于设备侧,本发明实施例提供一种设备信息发送方法,包括:
S301,在设备的接口信息中加入用于唯一识别设备的设备信息,将所述接口信息发送给用户终端;唯一识别出设备的设备信息,可以为设备名称、位置和设备编码,以及设备名称、位置和编码等两两组合或同时组合。
S302,接收功能调用指令并执行功能。
如果某个设备处于一种功能不可调用的状态,设备接收功能调用指令执行功能,可能会导致设备损坏,或者对用户家庭用电安全产生威胁;例如,若当该热水器正处于加热状态,发送过来的指令可能会导致该热水器的逻辑功能出错,严重的会损坏电器。而若当该设备已损坏,调用命令发送过来,可能会对用户用电安全产生威胁。
为了解决该问题,本发明实施例的方法还包括:
将所述接口信息发送给用户终端,之前在设备的接口信息中加入设备的状态信息;所述设备的状态信息包括使用状态、空闲状态和故障状态。
同时,如果设备的状态发生改变时,实时更新设备的状态信息,并将更新的设备状态信息发送给用户终端,准备接收用户的下一次功能调用。
也就是说,本发明实施例的方法还包括:
当设备的状态信息发生变化时,相应的对所述设备的状态信息进行修改,即在设备的接口信息中将所述设备的状态信息修改为变化后的状态,然后将所述接口信息发送给用户终端。
所述设备信息采用设备名称和设备位置形式,或者采用编码形式,所述编码形式为正则表达式。
本发明实施例的方法,涉及的智能设备和用户终端之间的相互交互过程在实施例一中,已经详细描述,不再赘述。
本发明实施例通过将设备的信息加入接口属性中并发送给用户终端,使得用户终端在在实现功能调用时,能够发现满足用户需求的指定设备,从而有效的解决了功能调用的二义性问题,避免了多个设备同时执行相同功能,节省了资源。进一步,本发明实施例将设备的状态发送给用户终端,避免了如果某个设备处于一种功能不可调用的状态,用户终端强行调用该设备造成的设备损坏、对用户家庭用电安全产生威胁以及产生的位置问题。
实施例三
本发明实施例为实施例一对应的装置实施例,本发明实施例提供一种用户终端,包括:
指令接收单元41,用于接收功能调用指令;所述功能调用指令携带用于识别被调用设备的设备信息;
设备信息接收单元42,用于根据所述用于识别被调用设备的设备信息,选取被调用设备;具体说,在所有的设备中,选取设备信息与所述被调用设备的设备信息相同的设备为被调用设备;
指令发送单元43,用于向选取的被调用设备发送所述功能调用指令。
指令发送单元43,还用于获取选取的被调用设备的状态信息,所述状态信息包括使用状态、空闲状态和故障状态;
当选取的被调用设备的状态为使用状态或故障状态时,不发送所述功能调用指令,显示提示信息;
当选取的被调用设备的状态为空闲状态时,则继续向选取的被调用设备发送所述功能调用指令。
所述设备信息采用设备名称和设备位置形式,或者采用编码形式,所述编码形式为正则表达式。
本发明实施例具体设置参阅实施例一,本发明实施例具备实施例一相同的技术效果,不再赘述。
实施例四
本发明实施例为实施例二对应的装置实施例,本发明实施例提供一种设备,包括:
信息发送单元51,在设备的接口信息中加入用于唯一识别该设备的设备信息,将所述接口信息发送给用户终端。
功能调用单元52,用于接收功能调用指令并执行功能。
信息发送单元,还用于在设备的接口信息中加入设备的状态信息;所述设备的状态信息包括使用状态、空闲状态和故障状态。
信息发送单元,进一步,还用于当设备的状态信息发生变化时,相应的对所述设备的状态信息进行修改。
具体的,若所述设备正在执行功能,修改设备的接口信息,将设备的状态修改为使用状态;
若所述设备故障,修改设备的接口信息,将设备的状态修改为故障状态;
若所述设备处于空闲,修改设备的接口信息,将设备的状态修改为空闲状态;
所述设备信息采用设备名称和设备位置形式,或者采用编码形式,所述编码形式为正则表达式。
本发明实施例具体设置参阅实施例二,本发明实施例具备实施例二的技术效果,不再赘述。
尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。