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