From 4fbccb1e5b498c1f7c2cb2edf2562025586f0af1 Mon Sep 17 00:00:00 2001 From: Kamil MARUT Date: Mon, 18 May 2026 13:39:35 +0200 Subject: [PATCH] feat: add active and reactive power measurement to battery form Signed-off-by: Kamil MARUT --- .../definition/battery/BatteryFormInfos.java | 6 ++++++ .../map/dto/mapper/BatteryInfosMapper.java | 3 +++ src/test/resources/batteries-map-data.json | 18 +++++++++++++++++- 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/gridsuite/network/map/dto/definition/battery/BatteryFormInfos.java b/src/main/java/org/gridsuite/network/map/dto/definition/battery/BatteryFormInfos.java index d6f609d2..81c73fe7 100644 --- a/src/main/java/org/gridsuite/network/map/dto/definition/battery/BatteryFormInfos.java +++ b/src/main/java/org/gridsuite/network/map/dto/definition/battery/BatteryFormInfos.java @@ -14,6 +14,7 @@ import org.gridsuite.network.map.dto.definition.extension.ConnectablePositionInfos; import org.gridsuite.network.map.dto.common.MinMaxReactiveLimitsMapData; import org.gridsuite.network.map.dto.common.ReactiveCapabilityCurveMapData; +import org.gridsuite.network.map.dto.definition.extension.MeasurementsInfos; import org.gridsuite.network.map.dto.definition.extension.ShortCircuitInfos; import java.util.List; @@ -63,4 +64,9 @@ public class BatteryFormInfos extends ElementInfosWithProperties { @JsonInclude(JsonInclude.Include.NON_ABSENT) private Optional batteryShortCircuit; + @JsonInclude(JsonInclude.Include.NON_ABSENT) + private Optional measurementP; + + @JsonInclude(JsonInclude.Include.NON_ABSENT) + private Optional measurementQ; } diff --git a/src/main/java/org/gridsuite/network/map/dto/mapper/BatteryInfosMapper.java b/src/main/java/org/gridsuite/network/map/dto/mapper/BatteryInfosMapper.java index 4e60b6b0..2673596e 100644 --- a/src/main/java/org/gridsuite/network/map/dto/mapper/BatteryInfosMapper.java +++ b/src/main/java/org/gridsuite/network/map/dto/mapper/BatteryInfosMapper.java @@ -85,6 +85,9 @@ private static BatteryFormInfos toFormInfos(Identifiable identifiable) { builder.activePowerControl(ExtensionUtils.toActivePowerControl(battery)); + builder.measurementP(ExtensionUtils.toMeasurement(battery, Type.ACTIVE_POWER, 0)) + .measurementQ(ExtensionUtils.toMeasurement(battery, Type.REACTIVE_POWER, 0)); + return builder.build(); } diff --git a/src/test/resources/batteries-map-data.json b/src/test/resources/batteries-map-data.json index 9ea63879..e8e88f5a 100644 --- a/src/test/resources/batteries-map-data.json +++ b/src/test/resources/batteries-map-data.json @@ -7,6 +7,14 @@ "targetQ": 1.0, "minP": 50.0, "maxP": 70.0, + "measurementP": { + "value": 12.0, + "validity": false + }, + "measurementQ": { + "value": 44.0, + "validity": true + }, "minMaxReactiveLimits": { "minQ": -500.0, "maxQ": 500.0 @@ -31,6 +39,14 @@ "targetQ": 1.0, "minP": 50.0, "maxP": 70.0, + "measurementP": { + "value": 34.0, + "validity": true + }, + "measurementQ": { + "value": 84.0, + "validity": true + }, "reactiveCapabilityCurvePoints": [ { "p": 0.0, "minQ": 6.0, "maxQ": 7.0 }, { "p": 1.0, "minQ": 4.0, "maxQ": 5.0 }, @@ -48,4 +64,4 @@ "terminalConnected": false, "busOrBusbarSectionId": "NNEW2" } -] \ No newline at end of file +]