Ocpp: allow "disable" to override meter value sample (#15925)

This commit is contained in:
andig 2024-09-07 14:17:19 +02:00 • committed by GitHub
parent 7b01721ff3
commit cf7547e3df
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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()
@ -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 {
@ -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 {
@ -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