alarm.js 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. //########################################################################################
  2. // alarm.js
  3. // Version 2.81
  4. // See 95_Alarm for licensing
  5. //########################################################################################
  6. //# Prof. Dr. Peter A. Henning
  7. function encodeParm(oldval) {
  8. var newval;
  9. newval = oldval.replace(/\+/g, '%2B');
  10. newval = newval.replace(/#/g, '%23');
  11. newval = newval.replace(/"/g, '%27');
  12. return newval;
  13. }
  14. //var ah = new HashTable('l0s','','l0e','');
  15. //------------------------------------------------------------------------------------------------------
  16. // Write the Attribute Value
  17. //------------------------------------------------------------------------------------------------------
  18. function alarm_setAttribute(name, attr, val) {//set Alarm Attribute
  19. var location = document.location.pathname;
  20. if (location.substr(location.length-1,1) == '/') {location = location.substr(0,location.length-1);}
  21. var url = document.location.protocol+"//"+document.location.host+location;
  22. FW_cmd(url+'?XHR=1&cmd.'+name+'=attr '+name+' '+encodeParm(attr)+' '+ encodeParm(val));
  23. }
  24. function alarm_cancel(name,level){
  25. var val;
  26. var nam;
  27. var location = document.location.pathname;
  28. if (location.substr(location.length-1,1) == '/') {location = location.substr(0,location.length-1);}
  29. var url = document.location.protocol+"//"+document.location.host+location;
  30. FW_cmd(url+'?XHR=1&cmd.'+name+'={Alarm_Exec("'+name+'",'+level+',"web","button","off")}');
  31. }
  32. function alarm_arm(name,level){
  33. var val;
  34. var nam;
  35. var command = document.getElementById('l'+level+'x').checked;
  36. if (command == true){
  37. command="arm";
  38. }else{
  39. command="disarm";
  40. }
  41. var location = document.location.pathname;
  42. if (location.substr(location.length-1,1) == '/') {location = location.substr(0,location.length-1);}
  43. var url = document.location.protocol+"//"+document.location.host+location;
  44. FW_cmd(url+'?XHR=1&cmd.'+name+'={Alarm_Arm("'+name+'",'+level+',"web","button","'+command+'")}');
  45. }
  46. function alarm_testaction(name,dev,type){
  47. var cmd;
  48. var nam;
  49. if(type == 'set'){
  50. cmd = document.getElementById(dev).parentElement.children[2].children[0].value;
  51. }else{
  52. cmd = document.getElementById(dev).parentElement.children[3].children[0].value;
  53. }
  54. var cmds;
  55. cmds = cmd.replace(/\\/g, '\\');
  56. cmds = cmds.replace(/\'/g, '\"');
  57. cmds = cmds.replace(/\$/g, '\\$');
  58. alert( cmds );
  59. var location = document.location.pathname;
  60. if (location.substr(location.length-1,1) == '/') {location = location.substr(0,location.length-1);}
  61. var url = document.location.protocol+"//"+document.location.host+location;
  62. FW_cmd(url+'?XHR=1&cmd.'+name+'={Alarm_Test("'+name+'","' + cmds + '")}');
  63. }
  64. function alarm_set(name){
  65. var val;
  66. var nam;
  67. var location = document.location.pathname;
  68. if (location.substr(location.length-1,1) == '/') {location = location.substr(0,location.length-1);}
  69. var url = document.location.protocol+"//"+document.location.host+location;
  70. // saving arm data
  71. FW_cmd(url+'?XHR=1&cmd.'+name+'=attr '+name+' armdelay '+ document.getElementById('armdelay').value);
  72. FW_cmd(url+'?XHR=1&cmd.'+name+'=attr '+name+' armwait '+ encodeParm(document.getElementById('armwait').value));
  73. FW_cmd(url+'?XHR=1&cmd.'+name+'=attr '+name+' armact '+ encodeParm(document.getElementById('armaction').value));
  74. FW_cmd(url+'?XHR=1&cmd.'+name+'=attr '+name+' disarmact '+ encodeParm(document.getElementById('disarmaction').value));
  75. FW_cmd(url+'?XHR=1&cmd.'+name+'=attr '+name+' cancelact '+ encodeParm(document.getElementById('cancelaction').value));
  76. // saving start and end times
  77. for (var i = 0; i < alarmno; i++){
  78. FW_cmd(url+'?XHR=1&cmd.'+name+'=attr '+name+' level'+i+'start '+document.getElementById('l'+i+'s').value);
  79. FW_cmd(url+'?XHR=1&cmd.'+name+'=attr '+name+' level'+i+'end ' +document.getElementById('l'+i+'e').value);
  80. FW_cmd(url+'?XHR=1&cmd.'+name+'=attr '+name+' level'+i+'msg ' +document.getElementById('l'+i+'m').value);
  81. if (document.getElementById('l'+i+'x').checked == true ){
  82. val = "armed";
  83. }else{
  84. val = "disarmed";
  85. }
  86. FW_cmd(url+'?XHR=1&cmd.'+name+'=attr '+name+' level'+i+'xec ' + val);
  87. }
  88. //for (var k in ah.items) {
  89. // ah.setItem(k,document.getElementById(k).value);
  90. //}
  91. // acquiring data for each sensor
  92. var sarr = document.getElementsByName('sensor');
  93. for (var k = 0; k < sarr.length; k++){
  94. nam = sarr[k].getAttribute('informId');
  95. val = "";
  96. for (var i = 0; i < alarmno; i++){
  97. if (sarr[k].children[1].children[i].checked == true ){
  98. val += "alarm"+i+",";
  99. }
  100. }
  101. val += "|"+sarr[k].children[2].children[0].value;
  102. val += "|"+sarr[k].children[3].children[0].value;
  103. val += "|"+sarr[k].children[4].children[0].options[sarr[k].children[4].children[0].selectedIndex].value;
  104. FW_cmd(url+'?XHR=1&cmd.'+nam+'=attr '+nam+' alarmSettings ' + encodeParm(val));
  105. }
  106. // acquiring data for each actor
  107. var aarr = document.getElementsByName('actor');
  108. for (var k = 0; k < aarr.length; k++){
  109. nam = aarr[k].getAttribute('informId');
  110. val = "";
  111. for (var i = 0; i < alarmno; i++){
  112. //alert(" Checking "+k+" "+i)
  113. if (aarr[k].children[1].children[i].checked == true ){
  114. val += "alarm"+i+",";
  115. }
  116. }
  117. val += "|"+aarr[k].children[2].children[0].value;
  118. val += "|"+aarr[k].children[3].children[0].value;
  119. val += "|"+aarr[k].children[4].children[0].value;
  120. FW_cmd(url+'?XHR=1&cmd.'+nam+'=attr '+nam+' alarmSettings ' + encodeParm(val));
  121. }
  122. // creating notifiers
  123. FW_cmd(url+'?XHR=1&cmd.' + name + ' ={main::Alarm_CreateNotifiers("' + name + '")}');
  124. }