测试用例说明
在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; //清除告警的时候赋值给clearedPm25details.selfmsg="报警消失"; //清除告警的时候更新附加信息return details;//*************** 作为对比,以下是原始函数*************var details = {};if (metadata.prevAlarmDetails) {details = JSON.parse(metadata.prevAlarmDetails);}return details;
配置告警组件的数据源:需要注意的是,多添加几条自定义的数据
- pm25 -> pm25的值。
- details.count -> 计数。
- details.clearedPm25 -> 清除报警时的值。
- details.selfmsg -> 自定义的报警说明。
更多的信息都可以在以上的函数中定义。
最终效果:
