Skip to content

Adding a new decision controller

merschformann edited this page Sep 30, 2017 · 1 revision

The following explains the necessary steps to add a new simple controlling mechanism (using the pod storage problem component as an example):

  1. Add a new class in the right place, i.e. for pod storage you would add it at RAWSimO.Core.Control.Defaults.PodStorage
  2. Inherit from the base manager of the problem component, i.e. for pod storage it is PodStorageManager
  3. Add a parameter configuration for you manager in the respective "MethodConfigurationXX.cs" within RAWSimO.Core.Configurations, i.e. in "MethodConfigurationPS.cs" for pod storage
  4. Inherit from the base configuration of your problem component, i.e. PodStorageConfiguration for pod storage
  5. Add the tag to the base configuration for your manager's configuration to allow the XML serializer to find it, i.e. add [XmlInclude(typeof())] right before PodStorageConfiguration for pod storage
  6. Add a descriptive name (should match with your manager name) to the right enumeration, i.e. to PodStorageMethodType for pod storage
  7. Add another case for the corresponding switch statement in "Controller.cs", i.e. add it to the switch statement right after the "Init pod storage manager" comment for pod storage

Note that all comments for parameters within your new configuration will be parsed with the help of reflection and provided as tooltips in RAWSimO.Visualization. This is done to streamline assessment of new decision methods even more.

Clone this wiki locally