otsdaq  3.11.00
IterateTable.h
1 #ifndef _ots_IterateTable_h_
2 #define _ots_IterateTable_h_
3 
4 #include "otsdaq/TableCore/TableBase.h"
5 
6 namespace ots
7 {
8 class IterateTable : public TableBase
9 {
10  public:
11  IterateTable(void);
12  virtual ~IterateTable(void);
13 
15  void init(ConfigurationManager* configManager);
16 
20  {
21  std::string table_;
22  std::string UID_;
23  };
24 
25  struct Command
26  {
27  void addTarget() { targets_.push_back(CommandTarget()); }
28  std::string type_;
29  std::string targetSubsystem_; // empty = self, else remote subsystem name
30  std::vector<CommandTarget> targets_;
31  std::map<std::string /*param name*/, std::string /*param value*/> params_;
32  };
33 
34  std::vector<IterateTable::Command> getPlanCommands(
35  ConfigurationManager* configManager, const std::string& plan) const;
36 
37  static const std::string COMMAND_BEGIN_LABEL;
38  static const std::string COMMAND_CHOOSE_FSM;
39  static const std::string COMMAND_CONFIGURE_ACTIVE_GROUP;
40  static const std::string COMMAND_CONFIGURE_ALIAS;
41  static const std::string COMMAND_CONFIGURE_GROUP;
42  static const std::string COMMAND_ACTIVATE_ALIAS;
43  static const std::string COMMAND_ACTIVATE_GROUP;
44  static const std::string COMMAND_EXECUTE_FE_MACRO;
45  static const std::string COMMAND_EXECUTE_MM_MACRO;
46  static const std::string COMMAND_MODIFY_ACTIVE_GROUP;
47  static const std::string COMMAND_REPEAT_LABEL;
48  static const std::string COMMAND_RUN;
49  static const std::string COMMAND_WAIT;
50  static const std::string COMMAND_START;
51  static const std::string COMMAND_STOP;
52  static const std::string COMMAND_PAUSE;
53  static const std::string COMMAND_RESUME;
54  static const std::string COMMAND_HALT;
55 
56  static const std::string ITERATE_TABLE;
57  static const std::string PLAN_TABLE;
58  static const std::string TARGET_TABLE;
59  static const std::string MACRO_DIM_LOOP_TABLE;
60  static const std::string MACRO_DIM_LOOP_PARAM_TABLE;
61 
62  static const std::map<std::string, std::string> commandToTableMap_;
63  static std::map<std::string, std::string> createCommandToTableMap()
64  {
65  std::map<std::string, std::string> m;
66  m[COMMAND_BEGIN_LABEL] = "IterationCommandBeginLabelTable";
67  m[COMMAND_CHOOSE_FSM] = "IterationCommandChooseFSMTable";
68  m[COMMAND_CONFIGURE_ACTIVE_GROUP] = "IterationCommandConfigureAliasTable";
69  m[COMMAND_CONFIGURE_ALIAS] = "IterationCommandConfigureAliasTable";
70  m[COMMAND_CONFIGURE_GROUP] = "IterationCommandConfigureGroupTable";
71  m[COMMAND_ACTIVATE_ALIAS] = "IterationCommandConfigureAliasTable";
72  m[COMMAND_ACTIVATE_GROUP] = "IterationCommandConfigureGroupTable";
73  m[COMMAND_EXECUTE_FE_MACRO] = "IterationCommandExecuteFEMacroTable";
74  m[COMMAND_EXECUTE_MM_MACRO] = "IterationCommandExecuteMacroTable";
75  m[COMMAND_MODIFY_ACTIVE_GROUP] = "IterationCommandModifyGroupTable";
76  m[COMMAND_REPEAT_LABEL] = "IterationCommandRepeatLabelTable";
77  m[COMMAND_RUN] = "IterationCommandRunTable";
78  m[COMMAND_WAIT] = "IterationCommandRunTable";
79  m[COMMAND_START] = "";
80  m[COMMAND_STOP] = "";
81  m[COMMAND_PAUSE] = "";
82  m[COMMAND_RESUME] = "";
83  m[COMMAND_HALT] = "";
84  return m;
85  }
86 
88  {
89  const std::string Label_ = "Label";
90  } commandBeginLabelParams_;
91  static struct CommandChooseFSMParams
92  {
93  const std::string NameOfFSM_ = "NameOfStateMachine";
94  } commandChooseFSMParams_;
98  {
99  const std::string SkipIfAlreadyConfigured_ = "SkipIfAlreadyConfigured";
100  } commandConfigureActiveParams_;
102  {
103  const std::string SystemAlias_ = "SystemAlias";
104  const std::string SkipIfAlreadyConfigured_ = "SkipIfAlreadyConfigured";
105  } commandConfigureAliasParams_;
107  {
108  const std::string GroupName_ = "GroupName";
109  const std::string GroupKey_ = "GroupKey";
110  const std::string SkipIfAlreadyConfigured_ = "SkipIfAlreadyConfigured";
111  } commandConfigureGroupParams_;
113  {
114  const std::string SystemAlias_ = "SystemAlias";
115  } commandActivateAliasParams_;
117  {
118  const std::string GroupName_ = "GroupName";
119  const std::string GroupKey_ = "GroupKey";
120  } commandActivateGroupParams_;
122  {
123  // targets
124  const std::string MacroName_ = "MacroName";
125  const std::string MacroParameterLink_ = "LinkToMacroDimensionalLoopTable";
126  const std::string MacroParameterLinkGroupID_ =
127  "LinkToMacroDimensionalLoopGroupID";
128  const std::string EnableSavingOutput_ = "EnableSavingOutputsToFile";
129  const std::string OutputFilePath_ = "OutputFilePath";
130  const std::string OutputFileRadix_ = "OutputFileRadix";
131 
133  const std::string MacroArgumentString_ =
134  "MacroArgumentString";
135  const std::string MacroArgumentLabels_ =
136  "MacroArgumentLabels";
137 
139  const std::string MacroArgs_ = "MacroArgs";
140  } commandExecuteMacroParams_;
142  {
143  // targets
144  const std::string DoTrackGroupChanges_ = "DoTrackGroupChanges";
145  const std::string RelativePathToField_ = "RelativePathToField";
146  const std::string FieldStartValue_ = "FieldStartValue";
147  const std::string FieldIterationStepSize_ = "FieldIterationStepSize";
148  } commandModifyActiveParams_;
150  {
151  const std::string Label_ = "Label";
152  const std::string NumberOfRepetitions_ = "NumberOfRepetitions";
153  } commandRepeatLabelParams_;
154  static struct CommandRunParams
155  {
156  const std::string WaitOnRunningThreads_ = "WaitForAllFrontEndsRunningThread";
157  const std::string DurationInSeconds_ = "DurationInSeconds";
158  const std::string WriteToECL_ = "WriteToECL";
159  } commandRunParams_;
160  static struct CommandWaitParams
161  {
162  const std::string WaitOnRunningThreads_ = "WaitForAllFrontEndsRunningThread";
163  const std::string DurationInSeconds_ = "DurationInSeconds";
164  } commandWaitParams_;
166  static struct TargetParams
167  {
168  const std::string Tables_ = "CSVTargetTables";
169  const std::string UIDs_ = "CSVTargetUIDs";
170  } targetParams_;
171  static struct CommandTargetColumns
172  {
173  const std::string TargetsLink_ = "LinkToTargets";
174  const std::string TargetsLinkGroupID_ = "LinkToTargetsGroupID";
175 
176  } commandTargetCols_;
177  static struct TargetTableColumns
178  {
179  const std::string GroupID_ = "IterationTargetGroupID";
180  const std::string TargetLink_ = "LinkToTarget";
181  const std::string TargetLinkUID_ = "LinkToTargetUID";
182  } targetCols_;
183 
186  {
187  const std::string GroupID_ = "DimensionalLoopGroupID";
188  const std::string Priority_ = "DimensionalLoopPriority";
189  const std::string NumberOfIterations_ = "NumberOfIterations";
190  const std::string StepLabel_ =
191  "StepLabel";
192  const std::string ParamLink_ = "LinkToDimensionalLoopParameterTable";
193  const std::string ParamLinkGroupID_ = "LinkToDimensionalLoopParameterGroupID";
194  } macroDimLoopCols_;
196  {
197  const std::string GroupID_ = "ParameterGroupID";
198  const std::string Name_ = "ParameterName";
199  const std::string Value_ = "ParameterInitialValue";
200  const std::string Step_ = "ParameterStepSize";
201 
202  } macroParamCols_;
203 
213  static struct IterateTableColumns
214  {
215  const std::string PlanLink_ = "LinkToIterationPlanTable";
216  } iterateTableCols_;
217 
218  static struct PlanTableColumns
219  {
220  const std::string Status_ = TableViewColumnInfo::COL_NAME_STATUS;
221  const std::string GroupID_ = "IterationPlanGroupID";
222  const std::string CommandLink_ = "LinkToCommandUID";
223  const std::string CommandType_ = "CommandType";
224  const std::string TargetSubsystem_ = "TargetSubsystem";
225  } planTableCols_;
226 };
227 } // namespace ots
228 #endif
void init(ConfigurationManager *configManager)
Methods.
static std::map< std::string, std::string > createCommandToTableMap()
Definition: IterateTable.h:63
static const std::string COMMAND_BEGIN_LABEL
Definition: IterateTable.h:37
defines used also by OtsConfigurationWizardSupervisor
const std::string NameOfFSM_
by default ""
Definition: IterateTable.h:93
const std::string MacroArgs_
GUI<->save wire key: "name:start:step:label,..." (pieces URI-encoded)
Definition: IterateTable.h:139
const std::string MacroArgumentString_
runtime keys built by getPlanCommands() from the dimensional-loop tables
Definition: IterateTable.h:133
const std::string MacroArgumentLabels_
";"-separated StepLabel per dimension
Definition: IterateTable.h:135
for macro dimensional loop parameters
Definition: IterateTable.h:186
const std::string StepLabel_
BEGIN_LABEL whose pass index steps this dimension; empty = innermost.
Definition: IterateTable.h:190