Monitor for central heating system (e.g. 2zones+hw) Supports up to 15 temp probes (DS18B20/DS18S20) 3 valve monitors Gas pulse meter recording Use stand-alone or with nodeEnergyServer See http://robdobson.com/2015/09/central-heating-monitor
Dependencies: EthernetInterfacePlusHostname NTPClient Onewire RdWebServer SDFileSystem-RTOS mbed-rtos mbed-src
index.html@23:fd5a5a9f30bc, 2015-10-16 (annotated)
- Committer:
- Bobty
- Date:
- Fri Oct 16 09:07:04 2015 +0000
- Revision:
- 23:fd5a5a9f30bc
Added index.html file to project for completeness
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Bobty | 23:fd5a5a9f30bc | 1 | <!DOCTYPE html> |
Bobty | 23:fd5a5a9f30bc | 2 | <html> |
Bobty | 23:fd5a5a9f30bc | 3 | |
Bobty | 23:fd5a5a9f30bc | 4 | <head> |
Bobty | 23:fd5a5a9f30bc | 5 | <title>Gas Use Monitor</title> |
Bobty | 23:fd5a5a9f30bc | 6 | <meta name="viewport" content="width=device-width, initial-scale=1"> |
Bobty | 23:fd5a5a9f30bc | 7 | <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> |
Bobty | 23:fd5a5a9f30bc | 8 | <script type="text/javascript"> |
Bobty | 23:fd5a5a9f30bc | 9 | |
Bobty | 23:fd5a5a9f30bc | 10 | var pathToServer = "./"; |
Bobty | 23:fd5a5a9f30bc | 11 | |
Bobty | 23:fd5a5a9f30bc | 12 | function callAjax(url, callback, contentType, usePost) { |
Bobty | 23:fd5a5a9f30bc | 13 | var xmlhttp; |
Bobty | 23:fd5a5a9f30bc | 14 | // code for IE7+, Firefox, Chrome, Opera, Safari |
Bobty | 23:fd5a5a9f30bc | 15 | xmlhttp = new XMLHttpRequest(); |
Bobty | 23:fd5a5a9f30bc | 16 | xmlhttp.onreadystatechange = function() { |
Bobty | 23:fd5a5a9f30bc | 17 | if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { |
Bobty | 23:fd5a5a9f30bc | 18 | callback(xmlhttp.responseText); |
Bobty | 23:fd5a5a9f30bc | 19 | } |
Bobty | 23:fd5a5a9f30bc | 20 | } |
Bobty | 23:fd5a5a9f30bc | 21 | |
Bobty | 23:fd5a5a9f30bc | 22 | if (typeof usePost !== "undefined") { |
Bobty | 23:fd5a5a9f30bc | 23 | xmlhttp.open("POST", url, true); |
Bobty | 23:fd5a5a9f30bc | 24 | } else { |
Bobty | 23:fd5a5a9f30bc | 25 | xmlhttp.open("GET", url, true); |
Bobty | 23:fd5a5a9f30bc | 26 | } |
Bobty | 23:fd5a5a9f30bc | 27 | if (typeof contentType !== "undefined") { |
Bobty | 23:fd5a5a9f30bc | 28 | if (contentType === "json") { |
Bobty | 23:fd5a5a9f30bc | 29 | xmlhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); |
Bobty | 23:fd5a5a9f30bc | 30 | } |
Bobty | 23:fd5a5a9f30bc | 31 | } |
Bobty | 23:fd5a5a9f30bc | 32 | xmlhttp.send(); |
Bobty | 23:fd5a5a9f30bc | 33 | } |
Bobty | 23:fd5a5a9f30bc | 34 | |
Bobty | 23:fd5a5a9f30bc | 35 | function ajaxCallback() {} |
Bobty | 23:fd5a5a9f30bc | 36 | |
Bobty | 23:fd5a5a9f30bc | 37 | function dataRefresh() { |
Bobty | 23:fd5a5a9f30bc | 38 | updateCurData(); |
Bobty | 23:fd5a5a9f30bc | 39 | setTimeout(function() { |
Bobty | 23:fd5a5a9f30bc | 40 | dataRefresh(); |
Bobty | 23:fd5a5a9f30bc | 41 | }, 10000); |
Bobty | 23:fd5a5a9f30bc | 42 | } |
Bobty | 23:fd5a5a9f30bc | 43 | |
Bobty | 23:fd5a5a9f30bc | 44 | function updateCurData() { |
Bobty | 23:fd5a5a9f30bc | 45 | callAjax(pathToServer+"getcurdata", curDataCallback, "json"); |
Bobty | 23:fd5a5a9f30bc | 46 | } |
Bobty | 23:fd5a5a9f30bc | 47 | |
Bobty | 23:fd5a5a9f30bc | 48 | function curDataCallback(resp) { |
Bobty | 23:fd5a5a9f30bc | 49 | console.log("Response " + resp); |
Bobty | 23:fd5a5a9f30bc | 50 | var respObj = JSON.parse(resp); |
Bobty | 23:fd5a5a9f30bc | 51 | // Handle elements |
Bobty | 23:fd5a5a9f30bc | 52 | if ("e" in respObj) { |
Bobty | 23:fd5a5a9f30bc | 53 | // Remove temperature and pump elements |
Bobty | 23:fd5a5a9f30bc | 54 | var elem = document.getElementById("tempValues"); |
Bobty | 23:fd5a5a9f30bc | 55 | while (elem.firstChild) { |
Bobty | 23:fd5a5a9f30bc | 56 | elem.removeChild(elem.firstChild); |
Bobty | 23:fd5a5a9f30bc | 57 | } |
Bobty | 23:fd5a5a9f30bc | 58 | var elem = document.getElementById("pumpValues"); |
Bobty | 23:fd5a5a9f30bc | 59 | while (elem.firstChild) { |
Bobty | 23:fd5a5a9f30bc | 60 | elem.removeChild(elem.firstChild); |
Bobty | 23:fd5a5a9f30bc | 61 | } |
Bobty | 23:fd5a5a9f30bc | 62 | |
Bobty | 23:fd5a5a9f30bc | 63 | // Extract data from ajax json block and show |
Bobty | 23:fd5a5a9f30bc | 64 | var i; |
Bobty | 23:fd5a5a9f30bc | 65 | for (i = 0; i < respObj.e.length; i++) { |
Bobty | 23:fd5a5a9f30bc | 66 | dataRec = respObj.e[i]; |
Bobty | 23:fd5a5a9f30bc | 67 | if ("n" in dataRec) { |
Bobty | 23:fd5a5a9f30bc | 68 | if (dataRec.n === "gasCount") { |
Bobty | 23:fd5a5a9f30bc | 69 | var elem = document.getElementById("gasCountValue"); |
Bobty | 23:fd5a5a9f30bc | 70 | elem.innerHTML = "" + dataRec.v; |
Bobty | 23:fd5a5a9f30bc | 71 | } else if (dataRec.n.indexOf("temp_") > -1) { |
Bobty | 23:fd5a5a9f30bc | 72 | var tempStr = dataRec.n.slice(dataRec.n.lastIndexOf("_") + 1); |
Bobty | 23:fd5a5a9f30bc | 73 | var elem = document.getElementById("tempValues"); |
Bobty | 23:fd5a5a9f30bc | 74 | var para = document.createElement("p"); |
Bobty | 23:fd5a5a9f30bc | 75 | para.className = "label"; |
Bobty | 23:fd5a5a9f30bc | 76 | var node = document.createTextNode(tempStr); |
Bobty | 23:fd5a5a9f30bc | 77 | para.appendChild(node); |
Bobty | 23:fd5a5a9f30bc | 78 | elem.appendChild(para); |
Bobty | 23:fd5a5a9f30bc | 79 | para = document.createElement("p"); |
Bobty | 23:fd5a5a9f30bc | 80 | para.className = "value"; |
Bobty | 23:fd5a5a9f30bc | 81 | node = document.createTextNode("" + dataRec.v); |
Bobty | 23:fd5a5a9f30bc | 82 | para.appendChild(node); |
Bobty | 23:fd5a5a9f30bc | 83 | elem.appendChild(para); |
Bobty | 23:fd5a5a9f30bc | 84 | } else if (dataRec.n.indexOf("pump_") > -1) { |
Bobty | 23:fd5a5a9f30bc | 85 | var pumpStr = dataRec.n.slice(dataRec.n.lastIndexOf("_") + 1); |
Bobty | 23:fd5a5a9f30bc | 86 | var elem = document.getElementById("pumpValues"); |
Bobty | 23:fd5a5a9f30bc | 87 | var para = document.createElement("p"); |
Bobty | 23:fd5a5a9f30bc | 88 | para.className = "label"; |
Bobty | 23:fd5a5a9f30bc | 89 | var node = document.createTextNode(pumpStr); |
Bobty | 23:fd5a5a9f30bc | 90 | para.appendChild(node); |
Bobty | 23:fd5a5a9f30bc | 91 | elem.appendChild(para); |
Bobty | 23:fd5a5a9f30bc | 92 | para = document.createElement("p"); |
Bobty | 23:fd5a5a9f30bc | 93 | para.className = "value"; |
Bobty | 23:fd5a5a9f30bc | 94 | node = document.createTextNode(dataRec.bv ? "On" : "Off"); |
Bobty | 23:fd5a5a9f30bc | 95 | para.appendChild(node); |
Bobty | 23:fd5a5a9f30bc | 96 | elem.appendChild(para); |
Bobty | 23:fd5a5a9f30bc | 97 | } |
Bobty | 23:fd5a5a9f30bc | 98 | } |
Bobty | 23:fd5a5a9f30bc | 99 | } |
Bobty | 23:fd5a5a9f30bc | 100 | } |
Bobty | 23:fd5a5a9f30bc | 101 | if ("bt" in respObj) { |
Bobty | 23:fd5a5a9f30bc | 102 | var elem = document.getElementById("lastUpdateTime"); |
Bobty | 23:fd5a5a9f30bc | 103 | ud = new Date(respObj.bt * 1000); |
Bobty | 23:fd5a5a9f30bc | 104 | elem.innerHTML = "" + ud.getFullYear() + "/" + padZero(ud.getMonth() + 1, 2) + "/" + padZero(ud.getDate(), 2) + " " + padZero(ud.getHours(), 2) + ":" + padZero(ud.getMinutes(), 2) + ":" + padZero(ud.getSeconds(), 2); |
Bobty | 23:fd5a5a9f30bc | 105 | } |
Bobty | 23:fd5a5a9f30bc | 106 | |
Bobty | 23:fd5a5a9f30bc | 107 | } |
Bobty | 23:fd5a5a9f30bc | 108 | |
Bobty | 23:fd5a5a9f30bc | 109 | function padZero(val, zeroes) { |
Bobty | 23:fd5a5a9f30bc | 110 | return ("00000000" + val).slice(-zeroes); |
Bobty | 23:fd5a5a9f30bc | 111 | } |
Bobty | 23:fd5a5a9f30bc | 112 | |
Bobty | 23:fd5a5a9f30bc | 113 | function dispGasNewVal() { |
Bobty | 23:fd5a5a9f30bc | 114 | document.getElementById("gasadjust").style.display = "none"; |
Bobty | 23:fd5a5a9f30bc | 115 | document.getElementById("gasnewval").style.display = "block"; |
Bobty | 23:fd5a5a9f30bc | 116 | document.getElementById("setgasnewval").style.display = "block"; |
Bobty | 23:fd5a5a9f30bc | 117 | } |
Bobty | 23:fd5a5a9f30bc | 118 | |
Bobty | 23:fd5a5a9f30bc | 119 | function setGasNewVal() { |
Bobty | 23:fd5a5a9f30bc | 120 | document.getElementById("gasadjust").style.display = "block"; |
Bobty | 23:fd5a5a9f30bc | 121 | document.getElementById("gasnewval").style.display = "none"; |
Bobty | 23:fd5a5a9f30bc | 122 | document.getElementById("setgasnewval").style.display = "none"; |
Bobty | 23:fd5a5a9f30bc | 123 | var elem = document.getElementById("gasnewval"); |
Bobty | 23:fd5a5a9f30bc | 124 | var newVal = elem.value; |
Bobty | 23:fd5a5a9f30bc | 125 | callAjax(pathToServer + "setgascount?newVal=" + newVal, setValCallback, "json", "POST") |
Bobty | 23:fd5a5a9f30bc | 126 | } |
Bobty | 23:fd5a5a9f30bc | 127 | |
Bobty | 23:fd5a5a9f30bc | 128 | function setValCallback(resp) { |
Bobty | 23:fd5a5a9f30bc | 129 | console.log("setGasValue returned " + resp) |
Bobty | 23:fd5a5a9f30bc | 130 | updateCurData(); |
Bobty | 23:fd5a5a9f30bc | 131 | } |
Bobty | 23:fd5a5a9f30bc | 132 | |
Bobty | 23:fd5a5a9f30bc | 133 | function showLog() { |
Bobty | 23:fd5a5a9f30bc | 134 | document.getElementById("logtext").style.display = "block"; |
Bobty | 23:fd5a5a9f30bc | 135 | callAjax(pathToServer+"log.txt", getLogTextCallback); |
Bobty | 23:fd5a5a9f30bc | 136 | } |
Bobty | 23:fd5a5a9f30bc | 137 | |
Bobty | 23:fd5a5a9f30bc | 138 | function showUpload() { |
Bobty | 23:fd5a5a9f30bc | 139 | document.getElementById("fileuploadform").style.display = "block"; |
Bobty | 23:fd5a5a9f30bc | 140 | } |
Bobty | 23:fd5a5a9f30bc | 141 | |
Bobty | 23:fd5a5a9f30bc | 142 | function getLogTextCallback(resp) { |
Bobty | 23:fd5a5a9f30bc | 143 | var elem = document.getElementById("logtext"); |
Bobty | 23:fd5a5a9f30bc | 144 | elem.innerHTML = resp; |
Bobty | 23:fd5a5a9f30bc | 145 | } |
Bobty | 23:fd5a5a9f30bc | 146 | |
Bobty | 23:fd5a5a9f30bc | 147 | $(document).ready(function() { |
Bobty | 23:fd5a5a9f30bc | 148 | $('#UploadNow').click(function() { |
Bobty | 23:fd5a5a9f30bc | 149 | var formData = new FormData($('form')[0]); |
Bobty | 23:fd5a5a9f30bc | 150 | $.ajax({ |
Bobty | 23:fd5a5a9f30bc | 151 | url: pathToServer + 'upload', //Server script to process data |
Bobty | 23:fd5a5a9f30bc | 152 | type: 'POST', |
Bobty | 23:fd5a5a9f30bc | 153 | xhr: function() { // Custom XMLHttpRequest |
Bobty | 23:fd5a5a9f30bc | 154 | var myXhr = $.ajaxSettings.xhr(); |
Bobty | 23:fd5a5a9f30bc | 155 | if (myXhr.upload) { // Check if upload property exists |
Bobty | 23:fd5a5a9f30bc | 156 | myXhr.upload.addEventListener('progress', progressHandlingFunction, false); // For handling the progress of the upload |
Bobty | 23:fd5a5a9f30bc | 157 | } |
Bobty | 23:fd5a5a9f30bc | 158 | return myXhr; |
Bobty | 23:fd5a5a9f30bc | 159 | }, |
Bobty | 23:fd5a5a9f30bc | 160 | //Ajax events |
Bobty | 23:fd5a5a9f30bc | 161 | // beforeSend: beforeSendHandler, |
Bobty | 23:fd5a5a9f30bc | 162 | success: completeHandler, |
Bobty | 23:fd5a5a9f30bc | 163 | error: errorHandler, |
Bobty | 23:fd5a5a9f30bc | 164 | // Form data |
Bobty | 23:fd5a5a9f30bc | 165 | data: formData, |
Bobty | 23:fd5a5a9f30bc | 166 | //Options to tell jQuery not to process data or worry about content-type. |
Bobty | 23:fd5a5a9f30bc | 167 | cache: false, |
Bobty | 23:fd5a5a9f30bc | 168 | contentType: false, |
Bobty | 23:fd5a5a9f30bc | 169 | processData: false |
Bobty | 23:fd5a5a9f30bc | 170 | }); |
Bobty | 23:fd5a5a9f30bc | 171 | }); |
Bobty | 23:fd5a5a9f30bc | 172 | |
Bobty | 23:fd5a5a9f30bc | 173 | function progressHandlingFunction(e) { |
Bobty | 23:fd5a5a9f30bc | 174 | if (e.lengthComputable) { |
Bobty | 23:fd5a5a9f30bc | 175 | $('progress').attr({ |
Bobty | 23:fd5a5a9f30bc | 176 | value: e.loaded, |
Bobty | 23:fd5a5a9f30bc | 177 | max: e.total |
Bobty | 23:fd5a5a9f30bc | 178 | }); |
Bobty | 23:fd5a5a9f30bc | 179 | } |
Bobty | 23:fd5a5a9f30bc | 180 | } |
Bobty | 23:fd5a5a9f30bc | 181 | |
Bobty | 23:fd5a5a9f30bc | 182 | function completeHandler(e) { |
Bobty | 23:fd5a5a9f30bc | 183 | alert("Completed file upload"); |
Bobty | 23:fd5a5a9f30bc | 184 | } |
Bobty | 23:fd5a5a9f30bc | 185 | |
Bobty | 23:fd5a5a9f30bc | 186 | function errorHandler(jqXHR, textStatus, errorThrown) { |
Bobty | 23:fd5a5a9f30bc | 187 | alert("Error uploading file " + textStatus + " " + errorThrown); |
Bobty | 23:fd5a5a9f30bc | 188 | } |
Bobty | 23:fd5a5a9f30bc | 189 | }); |
Bobty | 23:fd5a5a9f30bc | 190 | </script> |
Bobty | 23:fd5a5a9f30bc | 191 | <style> |
Bobty | 23:fd5a5a9f30bc | 192 | body { |
Bobty | 23:fd5a5a9f30bc | 193 | font-family: Helvetica; |
Bobty | 23:fd5a5a9f30bc | 194 | line-height: 1rem; |
Bobty | 23:fd5a5a9f30bc | 195 | font-size: 12pt; |
Bobty | 23:fd5a5a9f30bc | 196 | } |
Bobty | 23:fd5a5a9f30bc | 197 | |
Bobty | 23:fd5a5a9f30bc | 198 | .layout { |
Bobty | 23:fd5a5a9f30bc | 199 | display: table; |
Bobty | 23:fd5a5a9f30bc | 200 | width: 360px; |
Bobty | 23:fd5a5a9f30bc | 201 | margin: 0 auto 0 auto; |
Bobty | 23:fd5a5a9f30bc | 202 | } |
Bobty | 23:fd5a5a9f30bc | 203 | |
Bobty | 23:fd5a5a9f30bc | 204 | .pageheading { |
Bobty | 23:fd5a5a9f30bc | 205 | background-color: #00344c; |
Bobty | 23:fd5a5a9f30bc | 206 | display: block; |
Bobty | 23:fd5a5a9f30bc | 207 | min-height: 60px; |
Bobty | 23:fd5a5a9f30bc | 208 | text-align: center; |
Bobty | 23:fd5a5a9f30bc | 209 | } |
Bobty | 23:fd5a5a9f30bc | 210 | |
Bobty | 23:fd5a5a9f30bc | 211 | .headingtxt { |
Bobty | 23:fd5a5a9f30bc | 212 | height: 100%; |
Bobty | 23:fd5a5a9f30bc | 213 | padding: 10px; |
Bobty | 23:fd5a5a9f30bc | 214 | padding-top: 20px; |
Bobty | 23:fd5a5a9f30bc | 215 | color: White; |
Bobty | 23:fd5a5a9f30bc | 216 | vertical-align: middle; |
Bobty | 23:fd5a5a9f30bc | 217 | text-align: center; |
Bobty | 23:fd5a5a9f30bc | 218 | } |
Bobty | 23:fd5a5a9f30bc | 219 | |
Bobty | 23:fd5a5a9f30bc | 220 | .label, |
Bobty | 23:fd5a5a9f30bc | 221 | .value, |
Bobty | 23:fd5a5a9f30bc | 222 | #gasnewval { |
Bobty | 23:fd5a5a9f30bc | 223 | width: 100%; |
Bobty | 23:fd5a5a9f30bc | 224 | text-align: center; |
Bobty | 23:fd5a5a9f30bc | 225 | } |
Bobty | 23:fd5a5a9f30bc | 226 | |
Bobty | 23:fd5a5a9f30bc | 227 | #gasadjust, |
Bobty | 23:fd5a5a9f30bc | 228 | #setgasnewval { |
Bobty | 23:fd5a5a9f30bc | 229 | text-align: center; |
Bobty | 23:fd5a5a9f30bc | 230 | padding: 10px; |
Bobty | 23:fd5a5a9f30bc | 231 | border: 10px; |
Bobty | 23:fd5a5a9f30bc | 232 | margin: 5%; |
Bobty | 23:fd5a5a9f30bc | 233 | width: 90%; |
Bobty | 23:fd5a5a9f30bc | 234 | background-color: grey; |
Bobty | 23:fd5a5a9f30bc | 235 | color: White; |
Bobty | 23:fd5a5a9f30bc | 236 | } |
Bobty | 23:fd5a5a9f30bc | 237 | |
Bobty | 23:fd5a5a9f30bc | 238 | .label { |
Bobty | 23:fd5a5a9f30bc | 239 | color: grey; |
Bobty | 23:fd5a5a9f30bc | 240 | margin: 0.6em 0 0.6em 0; |
Bobty | 23:fd5a5a9f30bc | 241 | } |
Bobty | 23:fd5a5a9f30bc | 242 | |
Bobty | 23:fd5a5a9f30bc | 243 | .value { |
Bobty | 23:fd5a5a9f30bc | 244 | font-size: 110%; |
Bobty | 23:fd5a5a9f30bc | 245 | font-weight: bold; |
Bobty | 23:fd5a5a9f30bc | 246 | color: green; |
Bobty | 23:fd5a5a9f30bc | 247 | margin: 0.6em 0 0.6em 0; |
Bobty | 23:fd5a5a9f30bc | 248 | } |
Bobty | 23:fd5a5a9f30bc | 249 | |
Bobty | 23:fd5a5a9f30bc | 250 | .datacell { |
Bobty | 23:fd5a5a9f30bc | 251 | display: block; |
Bobty | 23:fd5a5a9f30bc | 252 | width: 116px; |
Bobty | 23:fd5a5a9f30bc | 253 | min-height: 180px; |
Bobty | 23:fd5a5a9f30bc | 254 | margin: 0; |
Bobty | 23:fd5a5a9f30bc | 255 | border: solid lightgrey 2px; |
Bobty | 23:fd5a5a9f30bc | 256 | float: left; |
Bobty | 23:fd5a5a9f30bc | 257 | } |
Bobty | 23:fd5a5a9f30bc | 258 | |
Bobty | 23:fd5a5a9f30bc | 259 | #gasnewval { |
Bobty | 23:fd5a5a9f30bc | 260 | display: none; |
Bobty | 23:fd5a5a9f30bc | 261 | font-size: 120%; |
Bobty | 23:fd5a5a9f30bc | 262 | } |
Bobty | 23:fd5a5a9f30bc | 263 | |
Bobty | 23:fd5a5a9f30bc | 264 | #setgasnewval { |
Bobty | 23:fd5a5a9f30bc | 265 | display: none; |
Bobty | 23:fd5a5a9f30bc | 266 | } |
Bobty | 23:fd5a5a9f30bc | 267 | |
Bobty | 23:fd5a5a9f30bc | 268 | #logtext { |
Bobty | 23:fd5a5a9f30bc | 269 | display: none; |
Bobty | 23:fd5a5a9f30bc | 270 | margin: 0; |
Bobty | 23:fd5a5a9f30bc | 271 | border: solid lightgrey 2px; |
Bobty | 23:fd5a5a9f30bc | 272 | padding: 5px; |
Bobty | 23:fd5a5a9f30bc | 273 | width: 346px; |
Bobty | 23:fd5a5a9f30bc | 274 | height: 100%; |
Bobty | 23:fd5a5a9f30bc | 275 | min-height: 200px; |
Bobty | 23:fd5a5a9f30bc | 276 | } |
Bobty | 23:fd5a5a9f30bc | 277 | #fileuploadform { |
Bobty | 23:fd5a5a9f30bc | 278 | display: none; |
Bobty | 23:fd5a5a9f30bc | 279 | border: solid lightgrey 2px; |
Bobty | 23:fd5a5a9f30bc | 280 | padding: 5px; |
Bobty | 23:fd5a5a9f30bc | 281 | width: 346px; |
Bobty | 23:fd5a5a9f30bc | 282 | } |
Bobty | 23:fd5a5a9f30bc | 283 | #setupbtns { |
Bobty | 23:fd5a5a9f30bc | 284 | display: block; |
Bobty | 23:fd5a5a9f30bc | 285 | position: relative; |
Bobty | 23:fd5a5a9f30bc | 286 | top:-40px; |
Bobty | 23:fd5a5a9f30bc | 287 | left:270px; |
Bobty | 23:fd5a5a9f30bc | 288 | height: 0px; |
Bobty | 23:fd5a5a9f30bc | 289 | text-align: left; |
Bobty | 23:fd5a5a9f30bc | 290 | } |
Bobty | 23:fd5a5a9f30bc | 291 | .setupbtn { |
Bobty | 23:fd5a5a9f30bc | 292 | display: block; |
Bobty | 23:fd5a5a9f30bc | 293 | position: relative; |
Bobty | 23:fd5a5a9f30bc | 294 | padding-top: 3px; |
Bobty | 23:fd5a5a9f30bc | 295 | } |
Bobty | 23:fd5a5a9f30bc | 296 | .setupbtn button { |
Bobty | 23:fd5a5a9f30bc | 297 | width: 80px; |
Bobty | 23:fd5a5a9f30bc | 298 | } |
Bobty | 23:fd5a5a9f30bc | 299 | </style> |
Bobty | 23:fd5a5a9f30bc | 300 | </head> |
Bobty | 23:fd5a5a9f30bc | 301 | |
Bobty | 23:fd5a5a9f30bc | 302 | <body onload="dataRefresh();"> |
Bobty | 23:fd5a5a9f30bc | 303 | <div class="layout"> |
Bobty | 23:fd5a5a9f30bc | 304 | <div class="pageheading"> |
Bobty | 23:fd5a5a9f30bc | 305 | <div class="headingtxt"> |
Bobty | 23:fd5a5a9f30bc | 306 | Gas Use Monitor |
Bobty | 23:fd5a5a9f30bc | 307 | </div> |
Bobty | 23:fd5a5a9f30bc | 308 | <div id="setupbtns"> |
Bobty | 23:fd5a5a9f30bc | 309 | <div id="showlog" class="setupbtn"><button href="#" onclick="showLog();">Log</button></div> |
Bobty | 23:fd5a5a9f30bc | 310 | <div id="showupload" class="setupbtn"><button href="#" onclick="showUpload();">Upload</button></div> |
Bobty | 23:fd5a5a9f30bc | 311 | </div> |
Bobty | 23:fd5a5a9f30bc | 312 | </div> |
Bobty | 23:fd5a5a9f30bc | 313 | </div> |
Bobty | 23:fd5a5a9f30bc | 314 | <div class="layout"> |
Bobty | 23:fd5a5a9f30bc | 315 | <div class="datacell"> |
Bobty | 23:fd5a5a9f30bc | 316 | <p class="label">Update time</p> |
Bobty | 23:fd5a5a9f30bc | 317 | <p class="value" id="lastUpdateTime"></p> |
Bobty | 23:fd5a5a9f30bc | 318 | <p class="label">Gas Count</p> |
Bobty | 23:fd5a5a9f30bc | 319 | <p class="value" id="gasCountValue"></p> |
Bobty | 23:fd5a5a9f30bc | 320 | <button id="gasadjust" href="#" onclick="dispGasNewVal();">Change</button> |
Bobty | 23:fd5a5a9f30bc | 321 | <input id="gasnewval" type="text" name="newGasCountValue" /> |
Bobty | 23:fd5a5a9f30bc | 322 | <button id="setgasnewval" type="button" href="#" onclick="setGasNewVal();">Set New Value</button> |
Bobty | 23:fd5a5a9f30bc | 323 | </div> |
Bobty | 23:fd5a5a9f30bc | 324 | <div class="datacell" id="tempValues"> |
Bobty | 23:fd5a5a9f30bc | 325 | </div> |
Bobty | 23:fd5a5a9f30bc | 326 | <div class="datacell" id="pumpValues"> |
Bobty | 23:fd5a5a9f30bc | 327 | </div> |
Bobty | 23:fd5a5a9f30bc | 328 | </div> |
Bobty | 23:fd5a5a9f30bc | 329 | <div class="layout"> |
Bobty | 23:fd5a5a9f30bc | 330 | <textarea id="logtext"> |
Bobty | 23:fd5a5a9f30bc | 331 | </textarea> |
Bobty | 23:fd5a5a9f30bc | 332 | </div> |
Bobty | 23:fd5a5a9f30bc | 333 | <div class="layout" id="fileuploadform"> |
Bobty | 23:fd5a5a9f30bc | 334 | <form enctype="multipart/form-data"> |
Bobty | 23:fd5a5a9f30bc | 335 | <input name="file" type="file" /> |
Bobty | 23:fd5a5a9f30bc | 336 | <input type="button" value="Upload" id="UploadNow" /> |
Bobty | 23:fd5a5a9f30bc | 337 | </form> |
Bobty | 23:fd5a5a9f30bc | 338 | <progress></progress> |
Bobty | 23:fd5a5a9f30bc | 339 | </div> |
Bobty | 23:fd5a5a9f30bc | 340 | </body> |
Bobty | 23:fd5a5a9f30bc | 341 | |
Bobty | 23:fd5a5a9f30bc | 342 | </html> |