Skip to content

脚本管理

分为全局脚本和表达式脚本

全局脚本

将前端脚本传入后端,脚本内容通过quickjs在后端运行。

TIP

quickjs有完整的JS语法支持(ES2020),但注意console.log()只能传入一个参数

获取脚本列表 getScriptList

脚本模式功能描述
周期执行cyclic保存后开始轮询
监听监控点状态执行onMpValChange监控点值改变时自动执行
接口调用apiCall点击运行执行一次

删除脚本文件 deleteScriptFile

{
    "jsonrpc": "2.0",
    "method": "deleteScriptFile",
    "params": {
        "name": "脚本名称"
    }
}

保存脚本文件 setScriptFile

运行脚本 runScript

请求

{
    "jsonrpc": "2.0",
    "method": "runScript",
    "params": {
        "script": "脚本内容",
        "rootTag": ""
    },
}

返回log打印信息

获取表达式脚本状态 getScriptMngerStatus

请求:

{
   "jsonrpc": "2.0",
   "method": "getScriptMngerStatus",
   "params": {
      "tag": "a.t3",
      "getStatus": true
   }
}

响应:

{
   "id": null,
   "jsonrpc": "2.0",
   "method": "getScriptMngerStatus",
   "result": {
      "expScriptCount": 1,
      "lastExpScriptRunTime": "2025-06-25 16:06:01.022",
      "lastExpScriptTimeCost": 0.0010000000474974513,
      "runInfo": [
         {
            "retVal": 21.5,
            "runSuccess": true,
            "runTime": "2025-06-25 16:06:01.022",
            "script": "(val(\"t1\") + val(\"t2\"))/2",
            "tagRefDataTime": {
               "a.t1": "2025-06-20 13:18:12.000",
               "a.t2": "2025-06-20 13:18:14.000"
            },
            "valNullInCalc": false
         }
      ]
   }
}