diff --git a/cmd/dumper.go b/cmd/dumper.go index 98f7ca39a..9bfc74995 100644 --- a/cmd/dumper.go +++ b/cmd/dumper.go @@ -70,12 +70,14 @@ func (d *dumper) Dump(name string, v interface{}) { // wait up to 1m for the vehicle to wakeup start := time.Now() - for soc, err = v.SoC(); err != nil && errors.Is(err, api.ErrMustRetry); { - if time.Since(start) > time.Minute { - err = api.ErrTimeout - } else { - fmt.Fprint(w, ".") - time.Sleep(3 * time.Second) + for err = api.ErrMustRetry; err != nil && errors.Is(err, api.ErrMustRetry); { + if soc, err = v.SoC(); err != nil { + if time.Since(start) > time.Minute { + err = api.ErrTimeout + } else { + fmt.Fprint(w, ".") + time.Sleep(3 * time.Second) + } } } diff --git a/cmd/soc/main.go b/cmd/soc/main.go index 0a4c78c20..b41e0082f 100644 --- a/cmd/soc/main.go +++ b/cmd/soc/main.go @@ -80,11 +80,13 @@ func main() { var err error start := time.Now() - for soc, err = v.SoC(); err != nil && matchesError(err, api.ErrMustRetry); { - if time.Since(start) > time.Minute { - err = api.ErrTimeout - } else { - time.Sleep(5 * time.Second) + for err = api.ErrMustRetry; err != nil && matchesError(err, api.ErrMustRetry); { + if soc, err = v.SoC(); err != nil { + if time.Since(start) > time.Minute { + err = api.ErrTimeout + } else { + time.Sleep(5 * time.Second) + } } }