X-Git-Url: http://www.average.org/gitweb/?p=pulsecounter.git;a=blobdiff_plain;f=web%2Findex.html;h=7c0b4a4af3c9554e27d316fd47732226cd6eb8b3;hp=0c6c1777b3a1870ac20e2ce6fc4f9843fb2e3785;hb=02a022b2e79351dd4008240dfcd8ab081a8ba186;hpb=52f2a01b64c56d1c0e27a411fe524a926b59c398 diff --git a/web/index.html b/web/index.html index 0c6c177..7c0b4a4 100644 --- a/web/index.html +++ b/web/index.html @@ -9,7 +9,7 @@ var ww, wh; var hmax, hfact; var tmin, tmax, tfact; - var xzero = 40, yzero = 48; + var xzero = 60, yzero = 48; var cold_d = [], hot_d = []; function showdate(utime) { @@ -28,10 +28,10 @@ const mn = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; - function getcombx(lo, hi) { + function getcombx(tmin, tmax) { var comb = [], lb = []; var trange = tmax - tmin; - var inc, inc2, base, t, dt; + var inc, inc2, base, base2, t, dt, zoff; var label = function(t) { return "<<" + t.toFixed(1) + ">>"; } function tohour(t) { var dt = new Date(t*1000); return dt.getHours(); } function todow(t) { var dt = new Date(t*1000); return dow[dt.getDay()]; } @@ -56,25 +56,28 @@ else { /* ~ one month */ /* TODO: make this a separate case with loop over months rather than fixed number of seconds. */ - inc = 2592000; + inc = 86400; inc2 = 2592000; label = tomonth; } dt = new Date(tmin*1000); - base = (Math.floor(tmin / inc) + 1) * inc + 60 * dt.getTimezoneOffset(); + zoff = 60 * dt.getTimezoneOffset(); + base = (Math.floor((tmin - zoff - 1) / inc) + 1) * inc + zoff; for (t = base; t < tmax; t += inc) comb.push(t); - base = (Math.floor(tmin / inc2) + 1) * inc2 + 60 * dt.getTimezoneOffset(); - for (t = base; t < tmax; t += inc2) + base2 = (Math.floor((tmin - zoff - 1) / inc2) + 1) * inc2 + zoff; + for (t = base2; t < tmax; t += inc2) lb.push([t, label(t)]); - //dbg.innerHTML = "ord=" + ord + "
inc=" + inc + "
" + //dbg.innerHTML = "inc=" + inc + "
inc2=" + inc2 + "
" + // + "tmin=" + tmin + " tmax=" + tmax + "
" + // + "base=" + base + " base2=" + base2 + "
" // + comb + "
" + lb; return [comb, lb]; } function xaxis() { - var comb = getcombx(0, hmax); + var comb = getcombx(tmin, tmax); var i; ctx.beginPath(); @@ -190,14 +193,16 @@ function drawplot(data, color) { var i; - ctx.beginPath(); - ctx.moveTo(px(data[0][0]), py(data[0][1])); - for (i = 1; i < data.length; i++) { - ctx.lineTo(px(data[i][0]), py(data[i - 1][1])); - ctx.lineTo(px(data[i][0]), py(data[i][1])); + if (data.length) { + ctx.beginPath(); + ctx.moveTo(px(data[0][0]), py(data[0][1])); + for (i = 1; i < data.length; i++) { + ctx.lineTo(px(data[i][0]), py(data[i - 1][1])); + ctx.lineTo(px(data[i][0]), py(data[i][1])); + } + ctx.strokeStyle = color; + ctx.stroke(); } - ctx.strokeStyle = color; - ctx.stroke(); } function showloading() { @@ -241,10 +246,14 @@ document.getElementById("curhot").innerHTML = (data.current.hot / 100).toFixed(2); - document.getElementById("totcold").innerHTML = - ((data.cold[data.cold.length - 1][1] - data.cold[0][1]) * 10); - document.getElementById("tothot").innerHTML = - ((data.hot[data.hot.length - 1][1] - data.hot[0][1]) * 10); + if (data.cold.length) + document.getElementById("totcold").innerHTML = + ((data.cold[data.cold.length - 1][1] - data.cold[0][1]) * 10); + else document.getElementById("totcold").innerHTML = "0"; + if (data.hot.length) + document.getElementById("tothot").innerHTML = + ((data.hot[data.hot.length - 1][1] - data.hot[0][1]) * 10); + else document.getElementById("tothot").innerHTML = "0"; tmin = data.range.lo; tmax = data.range.hi;