vadere merge requestshttps://gitlab.lrz.de/vadere/vadere/-/merge_requests2019-12-16T20:22:02+01:00https://gitlab.lrz.de/vadere/vadere/-/merge_requests/104Traci single client server2019-12-16T20:22:02+01:00Schuhbaeck, StefanTraci single client serverhttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/103Traci phsc2020-01-10T17:54:40+01:00Ghost UserTraci phscSchuhbaeck, StefanSchuhbaeck, Stefanhttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/102Korrektur scenario checker2020-05-26T16:12:47+02:00Schuhbaeck, StefanKorrektur scenario checkerThis will allow you to add a `fix` function to teach checker message. Look at `VadereSimulator/src/org/vadere/simulator/utils/scenariochecker/checks/topography/UnusedTargetsCheck.java`
how to use it.This will allow you to add a `fix` function to teach checker message. Look at `VadereSimulator/src/org/vadere/simulator/utils/scenariochecker/checks/topography/UnusedTargetsCheck.java`
how to use it.Marion GoedelMarion Goedelhttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/101Cellular automaton2020-02-03T13:25:03+01:00Marion GoedelCellular automatonAdded spawning and attributes for a CA setup (extends OSM).Added spawning and attributes for a CA setup (extends OSM).https://gitlab.lrz.de/vadere/vadere/-/merge_requests/100new tasks2019-12-06T17:59:22+01:00Schuhbaeck, Stefannew taskshttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/98Dev/remove time credit2019-11-29T18:18:14+01:00Zoennchen, BenediktDev/remove time creditZoennchen, BenediktZoennchen, Benedikthttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/97WIP: MetaSeed implementation2019-11-29T18:20:41+01:00Schuhbaeck, StefanWIP: MetaSeed implementationFirst draft for MetaSeed issue #206
ToDo:
- [ ] finalize interface definition
- [ ] extensive unit tests
- [ ] integrate in VadereContext for simple usage throughout the simulation.
(This will mitigate the passing of Ra...First draft for MetaSeed issue #206
ToDo:
- [ ] finalize interface definition
- [ ] extensive unit tests
- [ ] integrate in VadereContext for simple usage throughout the simulation.
(This will mitigate the passing of Random Object down a call tree)
- [ ] finalize the metaSeed list
- [x] ensure new pedestrians will always receive a larger id than any previously id (even if that id no longer exists.)
metaSeedList:
```
metaSeeds.put(Source.class.getCanonicalName(), new VadereMetaSeed(random.nextLong()));
metaSeeds.put(Target.class.getCanonicalName(), new VadereMetaSeed(random.nextLong()));
metaSeeds.put(TargetChanger.class.getCanonicalName(), new VadereMetaSeed(random.nextLong()));
metaSeeds.put(MeasurementArea.class.getCanonicalName(), new VadereMetaSeed(random.nextLong()));
metaSeeds.put(Pedestrian.class.getCanonicalName(), new VadereMetaSeed(random.nextLong()));
metaSeeds.put("misc", new VadereMetaSeed(random.nextLong()));
metaSeeds.put("traci", new VadereMetaSeed(random.nextLong()));
```
@BZoennchen @hm-lehmberg @hm-kleinmei @hm-mgoedel feel free to add ToDos or additional MetaSeeds.Schuhbaeck, StefanSchuhbaeck, Stefanhttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/96call fireChangeViewportEvent from awt Event Thread2019-12-02T12:06:59+01:00Schuhbaeck, Stefancall fireChangeViewportEvent from awt Event Thread@BZoennchen does that makes sense?
I had the issue that the packaged vadere GUI sometimes stoped after the first simulation step. After looking at
the threads via `jconsole` it seems that `fireChangeViewportEvent` (marked with `**` in...@BZoennchen does that makes sense?
I had the issue that the packaged vadere GUI sometimes stoped after the first simulation step. After looking at
the threads via `jconsole` it seems that `fireChangeViewportEvent` (marked with `**` in first stack trace) will
synchronize on the model and the awt event thread will do the same --> deadlock. This only happed for big scenarios
for what I saw.
If the fix is correct just merge it :)
```
Name: Thread-0
State: BLOCKED on java.awt.Component$AWTTreeLock@7d505529 owned by: AWT-EventQueue-0
Total blocked: 1 Total waited: 0
Stack trace:
java.awt.Component.resize(Component.java:2241)
java.awt.Component.setSize(Component.java:2227)
java.awt.Component.resize(Component.java:2275)
java.awt.Component.setSize(Component.java:2262)
javax.swing.JViewport.setViewSize(JViewport.java:1139)
org.vadere.gui.components.control.ViewportChangeListener.viewportChange(ViewportChangeListener.java:50)
org.vadere.gui.components.model.DefaultModel.notifyViewportListeners(DefaultModel.java:182) - locked org.vadere.gui.onlinevisualization.model.OnlineVisualizationModel@6ce9b79f
** org.vadere.gui.components.model.DefaultModel.fireChangeViewportEvent(DefaultModel.java:268) - locked org.vadere.gui.onlinevisualization.model.OnlineVisualizationModel@6ce9b79f
** org.vadere.gui.onlinevisualization.model.OnlineVisualizationModel.popDrawData(OnlineVisualizationModel.java:143) - locked java.lang.Object@746b397e
org.vadere.gui.onlinevisualization.OnlineVisualization.postUpdate(OnlineVisualization.java:112)
org.vadere.simulator.control.simulation.Simulation.run(Simulation.java:279)
org.vadere.simulator.control.simulation.ScenarioRun.run(ScenarioRun.java:158)
java.lang.Thread.run(Thread.java:834)
```
```
Name: AWT-EventQueue-0
State: BLOCKED on org.vadere.gui.onlinevisualization.model.OnlineVisualizationModel@6ce9b79f owned by: Thread-0
Total blocked: 123 Total waited: 433
Stack trace:
org.vadere.gui.components.model.DefaultModel.setViewportBound(DefaultModel.java:273) <--- needs lock on Model (not possible see above fireChangeViewportEvent)
org.vadere.gui.components.control.JViewportChangeListener.stateChanged(JViewportChangeListener.java:50)
javax.swing.JViewport.fireStateChanged(JViewport.java:1490)
javax.swing.JViewport.reshape(JViewport.java:954)
java.awt.Component.setBounds(Component.java:2326)
java.awt.Component.setBounds(Component.java:2477)
javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:888)
java.awt.Container.layout(Container.java:1537)
java.awt.Container.doLayout(Container.java:1526)
java.awt.Container.validateTree(Container.java:1722)
java.awt.Container.validate(Container.java:1657) - locked java.awt.Component$AWTTreeLock@7d505529
javax.swing.RepaintManager$3.run(RepaintManager.java:745)
javax.swing.RepaintManager$3.run(RepaintManager.java:743)
java.security.AccessController.doPrivileged(Native Method)
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:742)
javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1889)
java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
java.awt.EventQueue$4.run(EventQueue.java:721)
java.awt.EventQueue$4.run(EventQueue.java:715)
java.security.AccessController.doPrivileged(Native Method)
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
```Zoennchen, BenediktZoennchen, Benedikthttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/95Code cleaning and order of time and state update in Simulation.run()2019-11-29T15:48:17+01:00Ghost UserCode cleaning and order of time and state update in Simulation.run()Merge request to improve the readability of the main simulation run and clarify aspects?
* [ ] Why is `processManager.update` after `step++` and refreshing the `simulationState` state? This causes step in output to start at 1 and not ...Merge request to improve the readability of the main simulation run and clarify aspects?
* [ ] Why is `processManager.update` after `step++` and refreshing the `simulationState` state? This causes step in output to start at 1 and not 0. Could the `processManager.update` also be in `updateCallbacks` ? (cc @hm-mgoedel )
https://gitlab.lrz.de/vadere/vadere/-/merge_requests/94WIP: Generalize source to allow flexible inflow2021-12-17T11:37:51+01:00Ghost UserWIP: Generalize source to allow flexible inflowLater on the inflow can be from data (e.g. inflow measured from an experiment), a function or anything else.
For this the source had to be generalised and a new interface `SpawnDistributions` was introduced. The `ConstantDistribution` w...Later on the inflow can be from data (e.g. inflow measured from an experiment), a function or anything else.
For this the source had to be generalised and a new interface `SpawnDistributions` was introduced. The `ConstantDistribution` which so far was the only distribution used for sources is adapted to this new interface.
On a side, I also changed the handling for spawning. If a single pedestrian could not be placed in a source, then the loop interrupts. For this I increased the number of tries. This should have improve one of the bottlenecks we have, when the source is too small.
Problems and Todos:
* [ ] How to set up a general SpawnDistribution? This needs some flexibility in the JSON settings (each SpawnDistribution has specific parameter).
* [ ] Rename `ConstantDistribution` -> `ConstantSpawnDistribution` to indicate better that it is used for spawning pedestrians
* [ ] Write a `TotalNumberSpawnDistribution` which spawns total number of agents in as fast as possible.
Closes #283https://gitlab.lrz.de/vadere/vadere/-/merge_requests/93fix #280 nullpointer in gui while simulation setup2019-11-28T14:19:24+01:00Schuhbaeck, Stefanfix #280 nullpointer in gui while simulation setupThe problem occurred because the OnlineVisualization model is setup
during gui startup but was only valid after the first call to
OnlineVisualization#postUpdate where the DrawData object is created.
Only then was the OnlineVisualization ...The problem occurred because the OnlineVisualization model is setup
during gui startup but was only valid after the first call to
OnlineVisualization#postUpdate where the DrawData object is created.
Only then was the OnlineVisualization valid and capable of answering
all callbacks.
This commit will fix the problem but does not fix the design the problem.
The OnlineVisualization is still created at gui startup but all
callbacks to the model are removed util the OnlineVisualization model is
fully initialized.https://gitlab.lrz.de/vadere/vadere/-/merge_requests/92Test client stsc2019-11-18T19:05:25+01:00Schuhbaeck, StefanTest client stschttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/91TraCI and Cache handling update2019-11-15T13:48:38+01:00Schuhbaeck, StefanTraCI and Cache handling update### Added
- TraCI commands:
* getHash: return Scenario hash for given scenario
* CompoundObject implementation to allow complex get/set commands (i.e. create pedestrian hat
random location during simulation run)
- osm2vadere ...### Added
- TraCI commands:
* getHash: return Scenario hash for given scenario
* CompoundObject implementation to allow complex get/set commands (i.e. create pedestrian hat
random location during simulation run)
- osm2vadere converter:
* it is possible to specify a way with the tag `area-of-intrest` (AOI). If this is present and the
corresponding command line argument is given, only elements within the bounding box of the
AOI will be converted.
- Add INET environment export:
* create an INET environment xml file based on the current topography. For now only prism shapes
are possible with a fixed height of 5m.
- vadere-console `utils` subCommand:
* A miscellaneous collector of simple function operating on a single scenario file.
* -f (input [required])
* -o (ouput file or directory depending on method m [optional])
* -m (name of method.) See subparser help for allowed functions.
* currently implementd:
* `getHash`: Hash value of given scenario. (-o option ignored)
* `binCache`: calculate binary cache (-o must be a directory. If missing it will be created)
* `txtCache`: calculate text based cache (-o must be a directory. If missing it will be created)
### Changed
- CachePath lookup:
The new cache lookup now allows a 'global' lookup. Previously all cache files are saved in
a `__cache__` folder relative (as sibling) to the currently running scenario file. This works
good for local testing and runs. However, if one scenario is duplicated and integrated in other
projects the same cache would be created at multiple locations. The current solution would be
to enter an absolute path as the `cacheDir` but this will break interoperatbility between
windows and linux as well as sharing scenario files with other users. CacheDir Lookup order:
1. `cacheDir` is an absolute path: Use it; and log the path to console.
2. `cacheDir` is relative and `Vadere.cache.useGlobalCacheBaseDir=false` (default):
save cache in a `__cache__` folder relative (as sibling) to the currently running scenario file
3. `cacheDir` is relative and `Vadere.cache.useGlobalCacheBaseDir=true`:
Lookup `Vadere.cache.flobalCacheBaseDir` and use this as the base path for the relative
`cacheDir` path. `Vadere.cache.flobalCacheBaseDir` defaults to `${user.home}\.cache\vadere`Schuhbaeck, StefanSchuhbaeck, Stefanhttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/90remove fine tune condition in brute force2019-11-05T18:25:30+01:00Ghost Userremove fine tune condition in brute forceClose #278Close #278https://gitlab.lrz.de/vadere/vadere/-/merge_requests/89[GUI] Visualization: make interpolation configurable.2019-11-04T16:29:47+01:00Zoennchen, Benedikt[GUI] Visualization: make interpolation configurable.The interpolation for the visualization can now be deactivated and activated (for the PostVis and OnlineVis). For the PostVis it is active by default. For the OnlineVis it is inactive by default.The interpolation for the visualization can now be deactivated and activated (for the PostVis and OnlineVis). For the PostVis it is active by default. For the OnlineVis it is inactive by default.Zoennchen, BenediktZoennchen, Benedikthttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/88Issue 10 modellierung des t juction experimentes2019-10-29T13:00:02+01:00Ghost UserIssue 10 modellierung des t juction experimenteshttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/87remove hard coded path from test client. add short api name to easy use of cm...2019-10-28T11:29:22+01:00Schuhbaeck, Stefanremove hard coded path from test client. add short api name to easy use of cmdClienthttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/86remove hard coded path from test client. add short api name to easy use of cm...2019-10-25T09:43:58+02:00Schuhbaeck, Stefanremove hard coded path from test client. add short api name to easy use of cmdClienthttps://gitlab.lrz.de/vadere/vadere/-/merge_requests/85Use FootStepProcessor in Postviz and as default trajectory output processor2019-10-08T08:28:49+02:00Ghost UserUse FootStepProcessor in Postviz and as default trajectory output processorCloses #253Closes #253https://gitlab.lrz.de/vadere/vadere/-/merge_requests/84Rename class "LastFootSteps" to "FootstepHistory"2019-09-16T13:13:56+02:00Ghost UserRename class "LastFootSteps" to "FootstepHistory"- [x] Rename class `LastFootSteps` to `FootstepHistory`
- [x] Move usage of renamed class `FootstepHistory` from `VTractory` to `Pedestrian`
- [x] Implement migration `JsonTransformationV1_3ToV1_4` to update all scenario files
- [x] Appl...- [x] Rename class `LastFootSteps` to `FootstepHistory`
- [x] Move usage of renamed class `FootstepHistory` from `VTractory` to `Pedestrian`
- [x] Implement migration `JsonTransformationV1_3ToV1_4` to update all scenario files
- [x] Apply migration `JsonTransformationV1_3ToV1_4` to all scenario files
Watch out: Everywhere were `VTrajectory.add()` is called, additionally call "FootstepHistory.add()" now.