Hauptseite | Klassenhierarchie | Auflistung der Klassen | Auflistung der Dateien | Klassen-Elemente | Datei-Elemente | Zusätzliche Informationen

TP_FUNK.H

gehe zur Dokumentation dieser Datei
00001 //############################################################################## 00002 // // 00003 // TP_FUNK.H // 00004 // // 00005 // Subsystem : Topographie / Funktionalität // 00006 // Benutzung durch andere Subsysteme erforderlich: NEIN // 00007 //----------------------------------------------------------------------------// 00008 // Autoren: Thomas Kullmann, Günther Reinecker (2002) // 00009 // // 00010 // Stand : 11.01.2003 // 00011 // letzter vollständiger Test: 11.01.2003 // 00012 // // 00013 //############################################################################## 00014 00015 #ifndef _TP_FUNK_H 00016 #define _TP_FUNK_H 00017 00018 #include "utils\u_utils.h" 00019 #pragma hdrstop 00020 00021 #include "detecuse\detecuse.h" // TDetector 00022 //#include "datavisa\datavisa.h" 00023 #include "workflow\workflow.h" // extern Steering 00024 #include "motrstrg\motrstrg.h" 00025 00026 //--||--\\--||--//--||--\\--||--//--||--\\--||--//--||--\\--||--//--||--\\--||-- 00027 00028 //############################################################################## 00029 // globale Typdeklarationen 00030 //############################################################################## 00031 00032 enum EFormat { eDF= 1, eSF= 2 }; 00033 00034 //############################################################################## 00035 // TTopography 00036 //############################################################################## 00037 00038 class TTopography : private IMainEvents // neu! Kullmann+Reinecker (31.01.2004) Singleton-Objekt freigeben, wenn Hauptprogramm beendet wird 00039 { 00040 //------------------------------------------------------------------------------ 00041 // Konstruktoren 00042 private: 00043 TTopography( void ); 00044 TTopography( const TTopography& ) {} // kein Copy-Konstruktor 00045 TTopography& operator= ( const TTopography& ); // kein Zuweisungsoperator 00046 //------------------------------------------------------------------------------ 00047 // Methode zur Erzeugung einer Singleton-Instanz 00048 public: 00049 static TTopography *GetInstance(); 00050 //------------------------------------------------------------------------------ 00051 // Accessor-Methoden 00052 public: 00053 TDetector *GetDetector ( void ) 00054 { 00055 return m_lnkDetector; 00056 }; 00057 TDetector *GetActDetector ( void ); // gibt Zeiger auf den aktuellen Detektor zurück 00058 TDetector *GetMonitor ( void ) 00059 { 00060 return m_lnkMonitor; 00061 }; 00062 TMacroTag *GetMWorkPoint ( void ) 00063 { 00064 return m_lnkMWorkPoint; 00065 }; 00066 00067 int GetMotor ( void ) 00068 { 00069 return m_Motor; 00070 }; 00071 LPCSTR GetMotorName ( int ); // Rückgabe der Antriebsbezeichnung 00072 LPCSTR GetMotorUnit ( void ); // Rückgabe der Einheit des aktuellen Motors 00073 LPCSTR GetDigitFormat ( const EFormat ); // Rückgabe eines Zahlenformats mit Digits oder Digits+1 Nachkommastellen des aktuellen Motors 00074 int GetActMotor ( void ); // gibt den Index des aktuellen Motors zurück 00075 int GetMotorCount ( void ); // gibt die Anzahl der verfuegbaren Motoren zurück 00076 double GetStartAngle ( void ) 00077 { 00078 return m_dStartAngle; 00079 }; 00080 double GetAngle ( void ); // gibt die Winkelposition des aktuellen Motors zurück 00081 UINT GetMotorDigits ( const EFormat ); // Rückgabe der Nachkommastellengenauigkeit des ausgewählten Antriebs; entweder Digits (für Positionsangaben) oder Digits+1 (für Schrittweiten) 00082 00083 LONG GetMeasurementTime ( void ) 00084 { 00085 return m_lMeasurementTime; 00086 }; 00087 DWORD GetCurTime ( void ) 00088 { 00089 return m_dwCurrentTime; 00090 }; 00091 DWORD GetStartTime ( void ) 00092 { 00093 return m_dwStartTime; 00094 }; 00095 float GetMaxTime ( void ) 00096 { 00097 return m_fMaxTime; 00098 }; 00099 00100 DWORD GetMaxCounts ( void ) 00101 { 00102 return m_dwMaxCounts; 00103 }; 00104 WORD GetNumberCycle ( void ) 00105 { 00106 return m_nNumberCycle; 00107 }; 00108 WORD GetRestShots ( void ) 00109 { 00110 return m_nRestShots; 00111 }; 00112 00113 float GetControlStep ( void ) 00114 { 00115 return m_fControlStep; 00116 }; 00117 float GetControlRange ( void ) 00118 { 00119 return m_fControlRange; 00120 }; 00121 float GetMoveStep ( void ) 00122 { 00123 return m_fMoveStep; 00124 }; 00125 float GetMaxAngleEscape ( void ) 00126 { 00127 return m_fMaxAngleEscape; 00128 }; 00129 float GetWorkPoint ( void ) 00130 { 00131 return m_fWorkPoint; 00132 }; 00133 float GetAngleBetweenShots ( void ) 00134 { 00135 return m_fAngleBetweenShots; 00136 }; 00137 //------------------------------------------------------------------------------ 00138 // Mutator-Methoden 00139 public: 00140 BOOL SetMotor( EAxisType ); 00141 BOOL SetMotor( int ); 00142 void SetDetector( TDetector *aDetector ) 00143 { 00144 m_lnkDetector= aDetector; 00145 }; 00146 void SetMonitor ( TDetector *aMonitor ) 00147 { 00148 m_lnkMonitor= aMonitor; 00149 }; 00150 00151 BOOL SetMeasurementTime( LONG ); 00152 void SetStartTime ( DWORD aTime ) 00153 { 00154 m_dwStartTime= aTime; 00155 }; 00156 void SetCurrentTime ( DWORD aTime ) 00157 { 00158 m_dwCurrentTime= aTime; 00159 }; 00160 BOOL SetMaxTime ( float ); 00161 00162 BOOL SetNumberCycle ( WORD ); 00163 BOOL SetMaxCounts ( LONG ); 00164 void SetRestShots ( WORD aShots ) 00165 { 00166 m_nRestShots= aShots; 00167 }; 00168 00169 BOOL SetControlRange ( float ); 00170 BOOL SetAngleBetweenShots( float ); 00171 BOOL SetStartAngle ( double ); 00172 BOOL SetControlStep ( float ); 00173 BOOL SetMoveStep ( float ); 00174 BOOL SetAngleWidth ( float ); 00175 BOOL SetMaxAngleEscape ( float ); 00176 BOOL SetWorkPoint ( float ); 00177 //------------------------------------------------------------------------------ 00178 // Setzen logischer Ausdrücke 00179 public: 00180 void SetTimeFinish ( BOOL aValid ) 00181 { 00182 m_bTimeFinish= aValid; 00183 }; 00184 void SetTimeRunning ( BOOL aValid ) 00185 { 00186 m_bTimeRunning= aValid; 00187 }; 00188 void SetAdditionalTime ( BOOL aValid ) 00189 { 00190 m_bAdditionalTime= aValid; 00191 }; 00192 void SetStartPointOk ( BOOL aValid ) 00193 { 00194 m_bStartPointOk= aValid; 00195 }; 00196 void SetExceptionOccured( BOOL aValid ) 00197 { 00198 m_bExceptionOccured= aValid; 00199 }; 00200 void SetControlActive ( BOOL aValid ) 00201 { 00202 m_bControlActive= aValid; 00203 }; 00204 void SetMonitorUsed ( BOOL aValid ) 00205 { 00206 m_bMonitorUsed= aValid; 00207 }; 00208 void SetMultipleShot ( BOOL aValid ) 00209 { 00210 m_bMultipleShot= aValid; 00211 }; 00212 void SetSmallAngleSide ( BOOL aValid ) 00213 { 00214 m_bSmallAngleSide= aValid; 00215 }; 00216 //------------------------------------------------------------------------------ 00217 // Lesen logischer Ausdrücke 00218 public: 00219 BOOL HasMotor ( void ) 00220 { 00221 return (m_Motor != -1); 00222 }; 00223 BOOL HasAdditionalTime( void ) 00224 { 00225 return m_bAdditionalTime; 00226 }; 00227 BOOL IsMultipleShot ( void ) 00228 { 00229 return m_bMultipleShot; 00230 }; 00231 BOOL IsControlActive ( void ) 00232 { 00233 return m_bControlActive; 00234 }; 00235 BOOL IsSmallAngleSide ( void ) 00236 { 00237 return m_bSmallAngleSide; 00238 }; 00239 BOOL IsSetupOk ( void ) 00240 { 00241 return m_bSetupOk; 00242 }; 00243 BOOL IsStartPointOk ( void ) 00244 { 00245 return m_bStartPointOk; 00246 }; 00247 BOOL IsMonitorUsed ( void ) 00248 { 00249 return m_bMonitorUsed; 00250 }; 00251 BOOL IsTimeRunning ( void ) 00252 { 00253 return m_bTimeRunning; 00254 }; 00255 BOOL IsExeptionOccured( void ) 00256 { 00257 return m_bExceptionOccured; 00258 }; 00259 //------------------------------------------------------------------------------ 00260 // Lesen und Setzen von Attributen der Ablaufsteuerung 00261 public: 00262 void SetStrngStartPoint ( double ); 00263 00264 double GetStrngStartPoint ( void ); 00265 double GetStrngDistance ( void ); 00266 BOOL DetectorRequest ( void ); 00267 float GetStrngPeakIntensity( void ); 00268 float GetStrngStartIntensity( void ); 00269 float GetStrngIntensity ( void ); 00270 double GetStrngHwb ( void ); 00271 //------------------------------------------------------------------------------ 00272 // Auslösen von Aktionen 00273 public: 00274 BOOL DoInitDetectors( void ); // Initialisierung des aktuellen Detektors und Monitors 00275 BOOL DoInitMotor( void ); // Initialisierung des Motors (bevorzugt Omega) 00276 void DoInitWorkPoint( void ); // Ablaufsteuerung initialisieren 00277 BOOL DoStartMeasure ( ECmdId, int, int, LPSTR, HWND ); // Durchführung einer Messung mittels Kommandoverarbeitung 00278 BOOL DoStartMeasure ( TMacroTag*, HWND ); // Durchführung einer Messung mittels Macroverarbeitung 00279 BOOL DoStopMeasure( void ); // Unterbrechung einer Messung 00280 void DoSetDetectorParams ( float, DWORD, BOOL ); // setzt Parameter für die Belichtung 00281 void DoResetDetectorParams( void ); // löschen der im Detektor gespeicherten Daten zur Topography 00282 BOOL DoSaveMonitorSignal( void ); 00283 BOOL DoSaveMotorSettings( void ); // Settings des aktuellen Motors sichern 00284 BOOL DoLoadMotorSettings( void ); // Settings des aktuellen Motors zurückschreiben 00285 00286 //------------------------------------------------------------------------------ 00287 // privates 00288 private: 00289 BOOL DoInitMotor( EAxisType, BOOL ); // angegebenen Antrieb initialisieren 00290 virtual void OnLeave ( ); // neu! Kullmann+Reinecker (31.01.2004) Singleton-Objekt freigeben, wenn Hauptprogramm beendet wird 00291 00292 //------------------------------------------------------------------------------ 00293 // Attribute 00294 private: 00295 TDetector *m_lnkDetector; // Messgeraet 00296 TDetector *m_lnkMonitor; // Zweiter Zaehler fuer Monitor-Signal 00297 TMacroTag *m_lnkMWorkPoint; // Makro zum Arbeitspunkt anfahren 00298 00299 WORD m_nNumberCycle; // Anzahl der Mess-Zyklen 00300 float m_fWorkPoint; // Arbeitspunkt 00301 float m_fControlRange; // Regel-Bereich nach Intensitaet 00302 float m_fControlStep; // Regel-Schrittweite 00303 float m_fMoveStep; // Schrittweite zum Anfahren des Arbeitspunktes 00304 float m_fMaxAngleEscape; // Bei Weglaufen der Regelung 00305 int m_Motor; // Regelmotor 00306 DWORD m_dwMaxCounts; // Maximale Anzahl Impulse 00307 double m_dStartAngle; // Startwinkel relativ zum Peak 00308 float m_fAngleBetweenShots; // Abstand bei Mehrfachbelichtung 00309 LONG m_lMeasurementTime; // Mess-Zeit in Sekunden je Zyklus 00310 float m_fMaxTime; // Maximale Messzeit 00311 DWORD m_dwCurrentTime; // aktuelle Zeit einer Messung 00312 DWORD m_dwStartTime; // Startzeit einer Messung 00313 00314 BOOL m_bSmallAngleSide; // Klein-Winkel= TRUE 00315 BOOL m_bMonitorUsed; // ob Monitor-Detektor genutzt werden soll 00316 BOOL m_bMultipleShot; // Mehrfach-Belichtungen 00317 BOOL m_bControlActive; // ob die Messung laeuft 00318 BOOL m_bSetupOk; // ob Motor und Detektor korrekt gesetzt 00319 BOOL m_bStartPointOk; // ob der Arbeitspunkt angefahren wurde 00320 WORD m_nRestShots; // Anzahl der restlichen Zyklen 00321 BOOL m_bTimeFinish; 00322 BOOL m_bAdditionalTime; // ob zusaetzliche Zeit entstanden ist 00323 BOOL m_bExceptionOccured; // ob Fehler aufgetreten 00324 BOOL m_bTimeRunning; 00325 00326 static TTopography *s_Instance; // enthält die EINZIGE Instanz 00327 }; 00328 00329 #endif //_TP_FUNK_H 00330 //------------------------------------------------------------------------------ 00331 // __LastLine__

Erzeugt am Sat Nov 13 12:48:09 2004 für XCTL32 von doxygen 1.3.7