overview.html 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298
  1. <!DOCTYPE html>
  2. <html lang="en" xml:lang="en">
  3. <head>
  4. <title>Overview</title>
  5. <meta charset="UTF-8" />
  6. <style>
  7. .tg {border-collapse:collapse;border-spacing:0;width:100%;min-width:600px;height:100%;color:darkslategray;}
  8. .tg th{min-width:325px;width:325px;height:20px;font-size:18px;text-align:left;font-weight:bold;padding:5px 10px 5px 10px;;overflow:hidden;word-break:normal;background-color:lightgrey;}
  9. .tg td{font-size:15px;padding:5px 10px 5px 10px;overflow:hidden;word-break:normal;}
  10. .tg .tg-1{font-size:15px;vertical-align: top; font-family:Arial, Helvetica, sans-serif !important;}
  11. .tg .tg-2{height:52px;font-size:15px;padding:3px 0px 3px 10px;vertical-align:middle;font-family:Arial, Helvetica, sans-serif !important;}
  12. .tg .tg-3{height:45px;font-size:15px;padding:3px 10px 3px 10px;vertical-align:middle;font-family:Arial, Helvetica, sans-serif !important;}
  13. .tg .tg-4{height:fit-content;font-size:15px;padding:5px 10px 5px 10px;vertical-align:text-top;font-family:Arial, Helvetica, sans-serif !important;}
  14. </style>
  15. </head>
  16. <body style="font-family: arial">
  17. <table class="tg">
  18. <tr>
  19. <th class="th">Value</th>
  20. <td class="tg-1" rowspan="13">
  21. <img style="padding-left: 5px; padding-top: 0px; max-width:100%; width:100%; height:auto;" id="img" src="">
  22. </td>
  23. </tr>
  24. <tr>
  25. <td class="tg-2">
  26. <div id="value"></div>
  27. </td>
  28. </tr>
  29. <tr>
  30. <th class="th">Previous Value</th>
  31. </tr>
  32. <tr>
  33. <td class="tg-2">
  34. <div id="prevalue"></div>
  35. </td>
  36. </tr>
  37. <tr>
  38. <th class="th">Raw Value</th>
  39. </tr>
  40. <tr>
  41. <td class="tg-2">
  42. <div id="raw"></div>
  43. </td>
  44. </tr>
  45. <tr>
  46. <th class="th">Value Status</th>
  47. </tr>
  48. <tr>
  49. <td class="tg-2">
  50. <div id="error"></div>
  51. </td>
  52. </tr>
  53. <tr>
  54. <th class="th">Process State</th>
  55. </tr>
  56. <tr>
  57. <td class="tg-3">
  58. <div id="statusflow" ></div>
  59. </td>
  60. </tr>
  61. <tr>
  62. <th class="th">System Info</th>
  63. </tr>
  64. <tr>
  65. <td class="tg-4">
  66. <div id="timestamp" ></div>
  67. <div id="cputemp" ></div>
  68. <div id="rssi" ></div>
  69. <div>
  70. <span id="uptime" ></span>
  71. <span id="round" ></span>
  72. </div>
  73. </td>
  74. </tr>
  75. </table>
  76. <script type="text/javascript" src="jquery-3.6.0.min.js?v=$COMMIT_HASH"></script>
  77. <script type="text/javascript" src="common.js?v=$COMMIT_HASH"></script>
  78. <script type="text/javascript" src="readconfigcommon.js?v=$COMMIT_HASH"></script>
  79. <script type="text/javascript" src="readconfigparam.js?v=$COMMIT_HASH"></script>
  80. <script type="text/javascript">
  81. function addZero(i) {
  82. if (i < 10) {
  83. i = "0" + i;
  84. }
  85. return i;
  86. }
  87. $(document).ready(function() {
  88. LoadData();
  89. LoadROIImage();
  90. });
  91. function LoadData(){
  92. loadValue("value", "value", "border-collapse: collapse; width: 100%");
  93. loadValue("raw", "raw", "border-collapse: collapse; width: 100%");
  94. loadValue("prevalue", "prevalue", "border-collapse: collapse; width: 100%");
  95. loadValue("error", "error", "border-collapse: collapse; width: 100%");
  96. loadStatus();
  97. loadCPUTemp();
  98. loadRSSI();
  99. loadUptime();
  100. loadRoundCounter();
  101. }
  102. function LoadROIImage(){
  103. var d = new Date();
  104. var timestamp = d.getTime();
  105. var h = addZero(d.getHours());
  106. var m = addZero(d.getMinutes());
  107. var s = addZero(d.getSeconds());
  108. document.getElementById("img").src = getDomainname() + '/img_tmp/alg_roi.jpg?timestamp=' + timestamp;
  109. $('#timestamp').html("Last Page Refresh:" + (h + ":" + m + ":" + s));
  110. }
  111. function Refresh() {
  112. setTimeout (function() {
  113. LoadData();
  114. LoadROIImage();
  115. Refresh();
  116. }, 300000);
  117. }
  118. function loadStatus() {
  119. url = domainname + '/statusflow';
  120. var xhttp = new XMLHttpRequest();
  121. xhttp.onreadystatechange = function() {
  122. if (this.readyState == 4 && this.status == 200) {
  123. var _rsp = xhttp.responseText;
  124. $('#statusflow').html(_rsp);
  125. }
  126. }
  127. xhttp.open("GET", url, true);
  128. xhttp.send();
  129. }
  130. function loadCPUTemp() {
  131. url = domainname + '/cpu_temperature';
  132. var xhttp = new XMLHttpRequest();
  133. xhttp.onreadystatechange = function() {
  134. if (this.readyState == 4 && this.status == 200) {
  135. var _rsp = xhttp.responseText;
  136. $('#cputemp').html("CPU Temperature: " +_rsp + "°C");
  137. }
  138. }
  139. xhttp.open("GET", url, true);
  140. xhttp.send();
  141. }
  142. function loadRSSI() {
  143. url = domainname + '/rssi';
  144. var xhttp = new XMLHttpRequest();
  145. xhttp.onreadystatechange = function() {
  146. if (this.readyState == 4 && this.status == 200) {
  147. var _rsp = xhttp.responseText;
  148. if (_rsp >= -55) {
  149. $('#rssi').html("WIFI Signal: Excellent (" + _rsp + "dBm)");
  150. }
  151. else if (_rsp < -55 && _rsp >= -67) {
  152. $('#rssi').html("WIFI Signal: Good (" + _rsp + "dBm)");
  153. }
  154. else if (_rsp < -67 && _rsp >= -78) {
  155. $('#rssi').html("WIFI Signal: Fair (" + _rsp + "dBm)");
  156. }
  157. else if (_rsp < -78 && _rsp >= -85) {
  158. $('#rssi').html("WIFI Signal: Weak (" + _rsp + "dBm)");
  159. }
  160. else {
  161. $('#rssi').html("WIFI Signal: Unreliable (" + _rsp + "dBm)");
  162. }
  163. }
  164. }
  165. xhttp.open("GET", url, true);
  166. xhttp.send();
  167. }
  168. function loadUptime() {
  169. url = domainname + '/uptime';
  170. var xhttp = new XMLHttpRequest();
  171. xhttp.onreadystatechange = function() {
  172. if (this.readyState == 4 && this.status == 200) {
  173. var _rsp = xhttp.responseText;
  174. $('#uptime').html("Uptime: " + _rsp);
  175. }
  176. }
  177. xhttp.open("GET", url, true);
  178. xhttp.send();
  179. }
  180. function loadRoundCounter() {
  181. url = domainname + '/info?type=Round';
  182. var xhttp = new XMLHttpRequest();
  183. xhttp.onreadystatechange = function() {
  184. if (this.readyState == 4 && this.status == 200) {
  185. var _rsp = xhttp.responseText;
  186. $('#round').html("(Round: " + _rsp + ")");
  187. }
  188. }
  189. xhttp.open("GET", url, true);
  190. xhttp.send();
  191. }
  192. function loadValue(_type, _div, _style) {
  193. url = domainname + '/value?all=true&type=' + _type;
  194. var xhttp = new XMLHttpRequest();
  195. xhttp.onreadystatechange = function() {
  196. if (this.readyState == 4 && this.status == 200) {
  197. var _rsp = xhttp.responseText;
  198. var _split = _rsp.split("\r");
  199. if (typeof _style == undefined)
  200. out = "<table>";
  201. else
  202. out = "<table style=\"" + _style + "\">";
  203. if (_split.length == 1)
  204. {
  205. var _zer = ZerlegeZeile(_split[0], "\t")
  206. if (_zer.length > 1)
  207. out = _zer[1];
  208. else
  209. out = "";
  210. }
  211. else
  212. {
  213. for (var j = 0; j < _split.length; ++j)
  214. {
  215. var _zer = ZerlegeZeile(_split[j], "\t")
  216. if (_zer.length == 1)
  217. out = out + "<tr><td style=\"width: 22%; padding: 3px 5px; text-align: left; vertical-align:middle; border: 1px solid lightgrey\">" +
  218. _zer[0] + "</td><td style=\"padding: 3px 5px; text-align: left; vertical-align:middle; border: 1px solid lightgrey\"> </td></tr>";
  219. else
  220. out = out + "<tr><td style=\"width: 22%; padding: 3px 5px; text-align: left; vertical-align:middle; border: 1px solid lightgrey\">" +
  221. _zer[0] + "</td><td style=\"padding: 3px 5px; text-align: left; vertical-align:middle; border: 1px solid lightgrey\" >" + _zer[1] + "</td></tr>";
  222. }
  223. out = out + "</table>"
  224. }
  225. document.getElementById(_div).innerHTML = out;
  226. }
  227. };
  228. xhttp.open("GET", url, true);
  229. xhttp.send();
  230. }
  231. function setImageMaxWidth()
  232. {
  233. loadConfig(domainname);
  234. ParseConfig();
  235. param = getConfigParameters();
  236. if(param["TakeImage"]["ImageSize"]["value1"] == "QVGA") {
  237. if (param["Alignment"]["FlipImageSize"]["value1"] == "false") {
  238. document.getElementById("img").style.maxWidth = "320px";
  239. }
  240. else {
  241. document.getElementById("img").style.maxWidth = "240px";
  242. }
  243. }
  244. else {
  245. if (param["Alignment"]["FlipImageSize"]["value1"] == "false") {
  246. document.getElementById("img").style.maxWidth = "640px";
  247. }
  248. else {
  249. document.getElementById("img").style.maxWidth = "480px";
  250. }
  251. }
  252. }
  253. function init(){
  254. domainname = getDomainname();
  255. setImageMaxWidth();
  256. Refresh();
  257. }
  258. init();
  259. </script>
  260. </body>
  261. </html>