diff --git a/webgui/charge_tracker.go b/webgui/charge_tracker.go index 4c38960..82cfbcb 100644 --- a/webgui/charge_tracker.go +++ b/webgui/charge_tracker.go @@ -49,8 +49,8 @@ func NewChargeTracker(fullLevel float64) *ChargeTracker { } } -func (c *ChargeTracker) Update(amp float64) { - newNow := time.Now() +func (c *ChargeTracker) Update(amp float64, timestamp time.Time) { + newNow := timestamp elapsed := newNow.Sub(c.lastUpdate).Hours() c.lastUpdate = newNow c.currentLevel -= elapsed * amp diff --git a/webgui/webgui.go b/webgui/webgui.go index 2deb9ab..682f3bd 100644 --- a/webgui/webgui.go +++ b/webgui/webgui.go @@ -180,7 +180,7 @@ func (w *WebGui) dataPoll(batteryCapacity float64) { } else { statusP.status = s.MpStatus statusP.err = nil - tracker.Update(s.MpStatus.BatCurrent) + tracker.Update(s.MpStatus.BatCurrent, s.Time) if s.MpStatus.Leds[Float] == 1 { tracker.Reset() }