The following features will be implemented:
  • Default family and subfamily must be provided
  • Subfamily can be "None"
  • Default values can be overridden by the configuration file to manage specific cases
  • The default family and subfamily specification is made in the controller code to ensure modularisation
  • The function setFamily is added to the controller API:
    • setFamily(const std::string& family, const std::string& subfamily = "None");
  • InstrumentConfig.xml has a new optional tag SUBFAMILY
  • The tag MAINFAMILY replaces FAMILY
  • The tag MAINFAMILY is optional
  • Rules for determining the family and subfamily values:
    • If MAINFAMILY and SUBFAMILY are not provided in InstrumentConfig.xml:
      • Default values are used
    • If MAINFAMILY is only provided
      • If the value is the same than the default one, then the SUBFAMILY is the default
      • If the value is not the same than the default one, then the SUBFAMILY is "None"
    • If SUBFAMILY is only provided
      • The MAINFAMILY value is the default one, and the SUBFAMILY is the provided value
    • If MAINFAMILY and SUBFAMILY are provided
      • They override the default values in case they are not the same
    • In case the default values are not used
      • A warning will be displayed in the server output
      • The values are saved in the configuration file
  • Inheritance can be used to simplify the definitions. A controller class inherits the family information from its superclasses.
  • Lots of MAINFAMILY tags will disappear in configuration since they will be the default values

List of Family

Family, subfamily, controller

  • Tools
    • plot
    • wait
    • comment
    • fix
    • set
    • clear
    • data parameters
  • ExecutionControl
    • for
    • if
    • ifbreak
  • Acquisition
    • Counts
      • Count
      • TofCount
      • DopplerCount
      • StroboCount
      • RocCount
      • ElasticCount
      • InelasticCount
      • EventModeCount (replace list mode count)
    • Scans
    • Setting (count settings)
      • title
  • SampleEnvironment
    • Voltages
    • Currents
    • Temperatures
    • Pressures
    • .....
  • BeamParameters
    • Setting
    • Choppers
    • Collimations
    • Diaphragms
    • Polarizations
    • Alignment
  • Axis
    • Primary
    • Sample
    • Secondary
  • Setting
    • IN5Setting
    • .....