-
Notifications
You must be signed in to change notification settings - Fork 25
Badger
This C# app has the following main goals:
- Generate the configuration file of a Simion app taking as input the definitions of all the classes and parameters using a GUI.
- Allow the user to give several values to each parameter
- Remote execution of each combination of parameter values
- Analysis of the results
The app should be as independent from the source code as possible but there is a compromise between being generic and being able to validate the configuration data without overcomplicating the syntax of the input file. So far, validation done by Badger is minimal: check numerical parameters are actually numbers, state/aciton variables exist in the selected world, etc...
The different file types that can be saved/loaded from Badger and their formats can be found here.
Badger takes /config/definitions.xml and /config/apps/*.xml as input. The input XML definition file is automatically generated by SimionSrcParser each time RLSimion is recompiled.
Badger outputs three different types of files, all based on XML: project, experiment and batch. They are explained here.
Badger uses a MVVM pattern and follows Caliburn Micro's naming conventions. The View-model of some Foo class is named FooViewModel, and its view is named FooView. Basic information and examples can be found here
Badger has three main windows that allow to design an experiment, monitor it and analyse the results.
From this window, the user can design from scratch, load, save and launch experiments. The user can also view and analyse the results of a previous execution (Reports). On the left side, the user can set the value of parameters of a Simion app, and, on the right side, the list of herd agents that have replied to the call is shown. This list is updated periodically, so some delay between updates can be expected.
The objects in the experiment editing window are organized as described in Badger object hierarchy.
In this window, the user can follow the progress, performance and the messages logged by the experiments being run. This window is documented here.
The user can easily analyse the results of an experiment, which are organised using the forks in the experiment. Further documentation can be found here.
This app uses Caliburn Micro to simplify MVVM and Oxyplot to draw plots.


