Script¶
Script 节点的作用是使用 JavaScript 将有效负载转换为另一种格式。
节点类型¶
Action。
输入和输出能力¶
该节点具有 1 个入口点和 1 个出口点。输入和输出可以是任何格式。你可以使用编写的 JavaScript 定义格式,其返回数据即为输出消息。
备注
不支持 Javascript ES6。
节点属性¶
设置标签¶
名称
该节点的名称。
描述
该节点的描述。
脚本标签 ¶
用于将输入转换为所需格式的 JavaScript(支持 ES8)。受支持的函数为 transform
,带有两个参数,分别为 msg
和 metadata
。msg
是输入消息,而 metadata
可以是 MQTT topic,该 topic 可在脚本中使用。
你也可使用内置的 JavaScript 函数。有关可用函数的列表,参见 JavaScript 内置函数概述。
点击 测试 按钮,通过输入消息测试 JavaScript,查看 JavaScript 是否能按设计意图操作。
使用限制¶
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));