脚本管理
分为全局脚本和表达式脚本
全局脚本
将前端脚本传入后端,脚本内容通过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
}
]
}
}