alarms.js 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. var option = {
  2. //mqtt客户端的id,这里面应该还可以加上其他参数,具体看官方文档
  3. clientId: 'mqttjs_' + (Math.random() * 1000000).toString(),
  4. timeout: 5000,
  5. useSSL: false
  6. }
  7. var href = window.location.href;
  8. var path = window.location.pathname;
  9. let alarmBasicUrl = href.slice(0, href.indexOf(path));
  10. //"ws://localhost:8384/mqtt"
  11. let alarmMqttUrl = "ws:" + alarmBasicUrl.slice(alarmBasicUrl.indexOf("//")) + "/mqtt";
  12. var alarmMqttClient = mqtt.connect(alarmMqttUrl, option);
  13. alarmMqttClient.on('connect', function () {
  14. console.log("alarm bar connected to mqtt server successfully");
  15. //alarmMqttClient.subscribe('/+/+/thing/event/OnGenericAlarm/+', function (err) {
  16. alarmMqttClient.subscribe('/sys/Edge.Core.Processor.Dispatcher.DefaultDispatcher/ProcessorsDispatcher/thing/event/OnGenericAlarm/post', function (err) {
  17. if (err) {
  18. console.log("failed to subsecribe OnGenericAlarm event");
  19. }
  20. });
  21. });
  22. alarmMqttClient.on('message', function (topic, message) {
  23. var reg = RegExp(/OnAlarm/);
  24. if (topic.toString().match(RegExp(/OnGenericAlarm/))) {
  25. console.log("OnGenericAlarm Received");
  26. ProcessGenericAlarm(JSON.parse(message.toString()));
  27. }
  28. });
  29. function ProcessGenericAlarm(genericAlarm) {
  30. var infoSpan = document.getElementById("common_header_left_text");
  31. if (infoSpan === null || genericAlarm === null || genericAlarm === undefined) return;
  32. //console.log("JOy:"+genericAlarm);
  33. //infoSpan.innerHTML = genericAlarm.GenericAlarm.Title;
  34. if (alarmBarVm !== null && alarmBarVm !== undefined) {
  35. alarmBarVm.currentAlarmBarItem = genericAlarm;
  36. if (infoSpan.style.visibility === 'hidden') {
  37. infoSpan.style.visibility = 'visible';
  38. }
  39. if (genericAlarm.Severity === "Error" || genericAlarm.Severity === "Fatal") {
  40. addAlarmAudio();
  41. //var alarmAudio = document.getElementById("alarm_audio");
  42. //if (alarmAudio == null) {
  43. // alarmAudio = document.createElement("audio");
  44. // alarmAudio.id = "alarm_audio";
  45. // alarmAudio.src = "/WebConsole/audio/alarm.wav";
  46. // alarmAudio.autoplay = "autoplay";
  47. // alarmAudio.loop = "loop";
  48. // //alarmAudio.muted = "false";
  49. // //alarmAudio.controls = "controls";
  50. // if (document.getElementById("common_header"))
  51. // document.getElementById("common_header").appendChild(alarmAudio);
  52. //}
  53. } else {
  54. toAddAlarmAudio();
  55. // removeAlarmAudio();
  56. }
  57. }
  58. }
  59. function removeAlarmAudio() {
  60. var alarmAudio = document.getElementById("alarm_audio");
  61. if (alarmAudio != null) {
  62. //alarmAudio.muted = "muted";
  63. if (document.getElementById("common_header"))
  64. document.getElementById("common_header").removeChild(alarmAudio);
  65. }
  66. }
  67. function addAlarmAudio() {
  68. var alarmAudio = document.getElementById("alarm_audio");
  69. if (alarmAudio === null) {
  70. alarmAudio = document.createElement("audio");
  71. alarmAudio.id = "alarm_audio";
  72. alarmAudio.src = "/WebConsole/audio/alarm.wav";
  73. alarmAudio.autoplay = "autoplay";
  74. alarmAudio.loop = "loop";
  75. //alarmAudio.muted = "false";
  76. //alarmAudio.controls = "controls";
  77. if (document.getElementById("common_header"))
  78. document.getElementById("common_header").appendChild(alarmAudio);
  79. }
  80. }