Skip to content

Commit

Permalink
remove unnessary vars
Browse files Browse the repository at this point in the history
  • Loading branch information
maku1604 committed May 23, 2021
1 parent fb987db commit e3840b4
Showing 1 changed file with 34 additions and 47 deletions.
81 changes: 34 additions & 47 deletions vehicle/carwings.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ func NewCarWingsFromConfig(other map[string]interface{}) (api.Vehicle, error) {
}

v.statusG = provider.NewCached(func() (bool, error) {
return v.status()
return true, v.status()
}, cc.Cache).BoolGetter()
return v, nil
}
Expand All @@ -75,20 +75,18 @@ func (v *CarWings) initSession() error {
return v.session.Connect(v.user, v.password)
}

func (v *CarWings) status() (success bool, err error) {
func (v *CarWings) status() (err error) {
// follow up requested refresh
if v.refreshKey != "" {
return v.refreshResult()
}

if err = v.refreshRequest(); err != nil {
return false, err
return err
}

success, err = v.refreshResult()
if err == nil {
bs, err := v.session.BatteryStatus()
if err == nil {
if err = v.refreshResult(); err == nil {
if bs, err := v.session.BatteryStatus(); err == nil {
if elapsed := time.Since(bs.Timestamp); elapsed > carwingsStatusExpiry {
v.log.DEBUG.Printf("vehicle status is outdated (age %v > %v), requesting refresh", elapsed, carwingsStatusExpiry)
if err = v.refreshRequest(); err == nil {
Expand All @@ -98,21 +96,21 @@ func (v *CarWings) status() (success bool, err error) {
}
}

return success, err
return err
}

// refreshResult triggers an update if not already in progress, otherwise gets result
func (v *CarWings) refreshResult() (success bool, err error) {
func (v *CarWings) refreshResult() error {
finished, err := v.session.CheckUpdate(v.refreshKey)
// update successful and completed
if err == nil && finished {
v.refreshKey = ""
return finished, err
return err
}

// update still in progress, keep retrying
if time.Since(v.refreshTime) < carwingsRefreshTimeout {
return false, api.ErrMustRetry
return api.ErrMustRetry
}

// give up
Expand All @@ -121,20 +119,18 @@ func (v *CarWings) refreshResult() (success bool, err error) {
err = api.ErrTimeout
}

return false, err
return err
}

// refreshRequest requests status refresh tracked by refreshKey
func (v *CarWings) refreshRequest() error {
func (v *CarWings) refreshRequest() (err error) {
if v.session == nil {
if err := v.initSession(); err != nil {
if err = v.initSession(); err != nil {
return api.ErrNotAvailable
}
}

var err error
v.refreshKey, err = v.session.UpdateStatus()
if err == nil {
if v.refreshKey, err = v.session.UpdateStatus(); err == nil {
v.refreshTime = time.Now()
if v.refreshKey == "" {
err = errors.New("refresh failed")
Expand All @@ -145,67 +141,58 @@ func (v *CarWings) refreshRequest() error {
}

// SoC implements the api.Vehicle interface
func (v *CarWings) SoC() (float64, error) {
ok, err := v.statusG()
if err == nil && ok {
var bs carwings.BatteryStatus
bs, err = v.session.BatteryStatus()
if err == nil {
return float64(bs.StateOfCharge), nil
func (v *CarWings) SoC() (soc float64, err error) {
soc = 0

if _, err = v.statusG(); err == nil {
if bs, err := v.session.BatteryStatus(); err == nil {
soc = float64(bs.StateOfCharge)
}
}

return 0, err
return soc, err
}

var _ api.VehicleClimater = (*CarWings)(nil)

// Climater implements the api.Vehicle.Climater interface
func (v *CarWings) Climater() (active bool, outsideTemp float64, targetTemp float64, err error) {
ok, err := v.statusG()
if err == nil && ok {
var ccs carwings.ClimateStatus
ccs, err = v.session.ClimateControlStatus()
if err == nil {
if _, err = v.statusG(); err == nil {
if ccs, err := v.session.ClimateControlStatus(); err == nil {
active = ccs.Running
targetTemp = float64(ccs.Temperature)
outsideTemp = targetTemp
}

return active, outsideTemp, targetTemp, nil
return active, outsideTemp, targetTemp, err
}

return false, 0, 0, api.ErrNotAvailable
return false, 0, 0, err
}

var _ api.VehicleRange = (*CarWings)(nil)

// Range implements the api.VehicleRange interface
func (v *CarWings) Range() (Range int64, err error) {
ok, err := v.statusG()
if err == nil && ok {
var bs carwings.BatteryStatus
bs, err = v.session.BatteryStatus()
if err == nil {
Range = 0

if _, err = v.statusG(); err == nil {
if bs, err := v.session.BatteryStatus(); err == nil {
Range = int64(bs.CruisingRangeACOn) / 1000
}
return Range, nil
}

return 0, err
return Range, err
}

var _ api.ChargeState = (*CarWings)(nil)

// Status implements the api.ChargeState interface
func (v *CarWings) Status() (api.ChargeStatus, error) {
status := api.StatusA // disconnected

ok, err := v.statusG()
if err == nil && ok {
var bs carwings.BatteryStatus
bs, err = v.session.BatteryStatus()
if err == nil {
func (v *CarWings) Status() (status api.ChargeStatus, err error) {
status = api.StatusA // disconnected

if _, err = v.statusG(); err == nil {
if bs, err := v.session.BatteryStatus(); err == nil {
if bs.PluginState == carwings.Connected {
status = api.StatusB // connected, not charging
}
Expand Down

0 comments on commit e3840b4

Please sign in to comment.