Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ repositories {

dependencies{
// ie³ internal repository
implementation('com.github.ie3-institute:PowerSystemUtils:1.6') {
implementation('com.github.ie3-institute:PowerSystemUtils:3.1.0') {
exclude group: 'org.slf4j', module: 'slf4j-api'
/* Exclude our own nested dependencies */
exclude group: 'com.github.ie3-institute'
}
implementation 'com.github.ie3-institute:simonaAPI:0.3.0'
implementation 'com.github.ie3-institute:simonaAPI:0.9.0'

implementation 'tech.units:indriya:2.1.3' // quantities

Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
30 changes: 15 additions & 15 deletions src/main/java/edu/ie3/sample/EvModelImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,36 +17,36 @@
public class EvModelImpl implements EvModel {
private final UUID uuid;
private final String id;
private final ComparableQuantity<Power> sRatedAC;
private final ComparableQuantity<Power> sRatedDC;
private final ComparableQuantity<Power> pRatedAC;
private final ComparableQuantity<Power> pRatedDC;
private final ComparableQuantity<Energy> eStorage;
private final ComparableQuantity<Energy> storedEnergy;

public EvModelImpl(
UUID uuid,
String id,
ComparableQuantity<Power> sRatedAC,
ComparableQuantity<Power> sRatedDC,
ComparableQuantity<Power> pRatedAC,
ComparableQuantity<Power> pRatedDC,
ComparableQuantity<Energy> eStorage,
ComparableQuantity<Energy> storedEnergy) {
this.uuid = uuid;
this.id = id;
this.sRatedAC = sRatedAC;
this.sRatedDC = sRatedDC;
this.pRatedAC = pRatedAC;
this.pRatedDC = pRatedDC;
this.eStorage = eStorage;
this.storedEnergy = storedEnergy;
}

public EvModelImpl(
UUID uuid,
String id,
ComparableQuantity<Power> sRatedAC,
ComparableQuantity<Power> sRatedDC,
ComparableQuantity<Power> pRatedAC,
ComparableQuantity<Power> pRatedDC,
ComparableQuantity<Energy> eStorage) {
this.uuid = uuid;
this.id = id;
this.sRatedAC = sRatedAC;
this.sRatedDC = sRatedDC;
this.pRatedAC = pRatedAC;
this.pRatedDC = pRatedDC;
this.eStorage = eStorage;
this.storedEnergy = Quantities.getQuantity(0d, PowerSystemUnits.KILOWATTHOUR);
}
Expand All @@ -62,13 +62,13 @@ public String getId() {
}

@Override
public ComparableQuantity<Power> getSRatedAC() {
return sRatedAC;
public ComparableQuantity<Power> getPRatedAC() {
return pRatedAC;
}

@Override
public ComparableQuantity<Power> getSRatedDC() {
return sRatedDC;
public ComparableQuantity<Power> getPRatedDC() {
return pRatedDC;
}

@Override
Expand All @@ -88,6 +88,6 @@ public Long getDepartureTick() {

@Override
public EvModelImpl copyWith(ComparableQuantity<Energy> newStoredEnergy) {
return new EvModelImpl(uuid, id, sRatedAC, sRatedDC, eStorage, newStoredEnergy);
return new EvModelImpl(uuid, id, pRatedAC, pRatedDC, eStorage, newStoredEnergy);
}
}
12 changes: 4 additions & 8 deletions src/main/java/edu/ie3/sample/ExtLink.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,19 @@
package edu.ie3.sample;

import edu.ie3.simona.api.ExtLinkInterface;
import edu.ie3.simona.api.data.ExtDataSimulation;
import edu.ie3.simona.api.simulation.ExtSimAdapterData;
import edu.ie3.simona.api.simulation.ExtSimulation;
import java.util.ArrayList;
import java.util.List;

public class ExtLink implements ExtLinkInterface {
private final ExternalSampleSim sampleSim = new ExternalSampleSim();
private ExternalSampleSim sampleSim;

@Override
public ExtSimulation getExtSimulation() {
return sampleSim;
}

@Override
public List<ExtDataSimulation> getExtDataSimulations() {
ArrayList<ExtDataSimulation> list = new ArrayList<>();
list.add(sampleSim);
return list;
public void setup(ExtSimAdapterData data) {
sampleSim = new ExternalSampleSim("ExtSimSample");
}
}
35 changes: 21 additions & 14 deletions src/main/java/edu/ie3/sample/ExternalSampleSim.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
package edu.ie3.sample;

import ch.qos.logback.classic.Logger;
import edu.ie3.simona.api.data.ev.ExtEvData;
import edu.ie3.simona.api.data.ev.ExtEvSimulation;
import edu.ie3.simona.api.data.ExtDataConnection;
import edu.ie3.simona.api.data.ev.ExtEvDataConnection;
import edu.ie3.simona.api.data.ev.model.EvModel;
import edu.ie3.simona.api.simulation.ExtSimulation;
import edu.ie3.util.quantities.PowerSystemUnits;
Expand All @@ -17,9 +17,9 @@
import tech.units.indriya.quantity.Quantities;

/** Example simulation that keeps swapping two evs between two evcs */
public class ExternalSampleSim extends ExtSimulation implements ExtEvSimulation {
public class ExternalSampleSim extends ExtSimulation {

private ExtEvData evData;
private final ExtEvDataConnection evDataConnection;

private final UUID evcs1 = UUID.fromString("06a14909-366e-4e94-a593-1016e1455b30");
private final UUID evcs2 = UUID.fromString("104acdaa-5dc5-4197-aed2-2fddb3c4f237");
Expand All @@ -43,16 +43,16 @@ public class ExternalSampleSim extends ExtSimulation implements ExtEvSimulation
Quantities.getQuantity(11d, PowerSystemUnits.KILOWATT),
Quantities.getQuantity(80d, PowerSystemUnits.KILOWATTHOUR));

@Override
public void setExtEvData(ExtEvData evData) {
this.evData = evData;
protected ExternalSampleSim(String simulationName) {
super(simulationName);
evDataConnection = new ExtEvDataConnection();
}

@Override
protected Optional<Long> initialize() {
protected Long initialize() {
log.info("Main args handed over to external simulation: {}", Arrays.toString(getMainArgs()));

return Optional.of(0L);
return 0L;
}

@Override
Expand All @@ -61,7 +61,7 @@ protected Optional<Long> doActivity(long tick) {
log.info("External simulation: Tick {} has been triggered.", tick);

final Map<UUID, Integer> availableEvcs;
availableEvcs = evData.requestAvailablePublicEvcs();
availableEvcs = evDataConnection.requestAvailablePublicEvcs();

log.debug("Avaiable evcs: {}", availableEvcs);

Expand Down Expand Up @@ -91,7 +91,7 @@ protected Optional<Long> doActivity(long tick) {
}

if (!departures.isEmpty()) {
List<EvModel> departedEvs = evData.requestDepartingEvs(departures);
List<EvModel> departedEvs = evDataConnection.requestDepartingEvs(departures);

log.debug("Received departed evs from SIMONA: {}", departedEvs);

Expand All @@ -103,18 +103,25 @@ else if (departed.getUuid() == evB.getUuid())
}
}

long newTick = tick + 900;
Optional<Long> maybeNextTick = Optional.of(newTick);

if (!arrivals.isEmpty()) {
log.debug("Sending arrivals to SIMONA: {}", arrivals);

evData.provideArrivingEvs(arrivals);
evDataConnection.provideArrivingEvs(arrivals, maybeNextTick);
}

Long newTick = tick + 900;
// return triggers activity complete automatically
log.info("Sending next tick to SIMONA: {}", newTick);
return Optional.of(newTick);
return maybeNextTick;
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}

@Override
public Set<ExtDataConnection> getDataConnections() {
return Set.of(evDataConnection);
}
}