一种事件触发方法及装置
技术领域
本发明涉及移动通讯领域,特别是涉及一种事件触发的方法及装置。
背景技术
Alljoyn(All to join in the fun)是一种基于C/S(Client/Server,客户机/服务器)架构的设备之间点对点通信框架,Alljoyn由Bus Daemon和终端节点组成,BusDaemon负责终端节点之间的消息路由,服务发现等功能。终端节点是指基于Alljoyn的应用程序,应用程序启动后需要连接到Bus Daemon上,终端节点如果需要提供服务,则向BusDaemon注册一个服务名称,注册得到的服务名称由Bus Daemon广播出去。如果Alljoyn作为客户端,其可以通过服务名称来查找服务,并通过远程调用或信号来完成指定功能。
Alljoyn支持Event-Action即事件-操作模型,即由事件signal(事件触发信号)和Action(操作)配对,当事件发生时,设备执行指定的Action,这样的配对为一条rule,所有rule的集合构成rule engine(规则引擎),然而,目前,Alljoyn中只支持一个事件对应到一个Action,例如,关闭电视的事件对应设置门锁安防级别最高的操作;关闭客厅灯的事件对应打开卧室灯的操作;关闭客厅窗帘的事件对应关闭卧室窗帘的操作。暂不支持多个事件累积发生后才触发多个Action的操作,基于此,在智能家电的应用过程中,如果用户在晚上关闭电视、客厅灯、客厅窗帘准备睡觉的时候,则门锁会自动被设置为最高级别、同时,卧室的灯打开以及卧室窗帘关闭。然而,如果用户只是关闭电视,而并非准备睡觉时,并不是要求门锁提高安防级别,或者只是关闭客厅灯,也不意味着要卧室的灯打开,基于此,可见,目前现有的一个事件触发一个操作的方案并不能满足用户希望在指定情况触发设备执行相应操作的需求,影响用户体验。
发明内容
本发明提供一种事件触发方法及装置,用以解决目前设备间的交互方案无法实现通过多个事件来触发设备执行操作的问题。
根据本发明的一个方面,提供了一种事件触发方法,包括:当网关检测到有事件被触发时,获取事件所属的预先设置的事件组合中各事件的状态;当各事件的状态表明事件组合中的各事件均被触发时,触发预先设置的与事件组合对应的操作组合中的操作。
进一步的,上述方法还包括:在获取事件所属的预先设置的事件组合中各事件的状态之前,在接收用户上传的事件组合后,为事件组合中的每一个事件生成一个标识,将属于同一事件组合的事件的标识广播至事件组合内的各事件对应的设备,以使各设备获知与自身对应的事件所属的事件组合中各事件的标识。
其中,当网关检测到有事件被触发时,获取事件所属的预先设置的事件组合中各事件的状态,包括:在接收到通知触发事件的信号后,在预设时间段内广播信号至网关保存的所有事件组合中各事件对应的设备,信号中携带事件的标识,以使设备在根据信号中的标识判断自身所对应的事件中存在与事件属于同一事件组合的情况下,向网关反馈与事件属于同一事件组合的事件的状态;接收设备反馈的事件状态。
其中,当网关检测到有事件被触发时,获取事件所属的预先设置的事件组合中各事件的状态,包括:在接收到通知触发事件的信号后,根据信号中携带的标识确定与事件属于同一事件组合的各事件,对事件所属的事件组合中的各事件对应的设备进行轮询,获取各事件的状态,在获取事件组合中存在未被触发的事件的情况下,停止轮询。
其中,网关为Alljoyn网关,事件组合中的事件为网关获取到的Alljoyn局域网内的设备改变运行状态的事件,操作为网关控制Alljoyn局域网内的设备执行的操作。
进一步的,上述方法还包括:在获取事件所属的预先设置的事件组合中各事件的状态之前,接收用户上传的事件组合以及操作组合;根据用户设置的各事件组合与操作组合的对应关系保存事件组合以及操作组合。
根据本发明的另一个方面,提供了一种事件触发装置,包括:获取模块,用于当网关检测到有事件被触发时,获取事件所属的预先设置的事件组合中各事件的状态;触发模块,用于当各事件的状态表明事件组合中的各事件均被触发时,触发预先设置的与事件组合对应的操作组合中的操作。
进一步的,上述装置还包括:生成模块,用于在获取事件所属的预先设置的事件组合中各事件的状态之前,在接收用户上传的事件组合后,为事件组合中的每一个事件生成一个标识;广播模块,用于将属于同一事件组合的事件的标识广播至事件组合内的各事件对应的设备,以使各设备获知与自身对应的事件所属的事件组合中各事件的标识。
其中,上述获取模块用于:在接收到通知触发事件的信号后,在预设时间段内广播信号至网关保存的所有事件组合中各事件对应的设备,信号中携带事件的标识,以使设备在根据信号中的标识判断自身所对应的事件中存在与事件属于同一事件组合的情况下,向网关反馈与事件属于同一事件组合的事件的状态;接收设备反馈的事件状态。
其中,上述获取模块用于:在接收到通知触发事件的信号后,根据信号中携带的标识确定与事件属于同一事件组合的各事件,对事件所属的事件组合中的各事件对应的设备进行轮询,获取各事件的状态,在获取事件组合中存在未被触发的事件的情况下,停止轮询。
其中,上述网关为Alljoyn网关,事件组合中的事件为网关获取到的Alljoyn局域网内的设备改变运行状态的事件,操作为网关控制Alljoyn局域网内的设备执行的操作。
进一步的,上述装置还包括:
在获取事件所属的预先设置的事件组合中各事件的状态之前,接收用户上传的事件组合以及操作组合;
根据用户设置的各事件组合与操作组合的对应关系保存事件组合以及操作组合。
本发明有益效果如下:
本发明实施例的方案,当网关检测出有事件被触发时,获取事件所属的预先设置的事件组合中各事件的状态;当各事件的状态表明事件组合中的各事件均被触发时,控制与所述网关关联的设备执行设置的与事件组合对应的操作组合中的操作,实现了基于一个事件组合可以触发网关控制的关联设备执行预先设置的操作组合中的操作的目的。
附图说明
图1是本发明实施例1的事件触发方法的流程图;
图2是本发明实施例2中网关提供事件组合创建接口、操作组合创建接口以及组合配对接口的示意图;
图3为用户基于事件组合创建接口创建事件组合后的示意图;
图4为用户基于操作组合创建接口创建操作组合后的示意图;
图5是本发明实施例的事件触发方法的实施原理图;
图6是本发明实施例的事件触发装置的结构框图。
具体实施方式
为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。
实施例1
本实施例中的网关可以为Alljoyn网关,其中所涉及的事件为网关获取到的Alljoyn局域网内的设备改变运行状态的事件,操作为网关控制Alljoyn局域网内的设备执行的操作。
图1是本发明实施例1的事件触发方法的流程图,如图1所示,该方法包括如下步骤:
步骤101:当网关检测到有事件被触发时,获取该事件所属的预先设置的事件组合中各事件的状态;
在该步骤101中,事件的状态具体可以包括:被触发以及未被触发两种状态,可以采用以下两种方式来获取事件所属的预先设置的事件组合中各事件的状态:
方式一:在接收用户上传的事件组合后,分别为事件组合中的每一个事件生成一个标识,将属于同一事件组合的事件的标识广播至事件组合内的各事件对应的设备,以使各设备获知与自身对应的事件所属的事件组合中各事件的标识,在网关接收到通知触发事件的信号后,在预设时间段内广播该信号至所有事件组合中各事件对应的设备,该信号中携带有触发事件的标识;各设备接收到信号后,根据信号中携带的标识判断自身对应的事件是否与触发事件属于同一事件组合,如果是,则向网关反馈与触发事件属于同一事件组合的事件的状态;网关接收触发事件所属的事件组合内各事件对应的设备反馈的事件状态。
方式二:
在接收到通知触发事件的信号后,根据信号中携带的标识确定与触发事件属于同一组合的各事件,网关对触发事件所属事件组合中的各事件对应的设备进行轮询,获取各设备的状态,在各事件组合中一旦有未被触发的事件的情况下,停止轮询。
步骤102:当各设备的状态表明事件组合中的各事件均被触发时,控制与网关关联的设备执行预先设置的与事件组合对应的操作组合中的操作。
需要说明的是,本实施例中的事件组合以及操作组合中的对象可以为一个,即,上述方法可以包括一个事件触发多个操作,或多个事件触发一个操作的情况。
在该步骤中与网关关联的设备具体可以为与网关相连的受控设备。
在上述步骤101以及步骤102的基础上,本实施例提供的方法还包括在事件触发流程中的任何时间点用户通过网关设置事件组合以及操作组合匹配关系的步骤,具体如下所述:接收用户上传的事件组合以及操作组合;
根据用户设置的各事件组合与操作组合的对应关系保存事件组合以及操作组合。
本实施例的事件触发方法具体可以应用于智能家电的控制过程中,基于此,事件触发具体可以是指连接于同一局域网内的各家电设备运行状态的改变,操作则可以为网关控制家电设备执行的各操作。
实施例2
图2是本发明实施例2中网关提供事件组合创建接口、操作组合创建接口以及组合配对接口的示意图,被控设备的控制终端调用网关提供的事件组合创建接口,设置事件组合,网关根据事件组创建接口调用消息,生成包括多个事件(也可以为一个事件)的事件组合。图3为用户基于事件组合创建接口创建事件组合后的示意图,如图3所示,事件组合包含事件-A、事件-B、事件-C,事件发生与操作触发的判断规则:A.occurred(事件A发生)&B.occurred(事件B发生)&C.occurred(事件C发生)=True;此时,EventsTrigger(事件触发)=True,A.occurred&B.occurred&C.occurred=False,此时,EventsTrigger=False。
控制终端调用网关提供的操作组合创建接口,网关根据操作组合创建接口调用消息生成包括多个操作(也可以为一个操作)的操作操组合。图4为用户基于操作组合创建接口创建操作组合后的示意图。操作触发组合包含:Action-D、Action-E、Action-F,call与ActionDone的判断规则:D.call&E.call&F.call=True,此时,ActionDone=True,D.call&E.call&F.call=False此时,ActionDone=False,组配对接口创建一个Map<EventGroupId(事件标识),ActionGroupId(操作标识)>,实现事件组合和操作组合的配对。
控制终端调用网关提供的事件与操作的组合配的接口对事件组合和操作组合进行配对组合。
当事件-A发生时,网关根据GroupId(2468)即,事件-A的标识,在计时器的计时时间内,网关对事件-A组内其他成员对应的设备进行轮询,查看其他组成员的状态(例如,智能家电设备中的灯开、灯关的状态信息),综合组内所有成员的状态,以判断是否触发操作组合中的操作;当事件组中的所有事件全部发生时,网关调用对应的操作组,依次控制与网关关联的设备执行操作组合中的所有操作。具体地,网关先询问事件-B对应的设备,当事件-B对应的设备给出状态是未发生,即未触发时,网关不再去询问事件-C对应的设备,直接对事件组合做出判断,即不触发操作组合中的各操作;当设备反馈的事件-B给出状态是已发生时,网关继续询问组内成员事件-C对应的设备,当事件-C对应的设备反馈的事件-C的状态是发生时,则触发该事件组合对应的操作组合内的各操作,当反馈的状态是不发生时,则不触发操作组合内的各操作。
实施例3
本实施例提供一种事件触发方法,该方法与上述实施例2的区别在于,获取事件所述的预先设置的事件组合中各事件的状态的方式不同,上述实施例2是网关直接轮询事件组合来获知各事件的状态,该实施例则是将触发事件的信号广播至各事件组合,由各事件来向网关上报状态的方式来执行。
图5是本发明实施例的事件触发方法的实施原理图,如图5所示,该方法包括如下处理:
被控设备的控制终端调用网关提供的事件组合创建接口,设置事件组合,网关根据事件组创建接口调用消息,生成包括多个事件(也可以为一个事件)的事件组合。
控制终端调用网关提供的操作操作组合创建接口,网关根据操作组合创建接口调用消息生成包括多个操作(也可以为一个操作)的操作组合。
控制终端调用网关提供的事件与操作的组合配的接口对事件组合和操作组合进行配对组合。
当一个事件组内,某一个事件发生时,事件触发信号即被广播,各事件组合内成员收到广播后,根据触发事件的标识GroupId(2468)判断自身是否属于触发事件所属的事件组合,如果是,则在定时器的定时时间,告知网关自身的状态,然后网关根据触发事件所属的事件组合内的所有成员的状态,判断是否触发操作组合中的各操作。
当事件组合中的所有事件全部发生时,网关调用对应的操作组合,依次执行操作组合中的所有操作。
实施例4
本发明实施例提供一种事件触发装置,本实施例的网关为Alljoyn网关,其中所涉及的事件为网关获取到的Alljoyn局域网内的设备改变运行状态的事件,操作为网关控制Alljoyn局域网内的设备执行的操作,事件触发装置具体可以设置于网关中,图6是本发明实施例的事件触发装置的结构框图,如图6所示,该装置60包括以下组成部分:
获取模块61,用于当网关检测到有事件被触发时,获取事件所属的预先设置的事件组合中各事件的状态;
触发模块62,用于当各事件的状态表明事件组合中的各事件均被触发时,触发预先设置的与事件组合对应的操作组合中的操作。
进一步的,上述装置60还包括:生成模块,用于在获取事件所属的预先设置的事件组合中各事件的状态之前,在接收用户上传的事件组合后,为事件组合中的每一个事件生成一个标识;广播模块,用于将属于同一事件组合的事件的标识广播至事件组合内的各事件对应的设备,以使各设备获知与自身对应的事件所属的事件组合中各事件的标识。
其中,上述获取模块61用于:在接收到通知触发事件的信号后,在预设时间段内广播信号至网关保存的所有事件组合中各事件对应的设备,信号中携带事件的标识,以使设备在根据信号中的标识判断自身所对应的事件中存在与事件属于同一事件组合的情况下,向网关反馈与事件属于同一事件组合的事件的状态;接收设备反馈的事件状态。
其中,上述获取模块61用于:在接收到通知触发事件的信号后,根据信号中携带的标识确定与事件属于同一事件组合的各事件,对事件所属的事件组合中的各事件对应的设备进行轮询,获取各事件的状态,在获取事件组合中存在未被触发的事件的情况下,停止轮询。
其中,上述网关为Alljoyn网关,事件组合中的事件为网关获取到的Alljoyn局域网内的设备改变运行状态的事件,操作为网关控制Alljoyn局域网内的设备执行的操作。
进一步的,上述装置60还包括:在获取事件所属的预先设置的事件组合中各事件的状态之前,接收用户上传的事件组合以及操作组合;根据用户设置的各事件组合与操作组合的对应关系保存事件组合以及操作组合。
尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。