测试用例说明

在3.1的基础上,扩展报警信息,使用更加详细的信息创建报警。
节点A:创建报警
想将当前pm24添加到警报详细信息字段中。如果警报已经存在,希望增加警报详细信息中的计数字段,否则将计数设置为 1。
详细功能:覆盖默认的Details函数**

  1. var details = {};
  2. details.pm25 = msg.pm25;
  3. details.selfmsg="自定义报警信息"; //定义一个附加信息,还可以增加更多附加信息
  4. if (metadata.prevAlarmDetails) {
  5. var prevDetails = JSON.parse(metadata.prevAlarmDetails);
  6. details.count = prevDetails.count + 1;
  7. } else {
  8. details.count = 1;
  9. }
  10. return details;
  11. //************ 作为对比,以下是原始函数**************
  12. var details = {};
  13. if (metadata.prevAlarmDetails) {
  14. details = JSON.parse(metadata.prevAlarmDetails);
  15. }
  16. return details;

以上函数使用初始参数创建所需的对象。然后在if语句中,验证它是一个新的警报还是已经存在的警报。如果存在取前一个计数字段并加1。
节点 B:清除警报

  1. var details = {};
  2. if (metadata.prevAlarmDetails) {
  3. details = JSON.parse(metadata.prevAlarmDetails);
  4. }
  5. details.clearedPm25 = msg.pm25; //清除告警的时候赋值给clearedPm25
  6. details.selfmsg="报警消失"; //清除告警的时候更新附加信息
  7. return details;
  8. //*************** 作为对比,以下是原始函数*************
  9. var details = {};
  10. if (metadata.prevAlarmDetails) {
  11. details = JSON.parse(metadata.prevAlarmDetails);
  12. }
  13. return details;

配置告警组件的数据源:需要注意的是,多添加几条自定义的数据

  • pm25 -> pm25的值。
  • details.count -> 计数。
  • details.clearedPm25 -> 清除报警时的值。
  • details.selfmsg -> 自定义的报警说明。

更多的信息都可以在以上的函数中定义。
image.png
最终效果:
image.png