update to network stat graphs
This commit is contained in:
@@ -7,7 +7,7 @@ Item {
|
||||
property var values: []
|
||||
property color lineColor: Colors.primary
|
||||
property color fillColor: Qt.alpha(Colors.primary, 0.15)
|
||||
property int pointCount: 60
|
||||
property real windowMs: 60000
|
||||
property real minWidth: 120
|
||||
property real graphHeight: 30
|
||||
|
||||
@@ -25,26 +25,34 @@ Item {
|
||||
var data = root.values
|
||||
if (!data || data.length < 2) return
|
||||
|
||||
var displayCount = Math.min(data.length, root.pointCount)
|
||||
var startIdx = data.length - displayCount
|
||||
var slice = data.slice(startIdx)
|
||||
var now = Date.now()
|
||||
var windowStart = now - root.windowMs
|
||||
|
||||
var maxVal = 0
|
||||
for (var i = 0; i < slice.length; i++) {
|
||||
if (slice[i] > maxVal) maxVal = slice[i]
|
||||
}
|
||||
if (maxVal === 0) maxVal = 1
|
||||
|
||||
var stepX = width / (slice.length - 1)
|
||||
var padY = 2
|
||||
var drawH = height - padY * 2
|
||||
|
||||
var maxVal = 0
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
if (data[i].time >= windowStart && data[i].value > maxVal)
|
||||
maxVal = data[i].value
|
||||
}
|
||||
if (maxVal === 0) maxVal = 1
|
||||
|
||||
ctx.beginPath()
|
||||
ctx.moveTo(0, height - padY - (slice[0] / maxVal) * drawH)
|
||||
for (var j = 1; j < slice.length; j++) {
|
||||
var x = j * stepX
|
||||
var y = height - padY - (slice[j] / maxVal) * drawH
|
||||
ctx.lineTo(x, y)
|
||||
var started = false
|
||||
for (var j = 0; j < data.length; j++) {
|
||||
var pt = data[j]
|
||||
if (pt.time < windowStart) continue
|
||||
|
||||
var x = ((pt.time - windowStart) / root.windowMs) * width
|
||||
var y = height - padY - (pt.value / maxVal) * drawH
|
||||
|
||||
if (!started) {
|
||||
ctx.moveTo(x, y)
|
||||
started = true
|
||||
} else {
|
||||
ctx.lineTo(x, y)
|
||||
}
|
||||
}
|
||||
ctx.strokeStyle = root.lineColor
|
||||
ctx.lineWidth = 1.5
|
||||
|
||||
Reference in New Issue
Block a user