Replace combinatorial decorators with capability registry (BC) (#28565)

This commit is contained in:
Maschga 2026-03-27 09:17:19 +01:00 • committed by GitHub
parent 33d2de24c1
commit 00967eb57e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
101 changed files with 2416 additions and 44670 deletions

View file

@ -55,11 +55,11 @@ func (o *meterPlugin) FloatGetter() (func() (float64, error), error) {
switch o.method {
case Energy:
if _, ok := o.meter.(api.MeterEnergy); !ok {
if !api.HasCap[api.MeterEnergy](o.meter) {
return nil, err
}
case Soc:
if _, ok := o.meter.(api.Battery); !ok {
if !api.HasCap[api.Battery](o.meter) {
return nil, err
}
}
@ -67,10 +67,12 @@ func (o *meterPlugin) FloatGetter() (func() (float64, error), error) {
return func() (float64, error) {
switch o.method {
case Energy:
f, err := o.meter.(api.MeterEnergy).TotalEnergy()
m, _ := api.Cap[api.MeterEnergy](o.meter)
f, err := m.TotalEnergy()
return f * o.scale, err
case Soc:
f, err := o.meter.(api.Battery).Soc()
m, _ := api.Cap[api.Battery](o.meter)
f, err := m.Soc()
return f * o.scale, err
default:
f, err := o.meter.CurrentPower()