Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/main' into 917-refactor-cell-m…
Browse files Browse the repository at this point in the history
…essage-routing
  • Loading branch information
FunKuchen committed Nov 19, 2024
2 parents bcb6fcb + fddfe99 commit b352ab7
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ public ApplicationAmbassador(AmbassadorParameter ambassadorParameter) {
try {
SimulationKernel.SimulationKernel.setConfigurationPath(ambassadorParameter.configuration.getParentFile());
// try to read the configuration from the configuration file
ambassadorConfig = new ObjectInstantiation<>(CApplicationAmbassador.class).readFile(ambassadorParameter.configuration);
ambassadorConfig = new ObjectInstantiation<>(CApplicationAmbassador.class, log).readFile(ambassadorParameter.configuration);

Validate.isTrue(ambassadorConfig.eventSchedulerThreads > 0,
"Number of eventSchedulerThreads must be greater than zero."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@
import org.eclipse.mosaic.rti.api.parameters.AmbassadorParameter;
import org.eclipse.mosaic.rti.config.CLocalHost.OperatingSystem;

import java.nio.file.Files;
import java.nio.file.Paths;
import javax.annotation.Nonnull;

/**
Expand All @@ -48,6 +50,9 @@ public Ns3Ambassador(AmbassadorParameter ambassadorParameter) {
@Nonnull
@Override
public FederateExecutor createFederateExecutor(String host, int port, OperatingSystem os) {
if (!Files.exists(Paths.get(this.ambassadorParameter.configuration.getParent(), "ns3_federate_config.xml"))) {
throw new IllegalArgumentException("ns3_federate_config.xml missing");
}
switch (os) {
case LINUX:
return new ExecutableFederateExecutor(this.descriptor, "./run.sh", Integer.toString(port));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,13 @@
import org.eclipse.mosaic.rti.api.FederateExecutor;
import org.eclipse.mosaic.rti.api.federatestarter.DockerFederateExecutor;
import org.eclipse.mosaic.rti.api.federatestarter.ExecutableFederateExecutor;
import org.eclipse.mosaic.rti.api.federatestarter.NopFederateExecutor;
import org.eclipse.mosaic.rti.api.parameters.AmbassadorParameter;
import org.eclipse.mosaic.rti.config.CLocalHost.OperatingSystem;

import org.apache.commons.lang3.ObjectUtils;

import java.nio.file.Files;
import java.nio.file.Paths;
import javax.annotation.Nonnull;

/**
Expand All @@ -44,11 +45,14 @@ public OmnetppAmbassador(AmbassadorParameter ambassadorParameter) {
@Nonnull
@Override
public FederateExecutor createFederateExecutor(String host, int port, OperatingSystem os) {
String omnetppConfigFileName = ObjectUtils.defaultIfNull(config.federateConfigurationFile, "omnetpp.ini"); // default // this one is required
if (!Files.exists(Paths.get(this.ambassadorParameter.configuration.getParent(), omnetppConfigFileName))) {
throw new IllegalArgumentException(omnetppConfigFileName + " missing");
}
String omnetppConfigFilePath = "omnetpp-federate/simulations/" + omnetppConfigFileName;
String inetSourceDirectories = "inet:omnetpp-federate/src";
switch (os) {
case LINUX:
String omnetppConfigFileName = ObjectUtils.defaultIfNull(config.federateConfigurationFile, "omnetpp.ini");
String omnetppConfigFilePath = "omnetpp-federate/simulations/" + omnetppConfigFileName;
String inetSourceDirectories = "inet:omnetpp-federate/src";
return new ExecutableFederateExecutor(this.descriptor, "omnetpp-federate/omnetpp-federate",
"-u", "Cmdenv",
"-f", omnetppConfigFilePath,
Expand All @@ -57,6 +61,13 @@ public FederateExecutor createFederateExecutor(String host, int port, OperatingS
"--mosaiceventscheduler-port=" + port
);
case WINDOWS:
return new ExecutableFederateExecutor(this.descriptor, "wsl.exe", "omnetpp-federate/omnetpp-federate",
"-u", "Cmdenv",
"-f", omnetppConfigFilePath,
"-n", inetSourceDirectories,
"--mosaiceventscheduler-host=" + host,
"--mosaiceventscheduler-port=" + port
);
case UNKNOWN:
default:
log.error("Operating system not supported by omnetpp");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ public void initialize(final long startTime, final long endTime) throws Internal
}

try {
CSns configuration = new ObjectInstantiation<>(CSns.class).readFile(ambassadorParameter.configuration);
CSns configuration = new ObjectInstantiation<>(CSns.class, log).readFile(ambassadorParameter.configuration);
if (configuration.singlehopDelay instanceof GammaSpeedDelay) {
log.info("Detected GammaSpeedDelay for. The SNS is currently ignoring speed of entities in its evaluation of delay values");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,9 +166,9 @@ protected AbstractNetworkAmbassador(AmbassadorParameter ambassadorParameter, Str
this.removedNodes = new ArrayList<>();

try {
config = new ObjectInstantiation<>(CAbstractNetworkAmbassador.class).readFile(ambassadorParameter.configuration);
config = new ObjectInstantiation<>(CAbstractNetworkAmbassador.class, log).readFile(ambassadorParameter.configuration);
} catch (InstantiationException | NullPointerException e) {
log.warn("Could not read ambassador configuration in '{}'. Using default one instead.", ambassadorParameter.configuration);
log.warn("Problem when instantiating ambassador configuration from '{}'. Ignore file and try again with default config.", ambassadorParameter.configuration);
config = new CAbstractNetworkAmbassador();
}
}
Expand Down

0 comments on commit b352ab7

Please sign in to comment.