Skip to content

Commit

Permalink
Ocpp: allow "disable" to override meter value sample (#15925)
Browse files Browse the repository at this point in the history
  • Loading branch information
andig authored Sep 7, 2024
1 parent 7b01721 commit cf7547e
Showing 1 changed file with 7 additions and 8 deletions.
15 changes: 7 additions & 8 deletions charger/ocpp/cp_setup.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ func (cp *CP) Setup(meterValues string, meterInterval time.Duration) error {
cp.log.DEBUG.Printf("failed configuring availability: %v", err)
}

var meterValuesSampledData string
meterValuesSampledDataMaxLength := len(strings.Split(desiredMeasurands, ","))

resp, err := cp.GetConfiguration()
Expand Down Expand Up @@ -58,7 +57,7 @@ func (cp *CP) Setup(meterValues string, meterInterval time.Duration) error {
if opt.Readonly {
meterValuesSampledDataMaxLength = 0
}
meterValuesSampledData = *opt.Value
cp.meterValuesSample = *opt.Value

case KeyMeterValuesSampledDataMaxLength:
if val, err := strconv.Atoi(*opt.Value); err == nil {
Expand Down Expand Up @@ -113,13 +112,13 @@ func (cp *CP) Setup(meterValues string, meterInterval time.Duration) error {

// configure measurands
if meterValues != "" {
if err := cp.configure(KeyMeterValuesSampledData, meterValues); err == nil {
meterValuesSampledData = meterValues
if err := cp.configure(KeyMeterValuesSampledData, meterValues); err == nil || meterValues == "disable" {
cp.meterValuesSample = meterValues
} else {
cp.log.WARN.Printf("failed configuring %s: %v", KeyMeterValuesSampledData, err)
}
}

cp.meterValuesSample = meterValuesSampledData

// trigger initial meter values
if cp.HasRemoteTriggerFeature {
if err := Instance().TriggerMessageRequest(cp.ID(), core.MeterValuesFeatureName); err == nil {
Expand All @@ -135,13 +134,13 @@ func (cp *CP) Setup(meterValues string, meterInterval time.Duration) error {
// configure sample rate
if meterInterval > 0 {
if err := cp.configure(KeyMeterValueSampleInterval, strconv.Itoa(int(meterInterval.Seconds()))); err != nil {
cp.log.WARN.Printf("failed configuring MeterValueSampleInterval: %v", err)
cp.log.WARN.Printf("failed configuring %s: %v", KeyMeterValueSampleInterval, err)
}
}

// configure websocket ping interval
if err := cp.configure(KeyWebSocketPingInterval, "30"); err != nil {
cp.log.DEBUG.Printf("failed configuring WebSocketPingInterval: %v", err)
cp.log.DEBUG.Printf("failed configuring %s: %v", KeyWebSocketPingInterval, err)
}

return nil
Expand Down

0 comments on commit cf7547e

Please sign in to comment.