CN112306637B - 脚本扩展方法、装置、计算机设备和存储介质 - Google Patents
脚本扩展方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112306637B CN112306637B CN202011227806.6A CN202011227806A CN112306637B CN 112306637 B CN112306637 B CN 112306637B CN 202011227806 A CN202011227806 A CN 202011227806A CN 112306637 B CN112306637 B CN 112306637B
- Authority
- CN
- China
- Prior art keywords
- script
- execution
- task
- engine
- executing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000013515 script Methods 0.000 title claims abstract description 323
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000004590 computer program Methods 0.000 claims description 26
- 230000006870 function Effects 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 9
- 230000002618 waking effect Effects 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 3
- 230000007958 sleep Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000005059 dormancy Effects 0.000 description 5
- 238000007796 conventional method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000005265 energy consumption Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241000282326 Felis catus Species 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
- G06F9/45512—Command shells
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及一种脚本扩展方法、装置、计算机设备和存储介质。所述方法包括:加载扩展脚本;所述扩展脚本是用于实现定制化功能的预先编写的脚本;通过脚本解释器,将所述扩展脚本解释成执行任务引擎所能识别的执行任务命令;通过虚拟通道将所述执行任务命令发送至所述执行任务引擎;通过所述执行任务引擎执行所述执行任务命令,生成执行结果并返回至所述虚拟通道;将所述执行结果通过所述虚拟通道返回至规则引擎,以与外部进行交互。采用本方法能够节约硬件成本。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种脚本扩展方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,相关技术人员为了实现通信设备与外部设备的交互,通常需要给通信设备定制相关功能。实现给通信设备定制相关功能的传统方法,要么是通过在开放式计算机***中加入与定制的相关功能对应的代码这种方法来实现,要么是通过增加微控制单元这种方法来实现。
在开放式计算机***中加入与定制的相关功能对应的代码这种传统方法,对内存以及闪存的要求较高。通过增加微控制单元这种传统方法,则需要额外购置微控制单元。所以,传统方法都需要较高的硬件成本。
发明内容
基于此,有必要针对上述技术问题,提供一种能够节省硬件成本的脚本扩展方法、装置、计算机设备和存储介质。
一种脚本扩展方法,所述方法包括:
加载扩展脚本;所述扩展脚本是用于实现定制化功能的预先编写的脚本;
通过脚本解释器,将所述扩展脚本解释成执行任务引擎所能识别的执行任务命令;
通过虚拟通道将所述执行任务命令发送至所述执行任务引擎;
通过所述执行任务引擎执行所述执行任务命令,生成执行结果并返回至所述虚拟通道;
将所述执行结果通过所述虚拟通道返回至规则引擎,以与外部进行交互。
在其中一个实施例中,所述方法还包括:
通过规则引擎执行开机脚本;
在执行开机脚本后,通过所述规则引擎检测是否存在待执行的扩展脚本;
当检测到存在待执行的所述扩展脚本时,则执行所述加载所述扩展脚本的步骤以及后续步骤,直至将所述执行结果通过所述虚拟通道返回至规则引擎,以实现对所述扩展脚本的执行。
在其中一个实施例中,所述方法还包括:
若待执行的扩展脚本为多个,则
在执行当前的扩展脚本后、且达到预设时间间隔时,将下一个扩展脚本作为当前的扩展脚本,返回执行所述加载所述扩展脚本的步骤以及后续步骤,以执行所述下一个扩展脚本。
在其中一个实施例中,所述方法还包括:
当检测到不存在待执行的所述扩展脚本时,则通过所述规则引擎执行休眠脚本,以进入休眠状态。
在其中一个实施例中,所述方法还包括:
进入休眠状态后,通过所述规则引擎继续检测是否存在待执行的扩展脚本;当检测到存在待执行的扩展脚本时,则
执行唤醒脚本,并在唤醒后,返回执行所述加载所述扩展脚本的步骤。
在其中一个实施例中,所述通过虚拟通道将所述执行任务命令发送至所述执行任务引擎之后,所述方法还包括:
若所述执行任务命令的字段为所述执行任务引擎所能识别的字段,则执行所述通过所述执行任务引擎执行所述执行任务命令的步骤;
当所述执行任务命令的字段包含所述执行任务引擎无法识别的字段,则通过所述虚拟通道通知脚本解释器对所述扩展脚本重新解析。
在其中一个实施例中,针对一个扩展脚本解释得到的执行任务命令为多个;
所述通过所述执行任务引擎执行所述执行任务命令,生成执行结果包括:
在通过所述执行任务引擎执行多个所述执行任务命令的过程中,将针对在先的目标执行任务命令的输出,重定向为下一条执行任务命令的输入,直至执行完多个所述执行任务命令,生成执行结果;
其中,所述在先的目标执行任务命令,是在先已执行完的、且需要将输出做重定向输入的执行任务命令。
一种脚本扩展装置,所述装置包括:
加载模块,用于加载扩展脚本;所述扩展脚本是用于实现定制化功能的预先编写的脚本;
解释模块,用于通过脚本解释器,将所述扩展脚本解释成执行任务引擎所能识别的执行任务命令;
发送模块,用于通过虚拟通道将所述执行任务命令发送至所述执行任务引擎;
生成模块,用于通过所述执行任务引擎执行所述执行任务命令,生成执行结果并返回至所述虚拟通道;
返回模块,用于将所述执行结果通过所述虚拟通道返回至规则引擎,以与外部进行交互。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
加载扩展脚本;所述扩展脚本是用于实现定制化功能的预先编写的脚本;
通过脚本解释器,将所述扩展脚本解释成执行任务引擎所能识别的执行任务命令;
通过虚拟通道将所述执行任务命令发送至所述执行任务引擎;
通过所述执行任务引擎执行所述执行任务命令,生成执行结果并返回至所述虚拟通道;
将所述执行结果通过所述虚拟通道返回至规则引擎,以与外部进行交互。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
加载扩展脚本;所述扩展脚本是用于实现定制化功能的预先编写的脚本;
通过脚本解释器,将所述扩展脚本解释成执行任务引擎所能识别的执行任务命令;
通过虚拟通道将所述执行任务命令发送至所述执行任务引擎;
通过所述执行任务引擎执行所述执行任务命令,生成执行结果并返回至所述虚拟通道;
将所述执行结果通过所述虚拟通道返回至规则引擎,以与外部进行交互。
上述脚本扩展方法、装置、计算机设备和存储介质,通过加载扩展脚本,并通过脚本解释器解释成执行任务引擎所能识别的执行任务命令,再通过所述虚拟通道将执行任务命令发送给执行任务引擎以完成执行。无需额外增加硬件成本即可通过执行任务引擎完成执行任务命令的执行并生成执行结果。最后,将生成的所述执行结果通过所述虚拟通道返回至规则引擎以与外部进行交互。无需额外增加用于控制终端与外部进行交互的硬件单元,即可将生成的执行结果传送到外部进行交互。整个过程中,没有涉及额外的硬件成本花销,因此,该脚本扩展方法能够节省硬件成本。
附图说明
图1为一个实施例中脚本扩展方法的流程示意图;
图2为一个实施例中脚本扩展步骤的流程示意图;
图3为一个实施例中脚本扩展步骤的流程示意图;
图4为一个实施例中脚本扩展装置的结构框图;
图5为一个实施例中脚本扩展装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种脚本扩展方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,终端可以是移动终端、计算机或者专用设备等。其中,移动终端比如手机、平板电脑、手持式POS(point of sale,即销售终端)机。计算机比如台式计算机、笔记本电脑等。具有调制解调功能的专用设备比如调制解调器(英文名Modem),俗称“猫”等。该脚本扩展方法具体包括以下步骤:
步骤102,加载扩展脚本;扩展脚本是用于实现定制化功能的预先编写的脚本。
具体地,用户根据需要实现的定制化功能预先编写了扩展脚本。终端加载该扩展脚本。
在一个实施例中,用户根据需要实现的定制化功能预先编写了扩展脚本并上传到预置的服务器。终端可以在预置的服务器下载扩展脚本。
步骤104,通过脚本解释器,将扩展脚本解释成执行任务引擎所能识别的执行任务命令。
其中,脚本解释器,是将扩展脚本翻译成执行任务引擎所能识别的执行任务命令的解释器。执行任务引擎,是用于执行任务命令的引擎。执行任务命令,是与扩展脚本具有同样的功能、且只有执行任务引擎才能执行的命令。
具体地,终端将加载的扩展脚本通过脚本解释器进行解释,以将扩展脚本解释成执行任务引擎所能识别的执行任务命令。
在一个实施例中,执行任务命令,可以是“AT(attention)”命令。
在一个实施例中,执行任务引擎,可以是“AT”引擎。
可以理解,针对一个扩展脚本解释得到的执行任务命令可以为一个或多个。多个即为至少两个。
可以理解,直接将扩展脚本解释成执行任务引擎所能识别的执行任务命令,由于执行任务命令的功能流已知,若执行任务命令的过程出现问题,可以直接根据功能流快速定位出现问题的执行任务命令,从而可以快速纠正出现问题的执行任务命令,提高了生成执行结果的效率。
步骤106,通过虚拟通道将执行任务命令发送至执行任务引擎。
其中,虚拟通道,是用于实现执行任务引擎的输入和输出的逻辑通道。
可以理解,终端上的脚本解释器通过虚拟通道向执行任务引擎输入所解释得到的执行任务命令,而执行任务引擎则可以将执行结果通过虚拟通道输出给规则引擎。因此,由虚拟通道实现执行任务引擎的输入和输出。
其中,执行结果,是执行任务引擎执行完执行任务命令后生成的结果。规则引擎,是根据预选设定的规则来执行对应的脚本的引擎。规则引擎除了用于支持执行任务命令的执行外,由于本身自带脚本语言都支持的条件判断、字符比较等功能,还可以用于支持用户定义简单的数据处理流程。
步骤108,通过执行任务引擎执行该执行任务命令,生成执行结果并返回至虚拟通道。
具体地,终端上的执行任务引擎通过虚拟通道接收到脚本解释器发送的执行任务命令。执行任务引擎可以执行该执行任务命令,生成执行结果。进一步,终端上的执行任务引擎将生成的执行结果返回到虚拟通道。
可以理解,当针对一个扩展脚本解释得到的执行任务命令为多个时,执行任务引擎则可以执行完所有的执行任务命令后,生成最终的一个执行结果。
步骤110,将执行结果通过虚拟通道返回至规则引擎,以与外部进行交互。
具体地,终端上的规则引擎通过虚拟通道接收到执行结果。进一步地,终端上的规则引擎将执行结果发送到外部,以与外部进行交互。
上述脚本扩展方法、装置、计算机设备和存储介质,通过加载扩展脚本,并通过脚本解释器解释成执行任务引擎所能识别的执行任务命令,再通过虚拟通道将执行任务命令发送给执行任务引擎以完成执行。无需额外增加硬件成本即可通过执行任务引擎完成执行任务命令的执行并生成执行结果。最后,将生成的执行结果通过虚拟通道返回至规则引擎以与外部进行交互。无需额外增加用于控制终端与外部进行交互的硬件单元,即可将生成的执行结果传送到外部进行交互。整个过程中,没有涉及额外的硬件成本花销,因此,该脚本扩展方法能够节省硬件成本。
在一个实施例中,方法还包括:通过规则引擎执行开机脚本;在执行开机脚本后,通过规则引擎检测是否存在待执行的扩展脚本;当检测到存在待执行的扩展脚本时,则执行加载扩展脚本的步骤以及后续步骤,直至将执行结果通过虚拟通道返回至规则引擎,以实现对扩展脚本的执行。
其中,开机脚本,是执行后能够使终端开机的脚本。
具体地,终端上的规则引擎执行开机脚本。终端上的规则引擎在执行开机脚本后,进一步检测是否存在待执行的扩展脚本。当终端上的规则引擎检测到存在待执行的扩展脚本时,则可以执行该扩展脚本。可以理解,上述步骤102~110即为执行每个扩展脚本的具体步骤,因此,可以执行加载扩展脚本的步骤以及后续步骤,直至将执行结果通过虚拟通道返回至规则引擎,以实现对扩展脚本的执行。
在一个实施例中,开机脚本,只在终端通电的时候执行,以完成终端上的外部设备的初始状态的配置。例如终端上的规则引擎执行开机脚本,以完成GPIO的高低电平的设置,以及通电时外挂设备的初始化等,还可以完成配置项的设置,例如设置定时任务对应的预设时间间隔等。
在一个实施例中,当检测到存在待执行的扩展脚本时,则可以定时执行该扩展脚本。可以理解,待执行的扩展脚本可以为一个或多个,当有多个待执行的扩展脚本时,则可以定时地依次执行各个扩展脚本。
本实施例中,通过终端上的规则引擎先检测是否存在待执行的扩展脚本,存在待执行的扩展脚本再执行加载扩展脚本的步骤以及后续步骤,能够避免不存在待执行的扩展脚本时,终端执行了无用的步骤,节省了终端的能耗。
在一个实施例中,方法还包括:若待执行的扩展脚本为多个,则在执行当前的扩展脚本后、且达到预设时间间隔时,将下一个扩展脚本作为当前的扩展脚本,返回执行加载扩展脚本的步骤以及后续步骤,以执行下一个扩展脚本。
具体地,若待执行的扩展脚本为多个,终端上的规则引擎则在执行当前的扩展脚本后、且达到预设时间间隔时,将下一个扩展脚本作为当前的扩展脚本,返回执行加载扩展脚本的步骤以及后续步骤,以执行下一个扩展脚本。即,针对每个扩展脚本可以执行步骤102~110,以实现对该扩展脚本的执行,当执行一个扩展脚本后,则定时地执行下一个扩展脚本,即继续针对下一个扩展脚本执行步骤102~110,以实现对下一个扩展脚本的执行。
本实施例中,终端上的规则引擎在执行当前的扩展脚本后、且达到预设时间间隔时,再将下一个扩展脚本作为当前的扩展脚本,返回执行加载扩展脚本的步骤以及后续步骤,以执行下一个扩展脚本。由此,终端上的规则引擎便可以有条理地将所有的待执行的扩展脚本有序地执行完,且待执行的扩展脚本之间的执行互不影响。
在一个实施例中,方法还包括:当检测到不存在待执行的扩展脚本时,则通过规则引擎执行休眠脚本,以进入休眠状态。
其中,休眠脚本,是执行后用于使终端进入休眠状态的脚本。
具体地,当终端上的规则引擎检测到不存在待执行的扩展脚本时,则执行休眠脚本。终端上的规则引擎执行完休眠脚本,终端便进入休眠状态。
本实施例中,终端上的规则引擎检测到不存在待执行的扩展脚本时,通过执行休眠脚本,使终端进入休眠状态,能够节省终端的能耗。
在一个实施例中,方法还包括:进入休眠状态后,通过规则引擎继续检测是否存在待执行的扩展脚本;当检测到存在待执行的扩展脚本时,则执行唤醒脚本,并在唤醒后,返回执行加载扩展脚本的步骤。
其中,唤醒脚本,是执行后能够使休眠状态的终端恢复成进入休眠前的状态。
具体地,终端进入休眠状态后,通过规则引擎继续检测是否存在待执行的扩展脚本。当终端上的规则引擎检测到存在待执行的扩展脚本时,则执行唤醒脚本。终端上的规则引擎将终端唤醒后,返回执行加载扩展脚本的步骤以及后续步骤。
本实施例中,通过终端上的规则引擎检测到存在待执行的扩展脚本时,则执行唤醒脚本,能够使终端从节省能耗的休眠状态迅速恢复到休眠前的状态,以执行加载扩展脚本的步骤以及后续步骤。
在一个实施例中,通过虚拟通道将执行任务命令发送至执行任务引擎之后,方法还包括:若执行任务命令的字段为执行任务引擎所能识别的字段,则执行通过执行任务引擎执行该执行任务命令的步骤;当执行任务命令的字段包含执行任务引擎无法识别的字段,则通过虚拟通道通知脚本解释器对扩展脚本重新解析。
具体地,若执行任务命令的字段均为能识别的字段,终端上的执行任务引擎执行该执行任务命令,生成执行结果并返回至虚拟通道;将执行结果通过虚拟通道返回至规则引擎,以与外部进行交互。若执行任务命令的字段存在不能识别的字段,终端上的执行任务引擎则通过虚拟通道通知脚本解释器对扩展脚本重新解析。
在一个实施例中,脚本解释器接收到通知后,可以只重新解释存在不能识别的字段的执行任务命令,也可以将整个加载的扩展脚本重新解析。
本实施例中,若存在不能识别的字段的执行任务命令就通过虚拟通道通知脚本解释器对扩展脚本重新解析,可以确保执行任务引擎能够顺利完成执行任务命令的执行。
在一个实施例中,针对一个扩展脚本解释得到的执行任务命令为多个;通过执行任务引擎执行该执行任务命令,生成执行结果包括:在通过执行任务引擎执行多个执行任务命令的过程中,将针对在先的目标执行任务命令的输出,重定向为下一条执行任务命令的输入,直至执行完多个执行任务命令,生成执行结果;其中,在先的目标执行任务命令,是在先已执行完的、且需要将输出做重定向输入的执行任务命令。
其中,重定向(Redirect),是将在先执行任务命令的执行结果重新定位,以作为在后执行任务命令的输入。
可以理解,比如,下一条执行任务命令是将两个因子相加,通过重定向,可以将在先的目标执行任务命令执行后生成的第一输出结果和第二输出结果,重定向为下一条执行任务命令的第一输入因子和第二输入因子,以执行下一条执行任务命令,即完成两个因子相加。
具体地,在通过执行任务引擎执行多个执行任务命令的过程中,终端上的执行任务引擎将针对在先的目标执行任务命令的输出,作为重定向对应的下一条执行任务命令的输入,直至执行完多个执行任务命令,生成执行结果。
本实施例中,通过将针对在先的目标执行任务命令的输出,重定向为下一条执行任务命令的输入,能够使执行任务引擎根据所规定的方向完成执行任务命令的执行,以生成执行结果。
在一个实施例中,如图2的脚本扩展步骤的流程示意图,终端加载扩展脚本。终端上的脚本解释器通过虚拟通道,将扩展脚本解释成执行任务引擎所能识别的执行任务命令发送至执行任务引擎。若执行任务命令的字段存在不能识别的字段,终端上的执行任务引擎则通过虚拟通道通知脚本解释器对扩展脚本重新解析。若执行任务命令的字段均为能识别的字段,终端上的执行任务引擎执行则执行该执行任务命令。终端上的执行任务引擎执行将根据执行任务命令生成的执行结果通过虚拟通道返回至规则引擎。终端上的规则引擎将执行结果发送到外部,以与外部进行交互。
在一个实施例中,如图3的脚本扩展步骤的流程示意图,终端接通电源(即“模块上电”),通过规则引擎执行开机脚本。终端上的规则引擎在执行开机脚本后,进一步检测是否存在待执行的扩展脚本。若待执行的扩展脚本为多个,终端上的规则引擎则在执行当前的扩展脚本后、且达到预设时间间隔时,将下一个扩展脚本作为当前的扩展脚本,返回执行加载扩展脚本的步骤以及后续步骤,以执行下一个扩展脚本。当终端上的规则引擎检测到不存在待执行的扩展脚本时,则执行休眠脚本。终端上的规则引擎执行完休眠脚本,终端便进入休眠状态。终端进入休眠状态后,通过规则引擎继续检测是否存在待执行的扩展脚本。当终端上的规则引擎检测到存在待执行的扩展脚本时,则执行唤醒脚本。终端上的规则引擎将终端唤醒后,返回执行加载扩展脚本的步骤。当终端上的规则引擎超过时长阈值仍未检测到存在待执行的扩展脚本时,则中断唤醒。
应该理解的是,虽然图1至图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1至图3中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种脚本扩展装置400,包括:加载模块404、解释模块406、发送模块408、执行模块410和返回模块412,其中:
加载模块404,用于加载扩展脚本;扩展脚本是用于实现定制化功能的预先编写的脚本。
解释模块406,用于通过脚本解释器,将扩展脚本解释成执行任务引擎所能识别的执行任务命令。
发送模块408,用于通过虚拟通道将执行任务命令发送至执行任务引擎。
执行模块410,用于通过执行任务引擎执行该执行任务命令,生成执行结果并返回至虚拟通道。
返回模块412,用于将执行结果通过虚拟通道返回至规则引擎,以与外部进行交互。
在一个实施例中,开机模块401,用于通过规则引擎执行开机脚本;在执行开机脚本后,通过规则引擎检测是否存在待执行的扩展脚本;当检测到存在待执行的扩展脚本时,则执行加载扩展脚本的步骤以及后续步骤,直至将执行结果通过虚拟通道返回至规则引擎,以实现对扩展脚本的执行。
在一个实施例中,定时模块402,用于若待执行的扩展脚本为多个,则在执行当前的扩展脚本后、且达到预设时间间隔时,将下一个扩展脚本作为当前的扩展脚本,返回执行加载扩展脚本的步骤以及后续步骤,以执行下一个扩展脚本。
在一个实施例中,休眠模块414,用于当检测到不存在待执行的扩展脚本时,则通过规则引擎执行休眠脚本,以进入休眠状态。
如图5所示,在一个实施例中,该装置还包括:开机模块401、定时模块402、休眠模块414和唤醒模块416;
唤醒模块416,用于进入休眠状态后,通过规则引擎继续检测是否存在待执行的扩展脚本;当检测到存在待执行的扩展脚本时,则执行唤醒脚本,并在唤醒后,返回执行加载扩展脚本的步骤。
在一个实施例中,执行模块410,还用于若执行任务命令的字段为执行任务引擎所能识别的字段,则执行通过执行任务引擎执行该执行任务命令的步骤;当执行任务命令的字段包含执行任务引擎无法识别的字段,则通过虚拟通道通知脚本解释器对扩展脚本重新解析。
在一个实施例中,执行模块410,还用于在通过执行任务引擎执行多个执行任务命令的过程中,将针对在先的目标执行任务命令的输出,重定向为下一条执行任务命令的输入,直至执行完多个执行任务命令,生成执行结果;其中,在先的目标执行任务命令,是在先已执行完的、且需要将输出做重定向输入的执行任务命令。
关于脚本扩展装置的具体限定可以参见上文中对于脚本扩展方法的限定,在此不再赘述。上述脚本扩展装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图6所示。该计算机设备包括通过***总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种脚本扩展方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
加载扩展脚本;扩展脚本是用于实现定制化功能的预先编写的脚本;
通过脚本解释器,将扩展脚本解释成执行任务引擎所能识别的执行任务命令;
通过虚拟通道将执行任务命令发送至执行任务引擎;
通过执行任务引擎执行该执行任务命令,生成执行结果并返回至虚拟通道;
将执行结果通过虚拟通道返回至规则引擎,以与外部进行交互。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过规则引擎执行开机脚本;在执行开机脚本后,通过规则引擎检测是否存在待执行的扩展脚本;当检测到存在待执行的扩展脚本时,则执行加载扩展脚本的步骤以及后续步骤,直至将执行结果通过虚拟通道返回至规则引擎,以实现对扩展脚本的执行。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:若待执行的扩展脚本为多个,则在执行当前的扩展脚本后、且达到预设时间间隔时,将下一个扩展脚本作为当前的扩展脚本,返回执行加载扩展脚本的步骤以及后续步骤,以执行下一个扩展脚本。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当检测到不存在待执行的扩展脚本时,则通过规则引擎执行休眠脚本,以进入休眠状态。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:进入休眠状态后,通过规则引擎继续检测是否存在待执行的扩展脚本;当检测到存在待执行的扩展脚本时,则执行唤醒脚本,并在唤醒后,返回执行加载扩展脚本的步骤。在一个实施例中,处理器执行计算机程序时还实现以下步骤:若执行任务命令的字段为执行任务引擎所能识别的字段,则执行通过执行任务引擎执行该执行任务命令的步骤;当执行任务命令的字段包含执行任务引擎无法识别的字段,则通过虚拟通道通知脚本解释器对扩展脚本重新解析。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在通过执行任务引擎执行多个执行任务命令的过程中,将针对在先的目标执行任务命令的输出,重定向为下一条执行任务命令的输入,直至执行完多个执行任务命令,生成执行结果;其中,在先的目标执行任务命令,是在先已执行完的、且需要将输出做重定向输入的执行任务命令。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
加载扩展脚本;扩展脚本是用于实现定制化功能的预先编写的脚本;
通过脚本解释器,将扩展脚本解释成执行任务引擎所能识别的执行任务命令;
通过虚拟通道将执行任务命令发送至执行任务引擎;
通过执行任务引擎执行该执行任务命令,生成执行结果并返回至虚拟通道;
将执行结果通过虚拟通道返回至规则引擎,以与外部进行交互。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:通过规则引擎执行开机脚本;在执行开机脚本后,通过规则引擎检测是否存在待执行的扩展脚本;当检测到存在待执行的扩展脚本时,则执行加载扩展脚本的步骤以及后续步骤,直至将执行结果通过虚拟通道返回至规则引擎,以实现对扩展脚本的执行。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若待执行的扩展脚本为多个,则在执行当前的扩展脚本后、且达到预设时间间隔时,将下一个扩展脚本作为当前的扩展脚本,返回执行加载扩展脚本的步骤以及后续步骤,以执行下一个扩展脚本。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当检测到不存在待执行的扩展脚本时,则通过规则引擎执行休眠脚本,以进入休眠状态。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:进入休眠状态后,通过规则引擎继续检测是否存在待执行的扩展脚本;当检测到存在待执行的扩展脚本时,则执行唤醒脚本,并在唤醒后,返回执行加载扩展脚本的步骤。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:若执行任务命令的字段为执行任务引擎所能识别的字段,则执行通过执行任务引擎执行该执行任务命令的步骤;当执行任务命令的字段包含执行任务引擎无法识别的字段,则通过虚拟通道通知脚本解释器对扩展脚本重新解析。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在通过执行任务引擎执行多个执行任务命令的过程中,将针对在先的目标执行任务命令的输出,重定向为下一条执行任务命令的输入,直至执行完多个执行任务命令,生成执行结果;其中,在先的目标执行任务命令,是在先已执行完的、且需要将输出做重定向输入的执行任务命令。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种脚本扩展方法,其特征在于,所述方法包括:
加载扩展脚本;所述扩展脚本是用于实现定制化功能的预先编写的脚本;
通过脚本解释器,将所述扩展脚本解释成执行任务引擎所能识别的执行任务命令;所述执行任务命令是指attention命令;所述执行任务引擎是指AT引擎;
通过虚拟通道将所述执行任务命令发送至所述执行任务引擎;所述虚拟通道,是用于实现所述执行任务引擎的输入和输出的逻辑通道;
通过所述执行任务引擎执行所述执行任务命令,生成执行结果并返回至所述虚拟通道;
将所述执行结果通过所述虚拟通道返回至规则引擎,以与外部进行交互;所述规则引擎是根据预先设定的规则执行对应的脚本的引擎;所述规则引擎具备脚本语言支持的条件判断和字符比较的功能,用于支持定义的数据处理流程。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过规则引擎执行开机脚本;
在执行开机脚本后,通过所述规则引擎检测是否存在待执行的扩展脚本;
当检测到存在待执行的所述扩展脚本时,则执行所述加载所述扩展脚本的步骤以及后续步骤,直至将所述执行结果通过所述虚拟通道返回至规则引擎,以实现对所述扩展脚本的执行。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若待执行的扩展脚本为多个,则
在执行当前的扩展脚本后、且达到预设时间间隔时,将下一个扩展脚本作为当前的扩展脚本,返回执行所述加载所述扩展脚本的步骤以及后续步骤,以执行所述下一个扩展脚本。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当检测到不存在待执行的所述扩展脚本时,则通过所述规则引擎执行休眠脚本,以进入休眠状态。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
进入休眠状态后,通过所述规则引擎继续检测是否存在待执行的扩展脚本;
当检测到存在待执行的扩展脚本时,则
执行唤醒脚本,并在唤醒后,返回执行所述加载所述扩展脚本的步骤。
6.根据权利要求1所述的方法,其特征在于,所述通过虚拟通道将所述执行任务命令发送至所述执行任务引擎之后,所述方法还包括:
若所述执行任务命令的字段为所述执行任务引擎所能识别的字段,则执行所述通过所述执行任务引擎执行所述执行任务命令的步骤;
当所述执行任务命令的字段包含所述执行任务引擎无法识别的字段,则通过所述虚拟通道通知脚本解释器对所述扩展脚本重新解析。
7.根据权利要求1至6中任一项所述的方法,其特征在于,针对一个扩展脚本解释得到的执行任务命令为多个;
所述通过所述执行任务引擎执行所述执行任务命令,生成执行结果包括:
在通过所述执行任务引擎执行多个所述执行任务命令的过程中,将针对在先的目标执行任务命令的输出,重定向为下一条执行任务命令的输入,直至执行完多个所述执行任务命令,生成执行结果;
其中,所述在先的目标执行任务命令,是在先已执行完的、且需要将输出做重定向输入的执行任务命令。
8.一种脚本扩展装置,其特征在于,所述装置包括:
加载模块,用于加载扩展脚本;所述扩展脚本是用于实现定制化功能的预先编写的脚本;
解释模块,用于通过脚本解释器,将所述扩展脚本解释成执行任务引擎所能识别的执行任务命令;所述执行任务命令是指attention命令;所述执行任务引擎是指AT引擎;
发送模块,用于通过虚拟通道将所述执行任务命令发送至所述执行任务引擎;所述虚拟通道,是用于实现所述执行任务引擎的输入和输出的逻辑通道;
生成模块,用于通过所述执行任务引擎执行所述执行任务命令,生成执行结果并返回至所述虚拟通道;
返回模块,用于将所述执行结果通过所述虚拟通道返回至规则引擎,以与外部进行交互;所述规则引擎是根据预先设定的规则执行对应的脚本的引擎;所述规则引擎具备脚本语言支持的条件判断和字符比较的功能,用于支持定义的数据处理流程。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011227806.6A CN112306637B (zh) | 2020-11-06 | 2020-11-06 | 脚本扩展方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011227806.6A CN112306637B (zh) | 2020-11-06 | 2020-11-06 | 脚本扩展方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112306637A CN112306637A (zh) | 2021-02-02 |
CN112306637B true CN112306637B (zh) | 2024-06-21 |
Family
ID=74326207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011227806.6A Active CN112306637B (zh) | 2020-11-06 | 2020-11-06 | 脚本扩展方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112306637B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825488A (zh) * | 2019-09-29 | 2020-02-21 | 山东中创软件工程股份有限公司 | 一种业务处理方法、装置及电子设备和存储介质 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7024363B1 (en) * | 1999-12-14 | 2006-04-04 | International Business Machines Corporation | Methods and apparatus for contingent transfer and execution of spoken language interfaces |
KR100698955B1 (ko) * | 2004-10-20 | 2007-03-26 | 주식회사 엠투미 | 스크립트가 포함된 이미지 파일을 이용한 이동 단말기의매크로 서비스 제공 시스템 및 방법 |
EP1679867A1 (en) * | 2005-01-06 | 2006-07-12 | Orange SA | Customisation of VoiceXML Application |
EP1715413A1 (en) * | 2005-04-18 | 2006-10-25 | Research In Motion Limited | Method and system for extending scripting languages |
US20070192673A1 (en) * | 2006-02-13 | 2007-08-16 | Bodin William K | Annotating an audio file with an audio hyperlink |
CN100579261C (zh) * | 2007-08-22 | 2010-01-06 | 中兴通讯股份有限公司 | 一种模拟at命令上报的方法 |
CN101634940B (zh) * | 2008-07-25 | 2012-07-04 | 苏州蜗牛数字科技股份有限公司 | 通过脚本开发电脑游戏的方法 |
CN101667134B (zh) * | 2009-09-23 | 2013-06-05 | 中兴通讯股份有限公司 | 一种构建编译***的方法及编译***构建装置 |
CN102255674A (zh) * | 2010-05-19 | 2011-11-23 | 希姆通信息技术(上海)有限公司 | 基于lua脚本的无线模块自动测试方法 |
US9081866B2 (en) * | 2011-09-23 | 2015-07-14 | Oracle International Corporation | Dynamic display of web page content based on a rules system |
CN103838711A (zh) * | 2012-11-26 | 2014-06-04 | 上海柚艾信息技术有限公司 | 基于规则的可定义式语义解析***及方法 |
US20150085871A1 (en) * | 2013-09-25 | 2015-03-26 | RIFT.io Inc. | Dynamically scriptable ip packet processing engine |
US10454768B2 (en) * | 2013-11-15 | 2019-10-22 | F5 Networks, Inc. | Extending policy rulesets with scripting |
CN103746873A (zh) * | 2013-12-30 | 2014-04-23 | 深圳市广和通实业发展有限公司 | 通信模块测试***和方法 |
CN103927174A (zh) * | 2014-04-17 | 2014-07-16 | 北京视博数字电视科技有限公司 | 业务处理方法和装置 |
CN105843592A (zh) * | 2015-01-12 | 2016-08-10 | 芋头科技(杭州)有限公司 | 一种在预设嵌入式***中实现脚本操作的*** |
CN105188077A (zh) * | 2015-08-12 | 2015-12-23 | 深圳市广和通无线股份有限公司 | 通信模块测试方法和*** |
CN106202459A (zh) * | 2016-07-14 | 2016-12-07 | 华南师范大学 | 虚拟化环境下的关系型数据库存储性能优化方法及*** |
CA3034841A1 (en) * | 2016-08-22 | 2018-03-01 | fybr | System for distributed intelligent remote sensing systems |
CN108563490A (zh) * | 2018-04-13 | 2018-09-21 | 中国民航信息网络股份有限公司 | 解释型规则处理方法、装置、设备及介质 |
US10521701B2 (en) * | 2018-05-18 | 2019-12-31 | Google Llc | Parallel decoding using autoregressive machine learning models |
CN109063477B (zh) * | 2018-07-18 | 2021-04-20 | 成都链安科技有限公司 | 一种自动化的智能合约代码缺陷检测***和方法 |
CN111359219B (zh) * | 2020-03-16 | 2023-09-26 | 网易(杭州)网络有限公司 | 虚幻引擎的文件处理方法、装置、设备及存储介质 |
-
2020
- 2020-11-06 CN CN202011227806.6A patent/CN112306637B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825488A (zh) * | 2019-09-29 | 2020-02-21 | 山东中创软件工程股份有限公司 | 一种业务处理方法、装置及电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112306637A (zh) | 2021-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200364085A1 (en) | Task scheduling based on performance control conditions for multiple processing units | |
US9800609B2 (en) | Method, device and system for detecting malware in a mobile terminal | |
US10402222B2 (en) | Task migration method and apparatus | |
US10186244B2 (en) | Sound effect processing method and device, plug-in unit manager and sound effect plug-in unit | |
EP2551741A2 (en) | Method for controlling temperature of terminal and terminal supporting the same | |
CN108549568B (zh) | 应用入口处理方法、装置、存储介质及电子设备 | |
US11467650B2 (en) | Selecting a low power state in an electronic device | |
CN101526901B (zh) | 一种电脑中查看文件的方法及装置 | |
KR20150069504A (ko) | 이동 단말기의 애플리케이션 전환 장치 및 방법 | |
WO2019214475A1 (zh) | 应用程序预加载方法以及装置、存储介质及移动终端 | |
CN103809864A (zh) | 一种动态切换界面的方法和装置 | |
WO2019214476A1 (zh) | 屏幕方向设置方法以及装置、存储介质及终端 | |
WO2020015203A1 (zh) | 一种***恢复方法及装置 | |
WO2019214477A1 (zh) | 应用程序预加载方法以及装置、存储介质及终端 | |
EP2979177A1 (en) | Method for controlling process of application and computer system | |
CN105847446B (zh) | 一种网络数据的获取方法、装置和*** | |
CN114237743B (zh) | 界面加载方法、装置、电子设备和存储介质 | |
US9411642B2 (en) | Using high priority thread to boost CPU clock rate | |
US11500647B2 (en) | Systems and methods for achieving faster boot times using BIOS attribute mitigation | |
CN112306637B (zh) | 脚本扩展方法、装置、计算机设备和存储介质 | |
CN112261639B (zh) | Sim卡功能配置方法、装置、终端设备和存储介质 | |
CN112527416A (zh) | 任务处理方法、装置、计算机设备和存储介质 | |
US20130275739A1 (en) | Electronic apparatus, method of controlling the same, and computer-readable recording medium | |
US20120185713A1 (en) | Server, storage medium, and method for controlling sleep and wakeup function of the server | |
CN111857782B (zh) | 界面更新方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |