Cupra: always use electric engine (#16963)

This commit is contained in:
andig 2024-10-29 21:00:45 +01:00 • committed by GitHub
parent de704d2107
commit fb22e09e86
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 23 additions and 2 deletions

View file

@ -37,10 +37,24 @@ func NewProvider(api *API, userID, vin string, cache time.Duration) *Provider {
var _ api.Battery = (*Provider)(nil)
func (v *Provider) engine(s Status, typ string) (Engine, error) {
for _, e := range []Engine{s.Engines.Primary, s.Engines.Secondary} {
if e.FuelType == typ {
return e, nil
}
}
return Engine{}, api.ErrNotAvailable
}
// Soc implements the api.Vehicle interface
func (v *Provider) Soc() (float64, error) {
res, err := v.statusG()
return res.Engines.Primary.LevelPct, err
if err != nil {
return 0, err
}
engine, err := v.engine(res, FuelTypeElectric)
return engine.LevelPct, err
}
var _ api.ChargeState = (*Provider)(nil)
@ -89,7 +103,12 @@ var _ api.VehicleRange = (*Provider)(nil)
// Range implements the api.VehicleRange interface
func (v *Provider) Range() (int64, error) {
res, err := v.statusG()
return int64(res.Engines.Primary.RangeKm), err
if err != nil {
return 0, err
}
engine, err := v.engine(res, FuelTypeElectric)
return int64(engine.RangeKm), err
}
var _ api.VehicleOdometer = (*Provider)(nil)

View file

@ -1,5 +1,7 @@
package cupra
const FuelTypeElectric = "electric"
type Vehicle struct {
VIN string
EnrollmentStatus string