Script¶
Script 节点的作用是使用 JavaScript 将有效负载转换为另一种格式。
节点类型¶
Action。
输入和输出能力¶
该节点具有多个入口点和 1 个出口点。输入和输出可以是任何格式。你可以使用编写的 JavaScript 定义格式,其返回数据即为输出消息。
备注
不支持 Javascript ES6。
节点属性¶
设置标签¶
名称
该节点的名称。
描述
该节点的描述。
Script 标签 ¶
JS 库文件
用于导入第三方 JS 库代码文件,同时在下方输入框內调用文件中的函数,实现自定义的功能。导入文件后,选择 启用 ,该文件将参与流的运行,再次选择 禁用 将禁用文件。
Function Transform
用于将输入转换为所需格式的 JavaScript(支持 ES5.1)。受支持的函数为 transform
,带有两个参数,分别为 msg
和 metadata
。msg
是输入消息,而 metadata
可以是 MQTT topic,该 topic 可在脚本中使用。
你也可使用内置的 JavaScript 函数。有关可用函数的列表,参见 JavaScript 内置函数概述。
选择 测试 按钮,通过输入消息来测试 JavaScript,查看 JavaScript 是否能按设计意图操作。
使用限制¶
最大入口点数:100
msg
和metadata
需要在脚本函数中返回。不支持 Javascript ES6。
示例¶
输入示例¶
输入取决于脚本的要求。
输出示例¶
输出取决于脚本处理输入的方式。
脚本示例¶
if(!msg.Data){
return tools.resultBuilder.build(false);
}
var dataArray = msg.Data.data;
var stream = msg.Data.stream;
var device_id = stream.camera;
var flag = true;
for (var i=0; i<dataArray.length; i++) {
var data = dataArray[i];
if(!data.eventName){
flag = false;
break;
}
var paramsArray = new Array();
if(data.eventName === "Event1"){
var mps = {};
mps["raw_data_count"] = JSON.stringify(data.count);
mps["alarm_data_event_name"] = data.eventName;
mps["raw_data_imgpath"] = JSON.stringify(data.imgpath);
mps["raw_data_start_time"] = data.startTime;
mps["raw_data_timestamp"] = data.timestamp;
mps["raw_stream_camera"] = stream.camera;
var params = {};
params["measurepoints"] = mps;
params["time"] = new Date().getTime();
params["device_id_no"] = device_id;
paramsArray.push(params);
}else{
paramsArray = metadata.params;
}
}
if(!flag){
return tools.resultBuilder.build(false);
}
return tools.resultBuilder.build(true,JSON.stringify(paramsArray));