Browse Source

0.8.121

* fix plot of history graph #1635
pull/1541/head
lumapu 8 months ago
parent
commit
6b7914624d
  1. 1
      src/CHANGES.md
  2. 2
      src/defines.h
  3. 20
      src/web/html/history.html

1
src/CHANGES.md

@ -2,6 +2,7 @@
## 0.8.121 - 2024-05-20 ## 0.8.121 - 2024-05-20
* fix ESP32 factory image generation * fix ESP32 factory image generation
* fix plot of history graph #1635
## 0.8.120 - 2024-05-18 ## 0.8.120 - 2024-05-18
* fix crash if invalid serial number was set -> inverter will be disabled automatically * fix crash if invalid serial number was set -> inverter will be disabled automatically

2
src/defines.h

@ -13,7 +13,7 @@
//------------------------------------- //-------------------------------------
#define VERSION_MAJOR 0 #define VERSION_MAJOR 0
#define VERSION_MINOR 8 #define VERSION_MINOR 8
#define VERSION_PATCH 120 #define VERSION_PATCH 121
//------------------------------------- //-------------------------------------
typedef struct { typedef struct {
uint8_t ch; uint8_t ch;

20
src/web/html/history.html

@ -43,13 +43,10 @@
function calcScale(obj) { function calcScale(obj) {
let s = {} let s = {}
s.x_mul = 60 s.x_mul = 60
s.ts_start = obj.lastValueTs - (obj.refresh * obj.value.length) s.ts_dur = obj.refresh * obj.value.length
s.ts_dur = obj.lastValueTs - s.ts_start s.ts_start = obj.lastValueTs - s.ts_dur
s.ts_pad = (s.ts_dur < 1800) ? 0 : s.ts_start % 1800
s.ts_dur += s.ts_pad
while(s.x_mul * 10 <= s.ts_dur) while(s.x_mul * 10 <= s.ts_dur)
s.x_mul += (s.x_mul == 60) ? 240 : ((s.x_mul < 1800) ? 300 : 1800) s.x_mul += (s.x_mul == 60) ? 240 : ((s.x_mul < 1800) ? 300 : 1800)
s.x_step = Math.ceil(s.ts_dur / s.x_mul)
s.y_mul = 10 s.y_mul = 10
while(s.y_mul * 10 <= obj.max) while(s.y_mul * 10 <= obj.max)
@ -91,8 +88,8 @@
} }
div = x2 / scale.ts_dur div = x2 / scale.ts_dur
for(let i = 0; i < scale.ts_dur; i++) { for(let i = 0; i < scale.ts_dur; i++) {
if(i % scale.x_mul == 0) { if((i + scale.ts_start) % scale.x_mul == 0) {
let d = new Date((scale.ts_start - scale.ts_pad + i) * 1000) let d = new Date((scale.ts_start + i) * 1000)
g.push(mlNs("text", {x: (i*div)+17, y: height+20}, ("0"+d.getHours()).slice(-2) + ":" + ("0"+d.getMinutes()).slice(-2))) g.push(mlNs("text", {x: (i*div)+17, y: height+20}, ("0"+d.getHours()).slice(-2) + ":" + ("0"+d.getMinutes()).slice(-2)))
} }
} }
@ -107,7 +104,7 @@
} }
div = x2 / scale.ts_dur div = x2 / scale.ts_dur
for(let i = 0; i <= scale.ts_dur; i++) { for(let i = 0; i <= scale.ts_dur; i++) {
if(i % scale.x_mul == 0) { if((i + scale.ts_start) % scale.x_mul == 0) {
g.push(mlNs("line", {x1: (i*div), x2: (i*div), y1: 0, y2: height, "stroke-width": 1, "stroke-dasharray": "1,3", stroke: "#aaa"})) g.push(mlNs("line", {x1: (i*div), x2: (i*div), y1: 0, y2: height, "stroke-width": 1, "stroke-dasharray": "1,3", stroke: "#aaa"}))
} }
} }
@ -118,16 +115,15 @@
let pts = "" let pts = ""
let i = 0, first = -1, last = -1, lastVal = 0 let i = 0, first = -1, last = -1, lastVal = 0
let div = scale.y_max / height let div = scale.y_max / height
let xOff = x2 / scale.ts_dur * scale.ts_pad
if(div == 0) if(div == 0)
div = 1 div = 1
for (val of obj.value) { for (val of obj.value) {
if(val > 0) { if(val > 0) {
lastVal = val lastVal = val
pts += " " + String(i + xOff) + "," + String(height - val / div) pts += " " + String(i) + "," + String(height - val / div)
if(first < 0) if(first < 0)
first = i + xOff first = i
last = i + xOff last = i
} }
i += 2 i += 2
} }

Loading…
Cancel
Save