diff --git a/src/main/java/org/gridsuite/network/map/dto/definition/extension/ActivePowerControlInfos.java b/src/main/java/org/gridsuite/network/map/dto/definition/extension/ActivePowerControlInfos.java index 85178dac..18ffabfc 100644 --- a/src/main/java/org/gridsuite/network/map/dto/definition/extension/ActivePowerControlInfos.java +++ b/src/main/java/org/gridsuite/network/map/dto/definition/extension/ActivePowerControlInfos.java @@ -18,6 +18,8 @@ public class ActivePowerControlInfos { @JsonInclude(JsonInclude.Include.NON_NULL) private Double droop; + @JsonInclude(JsonInclude.Include.NON_NULL) + private Double maxTargetP; } diff --git a/src/main/java/org/gridsuite/network/map/dto/utils/ElementUtils.java b/src/main/java/org/gridsuite/network/map/dto/utils/ElementUtils.java index 65d75c39..cc0431a5 100644 --- a/src/main/java/org/gridsuite/network/map/dto/utils/ElementUtils.java +++ b/src/main/java/org/gridsuite/network/map/dto/utils/ElementUtils.java @@ -105,10 +105,15 @@ public static Optional toStandbyAutomaton(StaticVarCompen public static Optional toActivePowerControl(Identifiable identifiable) { var activePowerControl = identifiable.getExtension(ActivePowerControl.class); - return activePowerControl == null ? Optional.empty() : - Optional.of(ActivePowerControlInfos.builder() + if (activePowerControl == null) { + return Optional.empty(); + } else { + return Optional.of(ActivePowerControlInfos.builder() .participate(activePowerControl.isParticipate()) - .droop(activePowerControl.getDroop()).build()); + .droop(activePowerControl.getDroop()) + .maxTargetP(activePowerControl.getMaxTargetP().isPresent() ? activePowerControl.getMaxTargetP().getAsDouble() : null) + .build()); + } } public static String toOperatingStatus(Extendable extendable) { diff --git a/src/test/java/org/gridsuite/network/map/NetworkMapControllerTest.java b/src/test/java/org/gridsuite/network/map/NetworkMapControllerTest.java index 09a7f3f4..f37f04ac 100644 --- a/src/test/java/org/gridsuite/network/map/NetworkMapControllerTest.java +++ b/src/test/java/org/gridsuite/network/map/NetworkMapControllerTest.java @@ -337,7 +337,7 @@ void setUp() { gen.getTerminal().setQ(32); gen.setTargetP(28); gen.setRatedS(27); - gen.newExtension(ActivePowerControlAdder.class).withParticipate(true).withDroop(4).add(); + gen.newExtension(ActivePowerControlAdder.class).withParticipate(true).withDroop(4).withMaxTargetP(8000).add(); gen.newExtension(ConnectablePositionAdder.class) .newFeeder() .withName("feederName") diff --git a/src/test/resources/all-data-in-variant.json b/src/test/resources/all-data-in-variant.json index d0f15b53..468a9f52 100644 --- a/src/test/resources/all-data-in-variant.json +++ b/src/test/resources/all-data-in-variant.json @@ -1306,7 +1306,8 @@ }, "activePowerControl": { "participate": true, - "droop": 4.0 + "droop": 4.0, + "maxTargetP": 8000.0 }, "connectablePosition": { "connectionDirection": "TOP", diff --git a/src/test/resources/all-data.json b/src/test/resources/all-data.json index 65f7df10..8f5c22ee 100644 --- a/src/test/resources/all-data.json +++ b/src/test/resources/all-data.json @@ -1306,7 +1306,8 @@ }, "activePowerControl": { "participate": true, - "droop": 4.0 + "droop": 4.0, + "maxTargetP": 8000.0 }, "connectablePosition": { "connectionDirection": "TOP", diff --git a/src/test/resources/generator-map-data.json b/src/test/resources/generator-map-data.json index b26efbee..90c7732e 100644 --- a/src/test/resources/generator-map-data.json +++ b/src/test/resources/generator-map-data.json @@ -30,7 +30,8 @@ }, "activePowerControl": { "participate": true, - "droop": 4.0 + "droop": 4.0, + "maxTargetP": 8000.0 }, "connectablePosition": { "connectionDirection": "TOP", @@ -38,4 +39,4 @@ "connectionName": "feederName" }, "busOrBusbarSectionId": "NGEN" -} +} \ No newline at end of file diff --git a/src/test/resources/generators-tab-data.json b/src/test/resources/generators-tab-data.json index bdd6dbdf..c65b6ee7 100644 --- a/src/test/resources/generators-tab-data.json +++ b/src/test/resources/generators-tab-data.json @@ -33,7 +33,8 @@ }, "activePowerControl": { "participate": true, - "droop": 4.0 + "droop": 4.0, + "maxTargetP": 8000.0 }, "connectablePosition": { "connectionDirection": "TOP", @@ -48,6 +49,22 @@ "value": 5.0, "validity": true }, + "isCondenser": false, + "substationId": "P1", + "substationName": "P1_Name", + "substationProperties": { + "Country": "FR" + }, + "voltageLevelName": "VLGEN_Name", + "lowVoltageLimit": 200.0, + "highVoltageLimit": 400.0, + "voltageLevelShortCircuit": { + "ipMin": 10.0, + "ipMax": 120.0 + }, + "voltageLevelProperties": { + "Country": "FR" + }, "injectionObservability": { "qualityP": { "standardDeviation": 19.65, @@ -62,22 +79,6 @@ "isRedundant": true }, "observable": true - }, - "highVoltageLimit": 400.0, - "lowVoltageLimit": 200.0, - "isCondenser": false, - "substationId": "P1", - "substationName": "P1_Name", - "substationProperties": { - "Country": "FR" - }, - "voltageLevelName": "VLGEN_Name", - "voltageLevelProperties": { - "Country": "FR" - }, - "voltageLevelShortCircuit": { - "ipMin": 10, - "ipMax": 120 } }, { @@ -126,8 +127,6 @@ "value": 80.0, "validity": false }, - "highVoltageLimit": 400.0, - "lowVoltageLimit": 200.0, "isCondenser": false, "substationId": "P1", "substationName": "P1_Name", @@ -135,12 +134,14 @@ "Country": "FR" }, "voltageLevelName": "VLGEN_Name", + "lowVoltageLimit": 200.0, + "highVoltageLimit": 400.0, + "voltageLevelShortCircuit": { + "ipMin": 10.0, + "ipMax": 120.0 + }, "voltageLevelProperties": { "Country": "FR" - }, - "voltageLevelShortCircuit": { - "ipMin": 10, - "ipMax": 120 } } ] \ No newline at end of file