From f5a6ec00b2125786c4cf93c0d427a14baac78c7f Mon Sep 17 00:00:00 2001 From: Timo Volkmann Date: Thu, 7 Jan 2021 16:59:52 +0100 Subject: [PATCH] changed fix for old record --- core/pipeline_replay.go | 6 +++--- core/service.go | 18 +++++++++++++++++- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/core/pipeline_replay.go b/core/pipeline_replay.go index 1997b38..08a2db2 100644 --- a/core/pipeline_replay.go +++ b/core/pipeline_replay.go @@ -94,9 +94,9 @@ func replaySanitizeFunc() flow.MapFunc { } sd.Timestamp = sd.Servertime.Add(time.Duration(lastOff)) } - if sd.Servertime.Before(time.Unix(1608422400, 0)) && sd.Speed != 0 && sd.Source() == SOURCE_SERIAL { - sd.Speed = sd.Speed * 3.6 - } + //if sd.Servertime.Before(time.Unix(1608422400, 0)) && sd.Speed != 0 && sd.Source() == SOURCE_SERIAL { + // sd.Speed = sd.Speed * 3.6 + //} return sd } } diff --git a/core/service.go b/core/service.go index 55faf13..87df9a7 100644 --- a/core/service.go +++ b/core/service.go @@ -225,11 +225,12 @@ func (t *TrackingService) LoadTracking(trackingId uuid.UUID, replay bool) (*Trac logrus.Warn(txt) return nil, errors.New(txt) } - if t.opMode == REPLAY || t.opMode == STOPPED || t.opMode == LIVE { + if t.opMode == REPLAY || t.opMode == LIVE { t.StopAll() } logrus.Info("LOAD TRACKING from database") tracking, err := t.store.Load(trackingId) + fixSpeedValues(tracking) if err != nil { return nil, err } @@ -257,3 +258,18 @@ func (t *TrackingService) safelyReplaceTracking(tr Tracking) { *t.tracking = tr t.recSem.Release(1) } + +// helper function to fixSpeedValues wrong values recorded before 12/20/2020 +func fixSpeedValues(tracking *Tracking) { + logrus.Debugln("fixing speed values") + for i := 0; i < len(tracking.Data); i++ { + if tracking.Data[i].Servertime.Before(time.Unix(1608422400, 0)) && tracking.Data[i].Source() == SOURCE_SERIAL && tracking.Data[i].Speed != 0 { + tracking.Data[i].Speed = tracking.Data[i].Speed * 3.6 + } + } + //for _, sd := range tracking.Data { + // if sd.Servertime.Before(time.Unix(1608422400, 0)) && sd.Speed != 0 && sd.Source() == SOURCE_SERIAL { + // sd.Speed = sd.Speed * 3.6 + // } + //} +}