EEBus: unregister ski (#19331)
This commit is contained in:
parent
2a7bc7b1f4
commit
4425e7d316
4 changed files with 21 additions and 3 deletions
|
|
@ -96,7 +96,8 @@ func NewEEBus(ctx context.Context, ski, ip string, hasMeter, hasChargedEnergy, v
|
|||
}
|
||||
|
||||
if err := c.Wait(ctx); err != nil {
|
||||
return c, err
|
||||
eebus.Instance.UnregisterDevice(ski, c)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if hasMeter {
|
||||
|
|
|
|||
|
|
@ -106,7 +106,8 @@ func NewEEBus(ctx context.Context, ski string, limits Limits, root api.Circuit)
|
|||
}
|
||||
|
||||
if err := c.Wait(ctx); err != nil {
|
||||
return c, err
|
||||
eebus.Instance.UnregisterDevice(ski, c)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// scenarios
|
||||
|
|
|
|||
|
|
@ -65,7 +65,8 @@ func NewEEBus(ctx context.Context, ski, ip string, timeout time.Duration) (*EEBu
|
|||
}
|
||||
|
||||
if err := c.Wait(ctx); err != nil {
|
||||
return c, err
|
||||
eebus.Instance.UnregisterDevice(ski, c)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return c, nil
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import (
|
|||
"errors"
|
||||
"fmt"
|
||||
"net"
|
||||
"slices"
|
||||
"strconv"
|
||||
"sync"
|
||||
"time"
|
||||
|
|
@ -191,6 +192,20 @@ func (c *EEBus) RegisterDevice(ski, ip string, device Device) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (c *EEBus) UnregisterDevice(ski string, device Device) {
|
||||
ski = shiputil.NormalizeSKI(ski)
|
||||
c.log.TRACE.Printf("unregistering ski: %s", ski)
|
||||
|
||||
c.service.UnregisterRemoteSKI(ski)
|
||||
|
||||
c.mux.Lock()
|
||||
defer c.mux.Unlock()
|
||||
|
||||
if idx := slices.Index(c.clients[ski], device); idx != -1 {
|
||||
c.clients[ski] = slices.Delete(c.clients[ski], idx, idx)
|
||||
}
|
||||
}
|
||||
|
||||
func (c *EEBus) Evse() *UseCasesEVSE {
|
||||
return &c.evseUC
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue