File: INCLUDE\WORKFLOW\Enums.h
1 #ifndef _ENUMS_H
2 #define _ENUMS_H
3
4 /** @file Enums.h
5 * Enums und Structs der Kommando- und Makroverarbeitung.
6 * Diese Enums und Structs dienen der Beschreibung von
7 * Kommandos, Kommandoparametern und Makros.
8 */
9
10 /** Maximale Anzahl von speicherbaren Zwischenergebnissen.
11 * (siehe auch TSteering::dCalcArg[])
12 *
13 * @author David Damm
14 * @date 04.07.2004
15 * @version 0.1
16 * Doxygen-Kommentare hinzugefügt.
17 */
18 const UINT nMaxArg = 4;
19
20 /** Maximale Anzahl von Makros in aMacroList.
21 */
22 const UINT _MAXMACROCOUNT = 20;
23
24 /** Maximal 50 Zeichen für den dritten Kommandoparameter.
25 * @see TCmdTag::P3
26 */
27 const UINT _MAXLENP3 = 50;
28
29 /** Maximal 20 Zeichen für den Dateinamen der Makro-Datei.
30 * @see TMacroTag::FileName
31 */
32 const UINT _MAXLENMAKFILENAME = 20;
33
34 /** Maximal 20 Zeichen für die Bezeichnung des Makros.
35 * @see TMacroTag::Name
36 */
37 const UINT _MAXLENMACRONAME = 20;
38
39 /** Alle verfügbaren Kommandos.
40 */
41 enum ECmdId
42 {
43 GotoPeak=1, /**< Peak bestimmen und anfahren. */
44 GotoIntensity, /**< Intensität anfahren. */
45 ChooseAxis, /**< Motor/Antrieb auswählen. */
46 SetWidth, /**< Motorschrittweite setzen. */
47 AreaScan, /**< AreaScan durchführen. */
48 Scan, /**< Scan durchführen. */
49 ControlFlank, /**< Flanke nachregeln. */
50 SaveData, /**< Daten speichern. */
51 ChooseDetector, /**< Detektor auswählen. */
52 Calculate, /**< Berechnung durchführen. */
53 LoadPoint, /**< Eine Position speichern. */
54 ShowValue, /**< Einen Wert ausgeben. */
55 MoveToPoint, /**< Eine Position anfahren. */
56 SetFileName, /**< Dateiname festlegen. */
57 Inquire, /**< Bedingung. */
58 GotoLine, /**< Zeile anspringen. */
59 Stop, /**< Abarbeitung stoppen. */
60 SetupScan /**< Einstellungen für einen Scan. */
61 };
62
63 /** Vordefinierte Kommando-Parameter.
64 */
65 enum ECmdParam
66 {
67 LargeSide=1,
68 SmallSide,
69 ToSmallerAngle,
70 ToLargerAngle,
71 Equidistant,
72 Interpolation,
73 Reflection,
74 LastGoal,
75 Standard,
76 DecreaseWidth,
77 ThisDFPos,
78 BackMove,
79 MaximizeTilt,
80 MaximizeCollimator,
81 MaximizeGradient,
82 DynamicWidth,
83 Result,
84 StaticStepWidth,
85 IncreasePeak,
86 Relative,
87 AreaScanResult,
88 AbsorberUsed,
89 Hwb,
90 Difference,
91 ScanResult,
92 Middle,
93 Array,
94 Start,
95 Peak,
96 Min,
97 Max,
98 List,
99 Argument,
100 Opposite,
101 ForAreaScan,
102 ForScan
103 };
104
105 /** Repräsentiert ein Kommando.
106 */
107 struct TCmdTag
108 {
109 ECmdId Id; /**< Kommandotyp */
110 ECmdParam P1; /**< erster Kommandoparameter */
111 ECmdParam P2; /**< zweiter Kommandoparameter */
112 char P3[ _MAXLENP3 + 1 ]; /**< Parameterliste */
113 };
114
115 /** Beschreibung der verfügbaren Makro's.
116 */
117 enum EMacroId
118 {
119 InquireHwb=1, /**< Halbwertsbreite bestimmen */
120 SearchReflection, /**< Reflektionspunkt anfahren */
121 Test, /**< Test-Makro */
122 AzimutalJustify, /**< azimutale Justage */
123 SetupTopography, /**< Topographie einstellen */
124 ScanJob, /**< Scan durchführen */
125 AreaScanJob /**< AreaScan durchführen */
126 };
127
128 /** Repräsentiert ein Makro.
129 */
130 struct TMacroTag
131 {
132 EMacroId Id; /**< Makrotyp */
133 BOOL bIsReady; /**< Status: true <-> ist bereit */
134 char Name[ _MAXLENMACRONAME + 1 ]; /**< Makrobezeichnung */
135 char FileName[ _MAXLENMAKFILENAME + 1 ]; /**< Dateiname, aus der dieses Makro geladen wurde */
136 int Length; /**< Anzahl der enthaltenen Kommandos */
137 TCmdTag *CmdList; /**< Liste der Kommandos*/
138 };
139
140 #endif
141