From 0c04eab1c18e09bfcc4447e484f6fb7e67d364b6 Mon Sep 17 00:00:00 2001 From: Hendrik van Wyk Date: Sat, 28 Feb 2015 15:46:55 +0200 Subject: [PATCH] Made charge tracker get time stamps from data poller instead of internally. --- webgui/charge_tracker.go | 4 ++-- webgui/webgui.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) 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() }