113 lines
3 KiB
Go
113 lines
3 KiB
Go
package charger
|
|
|
|
// Code generated by github.com/evcc-io/evcc/cmd/tools/decorate.go. DO NOT EDIT.
|
|
|
|
import (
|
|
"reflect"
|
|
|
|
"github.com/evcc-io/evcc/api"
|
|
)
|
|
|
|
func decorateWarp2(base *Warp2, meter func() (float64, error), meterEnergy func() (float64, error), phaseCurrents func() (float64, float64, float64, error), phaseVoltages func() (float64, float64, float64, error), identifier func() (string, error), phaseSwitcher func(int) error, phaseGetter func() (int, error)) api.Charger {
|
|
caps := make(map[reflect.Type]any)
|
|
|
|
if meter != nil {
|
|
caps[reflect.TypeFor[api.Meter]()] = &decorateWarp2MeterImpl{meter: meter}
|
|
}
|
|
|
|
if meterEnergy != nil {
|
|
caps[reflect.TypeFor[api.MeterEnergy]()] = &decorateWarp2MeterEnergyImpl{meterEnergy: meterEnergy}
|
|
}
|
|
|
|
if phaseCurrents != nil {
|
|
caps[reflect.TypeFor[api.PhaseCurrents]()] = &decorateWarp2PhaseCurrentsImpl{phaseCurrents: phaseCurrents}
|
|
}
|
|
|
|
if phaseVoltages != nil {
|
|
caps[reflect.TypeFor[api.PhaseVoltages]()] = &decorateWarp2PhaseVoltagesImpl{phaseVoltages: phaseVoltages}
|
|
}
|
|
|
|
if identifier != nil {
|
|
caps[reflect.TypeFor[api.Identifier]()] = &decorateWarp2IdentifierImpl{identifier: identifier}
|
|
}
|
|
|
|
if phaseSwitcher != nil {
|
|
caps[reflect.TypeFor[api.PhaseSwitcher]()] = &decorateWarp2PhaseSwitcherImpl{phaseSwitcher: phaseSwitcher}
|
|
}
|
|
|
|
if phaseGetter != nil {
|
|
caps[reflect.TypeFor[api.PhaseGetter]()] = &decorateWarp2PhaseGetterImpl{phaseGetter: phaseGetter}
|
|
}
|
|
|
|
if len(caps) == 0 {
|
|
return base
|
|
}
|
|
|
|
return &decorateWarp2Capable{Warp2: base, caps: caps}
|
|
}
|
|
|
|
type decorateWarp2Capable struct {
|
|
*Warp2
|
|
caps map[reflect.Type]any
|
|
}
|
|
|
|
func (d *decorateWarp2Capable) Capability(typ reflect.Type) (any, bool) {
|
|
c, ok := d.caps[typ]
|
|
return c, ok
|
|
}
|
|
|
|
type decorateWarp2IdentifierImpl struct {
|
|
identifier func() (string, error)
|
|
}
|
|
|
|
func (impl *decorateWarp2IdentifierImpl) Identify() (string, error) {
|
|
return impl.identifier()
|
|
}
|
|
|
|
type decorateWarp2MeterImpl struct {
|
|
meter func() (float64, error)
|
|
}
|
|
|
|
func (impl *decorateWarp2MeterImpl) CurrentPower() (float64, error) {
|
|
return impl.meter()
|
|
}
|
|
|
|
type decorateWarp2MeterEnergyImpl struct {
|
|
meterEnergy func() (float64, error)
|
|
}
|
|
|
|
func (impl *decorateWarp2MeterEnergyImpl) TotalEnergy() (float64, error) {
|
|
return impl.meterEnergy()
|
|
}
|
|
|
|
type decorateWarp2PhaseCurrentsImpl struct {
|
|
phaseCurrents func() (float64, float64, float64, error)
|
|
}
|
|
|
|
func (impl *decorateWarp2PhaseCurrentsImpl) Currents() (float64, float64, float64, error) {
|
|
return impl.phaseCurrents()
|
|
}
|
|
|
|
type decorateWarp2PhaseGetterImpl struct {
|
|
phaseGetter func() (int, error)
|
|
}
|
|
|
|
func (impl *decorateWarp2PhaseGetterImpl) GetPhases() (int, error) {
|
|
return impl.phaseGetter()
|
|
}
|
|
|
|
type decorateWarp2PhaseSwitcherImpl struct {
|
|
phaseSwitcher func(int) error
|
|
}
|
|
|
|
func (impl *decorateWarp2PhaseSwitcherImpl) Phases1p3p(p0 int) error {
|
|
return impl.phaseSwitcher(p0)
|
|
}
|
|
|
|
type decorateWarp2PhaseVoltagesImpl struct {
|
|
phaseVoltages func() (float64, float64, float64, error)
|
|
}
|
|
|
|
func (impl *decorateWarp2PhaseVoltagesImpl) Voltages() (float64, float64, float64, error) {
|
|
return impl.phaseVoltages()
|
|
}
|