设备的指令下发方法、装置和电子设备转让专利

申请号 : CN202011523102.3

文献号 : CN112714160B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘伟光周观武张之善刘新军

申请人 : 树根互联股份有限公司

摘要 :

本发明提供了一种设备的指令下发方法、装置和电子设备,涉及工业控制的技术领域,包括:获取待下发指令的设备集合和待下发的操作指令;接收用户的选择指令,并基于选择指令确定操作指令的触发规则;其中,触发规则包括预设设备识别规则中的至少一个设备识别规则;获取设备集合中所有设备的业务数据;基于触发规则和所有设备的业务数据确定待下发指令的目标设备;向目标设备发送操作指令。本发明方法允许用户从预设设备识别规则中选择至少一个设备识别规则作为操作指令的触发规则,实现了设备识别条件的灵活配置,从而有效的缓解了现有技术中设备的指令下发方法存在的灵活性差的技术问题。

权利要求 :

1.一种设备的指令下发方法,其特征在于,包括:获取待下发指令的设备集合和待下发的操作指令;

接收用户的选择指令,并基于所述选择指令确定所述操作指令的触发规则;其中,所述触发规则包括预设设备识别规则中的至少一个设备识别规则;

获取所述设备集合中所有设备的业务数据;

基于所述触发规则和所述所有设备的业务数据确定待下发指令的目标设备;所述目标设备的业务数据符合所述触发规则代表的设备识别条件;

向所述目标设备发送所述操作指令。

2.根据权利要求1所述的方法,其特征在于,在基于所述触发规则和所述所有设备的业务数据确定待下发指令的目标设备之后,所述方法还包括:判断是否要向所述目标设备的管理者发送指令下发通知;

若是,则获取所述操作指令的通知模板,并基于所述通知模板将所述指令下发通知发送至所述目标设备的管理者;其中,所述通知模板中包括所述操作指令的延迟执行时间;

在经过所述延迟执行时间之后,执行向所述目标设备发送所述操作指令的步骤;

若否,则在确定出所述目标设备之后,立即执行向所述目标设备发送所述操作指令的步骤。

3.根据权利要求1所述的方法,其特征在于,在基于所述触发规则和所述所有设备的业务数据确定待下发指令的目标设备之后,所述方法还包括:判断所述操作指令的下发是否需要进行审批;

若是,则获取所述操作指令的审批模板,并基于所述审批模板发起审批流程;其中,所述审批模板包括:审批节点名称,审批岗位和是否回退的选项;

在所述审批流程中的所有审批节点均审批通过之后,执行向所述目标设备发送所述操作指令的步骤;

若否,则在确定出所述目标设备之后,立即执行向所述目标设备发送所述操作指令的步骤。

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取所述设备集合中的所有设备调用业务数据的接口参数;其中,所述设备集合中所有的设备具有相同的接口参数,所述接口参数用于约束被调用的业务数据的属性;

基于所述接口参数确定设备识别规则业务对象的代码实现;

利用预设代码编译工具对所述代码实现进行编译,得到物理的类文件;

对所述类文件进行测试,并基于测试通过的类文件确定所述预设设备识别规则。

5.根据权利要求4所述的方法,其特征在于,基于所述选择指令确定所述操作指令的触发规则,包括:基于所述选择指令确定满足业务规则引擎语法规则的脚本文件;其中,所述脚本文件自动导入了所述触发规则;

利用所述业务规则引擎的脚本解析和编译方法对所述脚本文件进行编译,得到编译后的触发规则脚本文件;

若编译过程没有返回异常提示,则基于所述编译后的触发规则脚本文件确定所述操作指令的触发规则。

6.根据权利要求5所述的方法,其特征在于,基于所述触发规则和所述所有设备的业务数据确定待下发指令的目标设备,包括:调用预设规则执行接口,其中,所述预设规则执行接口封装了所述业务规则引擎的规则执行应用程序编程接口;

将每个设备的业务数据映射为对应的设备业务对象,并对每个所述设备业务对象进行初始化,得到每个设备对应的目标业务对象;

将所有目标业务对象发送至所述预设规则执行接口,以使所述预设规则执行接口调用所述编译后的触发规则脚本文件,以从所述设备集合中确定待下发指令的目标设备。

7.根据权利要求1所述的方法,其特征在于,获取所述设备集合中所有设备的业务数据,包括:基于预设设备识别周期自动获取所述设备集合中所有设备的业务数据。

8.一种设备的指令下发装置,其特征在于,包括:第一获取模块,用于获取待下发指令的设备集合和待下发的操作指令;

第一确定模块,用于接收用户的选择指令,并基于所述选择指令确定所述操作指令的触发规则;其中,所述触发规则包括预设设备识别规则中的至少一个设备识别规则;

第二获取模块,用于获取所述设备集合中所有设备的业务数据;

第二确定模块,用于基于所述触发规则和所述所有设备的业务数据确定待下发指令的目标设备;所述目标设备的业务数据符合所述触发规则代表的设备识别条件;

第一发送模块,用于向所述目标设备发送所述操作指令。

9.一种电子设备,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至7中任一项所述的方法的步骤。

10.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行权利要求1至7中任一项所述的方法。

说明书 :

设备的指令下发方法、装置和电子设备

技术领域

[0001] 本发明涉及工业控制的技术领域,尤其是涉及一种设备的指令下发方法、装置和电子设备。

背景技术

[0002] 在工业互联网租赁业务的场景中,为了控制风险往往租赁公司或者是设备厂商需要对设备享有一定的控制权,在资产产生不良的情况下,需要及时止损,停止设备的使用或者降低设备的可用性来迫使承租人继续履行还租义务,当义务达成时再对设备的可用性做恢复,这就是设备的锁机/解锁机操作。
[0003] 现有技术中,虽然通过触发识别规则来识别需要下发指令(例如锁机指令,解锁机指令)的设备,然后利用物联网技术对设备上安装的控制器下发指令,从而完成相应的设备端操作,但是配置这些识别规则的指标或者数据属性都是写死在代码中的,或者是很有限的抽象,不能满足客户变更识别规则的需求。
[0004] 综上所述,现有技术中设备的指令下发方法存在灵活性差的技术问题。

发明内容

[0005] 本发明的目的在于提供一种设备的指令下发方法、装置和电子设备,以缓解了现有技术中设备的指令下发方法存在的灵活性差的技术问题。
[0006] 第一方面,本发明提供一种设备的指令下发方法,包括:获取待下发指令的设备集合和待下发的操作指令;接收用户的选择指令,并基于所述选择指令确定所述操作指令的触发规则;其中,所述触发规则包括预设设备识别规则中的至少一个设备识别规则;获取所述设备集合中所有设备的业务数据;基于所述触发规则和所述所有设备的业务数据确定待下发指令的目标设备;向所述目标设备发送所述操作指令。
[0007] 在可选的实施方式中,在基于所述触发规则和所述所有设备的业务数据确定待下发指令的目标设备之后,所述方法还包括:判断是否要向所述目标设备的管理者发送指令下发通知;若是,则获取所述操作指令的通知模板,并基于所述通知模板将所述指令下发通知发送至所述目标设备的管理者;其中,所述通知模板中包括所述操作指令的延迟执行时间;在经过所述延迟执行时间之后,执行向所述目标设备发送所述操作指令的步骤;若否,则在确定出所述目标设备之后,立即执行向所述目标设备发送所述操作指令的步骤。
[0008] 在可选的实施方式中,在基于所述触发规则和所述所有设备的业务数据确定待下发指令的目标设备之后,所述方法还包括:判断所述操作指令的下发是否需要进行审批;若是,则获取所述操作指令的审批模板,并基于所述审批模板发起审批流程;其中,所述审批模板包括:审批节点名称,审批岗位和是否回退的选项;在所述审批流程中的所有审批节点均审批通过之后,执行向所述目标设备发送所述操作指令的步骤;若否,则在确定出所述目标设备之后,立即执行向所述目标设备发送所述操作指令的步骤。
[0009] 在可选的实施方式中,所述方法还包括:获取所述设备集合中的所有设备调用业务数据的接口参数;其中,所述设备集合中所有的设备具有相同的接口参数,所述接口参数用于约束被调用的业务数据的属性;基于所述接口参数确定设备识别规则业务对象的代码实现;利用预设代码编译工具对所述代码实现进行编译,得到物理的类文件;对所述类文件进行测试,并基于测试通过的类文件确定所述预设设备识别规则。
[0010] 在可选的实施方式中,基于所述选择指令确定所述操作指令的触发规则,包括:基于所述选择指令确定满足业务规则引擎语法规则的脚本文件;其中,所述脚本文件自动导入了所述触发规则;利用所述业务规则引擎的脚本解析和编译方法对所述脚本文件进行编译,得到编译后的触发规则脚本文件;若编译过程没有返回异常提示,则基于所述编译后的触发规则脚本文件确定所述操作指令的触发规则。
[0011] 在可选的实施方式中,基于所述触发规则和所述所有设备的业务数据确定待下发指令的目标设备,包括:调用预设规则执行接口,其中,所述预设规则执行接口封装了所述业务规则引擎的规则执行应用程序编程接口;将每个设备的业务数据映射为对应的设备业务对象,并对每个所述设备业务对象进行初始化,得到每个设备对应的目标业务对象;将所有目标业务对象发送至所述预设规则执行接口,以使所述预设规则执行接口调用所述编译后的触发规则脚本文件,以从所述设备集合中确定待下发指令的目标设备。
[0012] 在可选的实施方式中,获取所述设备集合中所有设备的业务数据,包括:基于预设设备识别周期自动获取所述设备集合中所有设备的业务数据。
[0013] 第二方面,本发明提供一种设备的指令下发装置,包括:第一获取模块,用于获取待下发指令的设备集合和待下发的操作指令;第一确定模块,用于接收用户的选择指令,并基于所述选择指令确定所述操作指令的触发规则;其中,所述触发规则包括预设设备识别规则中的至少一个设备识别规则;第二获取模块,用于获取所述设备集合中所有设备的业务数据;第二确定模块,用于基于所述触发规则和所述所有设备的业务数据确定待下发指令的目标设备;第一发送模块,用于向所述目标设备发送所述操作指令。
[0014] 第三方面,本发明提供一种电子设备,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述前述实施方式中任一项所述的方法的步骤。
[0015] 第四方面,本发明提供一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行前述实施方式中任一项所述的方法。
[0016] 现有技术中,往往通过人工触发识别规则来识别需要下发指令的设备,且配置这些识别规则的指标或者数据属性都是写死在代码中的,不能满足客户变更识别规则的需求,导致设备的指令下发方法执行效率低、灵活性差。本发明提供了一种设备的指令下发方法,包括:获取待下发指令的设备集合和待下发的操作指令;接收用户的选择指令,并基于选择指令确定操作指令的触发规则;其中,触发规则包括预设设备识别规则中的至少一个设备识别规则;获取设备集合中所有设备的业务数据;基于触发规则和所有设备的业务数据确定待下发指令的目标设备;向目标设备发送操作指令。本发明方法允许用户从预设设备识别规则中选择至少一个设备识别规则作为操作指令的触发规则,实现了设备识别条件的灵活配置,从而有效的缓解了现有技术中设备的指令下发方法存在的灵活性差的技术问题。

附图说明

[0017] 为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0018] 图1为本发明实施例提供的一种设备的指令下发方法的流程图;
[0019] 图2为本发明实施例提供的一种设备指令下发的客户端的可视化配置界面的示意图;
[0020] 图3为本发明实施例提供的一种基于选择指令确定操作指令的触发规则的流程图;
[0021] 图4为本发明实施例提供的一种设备的指令下发装置的功能模块图;
[0022] 图5为本发明实施例提供的一种电子设备的示意图。

具体实施方式

[0023] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
[0024] 因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0025] 下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
[0026] 现有技术中,如果是人工通过数据筛选的方式识别需要下发指令的设备,然后再导入到指令任务清单中走流程处理的话,不能保证指令下发的时效性,而且也会导致工作人员的任务量大,且人为干预过多,不能严格执行风险管理部的风控规则。
[0027] 但是即便是通过触发识别规则来识别需要下发指令的设备,配置这些识别规则的指标或者数据属性也都是写死在代码中的,或者是很有限的抽象,不能满足客户变更识别规则的需求。也就是说,现有技术虽然能够配置设备识别规则但不充分,但也只是实现了很有限的配置,对于不同种设备和客户的要求都要开发人员做一次指标抽象,需要编码实现后,再由客户完成配置,这些配置的结果也很少用到规则引擎去做处理,而是自己写的规则执行逻辑,都是些java逻辑,而不是规则脚本不能离线编辑,且执行效率和稳定性不高。有鉴于此,本发明实施例提供了一种设备的指令下发方法,用以缓解上文中所提出的技术问题。
[0028] 实施例一
[0029] 图1为本发明实施例提供的一种设备的指令下发方法的流程图,如图1所示,该方法具体包括如下步骤:
[0030] 步骤S102,获取待下发指令的设备集合和待下发的操作指令。
[0031] 具体的,本发明实施例提供的设备的指令下发方法应用于设备指令下发的客户端,该客户端可以提供可视化的指令下发配置界面,从而用户通过可视化界面来配置设备的指令下发方法;若客户端无可视化配置界面,用户也可以通过发送指令的方式来配置设备的指令下发方法。
[0032] 方法运行时,首先要获取待下发指令的设备集合和待下发的操作指令。在本发明实施例中,用户可以选择某一类设备统一配置指令的下发方法,也即,该类设备可以适用同一套设备识别规则,设备类型是用户自己配置,需要和后续上传的业务数据中的设备类型做对应。因此,若用户选择同时对某类型的多个设备配置指令下发方法,上述多个设备即组成了待下发指令的设备集合。
[0033] 待下发的操作指令可以根据用户实际需求进行配置,例如,针对工业互联网租赁领域,待下发的操作指令包括:锁机指令,解锁机指令,本发明方法还支持配置操作指令的操作等级,操作等级用于表示操作指令的执行程度,例如,若待下发指令为锁机指令,锁机指令对应的操作等级可以设置一级指令,二级指令,三级指令等,不同的操作等级代表不同的锁机级别。这些都是和具体的设备的硬件指令集相关的,需要在配置功能中配置指令集来做支持,客户端是选择引用。
[0034] 例如,对于商用的移动工程设备而言,有可能一级锁机指令是直接锁死,设备不能移动,二级锁机指令是限速30公里,可以保障设备移动到安全的地点;其他的操作指令也是类似的,当然对于不同的设备配置的一级、二级或者三级的指令也可以是不同的。
[0035] 步骤S104,接收用户的选择指令,并基于选择指令确定操作指令的触发规则。
[0036] 在获取到待下发指令的设备集合和待下发的操作指令之后,接下来还需要进一步确定操作指令的触发规则,其中,触发规则包括预设设备识别规则中的至少一个设备识别规则;上述设备识别规则与待下发指令的设备集合中设备的业务数据相关,如果设备的业务数据是具有金融属性的数据,那么设备识别规则可以与逾期和风险等级等相关。
[0037] 本发明实施例允许用户从预设设备识别规则中选择至少一个设备识别规则作为操作指令的触发规则,若设备指令下发的客户端具备可视化界面,那么可以将上述预设设备识别规则置于一个下拉菜单中,用户可以根据实际需求进行选择,进而客户端接收用户的选择指令,确定上述操作指令的触发规则。也即,利用本发明方法,用户可以灵活地配置设备识别的条件(触发规则)。
[0038] 步骤S106,获取设备集合中所有设备的业务数据。
[0039] 步骤S108,基于触发规则和所有设备的业务数据确定待下发指令的目标设备。
[0040] 步骤S110,向目标设备发送操作指令。
[0041] 在获取到用户配置的触发规则以及待下发指令的设备集合中所有设备的业务数据后,利用上述业务数据可以识别出哪些设备的业务数据符合上述触发规则代表的设备识别条件,从而确定出待下发指令的目标设备,如果用户不配置其余指令下发条件,则直接向目标设备发送操作指令,完成设备的指令下发流程。上文中已经介绍了所有的操作指令均可配置相应的操作等级,如果为待下发的操作指令配置了相应的操作等级,则向目标设备发送操作指令即代表向目标设备发送相应操作等级的操作指令。
[0042] 现有技术中,往往通过人工触发识别规则来识别需要下发指令的设备,且配置这些识别规则的指标或者数据属性都是写死在代码中的,不能满足客户变更识别规则的需求,导致设备的指令下发方法执行效率低、灵活性差。本发明提供了一种设备的指令下发方法,包括:获取待下发指令的设备集合和待下发的操作指令;接收用户的选择指令,并基于选择指令确定操作指令的触发规则;其中,触发规则包括预设设备识别规则中的至少一个设备识别规则;获取设备集合中所有设备的业务数据;基于触发规则和所有设备的业务数据确定待下发指令的目标设备;向目标设备发送操作指令。本发明方法允许用户从预设设备识别规则中选择至少一个设备识别规则作为操作指令的触发规则,实现了设备识别条件的灵活配置,从而有效的缓解了现有技术中设备的指令下发方法存在的灵活性差的技术问题。
[0043] 上文中对本发明实施例提供的设备的指令下发方法进行了简要的描述,下面对其中涉及的一些方法步骤以及基于上述方法进行改进的其他方法流程进行具体介绍。
[0044] 在一个可选的实施方式中,上述步骤S106,获取设备集合中所有设备的业务数据,包括:基于预设识别周期自动获取设备集合中所有设备的业务数据。
[0045] 为了提高指令下发方法的执行效率,无需人工触发设备识别,本发明实施例还支持配置预设识别周期,从而自动的周期性的获取设备集合中所有设备的业务数据,本发明实施例不对上述预设识别周期进行具体限定,用户可以根据实际需求进行配置,例如,可以配置每天若干个固定时间点进行设备识别,或者配置每周进行一次设备识别。
[0046] 在一个可选的实施方式中,在步骤S108,基于触发规则和所有设备的业务数据确定待下发指令的目标设备之后,本发明方法还包括如下步骤:
[0047] 步骤S1091,判断是否要向目标设备的管理者发送指令下发通知。
[0048] 若是,则执行步骤S1092至步骤S1093;若否,则执行步骤S1094。
[0049] 步骤S1092,获取操作指令的通知模板,并基于通知模板将指令下发通知发送至目标设备的管理者。
[0050] 步骤S1093,在经过延迟执行时间之后,执行向目标设备发送操作指令的步骤。
[0051] 步骤S1094,在确定出目标设备之后,立即执行向目标设备发送操作指令的步骤。
[0052] 具体的,在确定待下发指令的目标设备之后,客户端还可以进一步判断是否要向目标设备的管理者发送指令下发通知,上述判断结果取决于用户在客户端配置操作,如果用户选择了“是”,则客户端还需获取操作指令的通知模板,其中,通知模板中包括操作指令的延迟执行时间。上述通知模板中可以用${}的方式引用业务数据,在通知发送的时候平台(客户端后台)会通过业务对象传参的方式,重新依据通知模板组织发送的消息内容,基于通知模板将指令下发通知发送至目标设备的管理者。接下来,经过通知模板中配置的延迟执行时间之后,再执行向目标设备发送操作指令的步骤。
[0053] 例如,通知模板的内容为:尊敬的${CustomerName}先生/女士,您正在使用的${deviceName}设备由于租金逾期,将在${doneTime}分钟后执行${commandLevel}动作,请提前妥善安置设备,或者及时打款${amt}元用于归还租金,如有问题请及时联系${callCenterNumber},这个例子中的{}里边的业务参数是通过程序识别并填写的具体数据。
[0054] 如果用户选择了“否”,则在确定出目标设备之后,客户端立即执行向目标设备发送操作指令的步骤。也就是说,识别出目标设备之后,不需要通知目标设备的管理者,客户端直接向目标设备发送预先配置的操作指令。
[0055] 在一个可选的实施方式中,在步骤S108,基于触发规则和所有设备的业务数据确定待下发指令的目标设备之后,本发明方法还包括如下步骤:
[0056] 步骤S109a,判断操作指令的下发是否需要进行审批。
[0057] 若是,则执行步骤S109b至步骤S109c;若否,则执行步骤S109d。
[0058] 步骤S109b,获取操作指令的审批模板,并基于审批模板发起审批流程。
[0059] 步骤S109c,在审批流程中的所有审批节点均审批通过之后,执行向目标设备发送操作指令的步骤。
[0060] 步骤S109d,在确定出目标设备之后,立即执行向目标设备发送操作指令的步骤。
[0061] 具体的,如果对设备草率的下发锁机指令,则极有可能会给设备管理者或者设备承租人带来经济损失,因此在确定待下发指令的目标设备之后,客户端还可以进一步判断操作指令的下发是否需要进行审批,上述判断结果也取决于用户在客户端配置操作,如果用户选择了“是”,则客户端还需要获取操作指令的审批模板,然后根据审批模板中配置的审批内容发起审批流程,待所有审批节点都审批通过之后,再执行向目标设备发送操作指令的步骤。其中,审批模板包括:审批节点名称,审批岗位和是否回退的选项。用户可以根据实际需求在审批模板中设置至少一级审批,本发明实施例不对其进行具体限制。
[0062] 例如,审批模板中设置两级审批,其审批节点名称可以分别为任务复核和任务审批,审批岗位相应的分别为指令下复核岗和指令下审批岗,是否回退的选项是为每一级审批对象提供的两种审批选项。
[0063] 如果用户选择了“否”,则在确定出目标设备之后,客户端立即执行向目标设备发送操作指令的步骤。也就是说,识别出目标设备之后,不用额外发起审批流程,客户端直接向目标设备发送预先配置的操作指令。
[0064] 实际使用中,在目标设备确定之后,如果既要向目标设备的管理者发送指令下发通知,也要发起审批流程,那么指令下发通知可以与审批流程同时发起,待审批流程结束且同时满足延迟执行时间之后才控制目标设备执行预先配置的操作指令;如果审批未结束(存在回退或者有未审批的节点),但是已满足延迟执行时间,用户可以根据实际情况选择是否向目标设备发送上述操作指令;或者,如果既要向目标设备的管理者发送指令下发通知,也要发起审批流程,那么可以设置在审批流程结束之后再向目标设备的管理者发送指令下发通知。本发明实施例不对上述两种额外流程(指令下发通知和审批)的执行逻辑进行具体限制。
[0065] 图2为本发明实施例提供的一种设备指令下发的客户端的可视化配置界面的示意图,图2中,设备分类选择之后,通过在设备名称的二级菜单中复选多个设备,即可完成待下发指令的设备集合的构建,图2中的“操作类型”即代表上文中描述的待下发的操作指令,图2中的每一行“规则指标”即代表上文中描述的设备识别规则,图2中示例的触发规则是3种设备识别规则相“与”的关系,用户可以根据实际需求设置设备识别规则之间的逻辑关系,本发明实施例不对其进行具体限制。图2中“发送通知后多久执行”即代表上文中的延迟执行时间,图2中“短信模板”即代表上文中的通知模板,图2中“任务生成周期”即代表上文中的预设识别周期。
[0066] 在本发明实施例中,每一种设备识别规则还允许用户进行灵活配置,例如,用户可以通过选择比较运算符和设置比较内容来配置“逾期天数”、“逾期金额”和“客户类型”这3种设备识别规则,也即,任意一个设备识别规则都可以通过选择比较运算符和设置比较内容来灵活配置。
[0067] 在一个可选的实施方式中,本发明方法还包括如下步骤:
[0068] 步骤S201,获取设备集合中的所有设备调用业务数据的接口参数。
[0069] 具体的,在本发明实施中,用户通过定义接口参数的方式来约束上传到平台的业务数据,因此,为了配置设备识别规则,首先需要获取设备集合中的所有设备调用业务数据的接口参数,其中,设备集合中所有的设备具有相同的接口参数,接口参数用于约束被调用的业务数据的属性,针对数字型的业务数据,接口参数还应约束被调用的业务数据的范围和枚举值等。在接口调用访问数据的时候也会通过这些配置内容来校验上传数据的合法性。
[0070] 步骤S202,基于接口参数确定设备识别规则业务对象的代码实现。
[0071] 在确定了接口参数之后,平台将上述接口参数组织为设备识别规则业务对象,作为操作业务数据和调用规则时传值使用,平台引用开源的代码生成实现类,得到设备识别规则业务对象的代码实现,并将生成的代码保存在内存中。可选的,可以按照java语言的规则生成java代码实现。
[0072] 步骤S203,利用预设代码编译工具对代码实现进行编译,得到物理的类文件。
[0073] 在得到设备识别规则业务对象的代码实现之后,在上述代码实现中可以根据代码生成的模板自动生成赋值和读取属性的方法,利用预设代码编译工具对这段代码做编译生成物理的类文件,并保存在指定的物理路径下。
[0074] 步骤S204,对类文件进行测试,并基于测试通过的类文件确定预设设备识别规则。
[0075] 得到类文件之后,调用该类的构造函数对类文件进行测试,如有异常提示,则需要根据提示返回重新配置过程,直至重新配置的类文件能够通过测试,如果没有抛出异常,表示测试通过,并基于测试通过的类文件确定预设设备识别规则。
[0076] 针对上述步骤S202至步骤S204,本发明实施例还提供了以下的一种可选实施方式,平台将接口参数组织为设备识别规则业务对象,作为操作业务数据和调用规则时传值使用,然后,平台通过CharSequenceJavaFileObject保存Java Code,其中自动实现get和set属性的方法,提供方法给JavaCompiler,获取文件内容的依据是FreeMarker Template Language(FTL)编写的代码结构模板,生成String形式的Java Code,并通过JavaCompiler完成编译的Class文件通过CIassFileManage保存在指定JavaClassObject对象中,并调用构造函数完成测试,然后基于测试通过的Class文件确定预设设备识别规则。上述预设设备识别规则的确定方法极大的增强了平台对于设备识别规则配置的灵活性和可扩展性。
[0077] 在一个可选的实施方式中,如图3所示,上述步骤S104中,基于选择指令确定操作指令的触发规则,具体包括如下步骤:
[0078] 步骤S1041,基于选择指令确定满足业务规则引擎语法规则的脚本文件;其中,脚本文件自动导入了触发规则。
[0079] 具体的,可视化的客户端在基于用户的选择指令确定操作指令的触发规则时,可以理解为用户自图2中的S区域中的下拉菜单选择接口属性,也就是设备识别规则业务对象的规则指标、比较运算符、比较内容和更多条件(逻辑运算符)组织一组规则,平台会根据配置的内容自动生成满足业务规则引擎语法规则的脚本文件(例如drools(一种开源的业务规则引擎)语法规则的*.dr脚本),具体为通过调用业务规则引擎提供的自动生成脚本文件的方法生成脚本文件,生成的脚本文件中自动导入了所有用到的设备识别规则业务对象,后续的传参就通过导入的设备识别规则业务对象来实现的,上述脚本文件需要根据实际配置放到指定的路径下。
[0080] 若业务规则引擎为drools,则可以通过调用平台的TaskDiscernment.ProduceScript(String ruleName,String package)自动生成脚本文件,该方法封装了drools语法解析器,生成的脚本中自动import了设备识别规则业务对象。
[0081] 步骤S1042,利用业务规则引擎的脚本解析和编译方法对脚本文件进行编译,得到编译后的触发规则脚本文件。
[0082] 得到导入了触发规则的脚本文件之后,平台通过业务规则引擎提供的脚本解析和编译方法对上述脚本文件进行编译,得到编译后的触发规则脚本文件,也即,生成编译后的规则包和规则脚本对象,将编译好的规则包和规则脚本对象加载到内存中可供平台应用程序使用。
[0083] 步骤S1043,若编译过程没有返回异常提示,则基于编译后的触发规则脚本文件确定操作指令的触发规则。
[0084] 本发明实施例需要通过返回异常提示的方法获取编译过程出现问题,并将出现的问题打入到日志文件中,也即,在日志查询中可以找到脚本文件编译出现的问题,如果没有抛出异常则证明规则配置完成,平台可以根据编译后的触发规则脚本文件确定操作指令的触发规则。
[0085] 若业务规则引擎为drools,针对上述步骤S1042,平台通过Drools提供的KnowledgeBuilder对脚本文件进行编译,生成编译后的规则包和KnowledgePackage对象加载到内存中供平台应用程序使用,而步骤S1043中则通过getErrors()方法获取编译过程出现的问题。
[0086] 在一个可选的实施方式中,上述步骤S108,基于触发规则和所有设备的业务数据确定待下发指令的目标设备,具体包括如下步骤:
[0087] 步骤S1081,调用预设规则执行接口。其中,预设规则执行接口封装了业务规则引擎的规则执行应用程序编程接口。
[0088] 具体的,在基于触发规则和所有设备的业务数据确定待下发指令的目标设备的过程中,首先需要调用平台封装的预设规则执行接口,该接口封装了业务规则执行引擎中提供的规则执行API(Application Programming Interface,应用程序编程接口),该接口为平台实现的TaskDiscernment.Execution()。
[0089] 步骤S1082,将每个设备的业务数据映射为对应的设备业务对象,并对每个设备业务对象进行初始化,得到每个设备对应的目标业务对象。
[0090] 在本发明实施例中,封装实现中首先将待下发指令的设备集合中每个设备的业务数据映射为对应的设备业务对象,并对每个设备业务对象的属性做赋值和初始化,得到每个设备对应的目标业务对象。
[0091] API实现中首先对每个设备的业务数据做业务对象实例化和初始化,采用java的反射机制初始化对象,作为对象集合参数传值用,平台的实现为TaskDiscernment.initBizObj(String devTye)。
[0092] 步骤S1083,将所有目标业务对象发送至预设规则执行接口,以使预设规则执行接口调用编译后的触发规则脚本文件,以从设备集合中确定待下发指令的目标设备。
[0093] 在得到每个设备对应的目标业务对象之后,将所有目标业务对象发送至预设规则执行接口(例如drools的API中),以使预设规则执行接口调用编译后的触发规则脚本文件,并对编译后的触发规则脚本文件中的变量做赋值,然后执行该脚本,以获得规则筛选之后的目标设备列表。
[0094] 若业务规则引擎为drools,该步骤可理解为,平台从内存中获得KnowledgePackage对象,创建StatefulKnowledgeSession对象,并执行编译后的触发规则脚本文件,以从设备集合中确定待下发指令的目标设备。
[0095] 综上所述,本发明实施例提供的设备的指令下发方法,极大的增强了设备识别规则配置的灵活性和可扩展性,提高了指令下发方法的执行效率,不仅适用于租赁平台的解锁机指令下发的规则配置中,还可以应用于更广泛的规则配置的场景中,可以为其他应用中需要规则配置的实现提供工具支持。
[0096] 实施例二
[0097] 本发明实施例还提供了一种设备的指令下发装置,该设备的指令下发装置主要用于执行上述实施例一所提供的设备的指令下发方法,以下对本发明实施例提供的设备的指令下发装置做具体介绍。
[0098] 图4是本发明实施例提供的一种设备的指令下发装置的功能模块图,如图4所示,该装置主要包括:第一获取模块10,第一确定模块20,第二获取模块30,第二确定模块40,第一发送模块50,其中:
[0099] 第一获取模块10,用于获取待下发指令的设备集合和待下发的操作指令。
[0100] 第一确定模块20,用于接收用户的选择指令,并基于选择指令确定操作指令的触发规则;其中,触发规则包括预设设备识别规则中的至少一个设备识别规则。
[0101] 第二获取模块30,用于获取设备集合中所有设备的业务数据。
[0102] 第二确定模块40,用于基于触发规则和所有设备的业务数据确定待下发指令的目标设备。
[0103] 第一发送模块50,用于向目标设备发送操作指令。
[0104] 现有技术中,往往通过人工触发识别规则来识别需要下发指令的设备,且配置这些识别规则的指标或者数据属性都是写死在代码中的,不能满足客户变更识别规则的需求,导致设备的指令下发方法执行效率低、灵活性差。本发明提供了一种设备的指令下发装置,包括:第一获取模块10,用于获取待下发指令的设备集合和待下发的操作指令;第一确定模块20,用于接收用户的选择指令,并基于选择指令确定操作指令的触发规则;其中,触发规则包括预设设备识别规则中的至少一个设备识别规则;第二获取模块30,用于获取设备集合中所有设备的业务数据;第二确定模块40,用于基于触发规则和所有设备的业务数据确定待下发指令的目标设备;第一发送模块50,用于向目标设备发送操作指令。本发明装置允许用户从预设设备识别规则中选择至少一个设备识别规则作为操作指令的触发规则,实现了设备识别条件的灵活配置,从而有效的缓解了现有技术中设备的指令下发方法存在的灵活性差的技术问题。
[0105] 可选的,该装置还包括:
[0106] 第一判断模块,用于判断是否要向目标设备的管理者发送指令下发通知。
[0107] 第二发送模块,若是,则获取操作指令的通知模板,并基于通知模板将指令下发通知发送至目标设备的管理者;其中,通知模板中包括操作指令的延迟执行时间。
[0108] 第三发送模块,在经过延迟执行时间之后,执行向目标设备发送操作指令的步骤。
[0109] 第四发送模块,若否,则在确定出目标设备之后,立即执行向目标设备发送操作指令的步骤。
[0110] 可选的,该装置还包括:
[0111] 第二判断模块,用于判断操作指令的下发是否需要进行审批。
[0112] 审批发起模块,若是,则获取操作指令的审批模板,并基于审批模板发起审批流程;其中,审批模板包括:审批节点名称,审批岗位和是否回退的选项。
[0113] 第一执行模块,用于在审批流程中的所有审批节点均审批通过之后,执行向目标设备发送操作指令的步骤。
[0114] 第二执行模块,若否,则在确定出目标设备之后,立即执行向目标设备发送操作指令的步骤。
[0115] 可选的,该装置还包括:
[0116] 第三获取模块,用于获取设备集合中的所有设备调用业务数据的接口参数;其中,设备集合中所有的设备具有相同的接口参数,接口参数用于约束被调用的业务数据的属性。
[0117] 第三确定模块,用于基于接口参数确定设备识别规则业务对象的代码实现。
[0118] 编译模块,用于利用预设代码编译工具对代码实现进行编译,得到物理的类文件。
[0119] 第四确定模块,用于对类文件进行测试,并基于测试通过的类文件确定预设设备识别规则。
[0120] 可选的,第一确定模块20具体用于:
[0121] 基于选择指令确定满足业务规则引擎语法规则的脚本文件;其中,脚本文件自动导入了触发规则。
[0122] 利用业务规则引擎的脚本解析和编译方法对脚本文件进行编译,得到编译后的触发规则脚本文件。
[0123] 若编译过程没有返回异常提示,则基于编译后的触发规则脚本文件确定操作指令的触发规则。
[0124] 可选的,第二确定模块40具体用于:
[0125] 调用预设规则执行接口,其中,预设规则执行接口封装了业务规则引擎的规则执行应用程序编程接口。
[0126] 将每个设备的业务数据映射为对应的设备业务对象,并对每个设备业务对象进行初始化,得到每个设备对应的目标业务对象。
[0127] 将所有目标业务对象发送至预设规则执行接口,以使预设规则执行接口调用编译后的触发规则脚本文件,以从设备集合中确定待下发指令的目标设备。
[0128] 可选的,第二获取模块30,具体用于:基于预设设备识别周期自动获取设备集合中所有设备的业务数据。
[0129] 实施例三
[0130] 参见图5,本发明实施例提供了一种电子设备,该电子设备包括:处理器60,存储器61,总线62和通信接口63,所述处理器60、通信接口63和存储器61通过总线62连接;处理器
60用于执行存储器61中存储的可执行模块,例如计算机程序。
[0131] 其中,存储器61可能包含高速随机存取存储器(RAM,RandomAccessMemory),也可能还包括非不稳定的存储器(non‑volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口63(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
[0132] 总线62可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
[0133] 其中,存储器61用于存储程序,所述处理器60在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器60中,或者由处理器60实现。
[0134] 处理器60可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器60中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器60可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field‑Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器61,处理器60读取存储器61中的信息,结合其硬件完成上述方法的步骤。
[0135] 本发明实施例所提供的一种设备的指令下发方法、装置和电子设备的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
[0136] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0137] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0138] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0139] 在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0140] 此外,术语“水平”、“竖直”、“悬垂”等术语并不表示要求部件绝对水平或悬垂,而是可以稍微倾斜。如“水平”仅仅是指其方向相对“竖直”而言更加水平,并不是表示该结构一定要完全水平,而是可以稍微倾斜。
[0141] 在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0142] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。