Cupra: always use electric engine (#16963)
This commit is contained in:
parent
de704d2107
commit
fb22e09e86
2 changed files with 23 additions and 2 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package cupra
|
||||
|
||||
const FuelTypeElectric = "electric"
|
||||
|
||||
type Vehicle struct {
|
||||
VIN string
|
||||
EnrollmentStatus string
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue