otsdaq  3.03.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::vector<CommandTarget> targets_;
30  std::map<std::string /*param name*/, std::string /*param value*/> params_;
31  };
32 
33  std::vector<IterateTable::Command> getPlanCommands(
34  ConfigurationManager* configManager, const std::string& plan) const;
35 
36  static const std::string COMMAND_BEGIN_LABEL;
37  static const std::string COMMAND_CHOOSE_FSM;
38  static const std::string COMMAND_CONFIGURE_ACTIVE_GROUP;
39  static const std::string COMMAND_CONFIGURE_ALIAS;
40  static const std::string COMMAND_CONFIGURE_GROUP;
41  static const std::string COMMAND_ACTIVATE_ALIAS;
42  static const std::string COMMAND_ACTIVATE_GROUP;
43  static const std::string COMMAND_EXECUTE_FE_MACRO;
44  static const std::string COMMAND_EXECUTE_MACRO;
45  static const std::string COMMAND_MODIFY_ACTIVE_GROUP;
46  static const std::string COMMAND_REPEAT_LABEL;
47  static const std::string COMMAND_RUN;
48  static const std::string COMMAND_WAIT;
49  static const std::string COMMAND_START;
50  static const std::string COMMAND_STOP;
51  static const std::string COMMAND_PAUSE;
52  static const std::string COMMAND_RESUME;
53  static const std::string COMMAND_HALT;
54 
55  static const std::string ITERATE_TABLE;
56  static const std::string PLAN_TABLE;
57  static const std::string TARGET_TABLE;
58 
59  static const std::map<std::string, std::string> commandToTableMap_;
60  static std::map<std::string, std::string> createCommandToTableMap()
61  {
62  std::map<std::string, std::string> m;
63  m[COMMAND_BEGIN_LABEL] = "IterationCommandBeginLabelTable";
64  m[COMMAND_CHOOSE_FSM] = "IterationCommandChooseFSMTable";
65  m[COMMAND_CONFIGURE_ACTIVE_GROUP] = "";
66  m[COMMAND_CONFIGURE_ALIAS] = "IterationCommandConfigureAliasTable";
67  m[COMMAND_CONFIGURE_GROUP] = "IterationCommandConfigureGroupTable";
68  m[COMMAND_ACTIVATE_ALIAS] = "IterationCommandConfigureAliasTable";
69  m[COMMAND_ACTIVATE_GROUP] = "IterationCommandConfigureGroupTable";
70  m[COMMAND_EXECUTE_FE_MACRO] = "IterationCommandExecuteFEMacroTable";
71  m[COMMAND_EXECUTE_MACRO] = "IterationCommandExecuteMacroTable";
72  m[COMMAND_MODIFY_ACTIVE_GROUP] = "IterationCommandModifyGroupTable";
73  m[COMMAND_REPEAT_LABEL] = "IterationCommandRepeatLabelTable";
74  m[COMMAND_RUN] = "IterationCommandRunTable";
75  m[COMMAND_WAIT] = "IterationCommandRunTable";
76  m[COMMAND_START] = "";
77  m[COMMAND_STOP] = "";
78  m[COMMAND_PAUSE] = "";
79  m[COMMAND_RESUME] = "";
80  m[COMMAND_HALT] = "";
81  return m;
82  }
83 
85  {
86  const std::string Label_ = "Label";
87  } commandBeginLabelParams_;
88  static struct CommandChooseFSMParams
89  {
90  const std::string NameOfFSM_ = "NameOfStateMachine";
91  } commandChooseFSMParams_;
93  {
94  // no parameters
95  } commandConfigureActiveParams_;
97  {
98  const std::string SystemAlias_ = "SystemAlias";
99  } commandConfigureAliasParams_;
101  {
102  const std::string GroupName_ = "GroupName";
103  const std::string GroupKey_ = "GroupKey";
104  } commandConfigureGroupParams_;
106  {
107  const std::string SystemAlias_ = "SystemAlias";
108  } commandActivateAliasParams_;
110  {
111  const std::string GroupName_ = "GroupName";
112  const std::string GroupKey_ = "GroupKey";
113  } commandActivateGroupParams_;
115  {
116  // targets
117  const std::string MacroName_ = "MacroName";
118  const std::string MacroParameterLink_ = "LinkToMacroDimensionalLoopTable";
119  const std::string EnableSavingOutput_ = "EnableSavingOutputsToFile";
120  const std::string OutputFilePath_ = "OutputFilePath";
121  const std::string OutputFileRadix_ = "OutputFileRadix";
122 
123  const std::string MacroArgumentString_ = "MacroArgumentString";
124 
125  // macro parameters
126  } commandExecuteMacroParams_;
128  {
129  // targets
130  const std::string DoTrackGroupChanges_ = "DoTrackGroupChanges";
131  const std::string RelativePathToField_ = "RelativePathToField";
132  const std::string FieldStartValue_ = "FieldStartValue";
133  const std::string FieldIterationStepSize_ = "FieldIterationStepSize";
134  } commandModifyActiveParams_;
136  {
137  const std::string Label_ = "Label";
138  const std::string NumberOfRepetitions_ = "NumberOfRepetitions";
139  } commandRepeatLabelParams_;
140  static struct CommandRunParams
141  {
142  const std::string WaitOnRunningThreads_ = "WaitForAllFrontEndsRunningThread";
143  const std::string DurationInSeconds_ = "DurationInSeconds";
144  } commandRunParams_;
145  static struct CommandWaitParams
146  {
147  const std::string WaitOnRunningThreads_ = "WaitForAllFrontEndsRunningThread";
148  const std::string DurationInSeconds_ = "DurationInSeconds";
149  } commandWaitParams_;
151  static struct TargetParams
152  {
153  const std::string Tables_ = "CSVTargetTables";
154  const std::string UIDs_ = "CSVTargetUIDs";
155  } targetParams_;
156  static struct CommandTargetColumns
157  {
158  const std::string TargetsLink_ = "LinkToTargets";
159  const std::string TargetsLinkGroupID_ = "LinkToTargetsGroupID";
160 
161  } commandTargetCols_;
162  static struct TargetTableColumns
163  {
164  const std::string GroupID_ = "IterationTargetGroupID";
165  const std::string TargetLink_ = "LinkToTarget";
166  const std::string TargetLinkUID_ = "LinkToTargetUID";
167  } targetCols_;
168 
171  {
172  const std::string Priority_ = "DimensionalLoopPriority";
173  const std::string NumberOfIterations_ = "NumberOfIterations";
174  const std::string ParamLink_ = "LinkToDimensionalLoopParameterTable";
175  } macroDimLoopCols_;
177  {
178  const std::string Name_ = "ParameterName";
179  const std::string Value_ = "ParameterInitialValue";
180  const std::string Step_ = "ParameterStepSize";
181 
182  } macroParamCols_;
183 
193  static struct IterateTableColumns
194  {
195  const std::string PlanLink_ = "LinkToIterationPlanTable";
196  } iterateTableCols_;
197 
198  static struct PlanTableColumns
199  {
200  const std::string Status_ = TableViewColumnInfo::COL_NAME_STATUS;
201  const std::string GroupID_ = "IterationPlanGroupID";
202  const std::string CommandLink_ = "LinkToCommandUID";
203  const std::string CommandType_ = "CommandType";
204  } planTableCols_;
205 };
206 } // namespace ots
207 #endif
void init(ConfigurationManager *configManager)
Methods.
static std::map< std::string, std::string > createCommandToTableMap()
Definition: IterateTable.h:60
static const std::string COMMAND_BEGIN_LABEL
Definition: IterateTable.h:36
const std::string NameOfFSM_
by default ""
Definition: IterateTable.h:90
for macro dimensional loop parameters
Definition: IterateTable.h:171