测试用例说明
在3.1的基础上,扩展报警信息,使用更加详细的信息创建报警。
节点A:创建报警
想将当前pm24添加到警报详细信息字段中。如果警报已经存在,希望增加警报详细信息中的计数字段,否则将计数设置为 1。
详细功能:覆盖默认的Details函数**
var details = {};
details.pm25 = msg.pm25;
details.selfmsg="自定义报警信息"; //定义一个附加信息,还可以增加更多附加信息
if (metadata.prevAlarmDetails) {
var prevDetails = JSON.parse(metadata.prevAlarmDetails);
details.count = prevDetails.count + 1;
} else {
details.count = 1;
}
return details;
//************ 作为对比,以下是原始函数**************
var details = {};
if (metadata.prevAlarmDetails) {
details = JSON.parse(metadata.prevAlarmDetails);
}
return details;
以上函数使用初始参数创建所需的对象。然后在if语句中,验证它是一个新的警报还是已经存在的警报。如果存在取前一个计数字段并加1。
节点 B:清除警报
var details = {};
if (metadata.prevAlarmDetails) {
details = JSON.parse(metadata.prevAlarmDetails);
}
details.clearedPm25 = msg.pm25; //清除告警的时候赋值给clearedPm25
details.selfmsg="报警消失"; //清除告警的时候更新附加信息
return details;
//*************** 作为对比,以下是原始函数*************
var details = {};
if (metadata.prevAlarmDetails) {
details = JSON.parse(metadata.prevAlarmDetails);
}
return details;
配置告警组件的数据源:需要注意的是,多添加几条自定义的数据
- pm25 -> pm25的值。
- details.count -> 计数。
- details.clearedPm25 -> 清除报警时的值。
- details.selfmsg -> 自定义的报警说明。
更多的信息都可以在以上的函数中定义。
最终效果: