一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于组合围栏的控制方法、装置、电子设备和服务器与流程

2022-12-09 22:45:11 来源:中国专利 TAG:
1.本技术涉及人工智能(artificialintelligence,ai)
技术领域
:,尤其涉及一种基于组合围栏的控制方法、装置、电子设备和服务器。
背景技术
::2.电子设备中通常可以进行如打开/关闭应用程序、连接/断开wi-fi、息屏/亮屏、进入/离开某个指定的地理区域、计时等事件的检测判断。电子设备在接收到应用程序等对如连接wi-fi等目标事件的注册需求后,会在确定目标事件发生后通知注册目标事件的应用程序,以使得应用程序可以执行预设的目标事件发生后其需执行的操作。相关技术中为实现目标事件的检测,需要开发人员自行编程实现目标事件检测的逻辑。但随着技术的不断发展以及用户需求的不断提高,目标事件的复杂程度越来越大,当前没有便捷的实现方法。技术实现要素:3.有鉴于此,提出了一种基于组合围栏的控制方法、装置、电子设备和服务器。4.第一方面,本技术的实施例提供了一种基于组合围栏的控制方法,所述方法包括:5.接收输入的用于注册组合围栏的第一请求,所述第一请求用于指示所述组合围栏的围栏信息,所述围栏信息包括逻辑连接符、多个原子围栏和所述组合围栏中的连接关系;6.根据所述围栏信息创建对应的抽象语法树,所述抽象语法树包括多个节点,所述多个节点包括对应于所述逻辑连接符的逻辑节点和对应于每个所述原子围栏的围栏节点;7.根据所述抽象语法树创建所述组合围栏。8.通过第一方面所提供的方法,用户和开发人员仅需通过输入第一请求就可以实现组合围栏的注册,尤其对开发人员而言其不再需要通过复杂的编程来实现组合围栏的开发,可以简化用户或开发人员注册组合围栏所需执行的操作,提高组合围栏的注册、开发速度和效率,更能实现复杂组合围栏的注册、开发,提高了开发生产力。9.在一种可能的实现方式中,根据确定的对应于所述组合围栏的触发模式标记所述抽象语法树;其中,所述围栏信息还包括触发模式。使得在后续进行针对组合围栏的触发检测过程中基于触发模式确定出组合围栏中的原子围栏被触发后进行触发状态变化记录的记录方式。10.在一种可能的实现方式中,所述第一请求指示的所述围栏信息为应用程序接口api的输入参数。这样,开发人员仅通过输入应用程序接口api的输入参数即可以完成组合围栏的开发,降低了开发难度,简化了开发的过程,提高了开发生产力。11.在一种可能的实现方式中,所述第一请求包括文本、音频、视频和图像中的任意一种,所述方法还包括以下任意一项操作:12.若所述第一请求为文本,则对所述文本进行语义分析,并根据语义分析的结果确定出所述组合围栏的围栏信息;13.若所述第一请求为音频或视频,则对所述音频或所述视频依次进行语音识别、语义分析,并根据识别以及分析的结果确定出所述组合围栏的围栏信息;14.若所述第一请求为图像,则对所述图像依次进行文字识别、语义分析,并根据识别以及分析的结果确定出所述组合围栏的围栏信息。15.在一种可能的实现方式中,基于接收到的界面展示请求,展示用于输入所述第一请求的输入界面,所述输入界面中显示有用于输入所述围栏信息的输入组件。16.这样,用户仅简单的通过输入组件输入第一请求即可以实现组合围栏的设定,且第一请求的输入方式简单,降低了用户设定组合围栏难度,简化了用户设定组合围栏的输入,提高了用户设定组合围栏的效率。17.在一种可能的实现方式中,基于接收到的第二请求,展示组合围栏示意界面,所述组合围栏示意界面中包括以下至少一种:逻辑连接符的符号、逻辑连接符的作用、所支持的原子围栏的符号、所支持的原子围栏的用途、组合围栏示例、可选触发模式和可选重复次数。18.这样,展示预先定义的原子围栏、逻辑连接符、触发模式的符号,以使得开发人员可以直接基于原子围栏的符号、逻辑连接符的符号进行组合围栏的输入,进一步简化了为输入第一请求的过程。19.在一种可能的实现方式中,所述逻辑连接符包括然后、且、或、在前和括号中的至少一个,所述逻辑节点的类型包括然后类型、且类型、或类型、在前类型中的至少一个;20.其中,若确定所述然后类型的逻辑节点的两个子节点中的先注册的左节点被触发后注册的右节点也被触发,则确定所述然后类型的逻辑节点被触发;或者21.若确定所述且类型的逻辑节点的两个子节点中左节点和右节点均被触发,则确定所述且类型的逻辑节点被触发;或者22.若确定所述或类型的逻辑节点的两个子节点中的任意一个子节点被触发,则确定所述或类型的逻辑节点被触发;或者23.若确定所述在前类型的逻辑节点的两个子节点中的左节点被触发时右节点未被触发,则确定所述在前类型的逻辑节点被触发。24.在一种可能的实现方式中,根据所述抽象语法树创建所述组合围栏,包括:25.根据与每个所述围栏节点存在连接关系的逻辑节点的类型,从所述多个围栏节点中确定出触发源节点;26.注册所述组合围栏中与所述触发源节点对应的原子围栏,以及激活所述抽象语法树。27.在一种可能的实现方式中,所述触发源节点包括所述多个围栏节点中满足以下任意一种条件的围栏节点:28.与所述围栏节点存在连接关系的每个逻辑节点的类型为且类型、或类型、在前类型中的任意一个;29.与所述围栏节点存在连接关系的所有逻辑节点中包括然后类型的逻辑节点、且所述围栏节点属于每个所述然后类型的逻辑节点的左节点。30.在一种可能的实现方式中,所述方法还包括:31.若检测到任意一个已经注册的原子围栏被触发,则根据所述抽象语法树标记的触发模式、与所述被触发原子围栏对应的被触发围栏节点存在连接关系的逻辑节点的类型,更新所述抽象语法树的触发记录;32.其中,所述触发记录包括对应于每个的逻辑节点的记录。33.在一种可能的实现方式中,所述触发模式包括以下任意一种:并行触发、串行触发和抢占式触发。不同的触发模式可以满足不同应用场景下的组合围栏注册需求。34.在一种可能的实现方式中,所述根据所述抽象语法树标记的触发模式、与所述被触发原子围栏对应的被触发围栏节点存在连接关系的逻辑节点的类型,更新所述抽象语法树的触发记录,包括以下至少一项操作:35.若根据与所述被触发围栏节点存在连接关系的逻辑节点的类型和所述触发模式,确定所述被触发围栏节点需要记录,则在所述触发记录中新增与所述被触发围栏节点存在连接关系的逻辑节点的子节点被触发的记录;36.若根据与所述被触发围栏节点存在连接关系的逻辑节点的类型和所述被触发原子围栏,确定与所述被触发围栏节点存在连接关系的逻辑节点处于无法成功触发的状态,则注销无法成功触发的逻辑节点。37.在一种可能的实现方式中,在所述与所述被触发围栏节点存在连接关系的第一逻辑节点的类型为然后类型时,所述若根据与所述被触发围栏节点存在连接关系的逻辑节点的类型和所述触发模式,确定所述被触发围栏节点需要记录,则在所述触发记录中新增与所述被触发围栏节点存在连接关系的逻辑节点的子节点被触发的记录,包括以下至少一项操作:38.若所述触发模式为并行触发且上报的被触发节点为所述第一逻辑节点的左节点,则在所述触发记录中新增所述第一逻辑节点的左节点被触发的记录,以及激活所述第一逻辑节点的右节点;39.若所述触发模式为并行触发、上报的被触发节点为所述第一逻辑节点的右节点且所述触发记录中记录有对应所述第一逻辑节点的左节点被触发的记录,则确定所述第一逻辑节点被触发并在所述触发记录中新增所述第一逻辑节点的右节点被触发的记录;40.若所述触发模式为串行触发、上报的被触发节点为所述第一逻辑节点的左节点且所述第一逻辑节点被标记为可记录状态,则确定所述第一逻辑节点未被触发,并在所述触发记录中新增所述第一逻辑节点的左节点被触发的记录、以及激活所述第一逻辑节点的右节点;41.若所述触发模式为串行触发、上报的被触发节点为所述第一逻辑节点的右节点且所述第一逻辑节点被标记为等待状态,则确定所述第一逻辑节点被触发,并在所述触发记录中新增所述第一逻辑节点的右节点被触发的记录;42.若所述触发模式为抢占式触发且上报的被触发节点为所述第一逻辑节点的左节点,则确定所述第一逻辑节点并未被触发,并在所述触发记录中新增所述第一逻辑节点的左节点被触发的记录,以及激活所述第一逻辑节点的右节点;43.若所述触发模式为抢占式触发、上报的被触发节点为所述第一逻辑节点的右节点且所述触发记录中记录有所述第一逻辑节点的左节点被触发的记录,则确定所述第一逻辑节点被触发,并在所述触发记录中新增所述第一逻辑节点的右节点被触发的记录;44.若所述第一逻辑节点被触发、且所述第一逻辑节点并非所述抽象语法树的根节点,则向所述第一逻辑节点的父节点上报所述第一逻辑节点被触发;45.其中,所述被触发节点包括:所述被触发围栏节点、或者因所述被触发围栏节点的触发而被触发的逻辑节点。46.在一种可能的实现方式中,在所述与所述被触发围栏节点存在连接关系的第二逻辑节点的类型为且类型时,所述若根据与所述被触发围栏节点存在连接关系的逻辑节点的类型和所述触发模式,确定所述被触发围栏节点需要记录,则在所述触发记录中新增与所述被触发围栏节点存在连接关系的逻辑节点的子节点被触发的记录,包括以下至少一项操作:47.若所述触发模式为并行触发、上报的被触发节点为所述第二逻辑节点的一个子节点、且所述触发记录中记录有所述第二逻辑节点的另一个子节点被触发的记录,则确定所述第二逻辑节点被触发,并在所述触发记录中新增所述第二逻辑节点的一个子节点被触发的记录;48.若所述触发模式为并行触发、上报的被触发节点为所述第二逻辑节点的一个子节点、且所述触发记录中并未记录有所述第二逻辑节点的另一个子节点被触发的记录,则确定所述第二逻辑节点未被触发,并在所述触发记录中新增所述第二逻辑节点的一个子节点被触发的记录;49.若所述触发模式为串行触发、上报的被触发节点为所述第二逻辑节点的一个子节点、所述第二逻辑节点被标记为等待状态且所述触发记录中记录有所述第二逻辑节点的另一个子节点被触发的记录,则确定所述第二逻辑节点被触发,并在所述触发记录中新增所述第二逻辑节点的一个子节点被触发的记录;50.若所述触发模式为串行触发、上报的被触发节点为所述第二逻辑节点的一个子节点且所述第二逻辑节点被标记为可记录状态,则确定所述第二逻辑节点并未被触发,并在所述触发记录中新增所述第二逻辑节点的一个子节点被触发的记录;51.若所述触发模式为抢占式触发、上报的被触发节点为所述第二逻辑节点的一个子节点、且所述触发记录中记录有所述第二逻辑节点的另一个子节点被触发的记录,则确定所述第二逻辑节点被触发,并在所述触发记录中新增所述第二逻辑节点的一个子节点被触发的记录;52.若所述触发模式为抢占式触发、上报的被触发节点为所述第二逻辑节点的一个子节点、且所述触发记录中并未记录有所述第二逻辑节点的另一个子节点被触发的记录,则确定所述第二逻辑节点并未被触发,并将所述触发记录中记录的所述第二逻辑节点的一个子节点被触发的历史记录替换为所述第二逻辑节点的一个子节点本次被触发的记录;53.若所述第二逻辑节点被触发、且所述第二逻辑节点并非所述抽象语法树的根节点,则向所述第二逻辑节点的父节点上报所述第二逻辑节点被触发;54.其中,所述被触发节点包括:所述被触发围栏节点、或者因所述被触发围栏节点的触发而被触发的逻辑节点。55.在一种可能的实现方式中,在所述与所述被触发围栏节点存在连接关系的第三逻辑节点的类型为在前类型时,所述若根据与所述被触发围栏节点存在连接关系的逻辑节点的类型和所述触发模式,确定所述被触发围栏节点需要记录,则在所述触发记录中新增与所述被触发围栏节点存在连接关系的逻辑节点的子节点被触发的记录,包括以下至少一项操作:56.若所述触发模式为并行触发、上报的被触发节点为所述第三逻辑节点的左节点且所述触发记录中并未记录所述第三逻辑节点的右节点被触发的记录,则确定所述第三逻辑节点被触发,并在所述触发记录中新增所述第三逻辑节点的左节点被触发的记录;57.若所述触发模式为并行触发且上报的被触发节点为所述第三逻辑节点的右节点,则确定所述第三逻辑节点无法成功触发,注销所述第三逻辑节点,并在所述触发记录中新增所述第三逻辑节点被注销的记录;58.若所述触发模式为串行触发、上报的被触发节点为所述第三逻辑节点的左节点、所述第三逻辑节点被标记为可记录状态且所述触发记录中并未记录所述第三逻辑节点的右节点被触发的记录,则确定所述第三逻辑节点被触发,并在所述触发记录中新增所述第三逻辑节点的左节点被触发的记录;59.若所述触发模式为串行触发且上报的被触发节点为所述第三逻辑节点的右节点,则确定所述第三逻辑节点无法成功触发,注销所述第三逻辑节点,并在所述触发记录中新增所述第三逻辑节点被注销的记录;60.若所述触发模式为抢占式触发、上报的被触发节点为所述第三逻辑节点的左节点且所述触发记录中并未记录所述第三逻辑节点的右节点被触发的记录,则确定所述第三逻辑节点被触发,并在所述触发记录中新增所述第三逻辑节点的左节点被触发的记录;61.若所述触发模式为抢占式触发、上报的被触发节点为所述第三逻辑节点的右节点,则确定所述第三逻辑节点无法成功触发,注销所述第三逻辑节点,并在所述触发记录中新增所述第三逻辑节点被注销的记录;62.若所述第三逻辑节点被触发、且所述第三逻辑节点并非所述抽象语法树的根节点,则向所述第三逻辑节点的父节点上报所述第三逻辑节点被触发;63.其中,所述被触发节点包括:所述被触发围栏节点、或者因所述被触发围栏节点的触发而被触发的逻辑节点。64.在一种可能的实现方式中,在所述与所述被触发围栏节点存在连接关系的第四逻辑节点的类型为或类型时,所述若根据与所述被触发围栏节点存在连接关系的逻辑节点的类型和所述触发模式,确定所述被触发围栏节点需要记录,则在所述触发记录中新增与所述被触发围栏节点存在连接关系的逻辑节点的子节点被触发的记录,包括以下至少一项操作:65.若所述触发模式为并行触发或抢占式触发、且上报的被触发节点为所述第四逻辑节点的子节点,则确定所述第四逻辑节点被触发,并在所述触发记录中新增所述第四逻辑节点的所述子节点被触发的记录;66.若所述触发模式为串行触发、上报的被触发节点为所述第四逻辑节点的子节点且所述第四逻辑节点被标记为可记录状态,则确定所述第四逻辑节点被触发,并在所述触发记录中新增所述第四逻辑节点的所述子节点被触发的记录;67.若所述第四逻辑节点被触发、且所述第四逻辑节点并非所述抽象语法树的根节点,则向所述第四逻辑节点的父节点上报所述第四逻辑节点被触发;68.其中,所述被触发节点包括:所述被触发围栏节点、或者因所述被触发围栏节点的触发而被触发的逻辑节点。69.在一种可能的实现方式中,所述方法还包括:70.根据所述组合围栏的是否可重复,为所述抽象语法树添加可重复标记或一次性标记。这样,可以便于基于可重复标记或一次性标记确定抽象语法树是否可重复。71.在一种可能的实现方式中,若所述围栏信息中包括用于指示所述组合围栏是否可重复的围栏性质信息,则根据所述围栏性质信息确定所述组合围栏是否可重复;或者72.若所述围栏信息中无所述围栏性质信息,则根据所述围栏节点中每个围栏节点所对应的原子围栏是否可重复以及每个逻辑节点的是否可重复,确定出所述组合围栏是否可重复。73.在一种可能的实现方式中,若确定所述抽象语法树的根节点被触发,则确定所述抽象语法树对应的组合围栏被触发。74.在一种可能的实现方式中,若确定所述组合围栏被触发、对应的所述抽象语法树携带有可重复标记、且所述触发模式为抢占式触发或串行触发,则注销所述抽象语法树中非触发源节点所对应的原子围栏、以及清空或标记当前所记录的触发记录,并继续进行针对所述抽象语法树的触发检测;或者75.若确定所述组合围栏被触发、对应的所述抽象语法树携带有可重复标记、且所述触发模式为并行触发,则继续进行针对所述抽象语法树的触发检测;或者76.若确定所述组合围栏被触发、对应的所述抽象语法树携带有一次性标记,则进行针对所述组合围栏的注销和信息删除;77.其中,所述针对所述组合围栏的注销和信息删除,包括以下至少一项操作:注销对应于所述组合围栏的已经注册的所有原子围栏,删除抽象语法树,删除对应于所述组合围栏的抽象语法树的触发记录。78.在一种可能的实现方式中,所述方法还包括:79.若确定被注销的逻辑节点使得所述抽象语法树无法被成功触发、无法被成功触发的所述抽象语法树携带有可重复标记、且所述触发模式为抢占式触发或串行触发,则注销所述抽象语法树中非触发源节点所对应的原子围栏、以及清空或标记当前所记录的触发记录,并继续进行针对所述抽象语法树的触发检测;或者80.若确定被注销的逻辑节点使得所述抽象语法树无法被成功触发、无法被成功触发的所述抽象语法树携带有可重复标记、且所述触发模式为并行触发,则删除或标记所述触发记录中所述被注销的逻辑节点对应的注销检测轮数下的每个节点的记录,并继续进行针对所述抽象语法树的触发检测;或者81.若确定被注销的逻辑节点使得所述抽象语法树无法被成功触发、且无法被成功触发的所述抽象语法树携带有一次性标记,则进行针对所述组合围栏的注销和信息删除。82.在一种可能的实现方式中,所述方法还包括:83.若接收到注销请求,则进行针对所述注销请求中指示的目标组合围栏的注销和信息删除;84.其中,所述注销请求用于指示需要注销的目标组合围栏。85.这样,用户和开发人员可以根据需求通过注销请求进行组合围栏的注销。86.在一种可能的实现方式中,所述第一请求还用于指示所述组合围栏被触发后所需执行的第一操作,所述方法还包括:87.若确定所述组合围栏被触发,则执行所述第一操作。88.第二方面,本技术的实施例提供了一种电子设备,包括:89.第一api代理,用于接收输入的用于注册组合围栏的第一请求,并将所述第一请求用于指示所述组合围栏的围栏信息输入电子设备的api接口;90.第一操作系统,用于基于所述围栏信息执行实现第一方面的方法的指令。91.第三方面,本技术的实施例提供了一种服务器,包括:92.第二api代理,用于接收组合围栏的围栏信息,并将所述围栏信息输入所述服务器的api接口;93.第二操作系统,用于基于所述围栏信息执行实现第二方面所述的方法的指令。94.在一种可能的实现方式中,所述第二api代理,还用于接收输入的用于注册组合围栏的第一请求,并基于所述第一请求确定出所述组合围栏的围栏信息。95.第四方面,本技术的实施例提供了一种基于组合围栏的控制装置,,包括:96.处理器;97.用于存储处理器可执行指令的存储器;98.其中,所述处理器被配置为执行所述指令时实现第一方面所述的方法。99.第一方面,本技术的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现第一方面所述的方法。100.第一方面,本技术的实施例提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备中运行时,所述电子设备执行第一方面所述的方法。101.本技术的这些和其他方面在以下(多个)实施例的描述中会更加简明易懂。附图说明102.包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本技术的示例性实施例、特征和方面,并且用于解释本技术的原理。103.图1a、图1b示出根据本技术一实施例的基于组合围栏的控制方法的流程图。104.图1c示出根据本技术一实施例的输入界面示意图。105.图2、图3示出根据本技术一实施例的抽象语法树100的示意图。106.图4示出根据本技术一实施例的抽象语法树100的触发过程示意图。107.图5示出根据本技术一实施例的抽象语法树200的示意图。108.图6示出根据本技术一实施例的抽象语法树200的触发过程示意图。109.图7示出根据本技术一实施例的抽象语法树300的示意图。110.图8示出根据本技术一实施例的抽象语法树300的触发过程示意图。111.图9示出根据本技术一实施例的电子设备的架构示意图。112.图10示意了一种电子设备1000的结构示意图。113.图11示意了一种基于组合围栏的控制装置1900的框图。具体实施方式114.以下将参考附图详细说明本技术的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。115.在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。116.另外,为了更好的说明本技术,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本技术同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本技术的主旨。117.为便于对本技术技术方案的描述,首先对本技术中出现的一些术语进行解释。118.围栏(fence):电子设备对事件是否发生进行检测并通知注册该围栏的应用程序等的机制可以称为围栏,围栏被触发即可以表示对应该围栏的事件已经发生。根据事件可能的发生的次数,可以将围栏分为一次性围栏和可重复围栏。根据电子设备所能进行的事件检测的情况,可以将围栏划分为原子围栏和组合围栏。其中,组合围栏可以由至少两个原子围栏以及与原子围栏连接的逻辑连接符构成。119.一次性围栏(disposablefence):可以为对应的事件仅能发生一次的围栏,例如,围栏1“倒计时30分钟”即为一次性围栏,从围栏1被注册即开始进行计时,到计时满30分钟则可以确定围栏1被触发,“倒计时30分钟”的事件发生。120.可重复围栏(repeatablefence):可以为对应的事件能够发生多次的围栏,例如,围栏2“电子设备的屏幕被点亮”即为可重复围栏,从围栏2被注册后即开始获取屏幕监测信息,若确定电子设备的屏幕被点亮则可以确定围栏2被触发,“电子设备的屏幕被点亮”的事件发生。然而,电子设备的屏幕是否被点亮是可以重复进行的,则可以在每次“电子设备的屏幕被点亮”即确定围栏2被触发一次。121.原子围栏(atomicfence):也可以称为基础围栏、基本围栏等。其可以为电子设备直接能够进行事件是否发生的检测的围栏,或者说,原子围栏即为电子设备在没有被应用程序注册围栏的情况下,就能够对电子设备的运行状态进行监测的事件。原子围栏是否被触发电子设备可以直接通过其本身设置的传感器等的检测结果来确定。例如,上述围栏2即为一个原子围栏。原子围栏可以包括:地理围栏,时间围栏,原子围栏还可以包括与电子设备的如屏幕点亮与否、屏幕解锁与否、是否连接到wi-fi、打开了哪些应用程序等工作状态相关的亮屏围栏、灭屏围栏、锁屏围栏、解锁围栏,等等。122.地理围栏:可以为确定电子设备是否处于某一个实际存在的目标地理区域中的围栏。若检测到电子设备处于目标地理区域则可以确定该地理围栏被触发。例如,围栏3为“电子设备处于用户家中”,从围栏3被注册后即开始基于电子设备的地理位置信息判断电子设备是否处于用户家所在的地理区域,若确定电子设备处于用户家所在的地理区域则可以确定围栏3被触发,“电子设备处于用户家中”的事件发生。123.时间围栏:可以为确定电子设备与时间相关的围栏。例如,上述围栏1等用于倒计时的围栏。用于进行时间检测到围栏(如时间是否为1点、时间是否为2021年10月10日,等等)。124.亮屏围栏:可以为确定电子设备的屏幕是否被点亮的围栏。125.灭屏围栏:可以为确定电子设备的屏幕是否熄灭的围栏。126.锁屏围栏:可以为确定电子设备的屏幕是否被锁住的围栏。127.解锁围栏:可以为确定电子设备的屏幕是否解锁的围栏。128.组合围栏(arbitrarycomposedfence,acf):也可以称为任意组合围栏、随机组合围栏、复合围栏等。而由于组合围栏可以由至少两个原子围栏以及与原子围栏连接的逻辑连接符构成,通过确定每个原子围栏是否被触发以及原子围栏之间的逻辑连接符来确定组合围栏是否被触发。组合围栏也分为可重复围栏和一次性围栏,可重复组合围栏可以被多次触发。一次性组合围栏仅可以被触发一次,或者,若一次性组合围栏中逻辑节点被确定无法成功触发后,该一次性组合围栏不会被触发。129.逻辑连接符:可以指示所连接或者处于逻辑连接符内外的围栏的注册先后顺序、逻辑判断的顺序等。逻辑连接符可以包括然后(对应的符号可以为then)、且(对应的符号可以为and)、或(对应的符号可以为or)、在前(对应的符号可以为before)和括号(对应的符号可以为“()”),等等。其中,与and、or、before连接的围栏同时注册,并进行围栏是否被触发的监测。与then连接的两围栏中在前的围栏先注册,并在确定在前围栏被触发后,注册在后围栏,并进行针对在后围栏是否被触发的监测。而括号()可以区分在括号内外围栏的注册和逻辑判断的优先级别,在括号内的部分(包括围栏和逻辑连接符)比括号外的部分(包括围栏和/或逻辑连接符)进行注册和/或逻辑判断的优先级高。可以根据需要增加逻辑连接符,并设置新增逻辑连接符的符号、定义和逻辑规则等。130.为示意逻辑连接符的定义及逻辑规则,下面通过示例来说明,假定原子围栏为a、b、c,则:131.组合围栏1为“athenb”,则其表示先注册a,在确定a被触发后继续注册b,若再确定b也被触发,则确定组合围栏1被触发。132.组合围栏2为“aandb”,则其表示a、b同时注册,若确定a被触发且b也被触发,则确定组合围栏2被触发。133.组合围栏3为“aorb”,则其表示a、b同时注册,若确定a被触发或b被触发,则确定组合围栏3被触发。134.组合围栏4为“abeforeb”,则其表示a、b同时注册,若确定a被触发时b没有被触发,则确定组合围栏4被触发。若在确定a被触发之前先确定b已经被触发,则确定组合围栏4不能被成功触发。135.组合围栏5为“aor(bandc)”,则其表示a、b、c同时注册,若确定“c被触发且b也被触发”或者“a被触发”,则确定组合围栏5被触发。136.抽象语法树(abstractsyntaxtree,ast):还可以简称语法树(syntaxtree),是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。其中,本技术所采用的ast可以以二叉树(binarytree)形式抽象的表示上述组合围栏。ast包括多个节点,每个节点可以为逻辑节点或围栏节点,逻辑节点即为与逻辑连接符相对应的节点,围栏节点即为与原子围栏相对应的节点。一个ast对应一个组合围栏,其中,ast的叶子节点为围栏节点,ast的其余节点为逻辑节点,每个围栏节点连接的是逻辑节点。137.为解决目标事件的复杂程度越来越大,为实现目标事件检测给开发人员带来的难度、复杂程度越来越高,极大地限制了开发生产力的问题,本技术提供了一种基于组合围栏的控制方法、装置、电子设备和服务器。图1a、图1b示出根据本技术一实施例的基于组合围栏的控制方法的流程图。如图1a所示,该方法可以应用于电子设备或服务器,该方法可以包括:接收输入的用于注册组合围栏的第一请求(步骤s21),所述第一请求用于指示所述组合围栏的围栏信息,所述围栏信息包括逻辑连接符、多个原子围栏和所述组合围栏中的连接关系;根据所述围栏信息创建对应的抽象语法树(步骤s22),所述抽象语法树包括多个节点,所述多个节点包括对应于所述逻辑连接符的逻辑节点和对应于每个所述原子围栏的围栏节点;根据所述抽象语法树创建所述组合围栏(步骤s23)。为进一步详细说明,下文以图1b所示的步骤s11至步骤s22对本技术的基于组合围栏的控制方法的流程进行说明。138.在步骤s11中,接收输入的用于注册组合围栏的第一请求。139.其中,第一请求可以用于指示组合围栏的围栏信息,还可以指示组合围栏被触发后所需执行的第一操作。所述围栏信息可以至少包括逻辑连接符、多个原子围栏、所述组合围栏中的连接关系。所述组合围栏中的连接关系可以包括原子围栏与逻辑连接符之间的连接关系、逻辑连接符相互之间的连接关系,也即基于组合围栏中的连接关系可以确定出原子围栏与哪个逻辑连接符连接,逻辑连接符所连接的原子围栏和逻辑连接符有哪些。其中,组合围栏也可以为仅包括一个原子围栏的围栏。140.在一种可能的实现方式中,所述围栏信息中可以包括触发模式。其中,触发模式可以指示确定出组合围栏中的原子围栏被触发后进行触发状态变化记录的记录方式等。触发模式可以包括并行触发、串行触发和抢占式触发。可以为不同的触发模式设置不同的编号、符号、名称等标识,以区分不同的触发模式以及后续可以基于该标识为抽象语法树进行触发模式的标记。例如,可以设置并行触发、串行触发和抢占式触发的符号分别为11、01、10。141.若触发模式为并行触发,则组合围栏中的原子围栏被触发即进行一次触发记录的更新记录。这样,采用并行触发可以保证组合围栏被注册后,组合围栏中的原子围栏的被触发情况能够被全部记录,保证不会遗漏可能会使得组合围栏被触发的可能情况。142.若触发模式为串行触发,则组合围栏中的原子围栏被触发时,若当前没有该原子围栏被触发的历史记录、或者有该原子围栏被触发的最近一次历史记录且该历史记录已经最终使整个组合围栏被触发,便可以进行该原子围栏被触发的一次触发记录的更新记录;也即若当前触发记录中有该原子围栏被触发的历史记录,且该最近一次历史记录下还没有使整个组合围栏被触发,则不作任何记录。这样,保持触发记录中只有已经致使组合围栏被触发下该原子围栏被触发记录、以及原子围栏被触发但是其并未使组合围栏被触发的该被触发原子围栏被触发的记录。使得每次组合围栏被触发后再开始新的触发记录存储。143.若触发模式为抢占式触发,则组合围栏中的原子围栏被触发时,若当前没有该原子围栏被触发的历史记录则直接进行该原子围栏被触发的一次记录。若当前存在该原子围栏上一次被触发的记录,且该原子围栏的上一次被触发并没有使得组合围栏被触发,则将该原子围栏上一次被触发的记录替换为该原子围栏当前被触发的记录,并以该原子围栏当前被触发的记录为基准进一步判断组合围栏是否被触发。若当前存在该原子围栏上一次被触发的记录,且该原子围栏的上一次被触发已经使得组合围栏被触发,则进行该原子围栏当前被触发的记录,并以该原子围栏当前被触发的记录为基准进一步判断组合围栏是否被触发。这样,保持触发记录中仅记载最新的能够使组合围栏被触发的记录,使得组合围栏每次被触发时都是基于最新的记录确定的。144.在一种可能的实现方式中,围栏信息中还可以包括用于指示组合围栏是否可重复的围栏性质信息,基于该信息可以确定组合围栏是可重复组合围栏还是一次性组合围栏。并且,围栏信息中还可以包括用于指示可重复组合围栏需要进行触发检测的检测总轮数,该检测总轮数可以是检测且组合围栏被成功触发的第一次数,和/或检测且不考虑组合围栏是否被触发的第二次数。例如,若检测总轮数为第一次数且为10,则在确定组合围栏成功触发10次后即不再进行触发检测,进行针对该组合围栏的注销和信息删除。若检测总轮数为第二次数且为5,则在确定已经对组合围栏进行了5轮触发检测后即不再进行触发检测,进行针对该组合围栏的注销和信息删除。若检测总轮数包括:第一次数其为10、第二次数其为20,则“组合围栏成功触发10次”或“已经对组合围栏进行了20轮触发检测”中任意一个条件先满足,即不再进行触发检测,进行针对该组合围栏的注销和信息删除。其中,可以为可重复组合围栏和一次性组合围栏分别设置不同的编号、名称、符号等标识,并用该标识为所述组合围栏对应的抽象语法树添加可重复标记或一次性标记。例如,可以将可重复组合围栏和一次性组合围栏的符号分别设置为r-i-j(i表示第一次数、j表示第二次数)、d,则可以用r-i-j或d为所述组合围栏对应的抽象语法树添加可重复标记或一次性标记。其中,在i和j均未设置具体数值时可以无限次重复进行组合围栏的触发检测,直至该组合围栏被注销。本领域技术人员可以根据实际需要对围栏信息信息进行设置,本技术对此不作限制。145.在一种可能的实现方式中,第一请求指示的所述围栏信息可以为应用程序接口(applicationprogramminginterface,api)的输入参数。第一请求可以是开发人员直接在借助api接口进行开发过程中输入到api接口中的。而由于开发人员预先应熟悉逻辑连接符的定义以及逻辑规则、以及电子设备或服务器所能支持的原子围栏,因此开发人员所输入的第一请求可以直接为伪代码(如下示例1)或代码,其可以直接被api接口识别,并进一步使得电子设备或服务器可以基于输入的内容执行本技术所提供的基于组合围栏的控制方法。这样,开发人员仅通过输入伪代码即可以完成组合围栏的开发,降低了开发难度,简化了开发的过程,提高了开发生产力。146.示例1:147.假定开发人员想要注册一个组合围栏用于为用户推荐入眠音乐,其具体为“若凌晨1:00至2:00期间,电子设备持续亮屏10分钟,则为用户推荐入眠音乐”。则第一请求可以为:148.if(athen(bthencbefored)beforee(也即组合围栏);a=1:00;b=亮屏;c=10min定时;d=灭屏;e=2:00;happen)then{推荐入眠音乐(也即第一操作)}149.其中,athen(bthencbefored)beforee表示组合围栏:1:00then(亮屏then10分钟before灭屏)before2:00,若组合围栏被触发即可以“推荐入眠音乐”,则可以实现“若凌晨1:00至2:00期间,电子设备持续亮屏10分钟,则为用户推荐入眠音乐”。150.在一种可能的实现方式中,第一请求还可以是电子设备或服务器的用户输入的。用户输入的第一请求可以是文本、音频、视频、图像以及应用程序接口api接口的输入参数(也即若用户熟知如何利用伪代码或代码进行第一请求的输入则可以直接通过伪代码或代码输入第一请求)中的任意一种。151.其中,在接收到用户输入的第一请求之前,可以根据用户发出的界面展示请求为用户展示用于输入第一请求的输入界面,在输入界面中可以显示用于输入所述围栏信息的输入组件。这样,用户仅简单的输入第一请求即可以实现组合围栏的设定,且第一请求的输入方式简单,降低了用户设定组合围栏难度,简化了用户设定组合围栏的输入,提高了用户设定组合围栏的效率。152.图1c示出根据本技术一实施例的输入界面示意图。如图1c所示,还可以基于接收到的第二请求,展示组合围栏示意界面t,所述组合围栏示意界面t中包括以下至少一种:逻辑连接符的符号、逻辑连接符的作用、所支持的原子围栏的符号、所支持的原子围栏的用途、组合围栏示例、可选触发模式和可选重复次数。如图1c所示,可以组合围栏示意界面t的不同区域展示不同信息。在p1所示的区域中展示所支持的原子围栏1、2、3……,以及每个原子围栏对应的符号f1。可以在p2所示的区域中展示连接连接符如然后、且、或、在前、括号……,以及每个逻辑连接符的符号f2。可以在p3所示的区域中展示组合围栏示例,可以示出一些常用的组合围栏示例,也可以通过组合围栏示例示意出不同逻辑连接符的作用。可以在p5所示的区域中展示可供用户或开发人员选择的触发模式以及触发模式的符号f3。可以在p6所示的区域中展示可供用户或开发人员选择的组合围栏的重复次数以及不同重复情况的符号f4。可以在p4所示的区域中展示用户或开发人员选择查看的原子围栏的用途、逻辑连接符的作用(也可以为逻辑规则)、可选触发模式的触发规则或重复次数的具体含义。如图1c所示,检测到原子围栏2为用户或开发人员选择查看的内容,则在p4中展示原子围栏2的用途。153.其中,第二请求可以是根据开发人员或用户发出的。可以采用表格、如图1b所示的方式等组合围栏示意界面t的内容展示。这样,展示预先定义的原子围栏、逻辑连接符、触发模式的符号,以使得开发人员可以直接基于原子围栏的符号、逻辑连接符的符号进行组合围栏的输入,进一步简化了为输入第一请求的过程。154.在步骤s12中,根据所述第一请求确定出所述组合围栏的围栏信息。155.其中,若所述第一请求为指示的所述围栏信息直接为应用程序接口api接口的输入参数如伪代码,则可以直接对伪代码进行识别,确定出组合围栏的围栏信息。例如,假定开发人员输入的是示例1中的组合围栏“athen(第一个)(bthen(第二个)cbefore(第一个)d)before(第二个)e”,则所识别出的围栏信息包括:原子围栏包括a、b、c、d、e,逻辑连接符包括2个then、2个before,连接关系包括:第一个then连接a和第一个before、第一个before连接第二个then和e、第二个then连接b和第二个before、第二个before连接c和d。156.若第一请求为用户输入的文本,则可以直接对文本进行语义分析,根据语义分析的结果确定出所述组合围栏的围栏信息。例如,若用户输入的文本为“到家后15分钟播放音乐”,则可以对其进行语义分析,确定其围栏信息包括:原子围栏为“到家”和“十五分钟”,逻辑连接符为then,连接关系为then连接原子围栏“到家”和“十五分钟”。157.若第一请求为用户输入的音频或视频,则可以先对音频或视频进行语音识别,确定出对应的文本内容,而后继续进行针对文本内容的语义分析,最终根据语义分析确定出组合围栏的围栏信息。158.若第一请求为用户输入的图像,则可以先对图像进行文字识别,确定出对应的文本内容,而后继续进行针对文本内容的语义分析,最终根据语义分析确定出组合围栏的围栏信息。159.在步骤s13中,根据所述围栏信息创建对应的抽象语法树,所述抽象语法树包括多个节点,所述多个节点包括对应于所述逻辑连接符的逻辑节点和对应于每个所述原子围栏的围栏节点。160.其中,由于抽象语法树中逻辑连接符可以包括然后、且、或、在前和括号中的至少一个,则抽象语法树中所述逻辑节点的类型可以包括然后类型、且类型、或类型、在前类型中的至少一个。与“然后”逻辑连接符对应的逻辑节点即为“然后类型”的逻辑节点,与“且”逻辑连接符对应的逻辑节点即为“且类型”的逻辑节点,与“或”逻辑连接符对应的逻辑节点即为“或”的逻辑节点,与“在前”逻辑连接符对应的逻辑节点即为“在前类型”的逻辑节点。161.其中,不同逻辑节点的触发规则分别为:若确定所述然后类型的逻辑节点的两个子节点中的先注册的左节点被触发后注册的右节点也被触发,则确定所述然后类型的逻辑节点被触发。若确定所述且类型的逻辑节点的两个子节点中左节点和右节点均被触发,则确定所述且类型的逻辑节点被触发。若确定所述或类型的逻辑节点的两个子节点中的任意一个子节点被触发,则确定所述或类型的逻辑节点被触发。若确定所述在前类型的逻辑节点的两个子节点中的左节点被触发时右节点未被触发,则确定所述在前类型的逻辑节点被触发。162.在一种可能的实现方式中,步骤s13还可以包括:确定所述组合围栏的触发模式,并根据确定的对应于所述组合围栏的触发模式标记所述抽象语法树。163.其中,若围栏信息中包括触发模式,则可以直接基于该触发模式对抽象语法树进行标记。若围栏信息中并不包括触发模式,则可以发出模式指示提示,以提醒用户或开发人员指示组合围栏对应的触发模式。或者,也可以直接将预先设置的预设触发模式确定为组合围栏的触发模式,例如,将用户、开发人员或执行本技术所提供方法的主体(电子设备或服务器)预设的“并行模式”直接确定为当前“围栏信息中并不包括触发模式的组合围栏”的触发模式。164.在一种可能的实现方式中,步骤s13还可以包括:根据确定的所述组合围栏的是否可重复,为所述组合围栏对应的抽象语法树添加可重复标记或一次性标记。165.其中,若围栏信息中包括围栏性质信息,则可以直接基于该围栏性质信息确定组合围栏是可重复组合围栏还是一次性组合围栏。若围栏信息中并不包括围栏性质信息,则可以基于组合围栏对应的围栏节点所对应的原子围栏的是否可重复、逻辑节点的是否可重复,确定出围栏性质信息。若组合围栏所对应的每个触发源节点所对应的原子围栏均为可重复围栏,则可以确定该组合围栏为可重复组合围栏。若组合围栏所对应的所有触发源节点所对应的原子围栏中至少有一个是一次性围栏,则继续一次性的原子围栏的父节点(也即逻辑节点)的是否可重复进行判断,直至判断到根节点的是否可重复。若根节点为可重复的则对应的组合围栏即为可重复组合围栏,若根节点为一次性的则对应的组合围栏即为一次性组合围栏。逻辑节点的是否可重复则依据逻辑节点的类型、逻辑节点的子节点的是否可重复进行确定。166.例如,若逻辑节点的类型为然后类型且其左节点为可重复的,则该然后类型的逻辑节点为可重复的;若逻辑节点的类型为然后类型且其左节点为不可重复的,则该然后类型的逻辑节点为一次性的。167.若逻辑节点的类型为或类型且其任意一个子节点为可重复的,则该或类型的逻辑节点为可重复的;若逻辑节点的类型为或类型且其两个子节点均为不可重复的,则该或类型的逻辑节点为一次性的。168.若逻辑节点的类型为且类型且其两个子节点均为可重复的,则该且类型的逻辑节点为可重复的;若逻辑节点的类型为且类型且其左节点和/或右节点为不可重复的,则该且类型的逻辑节点为一次性的。169.若逻辑节点的类型为在前类型且其左节点为可重复的,则该在前类型的逻辑节点为可重复的;若逻辑节点的类型为在前类型且其左节点为不可重复的,则该在前类型的逻辑节点为一次性的。170.举例来说,以图5所示的组合围栏对应的抽象语法树200为例,其有3个触发源节点r、t、g。围栏信息中并不包括围栏性质信息。171.假定r对应的原子围栏为一次性围栏、t、g对应的原子围栏为可重复围栏。则可以进行是否可重复判断:由于r对应的原子围栏为一次性围栏、t对应的原子围栏为可重复围栏,则or1为可重复的,也即确定and的左节点(or1)是可重复的。由于g对应的原子围栏为可重复围栏,则then1为可重复的。进而由于then2的左节点(也即then1)是可重复的,可以确定then2是可重复的,也即确定and的右节点(then2)是可重复的。而由于and的左右节点均可重复,则200的根节点and是可重复的,进而整个200是可重复的,则200对应的组合围栏即为可重复组合围栏。172.假定g对应的原子围栏为一次性围栏、r、t对应的原子围栏为可重复围栏。则可以进行是否可重复判断:由于g对应的原子围栏为一次性围栏,则then1为不可重复的;进而then2由于其左节点then1的不可重复导致then2也不可重复,最终使得and由于其右节点then2的不可重复导致and也为不可重复的。也即整个200是不可重复的,则200对应的组合围栏即为一次性组合围栏。173.其中,若围栏信息中包括围栏性质信息且基于该围栏信息中的围栏性质信息确定组合围栏是可重复组合围栏,且“基于组合围栏对应的围栏节点所对应的原子围栏的是否可重复、逻辑节点的是否可重复确定出组合围栏为一次性组合围栏”,则可以发出不可重复提醒,该不可重复提醒用于提醒当前组合围栏实际上不可重复。也即在确定“用户或开发人员通过第一请求指示组合围栏为可重复组合围栏”但“基于组合围栏对应的围栏节点所对应的原子围栏的是否可重复、逻辑节点的是否可重复确定出组合围栏为一次性组合围栏”的情况下,可以发出不可重复提醒,以使得用户或开发人员可以基于不可重复提醒修改组合围栏的围栏性质信息或者修改组合围栏的组成。174.其中,可以根据逻辑连接符、多个原子围栏、所述所述组合围栏中的连接关系,按照抽象语法树如二叉树性质进行抽象语法树的创建,并在创建完成后用所述触发模式标记所述抽象语法树以及为抽象语法树增加可重复标记或一次性标记,以便于后续可以基于抽象语法树所标记的触发模式、可重复标记或一次性标记对抽象语法树的触发状态进行记录。175.举例来说,图2、图3示出根据本技术一实施例的抽象语法树100的示意图。对于上述示例1中的组合围栏“athen(第一个)(bthen(第二个)cbefore(第一个)d)before(第二个)e”,根据其对应的围栏信息以及确定出的触发模式为串行触发、组合围栏为一次性组合围栏,可以创建出图2所示的抽象语法树100,图2中并未示出100的一次性标记。176.在步骤s14中,根据所述抽象语法树注册所述组合围栏。177.其中,完成组合围栏的注册即可以认定已经创建了组合围栏并且已经开始进行针对组合围栏是否被触发的监测。注册组合围栏的过程包括注册组合围栏中的对应于触发源节点的原子围栏以及激活抽象语法树,注册对应于触发源节点的原子围栏才能开始进行针对组合围栏是否被触发的监测,而激活抽象语法树才能够基于抽象语法树以及原子围栏是否被触发确定出组合围栏是否被触发。178.在一种可能的实现方式中,步骤s14可以包括以下步骤:根据与每个所述围栏节点存在连接关系的逻辑节点的类型,从所述多个围栏节点中确定出触发源节点;注册所述组合围栏中与所述触发源节点对应的原子围栏,以及激活所述抽象语法树。179.其中,与围栏节点存在连接关系的逻辑节点可以包括直接与围栏节点连接,也即围栏节点的父节点。如:图2中围栏节点a直接连接的逻辑节点为then1(a的父节点,then1也为根节点)、围栏节点d直接连接的逻辑节点为before2(d的父节点)。与围栏节点存在连接关系的逻辑节点还可以包括间接与围栏节点连接的逻辑节点,也即围栏节点的父节点到抽象语法树的根节点之间的逻辑节点以及根节点。例如,图2中围栏节点e间接连接的逻辑节点为then1(a的父节点then1的父节点)。图2中围栏节点d间接连接的逻辑节点包括:then2(d的父节点before2的父节点)、before1(d的父节点before2的父节点then2的父节点)、then1(根节点)。而由于逻辑节点的类型能够反映其连接的原子围栏的注册先后顺序和逻辑判断顺序,所以基于与每个所述围栏节点存在连接关系的逻辑节点的类型,从所述多个围栏节点中确定出触发源节点。180.在一种可能的实现方式中,所述触发源节点包括所述多个围栏节点中满足以下任意一种条件的围栏节点:与所述围栏节点存在连接关系的每个逻辑节点的类型为且类型、或类型、在前类型中的任意一个;与所述围栏节点存在连接关系的所有逻辑节点中包括然后类型的逻辑节点、且所述围栏节点属于所述然后类型的逻辑节点的左节点。181.例如,参照图2所示的抽象语法树100,由于与围栏节点a存在连接关系的逻辑节点包括then1,且a为then1的左节点,则围栏节点a为触发源节点。由于与围栏节点b存在连接关系的逻辑节点包括then2、before1、then1,且b为then2的左节点、then1的右节点,则b不是触发源节点。由于与围栏节点c、d存在连接关系的逻辑节点包括before2、then2、before1和then1,而c与d均为then2和then1的右节点,则c、d不是触发源节点。由于与围栏节点e存在连接关系的逻辑节点包括before1和then1,而e为then1的右节点,则e不是触发源节点。182.再例如:图5示出根据本技术一实施例的抽象语法树200的示意图。图5所示的抽象语法树200,由于与围栏节点r、t存在连接关系的逻辑节点包括or1、and,二者均不与然后类型的逻辑节点连接,则围栏节点r、t为触发源节点。由于与围栏节点g存在连接关系的逻辑节点包括then1、then2和and,且g为then1、then2的左节点,则g是触发源节点。由于与围栏节点h、j存在连接关系的逻辑节点包括or2、then1、then2和and,而h、j二者均为then1的右节点、then2的左节点,则h、j不是触发源节点。由于与围栏节点k存在连接关系的逻辑节点包括then2和and,而k为then2的右节点,则k不是触发源节点。183.或者例如:图7示出根据本技术一实施例的抽象语法树300的示意图。图7所示的抽象语法树300,由于与围栏节点x、y存在连接关系的逻辑节点包括then1、or,x、y分别为then1左、右节点,则围栏节点x为触发源节点,y不是触发源节点。由于与围栏节点w、z存在连接关系的逻辑节点包括then2、or,w、z分别为then2左、右节点,则围栏节点w为触发源节点,z不是触发源节点。184.在步骤s15中,在完成组合围栏的注册后,若检测到任意一个已经注册的原子围栏被触发,则根据所述抽象语法树标记的触发模式、与所述被触发原子围栏对应的被触发围栏节点存在连接关系的逻辑节点的类型,更新所述抽象语法树的触发记录。185.其中,所述触发记录包括对应于每个的逻辑节点的记录。触发记录用于记录对应的逻辑节点所连接的子节点相关的触发信息,如所连接的子节点是否被触发、被触发的时间等相关信息,以使得基于触发记录可以确定出对应的逻辑节点是否被触发。186.在一种可能的实现方式中,触发记录可以以队列(也称先进先出(fifo—firstinfirstout)线性表)的形式进行存储。可以分别为每个逻辑节点创建对应的两个队列,可以用两个队列分别存储逻辑节点的左节点(逻辑节点的两个子节点中左侧的节点)和右节点(逻辑节点的两个子节点中右侧的节点)的相关信息。187.其中,围栏节点在确定其对应的原子围栏被触发后,向其连接的父节点(为逻辑节点)上报其被触发。不同逻辑节点在不同触发模式下,在确定其左节点或右节点被触发时,响应该触发所执行的操作也存在差异。其中,若根据与所述被触发围栏节点存在连接关系的逻辑节点的类型和所述触发模式,确定所述被触发围栏节点需要记录,则在所述触发记录中新增与所述被触发围栏节点存在连接关系的逻辑节点的子节点被触发的记录。若根据与所述被触发围栏节点存在连接关系的逻辑节点的类型和所述被触发原子围栏,确定与所述被触发围栏节点存在连接关系的逻辑节点被触发,则在所述触发记录中新增每个所述被触发逻辑节点被触发的记录。若根据与所述被触发围栏节点存在连接关系的逻辑节点的类型和所述被触发原子围栏,确定与所述被触发围栏节点存在连接关系的逻辑节点处于无法成功触发的状态,则注销(destroy,或称销毁)无法成功触发的逻辑节点以及在所述触发记录中新增被注销逻辑节点的子节点被触发的记录。188.在步骤s16中,更新触发记录后,判断检测到的被触发围栏节点是否使至少一个逻辑节点被注销。若确定存在被注销的逻辑节点,则可以判断该被注销的逻辑节点是否会使得组合围栏不会再被成功触发,若可以确定该组合围栏不会再被成功触发,则执行步骤s19。若确定抽象语法树中的逻辑节点均未被注销或被注销的逻辑节点并不会导致组合围栏无法被成功触发,则继续执行步骤s17。189.其中,若确定逻辑节点需要被注销,还可以注销该逻辑节点的子节点所对应的原子围栏,逻辑节点被注销后不会再进行被触发上报。在确定有被注销的逻辑节点可以通过以下方式进行“该被注销的逻辑节点是否会使得组合围栏不会再被成功触发”的判断:190.若被注销的逻辑节点为根节点,则组合围栏不会再被成功触发。例如,若进行图3中抽象语法树100的触发检测中确定then1被注销,则可以确定100对应的组合围栏不会再被成功触发。191.若被注销的逻辑节点为不是根节点,判断该被注销逻辑节点的父节点…直至判断根节点是否还能够被成功触发,若根节点不能再被成功触发,则组合围栏不会再被成功触发。例如,若进行图3中抽象语法树100的触发检测中确定then2被注销,则进一步可以确定before1无法再被成功触发,最终使得根节点then1的右节点无法再被成功触发,则根节点then1无法再被成功触发,可以确定100对应的组合围栏不会再被成功触发。192.在步骤s17中,判断抽象语法树的根节点是否被触发,若根节点被触发则执行步骤s18。若根节点未被触发,则可以继续执行步骤s15。193.在步骤s18中,由于根节点被触发,则可以确定抽象语法树对应的组合围栏被触发。而后执行步骤s19,继续判断该组合围栏是否为一次性组合围栏。若该组合围栏为一次性组合围栏(抽象语法树带有一次性标记)则可以执行步骤s22。若该组合围栏为可重复组合围栏(抽象语法树带有可重复标记),则执行步骤s20。194.其中,若确定所述逻辑节点中的根节点被触发,则确定所述抽象语法树对应的组合围栏被触发。例如,如图3所示的抽象语法树100,若确定根节点then1被触发,则可以确定抽象语法树100对应的组合围栏被触发。如图5所示的抽象语法树200,若确定根节点and被触发,则可以确定抽象语法树200对应的组合围栏被触发。如图7所示的抽象语法树300,若确定根节点or被触发,则可以确定抽象语法树300对应的组合围栏被触发。195.在步骤s20中,继续判断组合围栏对应的抽象语法树所标记的触发模式,若触发模式为抢占式触发或串行触发,则执行步骤s21。若触发模式为并行触发,则直接继续执行步骤s15。196.其中,若确定被注销的逻辑节点使得所述抽象语法树无法被成功触发、无法被成功触发的所述抽象语法树携带有可重复标记、且所述触发模式为并行触发,在步骤s20之后、执行步骤s15之前,还需要删除或标记所述触发记录中所述被注销的逻辑节点对应的注销检测轮数下每个节点的记录,结束注销检测轮数的被触发检测以及记录存储。注销检测轮数是指检测到导致逻辑节点被注销的被触发围栏节点所对应的轮数。197.假定某组合围栏“aand(bbeforec)”为的可重复组合围栏且触发模式为并行触发,则触发记录中需要记录and的左右节点的触发记录、before的左右节点的触发记录。若确定出的被注销的逻辑节点为“before”使得该组合围栏无法被成功触发,而由于导致“before”被注销的被触发围栏节点c所对应的轮数为针对该组合围栏的第一轮(也即注销检测轮数),则可以标记或删除触发记录中当前存储的对应于第一轮检测的记录,如若存储“第一次检测到and的左节点被触发的记录”则删除或标记“第一次检测到and的左节点被触发的记录”。这样,无论是标记还是删除触发记录中被注销的逻辑节点对应的目标检测轮数下每个节点的记录,都可以保证后续每轮检测的正常进行,且由于不再进行注销检测轮数的检测和触发记录存储可以节省资源占用,提高判断效率。198.在步骤s21,注销所述抽象语法树中非触发源节点所对应的原子围栏、以及清空或标记当前所记录的触发记录,而后继续执行步骤s15。其中,标记当前所记录的触发记录可以是为使得此次组合围栏成功触发的每个节点的记录增加标记,标记后的记录后续不会再作为判断组合围栏是否被触发的依据,以免其对后续判断过程造成不利影响。同样,删除当前所记录的触发记录也是为了避免其对后续判断过程造成不利影响。199.在步骤s22中,若确定该组合围栏为一次性组合围栏,则可以进行针对该组合围栏的注销和信息删除。其中,注销和信息删除可以包括:注销对应于该组合围栏的已经注册的所有原子围栏,删除抽象语法树,删除对应于该组合围栏的抽象语法树的触发记录等与组合围栏相关的信息。200.在一种可能的实现方式中,所述方法还包括:若接收到注销请求,则进行针对所述注销请求中指示的目标组合围栏的注销和信息删除。其中,所述注销请求用于指示需要注销的目标组合围栏。201.不同逻辑节点在不同触发模式下其触发逻辑如下:202.在并行触发11下:203.逻辑节点then:204.当then的左节点被触发上报时,记录左节点被触发,同时激活(fire)右节点(也即注册右节点对应的原子围栏),直到检测到对应的右节点上报时,确定then被触发,继续向上传播或若then为根节点则确定组合围栏被触发。205.当右节点被触发上报时,判断是否有对应的左节点被触发,若不存在对应的左节点被触发记录,则忽略不记录。206.例如,假定then的触发记录中记录的内容为:左节点被第一次触发、右节点被第一次触发、左节点被第二次触发。此时,207.情况1:若then的左节点被触发上报,则继续记录then的左节点触发,触发记录变为“左节点被第一次触发、右节点被第一次触发、左节点被第二次触发、左节点被第三次触发”。208.情况2:若then的右节点被触发上报,则判断触发记录中是否有对应的左节点被触发记录,而由于触发记录中存在对应的左节点被触发记录,则确定then被触发,继续向上传播或若then为根节点确定组合围栏被触发。同时,触发记录变为“左节点被第一次触发、右节点被第一次触发、左节点被第二次触发、右节点被第二次触发”。而若在情况2之后,若再次检测到then的右节点被触发上报,此时触发记录中没有对应的左节点被触发记录则不记录then右节点的此次初触发。209.逻辑节点and:210.若and的左节点和右节点中的任意一个子节点被触发上报时,判断是否对应的另一子节点被触发的记录,若有则确定and被触发,继续向上传播或若and为根节点确定组合围栏被触发。若没有则记录该子节点被触发,等待之后对应的另一子节点被触发后确定and被触发。211.例如,假定and的触发记录中记录的内容为:左节点被第一次触发、右节点被第一次触发、左节点被第二次触发。此时,212.情况3:若and的左节点被触发上报,则判断触发记录中是否有对应的右节点被触发记录,而由于触发记录中不存在对应的右节点被触发记录,继续记录and的左节点触发,触发记录变为“左节点被第一次触发、右节点被第一次触发、左节点被第二次触发、左节点被第三次触发”。213.情况4:若and的右节点被触发上报,则判断触发记录中是否有对应的左节点被触发记录,而由于触发记录中存在对应的左节点被触发记录,确定and被触发,继续向上传播或若then为根节点确定组合围栏被触发。同时,触发记录变为“左节点被第一次触发、右节点被第一次触发、左节点被第二次触发、右节点被第二次触发”。而若在情况4之后,若再次检测到and的右节点被触发上报,此时触发记录中没有对应的左节点被触发记录则记录左节点的此次触发,触发记录变为“左节点被第一次触发、右节点被第一次触发、左节点被第二次触发、右节点被第二次触发、右节点被第三次触发”。214.逻辑节点or:215.若and的左节点和右节点中的任意一个子节点被触发上报时,则在对应的触发记录中记录此次子节点被触发以及确定or被触发,继续向上传播或若or为根节点确定组合围栏被触发。216.逻辑节点before:217.若before的左节点被触发上报时,确定没有右节点被触发的记录,则确定before被触发,继续向上传播或若before为根节点确定组合围栏被触发,并在触发记录中记录before的左节点被触发的记录。若检测到before的右节点被触发上报时,则确定before不会被成功触发,可以直接销毁before,before不再触发,并且可以在触发记录中新增before被注销的记录。218.在串行触发01下:219.逻辑节点then:220.当then的左节点被触发上报时,判断then的标记。若then的标记为“等待(pending)(用于标记节点当前已经有一个子节点被触发,等待另一个子节点被触发的等待状态的标识)”或“false(用于标记节点当前不再记录其子节点是否触发的不记录状态的标识)”,则不记录。若then的标记为“true(用于标记节点当前可以继续记录子节点是否触发的可记录状态的标识)”,则在触发记录中记录then的左节点被触发,同时激活右节点,将then标记为“pending”。221.若检测到then的右节点被触发上报且then处于“pending”状态,确定then被触发,继续向上传播,并将then的标记由“pending”替换为“false”,直至确定组合围栏被触发再将then的标记由“false”替换为“true”。222.逻辑节点and:223.若and的左节点和右节点中的任意一个子节点被触发上报时,判断and的标记。若and的标记为“false”,则不记录。若and的标记为“pending”且触发记录中存储有另一子节点被触发的记录,则确定and被触发,触发记录中增加该被触发节点的记录,继续向上传播,以及将and的标记由“pending”替换为“false”,直至确定组合围栏被触发将and的标记由“false”替换为“true”。若and的标记为“pending”且触发记录中没有存储有另一子节点被触发的记录,则不记录。若and的标记为“true”,则在触发记录中增加该and的该子节点(也即被触发节点)被触发的记录,以及将and的标记由“true”替换为“pending”。224.逻辑节点or:225.若or的左节点和右节点中的任意一个子节点被触发上报时,判断or的标记。若or的标记为“false”,则不记录。若or的标记为“true”,则确定or被触发,触发记录中增加该or的该子节点(也即被触发节点)被触发的记录,并继续向上传播,以及将or的标记由“true”替换为“false”,直至确定组合围栏被触发再将or的标记由“false”替换为“true”。226.逻辑节点before:227.若before的左节点被触发上报时,before的标记为“false”,则不记录。若before的左节点被触发上报时,before的标记为“true”且没有右节点被触发的记录,则确定before被触发,触发记录中增加该before的左节点被触发的记录,继续向上传播,以及将before的标记由“true”替换为“false”,直至确定组合围栏被触发再将before的标记由“false”替换为“true”。若before的右节点被触发上报时,before的标记为“false”,则不记录。若before的右节点被触发上报时,before的标记为“true”,则确定before不会被成功触发,直接销毁before,before不再触发,并且可以在触发记录中新增before被注销的记录。228.在抢占式触发10下:229.逻辑节点then:230.当then的左节点被触发上报时,清空then的触发记录后新增then的左节点被触发的记录,同时激活右节点。231.当then的右节点被触发上报时,判断触发记录中是否有左节点被触发的记录,若有则确定then被触发,在触发记录中新增右节点被触发的记录(或者清空触发记录),继续向上传播或若then为根节点则确定组合围栏被触发;若触发记录中没有有左节点被触发的记录,则忽略不记录。232.逻辑节点and:233.若and的左节点和右节点中的任意一个子节点被触发上报时,判断触发记录中是否存储有另一子节点被触发的记录,若有则确定and被触发,触发记录中增加该被触发节点的记录,继续向上传播或若and为根节点确定组合围栏被触发。若触发记录中没有存储另一子节点被触发的记录,则将原and的对应该子节点的触发记录替换为此次检测到的该被触发子节点的记录。例如,若当前and的触发记录中仅记录了上一次检测到的and的左节点被触发的记录,则再次检测到and的左节点被触发时,则将and的触发记录由原来的“上一次检测到的and的左节点被触发的记录”替换为“此次检测到and的左节点被触发的记录”。234.逻辑节点or:235.若or的左节点和右节点中的任意一个子节点被触发上报时,确定or被触发,触发记录中增加该被触发节点的记录,继续向上传播或若or为根节点确定组合围栏被触发。236.逻辑节点before:237.若before的左节点被触发上报时,触发记录中没有右节点被触发的记录,则确定before被触发,触发记录中增加该before左节点被触发的记录,继续向上传播或若before为根节点确定组合围栏被触发。若before的右节点被触发上报时,则确定before不会被成功触发,销毁before,before不再触发,并且可以在触发记录中新增before被注销的记录。238.为示意不同触发模式下步骤s15的实现过程,结合附图示出的抽象语法树100、200、300对步骤s15的实现方式以及不同触发模式下更新触发记录的实现方式进行说明。239.图4示出根据本技术一实施例的抽象语法树100的触发过程示意图。其中,虚线框s1中示出了每次检测到的被触发的围栏节点是哪一个,以及相对于该抽象语法树100该被触发围栏节点为第几次触发。虚线框s2中示出的是每检测到围栏节点被触发后用于存储触发记录的第一队列组q1的存储内容的变化。虚线框s3中示出的每检测到围栏节点被触发后需要执行的除更新第一队列组q1之外的其他操作。240.其中,创建出图2所示的抽象语法树100,而后根据抽象语法树100,注册确定出的触发源节点a所对应的原子围栏(如图3所示),以及建立用于进行抽象语法树100的触发记录存储的第一队列组q1,第一队列组q1的不同队列用于进行不同逻辑节点触发记录的存储。241.如图4所示,第一队列组q1中不同队列所存储的内容不同,也即:242.第一个和第二个队列用于存储对应于逻辑节点then1的触发记录,且第一个队列用于记录then1的左节点(也即a)的相关信息,第二个队列用于记录then1的右节点(也即before1)的相关信息。243.第三个和第四个队列用于存储对应于逻辑节点before1的触发记录,且第三个队列用于记录before1的左节点(也即then2)的相关信息,第四个队列用于记录before1的右节点(也即e)的相关信息。244.第五个和第六个队列用于存储对应于逻辑节点then2的触发记录,且第五个队列用于记录then2的左节点(也即b)的相关信息,第六个队列用于记录then2的右节点(也即before2)的相关信息。245.第七个和第八个队列用于存储对应于逻辑节点before2的触发记录,且第七个队列用于记录before2的左节点(也即c)的相关信息,第八个队列用于记录before2的右节点(也即d)的相关信息。246.抽象语法树100的触发模式如图3所示的标记“01”为串行触发,则在完成触发源节点a对应发原子围栏的注册以及第一队列组q1的创建后,参照图4可知电子设备或服务器执行执行本技术的基于组合围栏的控制方法的其余过程为:247.检测到围栏节点a(触发源节点)被第一次触发,由于此时各个队列均为空,各队列均可以标记为“true(图中以各个队列的白色填充背景示意标记“true”)”还未做任何触发记录的存储,则a可以向then1上报其被触发。逻辑节点then1接收到a的上报后确定其左节点被触发,则可以在第一个队列中记录then1的左节点被第一次触发(如图4中第一个队列中的1)的相关信息并为then1(也即第一个队列和第二个队列)增加标记“pending(图中以第一个、第二个队列的填充背景示意标记“pending”)”。同时,确定需要注册then1的右节点对应的原子围栏并注册,也即注册围栏节点b、e所对应的原子围栏。248.检测到围栏节点b被第一次触发,则b可以向then2上报其被触发。逻辑节点then2接收到b的上报后确定其左节点被触发,则可以在第五个队列中记录then2的左节点被第一次触发的相关信息并为then2增加标记“pending(图中以第五个、第六个队列的填充背景示意标记“pending”)”。并且,确定需要注册then2的右节点对应的原子围栏并注册,也即注册围栏节点c、d所对应的原子围栏。249.检测到围栏节点a被第二次触发,则可以a可以向then1上报其被触发。逻辑节点then1接收到a的上报后确定其左节点被触发,且由于then1被标记为“pending”,则不记录a的第二次触发。250.检测到围栏节点b被第二次触发,则b可以向then2上报其被触发。逻辑节点then2接收到b的上报后确定其左节点被触发,且由于then2被标记为“pending”,则不记录b的第二次触发。251.检测到围栏节点e被第一次触发,则可以e可以向before1上报其被触发。逻辑节点before1接收到e的上报后确定其右节点被触发,则确定before1不会被触发,销毁before1,使得before1不再被触发。此时完成了抽象语法树100的第一轮是否被触发的检测l1。此时,如若抽象语法树100对应的组合围栏为一次性围栏(也即100带有一次性标记),则可以结束100的触发检测,进行注销和信息删除,注销和信息删除包括:注销已经注册的对应于该组合围栏的全部原子围栏(也即围栏节点a、b、c、d、e所对应的原子围栏),删除抽象语法树100等与组合围栏相关的信息。若抽象语法树100对应的组合围栏为可重复围栏(也即100带有可重复标记),则可以如图4所示,可以清空每个队列的记录(或者如步骤s21进行记录标记),注销围栏节点b、c、d、e所对应的原子围栏,才开始针对抽象语法树100的第二轮是否被触发的检测l2。252.在l2中:253.检测到围栏节点a(触发源节点)被第一次触发,由于此时各个队列均为空,各队列均可以标记为“true”还未做任何触发记录的存储,则a可以向then1上报其被触发。逻辑节点then1接收到a的上报后确定其左节点被触发,则可以在第一个队列中记录then1的左节点被第一次触发的相关信息并为第一个队列和第二个队列增加标记“pending”。同时,确定需要注册then1的右节点对应的原子围栏并注册,也即注册围栏节点b、e所对应的原子围栏。254.检测到围栏节点b被第一次触发,则b可以向then2上报其被触发。逻辑节点then2接收到b的上报后确定其左节点被触发,则可以在第五个队列中记录then2的左节点被第一次触发的相关信息并为第五个队列和第六个队列增加标记“pending”。同时,确定需要注册then2的右节点对应的原子围栏并注册,也即注册围栏节点c、d所对应的原子围栏。255.检测到围栏节点c被第一次触发,则c可以向before2上报其被触发。逻辑节点before2接收到c的上报后确定其左节点被触发,且由于第七个队列中没有右节点被触发的记录,则可以确定before2被触发并向then2上报,并可以在第七个队列中记录before2的左节点被第一次触发以及将第七个队列和第八个队列的标记由“true”替换为“false(图中以第七个、第八个队列的填充背景示意标记“false”)”。逻辑节点then2接收到before2的上报后确定其右节点被触发,且由于第五个队列和第六个队列的标记为“pending”,则可以确定then2被触发并向before1上报,以及可以在第六个队列中记录then2的右节点被第一次触发并将第五个队列和第六个队列的标记由“pending”替换为“false”。逻辑节点before1接收到then2的上报后确定其左节点被触发,且第三个队列中没有右节点被触发的记录,则确定before1被触发并向then1上报,可以在第三个队列中记录before1的左节点被第一次触发并将第三个队列和第四个队列的标记由“true”替换为“false”。then1接收到before1的上报后确定其右节点被触发,且由于第一个队列和第二个队列的标记为“pending”,则可以确定then1被触发,而then1为根节点则可以确定100对应的组合围栏被触发,而后可以在第二个队列中记录then1的右节点被第一次触发,同时将第一个队列和第二个队列的标记由“pending”替换为“false”。256.在将100对应的组合围栏被触发的情况发送至注册该组合围栏的应用程序等之后,可以清空每个队列的记录,注销围栏节点b、c、d、e所对应的原子围栏,而后开始针对抽象语法树100的第三轮是否被触发的检测。循环如上述l1、l2的检测过程,直至接收到注销该组合围栏的请求后,进行如上的注销和信息删除。257.图6示出根据本技术一实施例的抽象语法树200的触发过程示意图。其中,虚线框s1中示出了每次检测到的被触发的围栏节点是哪一个,以及相对于该抽象语法树200该被触发围栏节点为第几次触发。虚线框s2中示出的是每检测到围栏节点被触发后用于存储触发记录的第二队列组q2的存储内容的变化。虚线框s3中示出的每检测到围栏节点被触发后需要执行的除更新第二队列组q2之外的其他操作。258.其中,创建出图5所示的抽象语法树200,而后根据抽象语法树200,注册确定出的触发源节点r、t、g所对应的原子围栏(如图5所示),以及建立用于进行抽象语法树200的触发记录存储的第二队列组q2,第二队列组q2的不同队列用于进行不同逻辑节点触发记录的存储。如图6所示,第二队列组q2中不同队列所存储的内容不同,第一个到第十个队列依次用于存储or1的左节点、or1的右节点、and的左节点、and的右节点、then2的左节点、then2的右节点、then1的左节点、then1的右节点、or2的左节点、or2的右节点的触发记录。抽象语法树200的触发模式如图5所示的标记“10”为抢占式触发,则在完成触发源节点r、t、g对应发原子围栏的注册以及第二队列组q2的创建后,参照图6可知电子设备或服务器执行执行本技术的基于组合围栏的控制方法的其余过程为:259.检测到围栏节点r(触发源节点)被第一次触发,则r可以向or1上报其被触发。逻辑节点or1接收到r的上报后确定其左节点被触发,则可以确定or1被触发并向and上报,并在第一个队列中记录or1的左节点被触发(如图6中第一个队列中的1)。and接收到or1的上报,由于对应于and的第四个队列中并没有and的右节点被触发的记录,and没有被触发,则可以在第三个队列中记录and的左节点被触发。260.检测到围栏节点r被第二次触发,则r可以向or1上报其被触发。逻辑节点or1接收到r的上报后确定其左节点被触发,则可以确定or1被触发并向and上报,以及在第一个队列中用此次or1的左节点被触发替换上一次r1的左节点被触发的记录(也即如图6中第一个队列中记录的内容由“1(上一次r1的左节点被触发的记录)”替换为“1’(此次or1的左节点被触发的记录)”)。and接收到or1的上报,由于对应于and的第四个队列中并没有and的右节点被触发的记录,and没有被触发,则可以将第三个队列中记录的内容从“上一次and的左节点被触发的记录(也即第三个队列中的1)”替换为“此次and的左节点被触发的记录(也即第三个队列中的1’)”。261.检测到围栏节点g被第一次触发,则g可以向then1上报其被触发。逻辑节点then1接收到g的上报后确定其左节点被触发,则清空对应于then1的第七个队列和第八个队列的记录,而后将此次检测到的g被触发(也即其左节点被触发)记录到第七个队列中。并且,激活then1的右节点,由于then1的右节点连接的是or2,所以可以注册or2的两个子节点h、j所对应的原子围栏。262.检测到围栏节点h被第一次触发,则h可以向or2上报其被触发。逻辑节点or2接收到h的上报后确定其左节点被触发,则确定or2被触发并上报至then1,以及在第九个队列中新增左节点被触发的记录。逻辑节点then1接收到or2的上报后确定其右节点被触发,而由于第七个队列中存储有then1的左节点被触发的记录,则可以确定then1被触发并向then2上报,以及在第八个队列中新增then1的右节点被触发的记录。then2收到then1的上报后确定其左节点被触发,则清空对应于then2的第五个队列和第六个队列的记录,而后在第五个队列中新增then2的左节点被触发的记录。并且,激活then2的右节点,由于then2的右节点连接的是k,所以可以注册子节点k所对应的原子围栏。263.检测到围栏节点r被第三次触发,则r可以向or1上报其被触发。逻辑节点or1接收到r的上报后确定其左节点被触发,则可以确定or1被触发并向and上报,以及将第一个队列中存储的内容从“上一次or1的左节点被触发的记录(也即第一个队列中的1’)”替换为“此次or1的左节点被触发的记录(也即第一个队列中的1”)”。and接收到or1的上报,确定and的左节点被触发,而由于对应于and的第四个队列中并没有and的右节点被触发的记录,and没有被触发,则可以将第三个队列中记录的内容从“上一次and的左节点被触发的记录(也即第三个队列中的1’)”替换为“此次and的左节点被触发的记录(也即第三个队列中的1”)”。264.检测到围栏节点k被第一次触发,则k可以向then2上报其被触发。逻辑节点then2接收到k的上报后确定其右节点被触发,且由于第五个队列中记录有then2的左节点被触发的记录,则可以确定then2被触发并上报至and,以及在第六个队列中新增右节点被触发的记录。and接收到then2的上报确定and的右节点被触发,由于对应于and第三个队列中有and的左节点被触发的记录,则可以确定and被触发,并在第四个队列中新增and的右节点被触发的记录。而由于and为抽象语法树200的根节点,则可以确定200对应的组合围栏被触发。265.而后,若确定200对应的组合围栏为一次性围栏(也即200带有一次性标记),则进行如上的注销和信息删除(也即包括注销已经注册的对应于该组合围栏的全部原子围栏,删除抽象语法树200等与组合围栏相关的信息)。若确定200对应的组合围栏为可重复围栏(也即200带有可重复标记),则可以如图6所示清空每个队列的记录,注销围栏节点h、j、k所对应的原子围栏,而后开始进行针对抽象语法树200的下一轮是否被触发的检测。而后循环上述抽象语法树200的检测过程,直至接收到注销该组合围栏的请求后,进行如上的注销和信息删除。266.图8示出根据本技术一实施例的抽象语法树300的触发过程示意图。其中,虚线框s1中示出了每次检测到的被触发的围栏节点是哪一个,以及相对于该抽象语法树300该被触发围栏节点为第几次触发。虚线框s2中示出的是每检测到围栏节点被触发后用于存储触发记录的第三队列组q3的存储内容的变化。虚线框s3中示出的每检测到围栏节点被触发后需要执行的除更新第三队列组q3之外的其他操作。267.其中,创建出图7所示的抽象语法树300,而后根据抽象语法树300,注册确定出的触发源节点x、w所对应的原子围栏(如图7所示),以及建立用于进行抽象语法树300的触发记录存储的第三队列组q3,第三队列组q3的不同队列用于进行不同逻辑节点触发记录的存储。如图8所示,第三队列组q3中不同队列所存储的内容不同,第一个到第六个队列依次用于存储then1的左节点、then1的右节点、or的左节点、or的右节点、then2的左节点、then2的右节点的触发记录。抽象语法树300的触发模式如图7所示的标记“11”为并行触发,则在完成触发源节点x、w对应发原子围栏的注册以及第三队列组q3的创建后,参照图8可知电子设备或服务器执行执行本技术的基于组合围栏的控制方法的其余过程为:268.检测到围栏节点x(触发源节点)被第一次触发,则x可以向then1上报其被触发。逻辑节点then1接收到x的上报后确定其左节点被触发,则可以在第一个队列中记录then1的左节点被第一次触发(如图8中第一个队列中的1),同时激活then1的右节点,由于then1的右节点连接的是y,所以可以注册子节点y所对应的原子围栏。269.检测到围栏节点x(触发源节点)被第二次触发,则x可以向then1上报其被触发。逻辑节点then1接收到x的上报后确定其左节点被触发,则可以在第一个队列中记录then1的左节点被第二次触发(如图8中第一个队列中的1’),同时激活then1的右节点。由于then1的右节点连接的是y,所以可以先判断右节点y对应的原子围栏为一次性围栏还是可重复围栏,若是一次性围栏则注册子节点y所对应的原子围栏;若右节点y对应的原子围栏为可重复围栏,则可以不用再次激活。270.检测到围栏节点w(触发源节点)被第一次触发,则w可以向then2上报其被触发。逻辑节点then2接收到w的上报后确定其左节点被触发,则可以在第五个队列中记录then2的左节点被第一次触发(如图8中第五个队列中的1),同时激活then2的右节点,由于then2的右节点连接的是z,所以可以注册子节点z所对应的原子围栏。271.检测到围栏节点y被第一次触发,则y可以向then1上报其被触发。逻辑节点then1接收到y的上报后确定其右节点被触发,则可以在第二个队列中记录then1的右节点被第一次触发(如图8中第二个队列中的1),确定then1被触发并向or上报。逻辑节点or接收到then1的上报后确定其左节点被触发,则确定or被触发,并在第三个队列中记录or的左节点被第一次触发的记录。而由于or为抽象语法树300的根节点,则可以确定300对应的组合围栏被触发。272.而后,若确定300对应的组合围栏为一次性围栏(也即300带有一次性标记),则进行如上的注销和信息删除(也即包括可以注销已经注册的对应于该组合围栏的全部原子围栏,删除抽象语法树300等信息)。若确定300对应的组合围栏为可重复围栏(也即300带有可重复标记),则可以如图8所示对每个队列中使得此次组合围栏被触发的记录标记(图8中贯穿每个队列的横线用于示意该标记),以免其干扰后续判断300是否被触发的过程;或者也可以删除使得此次组合围栏被触发的记录(也即删除图8中每个队列的被横线贯穿的触发记录)。而后开始进行针对抽象语法树300的下一轮是否被触发的检测。而后循环上述抽象语法树300检测过程,直至接收到注销该组合围栏的请求后,进行如上的注销和信息删除。273.图9示出根据本技术一实施例的电子设备的架构示意图。在一种可能的实现方式中,如图9所示,执行上述步骤s11-步骤s21的电子设备可以包括:业务组件41、组合围栏组件42和感知组件43。其中,业务组件41用于执行上述步骤s11-步骤s12,并将围栏信息转发至组合围栏组件42。组合围栏组件42和感知组件43用于执行上述步骤s13-步骤s21。274.其中,组合围栏组件42在执行步骤s13-步骤s21的过程中,确定出需要注册的原子围栏,并向感知组件43发出注册原子围栏的请求。感知组件43用于根据接收到的注册原子围栏的请求进行原子围栏的注册,并在检测到该已经注册的原子围栏被触发时,将原子围栏被触发的情况上报至组合围栏组件42。组合围栏组件42可以基于感知组件43上报的被触发的原子围栏更新抽象语法树的触发记录以及判断抽象语法树是否被触发,并在确定抽象语法树被触发后,向业务组件41上报抽象语法树被触发。业务组件41基于组合围栏组件42的上报确定抽象语法树被触发,并执行第一请求中指示的第一操作。275.其中,业务组件41还用于接收注销请求,确定出需要注销的目标组合围栏并向组合围栏组件42发出注销该目标组合围栏的指示。组合围栏组件42基于接收到的注销该目标组合围栏的指示向感知组件43发出注销与目标组合围栏相关的原子围栏的指示以及注销自身注册的目标组合围栏、删除目标组合围栏对应的抽象语法树的相关信息。感知组件43基于接收到的注销与目标组合围栏相关的原子围栏的指示,进行对应的原子围栏的注销。276.本技术还提供一种基于组合围栏的控制装置,该装置包括:277.请求接收模块,接收输入的用于注册组合围栏的第一请求,所述第一请求用于指示所述组合围栏的围栏信息,所述围栏信息包括逻辑连接符、多个原子围栏和所述所述组合围栏中的连接关系;278.语法树创建模块,根据所述围栏信息创建对应的抽象语法树,所述抽象语法树包括多个节点,所述多个节点包括对应于所述逻辑连接符的逻辑节点和对应于每个所述原子围栏的围栏节点;279.组合围栏创建模块,根据所述抽象语法树创建所述组合围栏。280.在一种可能的实现方式中,所述装置还可以包括:281.第一标记模块,根据确定的对应于所述组合围栏的触发模式标记所述抽象语法树;282.其中,所述围栏信息还包括触发模式。283.在一种可能的实现方式中,所述第一请求指示的所述围栏信息为应用程序接口api接口的输入参数。284.在一种可能的实现方式中,所述第一请求包括文本、音频、视频和图像中的任意一种,所述请求接收模块还用于执行以下任意一项操作:285.若所述第一请求为文本,则对所述文本进行语义分析,并根据语义分析的结果确定出所述组合围栏的围栏信息;286.若所述第一请求为音频或视频,则对所述音频或所述视频依次进行语音识别、语义分析,并根据识别以及分析的结果确定出所述组合围栏的围栏信息;287.若所述第一请求为图像,则对所述图像依次进行文字识别、语义分析,并根据识别以及分析的结果确定出所述组合围栏的围栏信息。288.在一种可能的实现方式中,所述装置还可以包括输入界面展示模块,用于基于接收到的界面展示请求,展示用于输入所述第一请求的输入界面,所述输入界面中显示有用于输入所述围栏信息的输入组件。289.在一种可能的实现方式中,所述装置还可以包括组合围栏示意界面展示模块,基于接收到的第二请求,展示组合围栏示意界面,所述组合围栏示意界面中包括以下至少一种:逻辑连接符的符号、逻辑连接符的作用、所支持的原子围栏的符号、所支持的原子围栏的用途、组合围栏示例、可选触发模式和可选重复次数。290.在一种可能的实现方式中,所述逻辑连接符包括然后、且、或、在前和括号中的至少一个,所述逻辑节点的类型包括然后类型、且类型、或类型、在前类型中的至少一个;291.其中,若确定所述然后类型的逻辑节点的两个子节点中的先注册的左节点被触发后注册的右节点也被触发,则确定所述然后类型的逻辑节点被触发;或者292.若确定所述且类型的逻辑节点的两个子节点中左节点和右节点均被触发,则确定所述且类型的逻辑节点被触发;或者293.若确定所述或类型的逻辑节点的两个子节点中的任意一个子节点被触发,则确定所述或类型的逻辑节点被触发;或者294.若确定所述在前类型的逻辑节点的两个子节点中的左节点被触发时右节点未被触发,则确定所述在前类型的逻辑节点被触发。295.在一种可能的实现方式中,组合围栏创建模块,可以包括:296.触发源节点确定子模块,根据与每个所述围栏节点存在连接关系的逻辑节点的类型,从所述多个围栏节点中确定出触发源节点;297.注册子模块,注册所述组合围栏中与所述触发源节点对应的原子围栏,以及激活所述抽象语法树。298.在一种可能的实现方式中,所述触发源节点包括所述多个围栏节点中满足以下任意一种条件的围栏节点:299.与所述围栏节点存在连接关系的每个逻辑节点的类型为且类型、或类型、在前类型中的任意一个;300.与所述围栏节点存在连接关系的所有逻辑节点中包括然后类型的逻辑节点、且所述围栏节点属于每个所述然后类型的逻辑节点的左节点。301.在一种可能的实现方式中,所述装置还可以包括:302.触发记录更新模块,若检测到任意一个已经注册的原子围栏被触发,则根据所述抽象语法树标记的触发模式、与所述被触发原子围栏对应的被触发围栏节点存在连接关系的逻辑节点的类型,更新所述抽象语法树的触发记录;303.其中,所述触发记录包括对应于每个的逻辑节点的记录。304.在一种可能的实现方式中,所述触发模式包括以下任意一种:并行触发、串行触发和抢占式触发。305.在一种可能的实现方式中,触发记录更新模块可以包括:306.第一子模块,若根据与所述被触发围栏节点存在连接关系的逻辑节点的类型和所述触发模式,确定所述被触发围栏节点需要记录,则在所述触发记录中新增与所述被触发围栏节点存在连接关系的逻辑节点的子节点被触发的记录;307.第二子模块,若根据与所述被触发围栏节点存在连接关系的逻辑节点的类型和所述被触发原子围栏,确定与所述被触发围栏节点存在连接关系的逻辑节点处于无法成功触发的状态,则注销无法成功触发的逻辑节点。308.在一种可能的实现方式中,所述第一子模块用于在所述与所述被触发围栏节点存在连接关系的第一逻辑节点的类型为然后类型时,执行以下至少一项操作:309.若所述触发模式为并行触发且上报的被触发节点为所述第一逻辑节点的左节点,则在所述触发记录中新增所述第一逻辑节点的左节点被触发的记录,以及激活所述第一逻辑节点的右节点;310.若所述触发模式为并行触发、上报的被触发节点为所述第一逻辑节点的右节点且所述触发记录中记录有对应所述第一逻辑节点的左节点被触发的记录,则确定所述第一逻辑节点被触发并在所述触发记录中新增所述第一逻辑节点的右节点被触发的记录;311.若所述触发模式为串行触发、上报的被触发节点为所述第一逻辑节点的左节点且所述第一逻辑节点被标记为可记录状态,则确定所述第一逻辑节点未被触发,并在所述触发记录中新增所述第一逻辑节点的左节点被触发的记录、以及激活所述第一逻辑节点的右节点;312.若所述触发模式为串行触发、上报的被触发节点为所述第一逻辑节点的右节点且所述第一逻辑节点被标记为等待状态,则确定所述第一逻辑节点被触发,并在所述触发记录中新增所述第一逻辑节点的右节点被触发的记录;313.若所述触发模式为抢占式触发且上报的被触发节点为所述第一逻辑节点的左节点,则确定所述第一逻辑节点并未被触发,并在所述触发记录中新增所述第一逻辑节点的左节点被触发的记录,以及激活所述第一逻辑节点的右节点;314.若所述触发模式为抢占式触发、上报的被触发节点为所述第一逻辑节点的右节点且所述触发记录中记录有所述第一逻辑节点的左节点被触发的记录,则确定所述第一逻辑节点被触发,并在所述触发记录中新增所述第一逻辑节点的右节点被触发的记录;315.若所述第一逻辑节点被触发、且所述第一逻辑节点并非所述抽象语法树的根节点,则向所述第一逻辑节点的父节点上报所述第一逻辑节点被触发;316.其中,所述被触发节点包括:所述被触发围栏节点、或者因所述被触发围栏节点的触发而被触发的逻辑节点。317.在一种可能的实现方式中,所述第一子模块还用于在所述与所述被触发围栏节点存在连接关系的第二逻辑节点的类型为且类型时,执行以下至少一项操作:318.若所述触发模式为并行触发、上报的被触发节点为所述第二逻辑节点的一个子节点、且所述触发记录中记录有所述第二逻辑节点的另一个子节点被触发的记录,则确定所述第二逻辑节点被触发,并在所述触发记录中新增所述第二逻辑节点的一个子节点被触发的记录;319.若所述触发模式为并行触发、上报的被触发节点为所述第二逻辑节点的一个子节点、且所述触发记录中并未记录有所述第二逻辑节点的另一个子节点被触发的记录,则确定所述第二逻辑节点未被触发,并在所述触发记录中新增所述第二逻辑节点的一个子节点被触发的记录;320.若所述触发模式为串行触发、上报的被触发节点为所述第二逻辑节点的一个子节点、所述第二逻辑节点被标记为等待状态且所述触发记录中记录有所述第二逻辑节点的另一个子节点被触发的记录,则确定所述第二逻辑节点被触发,并在所述触发记录中新增所述第二逻辑节点的一个子节点被触发的记录;321.若所述触发模式为串行触发、上报的被触发节点为所述第二逻辑节点的一个子节点且所述第二逻辑节点被标记为可记录状态,则确定所述第二逻辑节点并未被触发,并在所述触发记录中新增所述第二逻辑节点的一个子节点被触发的记录;322.若所述触发模式为抢占式触发、上报的被触发节点为所述第二逻辑节点的一个子节点、且所述触发记录中记录有所述第二逻辑节点的另一个子节点被触发的记录,则确定所述第二逻辑节点被触发,并在所述触发记录中新增所述第二逻辑节点的一个子节点被触发的记录;323.若所述触发模式为抢占式触发、上报的被触发节点为所述第二逻辑节点的一个子节点、且所述触发记录中并未记录有所述第二逻辑节点的另一个子节点被触发的记录,则确定所述第二逻辑节点并未被触发,并将所述触发记录中记录的所述第二逻辑节点的一个子节点被触发的历史记录替换为所述第二逻辑节点的一个子节点本次被触发的记录;324.若所述第二逻辑节点被触发、且所述第二逻辑节点并非所述抽象语法树的根节点,则向所述第二逻辑节点的父节点上报所述第二逻辑节点被触发;325.其中,所述被触发节点包括:所述被触发围栏节点、或者因所述被触发围栏节点的触发而被触发的逻辑节点。326.在一种可能的实现方式中,所述第一子模块还用于在所述与所述被触发围栏节点存在连接关系的第三逻辑节点的类型为在前类型时,执行以下至少一项操作:327.若所述触发模式为并行触发、上报的被触发节点为所述第三逻辑节点的左节点且所述触发记录中并未记录所述第三逻辑节点的右节点被触发的记录,则确定所述第三逻辑节点被触发,并在所述触发记录中新增所述第三逻辑节点的左节点被触发的记录;328.若所述触发模式为并行触发且上报的被触发节点为所述第三逻辑节点的右节点,则确定所述第三逻辑节点无法成功触发,注销所述第三逻辑节点,并在所述触发记录中新增所述第三逻辑节点被注销的记录;329.若所述触发模式为串行触发、上报的被触发节点为所述第三逻辑节点的左节点、所述第三逻辑节点被标记为可记录状态且所述触发记录中并未记录所述第三逻辑节点的右节点被触发的记录,则确定所述第三逻辑节点被触发,并在所述触发记录中新增所述第三逻辑节点的左节点被触发的记录;330.若所述触发模式为串行触发且上报的被触发节点为所述第三逻辑节点的右节点,则确定所述第三逻辑节点无法成功触发,注销所述第三逻辑节点,并在所述触发记录中新增所述第三逻辑节点被注销的记录;331.若所述触发模式为抢占式触发、上报的被触发节点为所述第三逻辑节点的左节点且所述触发记录中并未记录所述第三逻辑节点的右节点被触发的记录,则确定所述第三逻辑节点被触发,并在所述触发记录中新增所述第三逻辑节点的左节点被触发的记录;332.若所述触发模式为抢占式触发、上报的被触发节点为所述第三逻辑节点的右节点,则确定所述第三逻辑节点无法成功触发,注销所述第三逻辑节点,并在所述触发记录中新增所述第三逻辑节点被注销的记录;333.若所述第三逻辑节点被触发、且所述第三逻辑节点并非所述抽象语法树的根节点,则向所述第三逻辑节点的父节点上报所述第三逻辑节点被触发;334.其中,所述被触发节点包括:所述被触发围栏节点、或者因所述被触发围栏节点的触发而被触发的逻辑节点。335.在一种可能的实现方式中,所述第一子模块还用于在所述与所述被触发围栏节点存在连接关系的第四逻辑节点的类型为或类型时,执行以下至少一项操作:336.若所述触发模式为并行触发或抢占式触发、且上报的被触发节点为所述第四逻辑节点的子节点,则确定所述第四逻辑节点被触发,并在所述触发记录中新增所述第四逻辑节点的所述子节点被触发的记录;337.若所述触发模式为串行触发、上报的被触发节点为所述第四逻辑节点的子节点且所述第四逻辑节点被标记为可记录状态,则确定所述第四逻辑节点被触发,并在所述触发记录中新增所述第四逻辑节点的所述子节点被触发的记录;338.若所述第四逻辑节点被触发、且所述第四逻辑节点并非所述抽象语法树的根节点,则向所述第四逻辑节点的父节点上报所述第四逻辑节点被触发;339.其中,所述被触发节点包括:所述被触发围栏节点、或者因所述被触发围栏节点的触发而被触发的逻辑节点。340.在一种可能的实现方式中,所述装置还包括:341.第二标记模块,根据所述组合围栏的是否可重复,为所述抽象语法树添加可重复标记或一次性标记。342.在一种可能的实现方式中,若所述围栏信息中包括用于指示所述组合围栏是否可重复的围栏性质信息,则根据所述围栏性质信息确定所述组合围栏是否可重复;或者343.若所述围栏信息中无所述围栏性质信息,则根据所述围栏节点中每个围栏节点所对应的原子围栏是否可重复以及每个逻辑节点的是否可重复,确定出所述组合围栏是否可重复。344.在一种可能的实现方式中,所述装置还包括:345.触发确定模块,若确定所述抽象语法树的根节点被触发,则确定所述抽象语法树对应的组合围栏被触发。346.在一种可能的实现方式中,所述装置还包括触发后处理模块,用于执行以下任意一项操作:347.若确定所述组合围栏被触发、对应的所述抽象语法树携带有可重复标记、且所述触发模式为抢占式触发或串行触发,则注销所述抽象语法树中非触发源节点所对应的原子围栏、以及清空或标记当前所记录的触发记录,并继续进行针对所述抽象语法树的触发检测;若确定所述组合围栏被触发、对应的所述抽象语法树携带有可重复标记、且所述触发模式为并行触发,则继续进行针对所述抽象语法树的触发检测;若确定所述组合围栏被触发、对应的所述抽象语法树携带有一次性标记,则进行针对所述组合围栏的注销和信息删除;348.其中,所述针对所述组合围栏的注销和信息删除,包括以下至少一项操作:注销对应于所述组合围栏的已经注册的所有原子围栏,删除抽象语法树,删除对应于所述组合围栏的抽象语法树的触发记录。349.在一种可能的实现方式中,所述装置还包括节点注销后处理模块,用于执行以下任意一项操作:350.若确定被注销的逻辑节点使得所述抽象语法树无法被成功触发、无法被成功触发的所述抽象语法树携带有可重复标记、且所述触发模式为抢占式触发或串行触发,则注销所述抽象语法树中非触发源节点所对应的原子围栏、以及清空或标记当前所记录的触发记录,并继续进行针对所述抽象语法树的触发检测;351.若确定被注销的逻辑节点使得所述抽象语法树无法被成功触发、无法被成功触发的所述抽象语法树携带有可重复标记、且所述触发模式为并行触发,则删除或标记所述触发记录中所述被注销的逻辑节点对应的注销检测轮数下的每个节点的记录,并继续进行针对所述抽象语法树的触发检测;或者352.若确定被注销的逻辑节点使得所述抽象语法树无法被成功触发、且无法被成功触发的所述抽象语法树携带有一次性标记,则进行针对所述组合围栏的注销和信息删除。353.在一种可能的实现方式中,所述装置还包括:354.组合围栏注销模块,若接收到注销请求,则进行针对所述注销请求中指示的目标组合围栏的注销和信息删除;355.其中,所述注销请求用于指示需要注销的目标组合围栏。356.在一种可能的实现方式中,所述第一请求还用于指示所述组合围栏被触发后所需执行的第一操作,所述装置还包括:357.操作执行模块,若确定所述组合围栏被触发,则执行所述第一操作。358.其中,上述基于组合围栏的控制装置个模块、子模块的工作过程及原理参见上文基于组合围栏的控制方法部分的描述,此处不予赘述。359.本技术还提供一种电子设备,包括:360.第一api代理,用于接收输入的用于注册组合围栏的第一请求,并将所述第一请求用于指示所述组合围栏的围栏信息输入电子设备的api接口;361.第一操作系统,用于基于所述围栏信息执行实现上述方法的指令。362.本技术还提供一种服务器,其特征在于,包括:363.第二api代理,用于接收组合围栏的围栏信息,并将所述围栏信息输入所述服务器的api接口;364.第二操作系统,用于基于所述围栏信息执行实现上述方法的指令。365.图10示意了一种电子设备1000的结构示意图。上述方法可以应用于电子设备1000。366.电子设备1000可以包括手机、可折叠电子设备、平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobilepersonalcomputer,umpc)、上网本、蜂窝电话、个人数字助理(personaldigitalassistant,pda)、增强现实(augmentedreality,ar)设备、虚拟现实(virtualreality,vr)设备、人工智能(artificialintelligence,ai)设备、可穿戴式设备、车载设备、智能家居设备、或智慧城市设备中的至少一种。本技术实施例对该电子设备100的具体类型不作特殊限制。367.电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universalserialbus,usb)接头130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriberidentificationmodule,sim)卡接口195等。其中传感器模块180可以包括压力传感器180a,陀螺仪传感器180b,气压传感器180c,磁传感器180d,加速度传感器180e,距离传感器180f,接近光传感器180g,指纹传感器180h,温度传感器180j,触摸传感器180k,环境光传感器180l,骨传导传感器180m等。368.可以理解的是,本技术实施例示意的结构并不构成对电子设备100的具体限定。在本技术另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。369.其中,电子设备100的除处理器110之外的其他组成部分如传感器模块180可以用于进行原子围栏是否被触发的检测。处理器110可以用于执行上述方法。370.图11示意了一种基于组合围栏的控制装置1900的框图。例如,装置1900可以被提供为一服务器。参照图11,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。371.装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出(i/o)接口1958。装置1900可以操作基于存储在存储器1932的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或类似。372.在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由装置1900的处理组件1922执行以完成上述方法。373.本技术的实施例提供了一种基于组合围栏的控制装置,包括:处理器以及用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令时实现上述方法。374.本技术的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。375.本技术的实施例提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。376.计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(randomaccessmemory,ram)、只读存储器(readonlymemory,rom)、可擦式可编程只读存储器(electricallyprogrammableread-only-memory,eprom或闪存)、静态随机存取存储器(staticrandom-accessmemory,sram)、便携式压缩盘只读存储器(compactdiscread-onlymemory,cd-rom)、数字多功能盘(digitalvideodisc,dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。377.这里所描述的计算机可读程序指令或代码可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。378.用于执行本技术操作的计算机程序指令可以是汇编指令、指令集架构(instructionsetarchitecture,isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c 等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(localareanetwork,lan)或广域网(wideareanetwork,wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(field-programmablegatearray,fpga)或可编程逻辑阵列(programmablelogicarray,pla),该电子电路可以执行计算机可读程序指令,从而实现本技术的各个方面。379.这里参照根据本技术实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本技术的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。380.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。381.也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。382.附图中的流程图和框图显示了根据本技术的多个实施例的装置、系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。383.也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行相应的功能或动作的硬件(例如电路或asic(applicationspecificintegratedcircuit,专用集成电路))来实现,或者可以用硬件和软件的组合,如固件等来实现。384.尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其它变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其它单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。385.以上已经描述了本技术的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围的情况下,对于本
技术领域
:的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本
技术领域
:的其它普通技术人员能理解本文披露的各实施例。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献