The expiration time for new job artifacts in CI/CD pipelines is now 30 days (GitLab default). Previously generated artifacts in already completed jobs will not be affected by the change. The latest artifacts for all jobs in the latest successful pipelines will be kept. More information: https://gitlab.lrz.de/help/user/admin_area/settings/continuous_integration.html#default-artifacts-expiration

Commit ef5c6453 authored by Marion Goedel's avatar Marion Goedel
Browse files

Merge branch 'develop' of https://gitlab.lrz.de/vadere/vadere into develop

parents ea1cd58d d9c671aa
Pipeline #65832 failed with stages
in 40 minutes and 1 second
...@@ -74,6 +74,7 @@ ProjectView.btnNewButton.text=New button ...@@ -74,6 +74,7 @@ ProjectView.btnNewButton.text=New button
ProjectView.btnRunAllTests.text=Run all scenarios ProjectView.btnRunAllTests.text=Run all scenarios
ProjectView.mntmRunSelectetTests.text=Run selected scenario ProjectView.mntmRunSelectetTests.text=Run selected scenario
ProjectView.mntmRunSelectedTests.text=Run selected scenarios ProjectView.mntmRunSelectedTests.text=Run selected scenarios
ProjectView.mntmSimulationResult.text=Show Simulation Result Dialog
ProjectView.btnPauseRunningTests.text=Pause running scenarios ProjectView.btnPauseRunningTests.text=Pause running scenarios
ProjectView.btnRunSelectedTest.text=Run selected scenario ProjectView.btnRunSelectedTest.text=Run selected scenario
ProjectView.btnRunSelectedTest.toolTipText=Run selected scenario ProjectView.btnRunSelectedTest.toolTipText=Run selected scenario
......
...@@ -75,6 +75,7 @@ ProjectView.btnNewButton.text=Neuer Button ...@@ -75,6 +75,7 @@ ProjectView.btnNewButton.text=Neuer Button
ProjectView.btnRunAllTests.text=Alle Szenarios ausf\u00FChren ProjectView.btnRunAllTests.text=Alle Szenarios ausf\u00FChren
ProjectView.mntmRunSelectetTests.text=Ausgew\u00E4hlte Szenarios ausf\u00FChren ProjectView.mntmRunSelectetTests.text=Ausgew\u00E4hlte Szenarios ausf\u00FChren
ProjectView.mntmRunSelectedTests.text=Ausgew\u00E4hlte Szenarios ausf\u00FChren ProjectView.mntmRunSelectedTests.text=Ausgew\u00E4hlte Szenarios ausf\u00FChren
ProjectView.mntmSimulationResult.text=Ergebnis Dialog anzeigen
ProjectView.btnPauseRunningTests.text=Laufende Szenarios pausieren ProjectView.btnPauseRunningTests.text=Laufende Szenarios pausieren
ProjectView.btnRunSelectedTest.text=Ausgew\u00E4hltes Szenario ausf\u00FChren ProjectView.btnRunSelectedTest.text=Ausgew\u00E4hltes Szenario ausf\u00FChren
ProjectView.btnRunSelectedTest.toolTipText=Ausgew\u00E4hlten Szenario ausf\u00FChren ProjectView.btnRunSelectedTest.toolTipText=Ausgew\u00E4hlten Szenario ausf\u00FChren
......
package org.vadere.gui.projectview.control;
import org.vadere.gui.projectview.VadereApplication;
import org.vadere.gui.projectview.model.ProjectViewModel;
import java.awt.event.ActionEvent;
import java.util.prefs.Preferences;
import javax.swing.*;
public class ShowResultDialogAction extends AbstractAction {
ProjectViewModel model;
JCheckBoxMenuItem item;
public ShowResultDialogAction(final String name, final ProjectViewModel model, JCheckBoxMenuItem item) {
super(name);
this.model = model;
this.item = item;
}
@Override
public void actionPerformed(ActionEvent e) {
model.setShowSimulationResultDialog(item.getState());
Preferences.userNodeForPackage(VadereApplication.class).putBoolean("Project.simulationResult.show", item.getState());
}
}
...@@ -3,6 +3,7 @@ package org.vadere.gui.projectview.model; ...@@ -3,6 +3,7 @@ package org.vadere.gui.projectview.model;
import org.apache.log4j.LogManager; import org.apache.log4j.LogManager;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.vadere.gui.components.utils.Messages; import org.vadere.gui.components.utils.Messages;
import org.vadere.gui.projectview.VadereApplication;
import org.vadere.gui.projectview.control.IOutputFileRefreshListener; import org.vadere.gui.projectview.control.IOutputFileRefreshListener;
import org.vadere.gui.projectview.control.IProjectChangeListener; import org.vadere.gui.projectview.control.IProjectChangeListener;
import org.vadere.gui.projectview.view.ProjectView; import org.vadere.gui.projectview.view.ProjectView;
...@@ -21,6 +22,7 @@ import java.util.*; ...@@ -21,6 +22,7 @@ import java.util.*;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.prefs.Preferences;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class ProjectViewModel { public class ProjectViewModel {
...@@ -42,6 +44,7 @@ public class ProjectViewModel { ...@@ -42,6 +44,7 @@ public class ProjectViewModel {
private final Collection<IOutputFileRefreshListener> outputRefreshListeners; private final Collection<IOutputFileRefreshListener> outputRefreshListeners;
private final Collection<IProjectChangeListener> projectChangeListeners; private final Collection<IProjectChangeListener> projectChangeListeners;
private JLabel scenarioNameLabel; // to add or remove the "*" to indicate unsaved changes private JLabel scenarioNameLabel; // to add or remove the "*" to indicate unsaved changes
private boolean showSimulationResultDialog;
public ProjectViewModel() { public ProjectViewModel() {
this.outputTableModel = new OutputFileTableModel(); this.outputTableModel = new OutputFileTableModel();
...@@ -50,6 +53,8 @@ public class ProjectViewModel { ...@@ -50,6 +53,8 @@ public class ProjectViewModel {
this.projectChangeListeners = new LinkedList<>(); this.projectChangeListeners = new LinkedList<>();
this.project = null; this.project = null;
this.refreshOutputExecutor = Executors.newSingleThreadExecutor(); this.refreshOutputExecutor = Executors.newSingleThreadExecutor();
this.showSimulationResultDialog = Preferences.userNodeForPackage(VadereApplication.class)
.getBoolean("Project.simulationResult.show", true);
} }
public void deleteOutputFiles(final int[] rows) throws IOException { public void deleteOutputFiles(final int[] rows) throws IOException {
...@@ -403,4 +408,11 @@ public class ProjectViewModel { ...@@ -403,4 +408,11 @@ public class ProjectViewModel {
return currentScenario; return currentScenario;
} }
public boolean isShowSimulationResultDialog() {
return showSimulationResultDialog;
}
public void setShowSimulationResultDialog(boolean showSimulationResultDialog) {
this.showSimulationResultDialog = showSimulationResultDialog;
}
} }
package org.vadere.gui.projectview.view;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.vadere.gui.projectview.model.ProjectViewModel;
import org.vadere.simulator.projects.ProjectFinishedListener;
import org.vadere.simulator.projects.SimulationResult;
import org.vadere.simulator.projects.VadereProject;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.LinkedList;
import javax.swing.*;
public class ProjectRunResultDialog implements ProjectFinishedListener {
private static Logger logger = LogManager.getLogger(ProjectRunResultDialog.class);
private final ProjectView projectView;
private final ProjectViewModel projectViewModel;
public ProjectRunResultDialog(ProjectView projectView, ProjectViewModel projectViewModel) {
this.projectView = projectView;
this.projectViewModel = projectViewModel;
}
@Override
public void preProjectRun(VadereProject project) {
}
@Override
public void postProjectRun(VadereProject project) {
LinkedList<SimulationResult> simulationResultList = project.getSimulationResults();
StringBuilder sb = new StringBuilder();
for (SimulationResult res : simulationResultList) {
sb.append(res.getScenarioName()).append(":\n")
.append(" Runtime: ").append(res.getRunTimeAsString()).append("\n")
.append(" Overlaps: ").append(res.getTotalOverlaps()).append("\n")
.append(" State: ").append(res.getState()).append("\n\n");
}
if (projectViewModel.isShowSimulationResultDialog()) {
SwingUtilities.invokeLater(() -> {
JDialog dialog = new ResultDialog(projectView, simulationResultList);
dialog.setVisible(true);
});
} else {
logger.info(sb.toString());
}
}
class ResultDialog extends JDialog {
private final String[] columnNames = {"Scenario_Name",
"Runtime",
"Overlaps",
"State"};
Button btnOk, btnCsv;
private JTable table;
JPanel main;
JScrollPane scrollPane;
JPanel btnPane;
LinkedList<SimulationResult> data;
public ResultDialog(ProjectView projectView, LinkedList<SimulationResult> data) {
super(projectView);
this.data = data;
main = new JPanel();
main.setLayout(new BoxLayout(main, BoxLayout.PAGE_AXIS));
table = new JTable(getData(data), columnNames);
table.setFillsViewportHeight(true);
table.doLayout();
scrollPane = new JScrollPane(table);
main.add(scrollPane);
btnOk = new Button("Close");
btnOk.addActionListener(this::btnOKListener);
btnCsv = new Button("Export csv");
btnPane = new JPanel();
btnCsv.addActionListener(this::btnCsvListener);
btnPane.setLayout(new BoxLayout(btnPane, BoxLayout.LINE_AXIS));
btnPane.add(Box.createHorizontalGlue());
btnPane.add(btnOk);
btnPane.add(Box.createRigidArea(new Dimension(10, 0)));
btnPane.add(btnCsv);
Container c = getContentPane();
c.add(main, BorderLayout.CENTER);
c.add(btnPane, BorderLayout.PAGE_END);
setTitle("Simulation Result");
setSize(600, 200);
}
public Object[][] getData(LinkedList<SimulationResult> data) {
Object[][] res = new Object[data.size()][4];
int rowIdx = 0;
for (SimulationResult d : data) {
res[rowIdx] = d.getAsTableRow();
rowIdx++;
}
return res;
}
private void btnOKListener(ActionEvent actionEvent) {
setVisible(false);
}
private void btnCsvListener(ActionEvent actionEvent) {
StringBuilder sj = new StringBuilder();
SimulationResult.addCsvHeader(sj, ';');
data.forEach(i -> i.addCsvRow(sj, ';'));
FileDialog fd = new FileDialog(this, "Bitte eine Datei waehlen!", FileDialog.SAVE);
fd.setVisible(true);
Path p = (Paths.get(fd.getDirectory()).resolve(fd.getFile()));
fd.setVisible(false);
try (OutputStreamWriter writer =
new OutputStreamWriter(new FileOutputStream(p.toString(), false), StandardCharsets.UTF_8)) {
writer.write(sj.toString());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
setVisible(false);
}
}
}
package org.vadere.gui.projectview.view; package org.vadere.gui.projectview.view;
import org.apache.commons.codec.language.bm.Lang;
import org.apache.log4j.LogManager; import org.apache.log4j.LogManager;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.vadere.gui.components.utils.Language; import org.vadere.gui.components.utils.Language;
...@@ -32,6 +31,7 @@ import org.vadere.gui.projectview.control.ActionSeeDiscardChanges; ...@@ -32,6 +31,7 @@ import org.vadere.gui.projectview.control.ActionSeeDiscardChanges;
import org.vadere.gui.projectview.control.ActionShowAboutDialog; import org.vadere.gui.projectview.control.ActionShowAboutDialog;
import org.vadere.gui.projectview.control.IOutputFileRefreshListener; import org.vadere.gui.projectview.control.IOutputFileRefreshListener;
import org.vadere.gui.projectview.control.IProjectChangeListener; import org.vadere.gui.projectview.control.IProjectChangeListener;
import org.vadere.gui.projectview.control.ShowResultDialogAction;
import org.vadere.gui.projectview.model.ProjectViewModel; import org.vadere.gui.projectview.model.ProjectViewModel;
import org.vadere.gui.projectview.model.ProjectViewModel.OutputBundle; import org.vadere.gui.projectview.model.ProjectViewModel.OutputBundle;
import org.vadere.gui.projectview.model.ProjectViewModel.ScenarioBundle; import org.vadere.gui.projectview.model.ProjectViewModel.ScenarioBundle;
...@@ -42,7 +42,6 @@ import org.vadere.simulator.projects.ProjectFinishedListener; ...@@ -42,7 +42,6 @@ import org.vadere.simulator.projects.ProjectFinishedListener;
import org.vadere.simulator.projects.Scenario; import org.vadere.simulator.projects.Scenario;
import org.vadere.simulator.projects.SingleScenarioFinishedListener; import org.vadere.simulator.projects.SingleScenarioFinishedListener;
import org.vadere.simulator.projects.VadereProject; import org.vadere.simulator.projects.VadereProject;
import org.vadere.simulator.projects.io.IOOutput;
import org.vadere.util.io.IOUtils; import org.vadere.util.io.IOUtils;
import java.awt.*; import java.awt.*;
...@@ -103,7 +102,7 @@ public class ProjectView extends JFrame implements ProjectFinishedListener, Sing ...@@ -103,7 +102,7 @@ public class ProjectView extends JFrame implements ProjectFinishedListener, Sing
private ScenarioPanel scenarioJPanel; private ScenarioPanel scenarioJPanel;
private boolean scenariosRunning = false; private boolean scenariosRunning = false;
private Set<Action> projectSpecificActions = new HashSet<>(); // actions that should only be enabled, when a project is loaded private Set<Action> projectSpecificActions = new HashSet<>(); // actions that should only be enabled, when a project is loaded
private ProjectRunResultDialog projectRunResultDialog;
// ####################### Part of the control this should also be part of another class // ####################### Part of the control this should also be part of another class
// ################## // ##################
...@@ -225,6 +224,7 @@ public class ProjectView extends JFrame implements ProjectFinishedListener, Sing ...@@ -225,6 +224,7 @@ public class ProjectView extends JFrame implements ProjectFinishedListener, Sing
model.getProject().addProjectFinishedListener(this); model.getProject().addProjectFinishedListener(this);
model.getProject().addSingleScenarioFinishedListener(this); model.getProject().addSingleScenarioFinishedListener(this);
model.getProject().addProjectFinishedListener(scenarioJPanel); model.getProject().addProjectFinishedListener(scenarioJPanel);
model.getProject().addProjectFinishedListener(projectRunResultDialog);
}); });
} }
...@@ -303,6 +303,7 @@ public class ProjectView extends JFrame implements ProjectFinishedListener, Sing ...@@ -303,6 +303,7 @@ public class ProjectView extends JFrame implements ProjectFinishedListener, Sing
model.addOutputFileRefreshListener(this); model.addOutputFileRefreshListener(this);
model.addProjectChangeListener(this); model.addProjectChangeListener(this);
this.model = model; this.model = model;
projectRunResultDialog = new ProjectRunResultDialog(this, model);
setTitle("Vadere GUI"); setTitle("Vadere GUI");
setBounds(100, 100, 1000, 600); setBounds(100, 100, 1000, 600);
...@@ -384,6 +385,15 @@ public class ProjectView extends JFrame implements ProjectFinishedListener, Sing ...@@ -384,6 +385,15 @@ public class ProjectView extends JFrame implements ProjectFinishedListener, Sing
addToProjectSpecificActions(saveProjectAsAction); addToProjectSpecificActions(saveProjectAsAction);
mnFile.add(mntmSaveAs); mnFile.add(mntmSaveAs);
// Checkbox menu item to turn off result dialog of project run.
mnFile.addSeparator();
boolean showDialogDefault = Preferences.userNodeForPackage(VadereApplication.class)
.getBoolean("Project.simulationResult.show", false);
JCheckBoxMenuItem showResultDialogMenu = new JCheckBoxMenuItem(Messages.getString("ProjectView.mntmSimulationResult.text"), null, showDialogDefault);
Action showResultDialogMenuAction = new ShowResultDialogAction(Messages.getString("ProjectView.mntmSimulationResult.text"), model, showResultDialogMenu);
showResultDialogMenu.setAction(showResultDialogMenuAction);
mnFile.add(showResultDialogMenu);
JMenuItem mntmExit = new JMenuItem(closeApplicationAction); JMenuItem mntmExit = new JMenuItem(closeApplicationAction);
mnFile.addSeparator(); mnFile.addSeparator();
mnFile.add(mntmExit); mnFile.add(mntmExit);
......
...@@ -7,6 +7,14 @@ ...@@ -7,6 +7,14 @@
"type" : "org.vadere.simulator.projects.dataprocessing.outputfile.TimestepPedestrianIdOutputFile", "type" : "org.vadere.simulator.projects.dataprocessing.outputfile.TimestepPedestrianIdOutputFile",
"filename" : "density.txt", "filename" : "density.txt",
"processors" : [ 1 ] "processors" : [ 1 ]
}, {
"type" : "org.vadere.simulator.projects.dataprocessing.outputfile.TimestepPedestrianIdOverlapOutputFile",
"filename" : "out.txt",
"processors" : [ 3 ]
}, {
"type" : "org.vadere.simulator.projects.dataprocessing.outputfile.NoDataKeyOutputFile",
"filename" : "out1.txt",
"processors" : [ 4 ]
} ], } ],
"processors" : [ { "processors" : [ {
"type" : "org.vadere.simulator.projects.dataprocessing.processor.PedestrianDensityCountingProcessor", "type" : "org.vadere.simulator.projects.dataprocessing.processor.PedestrianDensityCountingProcessor",
...@@ -19,6 +27,20 @@ ...@@ -19,6 +27,20 @@
}, { }, {
"type" : "org.vadere.simulator.projects.dataprocessing.processor.PedestrianPositionProcessor", "type" : "org.vadere.simulator.projects.dataprocessing.processor.PedestrianPositionProcessor",
"id" : 2 "id" : 2
}, {
"type" : "org.vadere.simulator.projects.dataprocessing.processor.PedestrianOverlapProcessor",
"id" : 3,
"attributesType" : "org.vadere.state.attributes.processor.AttributesPedestrianOverlapProcessor",
"attributes" : {
"pedRadius" : 0.2
}
}, {
"type" : "org.vadere.simulator.projects.dataprocessing.processor.NumberOverlapsProcessor",
"id" : 4,
"attributesType" : "org.vadere.state.attributes.processor.AttributesNumberOverlapsProcessor",
"attributes" : {
"pedestrianOverlapProcessorId" : 3
}
} ], } ],
"isTimestamped" : true "isTimestamped" : true
}, },
......
...@@ -11,6 +11,14 @@ ...@@ -11,6 +11,14 @@
"type" : "org.vadere.simulator.projects.dataprocessing.outputfile.PedestrianIdOutputFile", "type" : "org.vadere.simulator.projects.dataprocessing.outputfile.PedestrianIdOutputFile",
"filename" : "waitingTimes.txt", "filename" : "waitingTimes.txt",
"processors" : [ 2 ] "processors" : [ 2 ]
}, {
"type" : "org.vadere.simulator.projects.dataprocessing.outputfile.TimestepPedestrianIdOverlapOutputFile",
"filename" : "out.txt",
"processors" : [ 3 ]
}, {
"type" : "org.vadere.simulator.projects.dataprocessing.outputfile.NoDataKeyOutputFile",
"filename" : "out1.txt",
"processors" : [ 4 ]
} ], } ],
"processors" : [ { "processors" : [ {
"type" : "org.vadere.simulator.projects.dataprocessing.processor.PedestrianPositionProcessor", "type" : "org.vadere.simulator.projects.dataprocessing.processor.PedestrianPositionProcessor",
...@@ -28,6 +36,20 @@ ...@@ -28,6 +36,20 @@
"type" : "RECTANGLE" "type" : "RECTANGLE"
} }
} }
}, {
"type" : "org.vadere.simulator.projects.dataprocessing.processor.PedestrianOverlapProcessor",
"id" : 3,
"attributesType" : "org.vadere.state.attributes.processor.AttributesPedestrianOverlapProcessor",
"attributes" : {
"pedRadius" : 0.2
}
}, {
"type" : "org.vadere.simulator.projects.dataprocessing.processor.NumberOverlapsProcessor",
"id" : 4,
"attributesType" : "org.vadere.state.attributes.processor.AttributesNumberOverlapsProcessor",
"attributes" : {
"pedestrianOverlapProcessorId" : 3
}
} ], } ],
"isTimestamped" : true "isTimestamped" : true
}, },
...@@ -59,7 +81,7 @@ ...@@ -59,7 +81,7 @@
"stepLengthSlopeSpeed" : 0.2345, "stepLengthSlopeSpeed" : 0.2345,
"stepLengthSD" : 0.036, "stepLengthSD" : 0.036,
"movementThreshold" : 0.0, "movementThreshold" : 0.0,
"optimizationType" : "DISCRETE", "optimizationType" : "NELDER_MEAD",
"movementType" : "ARBITRARY", "movementType" : "ARBITRARY",
"dynamicStepLength" : false, "dynamicStepLength" : false,
"updateType" : "EVENT_DRIVEN", "updateType" : "EVENT_DRIVEN",
......
...@@ -13,12 +13,12 @@ ...@@ -13,12 +13,12 @@
"processors" : [ 2 ] "processors" : [ 2 ]
}, { }, {
"type" : "org.vadere.simulator.projects.dataprocessing.outputfile.NoDataKeyOutputFile", "type" : "org.vadere.simulator.projects.dataprocessing.outputfile.NoDataKeyOutputFile",
"filename" : "tests.txt", "filename" : "out.txt",
"processors" : [ 4 ] "processors" : [ 5 ]
}, { }, {
"type" : "org.vadere.simulator.projects.dataprocessing.outputfile.TimestepPedestrianIdOutputFile", "type" : "org.vadere.simulator.projects.dataprocessing.outputfile.TimestepPedestrianIdOverlapOutputFile",
"filename" : "postvis.trajectories", "filename" : "out1.txt",
"processors" : [ 3 ] "processors" : [ 6 ]
} ], } ],
"processors" : [ { "processors" : [ {
"type" : "org.vadere.simulator.projects.dataprocessing.processor.PedestrianWaitingTimeProcessor", "type" : "org.vadere.simulator.projects.dataprocessing.processor.PedestrianWaitingTimeProcessor",
...@@ -27,9 +27,9 @@ ...@@ -27,9 +27,9 @@
"attributes" : { "attributes" : {
"waitingArea" : { "waitingArea" : {
"x" : 1.0, "x" : 1.0,
"y" : 3.0, "y" : 3.5,
"width" : 9.5, "width" : 9.5,
"height" : 10.5, "height" : 10.0,
"type" : "RECTANGLE" "type" : "RECTANGLE"
} }
} }
...@@ -38,24 +38,28 @@ ...@@ -38,24 +38,28 @@
"id" : 2, "id" : 2,
"attributesType" : "org.vadere.state.attributes.processor.AttributesPedestrianEvacuationTimeProcessor", "attributesType" : "org.vadere.state.attributes.processor.AttributesPedestrianEvacuationTimeProcessor",
"attributes" : { "attributes" : {
"pedestrianStartTimeProcessorId" : 5 "pedestrianStartTimeProcessorId" : 4
} }
}, { }, {
"type" : "org.vadere.simulator.projects.dataprocessing.processor.PedestrianPositionProcessor", "type" : "org.vadere.simulator.projects.dataprocessing.processor.PedestrianPositionProcessor",
"id" : 3 "id" : 3
}, { }, {
"type" : "org.vadere.simulator.projects.dataprocessing.processor.tests.TestPedestrianWaitingTimeProcessor", "type" : "org.vadere.simulator.projects.dataprocessing.processor.PedestrianStartTimeProcessor",
"id" : 4, "id" : 4
"attributesType" : "org.vadere.state.attributes.processor.AttributesTestPedestrianWaitingTimeProcessor", }, {
"type" : "org.vadere.simulator.projects.dataprocessing.processor.NumberOverlapsProcessor",
"id" : 5,
"attributesType" : "org.vadere.state.attributes.processor.AttributesNumberOverlapsProcessor",
"attributes" : { "attributes" : {
"expectedResult" : "FAIL", "pedestrianOverlapProcessorId" : 6
"pedestrianWaitingTimeProcessorId" : 1,
"maximalWaitingTime" : 0.0,
"minimalWaitingTime" : 0.0
} }
}, { }, {
"type" : "org.vadere.simulator.projects.dataprocessing.processor.PedestrianStartTimeProcessor", "type" : "org.vadere.simulator.projects.dataprocessing.processor.PedestrianOverlapProcessor",
"id" : 5 "id" : 6,
"attributesType" : "org.vadere.state.attributes.processor.AttributesPedestrianOverlapProcessor",
"attributes" : {
"pedRadius" : 0.2
}
} ], } ],
"isTimestamped" : true "isTimestamped" : true
}, },
...@@ -113,7 +117,7 @@ ...@@ -113,7 +117,7 @@
"finishTime" : 100.0, "finishTime" : 100.0,
"simTimeStepLength" : 0.4, "simTimeStepLength" : 0.4,
"realTimeSimTimeRatio" : 0.0, "realTimeSimTimeRatio" : 0.0,
"writeSimulationData" : true, "writeSimulationData" : false,
"visualizationEnabled" : true, "visualizationEnabled" : true,
"printFPS" : false, "printFPS" : false,
"needsBoundary" : false, "needsBoundary" : false,
......
{ {
"name" : "narrow_passage_discrete_ca_fail", "name" : "narrow_passage_discrete_CA_fail",
"description" : "", "description" : "",
"release" : "0.4", "release" : "0.4",
"processWriters" : { "processWriters" : {
...@@ -9,8 +9,12 @@ ...@@ -9,8 +9,12 @@
"processors" : [ 1, 2 ] "processors" : [ 1, 2 ]
}, { }, {
"type" : "org.vadere.simulator.projects.dataprocessing.outputfile.NoDataKeyOutputFile",