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

WORKFLOW.H

gehe zur Dokumentation dieser Datei
00001 //---------------------------------------------------------------------------// 00002 // WORKFLOW.H // 00003 // // 00004 // Subsystem : Ablaufsteuerung - Makroverarbeitung) // 00005 // Benutung durch andere Subsysteme erforderlich: JA // 00006 // Implementation: M_STEERG.CPP // 00007 //---------------------------------------------------------------------------// 00008 00009 #ifndef _WORKFLOW_H_ 00010 #define _WORKFLOW_H_ 00011 00012 #include "detecuse\detecuse.h" // TDetector 00013 //#include "datavisa\datavisa.h" // TPlotWindow 00014 #include "workflow\Enums.h" 00015 00016 00028 class TSteering 00029 { 00030 friend class TCmd; 00031 //Datum: 28.07.2002 friend class TMacroExecuteDlg; 00032 //Datum: 28.07.2002 friend TIMECALLBACK RecallSteering; 00033 00034 // Konstruktoren und Destruktoren 00035 public: 00036 00039 TSteering ( void ); 00040 00043 virtual ~TSteering ( void ); 00044 00045 private: 00046 00049 TSteering ( TSteering& ) {} 00050 00053 TSteering& operator= ( const TSteering& ) { return *this; } 00054 00055 00056 00057 // Makros aus Dateien laden 00058 public: 00059 00074 BOOL Initialize ( const HWND hwnd, const int mid, TDetector* d ); 00075 00082 BOOL LoadMacroByUser ( void ); 00083 00084 // Kommando- und Makroverarbeitung vorbereiten 00085 public: 00086 00094 BOOL StartUp ( const HWND hwnd, const int mid, TDetector* d ); 00095 00100 void Visualising ( BOOL a, BOOL b ); 00101 00102 // Kommando- und Makroverarbeitung starten 00103 public: 00104 00114 BOOL StartMacroExecution ( TMacroTag* macro, HWND hwnd ); 00115 00124 int StartCmdExecution ( ECmdId id, int p1, int p2, LPSTR p3, HWND ); 00125 00126 // Kommando- und Makroverarbeitung pausieren/fortsetzen/stoppen 00127 public: 00128 00133 BOOL ToggleInterrupt ( void ); 00134 00140 BOOL Reset ( BOOL=TRUE ); 00141 00142 // Schnittstelle zu anderen Subsystemen 00143 public: 00144 00148 BOOL DetectorRequest ( void ); 00149 00152 void WakeUp ( void ); 00153 00154 // Makroliste bearbeiten: Makros auslesen, löschen und Makroanzahl ermitteln 00155 public: 00156 00161 TMacroTag *GetMacroById ( EMacroId id ); 00162 00167 TMacroTag *GetMacroByNumber ( int ); 00168 00173 TMacroTag *GetMacroByName ( LPSTR s ); 00174 00179 BOOL DeleteMacro ( TMacroTag* macro ); 00180 00184 int GetMacroCount ( void ); 00185 00186 // POLLING zum Fortschritt der Makroverarbeitung 00187 public: 00188 00192 BOOL IsActive ( void ); 00193 00197 BOOL IsReset ( void ); 00198 00208 BOOL GetProgress ( int& ind, LPSTR s, int& n); 00209 00210 // Accessor- und Mutator-Methoden 00211 public: 00212 00216 BOOL IsPositionValid ( void ); 00217 00221 double GetDistance ( void ); 00222 00227 void SetStartPoint ( double p ); 00228 00233 double GetStartPoint ( void ); 00234 00238 float GetIntensity ( void ); 00239 00243 float GetSigma ( void ); 00244 00249 void SetNoiseLevel ( float nl ); 00250 00255 float GetNoiseLevel ( void ); 00256 00257 00262 void SetNorm ( float norm ); 00263 00268 float GetNorm ( void ); 00269 00274 void SetResponse ( BOOL sr ); 00275 00280 BOOL IsResponding ( void ); 00281 00288 void SetHwb ( double hwb ); 00289 00294 double GetHwb ( void ); 00295 00296 00297 // private Methoden 00298 private: 00299 00300 // bestimmtes Makro aus einer Datei laden 00301 BOOL LoadMacro ( LPSTR, LPSTR ); 00302 00303 // das angebene Einzelkommando ausführen; am Ende NotifyCmdReady() aufrufen 00304 int StartCmdExecution ( TCmdTag ); 00305 00306 // führt das nächste Kommando der Makroverarbeitung ODER ruft NotifyCmdReady() oder NotifyMacroReady() 00307 BOOL ReadyReaction ( void ); 00308 00309 // führt das nächste Kommando der Makroverarbeitung aus; ggf. wird NotifyMacroReady() aufgerufen 00310 int ExecuteNextCmd ( void ); 00311 00312 // cm_SteeringReady an hHostWindow senden 00313 void NotifyCmdReady ( void ); // Einzelkommandoverarbeitung beendet 00314 void NotifyMacroReady ( void ); // Makroverarbeitung beendet 00315 00316 // Kommandopausierung pausieren per Timer: Start, Stop 00317 BOOL StartTimer ( void ); 00318 void StopTimer ( void ); 00319 static void CALLBACK RecallSteering ( UINT, UINT, DWORD, DWORD, DWORD ); 00320 00321 // Meldung MessageBuffer in der Statuszeile oder einem Listenfeld (je nach Visualising-Aufruf) ausgeben 00322 void SendReport ( void ); 00323 00324 // parsen von Makrobezeichnung, Kommandobezeichnung und -parametern 00325 BOOL ParsingMacroId ( TMacroTag&, LPSTR ); 00326 BOOL ParsingCmd ( TCmdTag&, LPSTR, LPSTR, LPSTR, LPSTR ); 00327 static ECmdParam ParsingCmdParam ( LPSTR param ); 00328 00329 //Datum: 04.08.2002 BOOL GetFileLine( FILE*, LPSTR, int ); 00330 //Datum: 28.07.2002 HWND GetControlWnd ( void ); 00331 //Datum: 28.07.2002 int TimerRequest ( void ); 00332 //Datum: 28.07.2002 BOOL IsMacroCalled ( void ); 00333 //Datum: 28.07.2002 int ReturnMacroCall ( void ); 00334 //Datum: 28.07.2002 int CallMacro ( TMacroTag* ); 00335 00336 //***************************************************************************** 00337 // PUBLIC ATTRIBUTS NUR für die von TCmd abgeleiteten Kommandos 00338 public: 00339 // Info's über Antriebspositionen 00340 double dGoalDistance; 00341 double dPeakPoint; 00342 double dStartPoint; 00343 00344 // Info's über Detektormessungen 00345 float fGoalIntensity; 00346 float fPeakIntensity; 00347 float fStartIntensity; // nur ein Lesezugriff 00348 00349 // berechnete Werte 00350 double dCalcResult; 00351 double dCalcArg[nMaxArg]; 00352 00353 public: 00354 // Verknüpfung auf einen Detektor für TScanCmd, TAreaScanCmd und TGotoPeakCmd 00355 TDetector *Monitor; 00356 00357 //***************************************************************************** 00358 // PRIVATE ATTRIBUTS 00359 private: 00360 // Liste der Makros 00361 TMacroTag aMacroList[_MAXMACROCOUNT]; //Datum: 28.07.2002 neu Kullmann+Reinecker 00362 int nMacroNumber; 00363 00364 // derzeit bearbeitetes Makro mit der Liste der enthaltenen Kommandos und dem Index des aktuellen Kommandos 00365 TMacroTag *TheMacro; 00366 TCmdTag *TheCmdList; 00367 int nCmdIdx; 00368 00369 // derzeit ausgeführtes [Einzel-]kommando 00370 TCmd *TheCmd; 00371 00372 // Makro-/ Einzelkommandoverarbeitung pausiert oder beendet/ abgebrochen 00373 BOOL bInterrupted; 00374 BOOL bSteeringActive; 00375 BOOL bReset; 00376 00377 // Handle zu dem Fenster mit dem Listenfeld (Ressourcen-Id id_Report), das bei cm_CounterSet DetectorRequest aufrufen muss 00378 HWND hControlWnd; 00379 // Handle zu dem Fenster, das über die Windowsbotschaft cm_SteeringReady benachrichtigt werden soll, wenn die Makroverarbeitung beendet ist 00380 HWND hHostWindow; 00381 00382 // zur Meldungsausgabe 00383 BOOL bSendReport; 00384 char MessageBuffer[MaxString]; 00385 HWND hReportList; 00386 00387 // Handle auf den Timer, der die Kommandopausierung erlaubt; 0 <--> Timer ist inaktiv 00388 // darf nicht static sein, weil RecallSteering sonst auf einem anderen nEvent arbeitet als StartTimer und StopTimer - Compiler-/Linkerfehler?! 00389 UINT nEvent; 00390 00391 // gibt an, wie lange [in Millisekunden] die Kommandoverarbeitung dauern soll 00392 static const UINT nAskTicks; 00393 00394 // Index des ausgewählten Antriebs und ausgewählter Detektor 00395 int nMotor; 00396 TDetector *Detector; 00397 00398 // Detektorinfo's die nur in TSteering benutzt werden 00399 float fIncomingIntensity; 00400 float fIntensityNorm; 00401 float fNoiseLevel; 00402 00403 // berechnete(r) Wert(e) 00404 float fHWB; 00405 BOOL bInquireResult; // ! nur ein Lesezugriff 00406 00407 // speichert Detektorparameter vor Pausieren der Makroverarbeitung, um diese beim Fortsetzen wiederherstel-len zu können 00408 TExposureSettings exposure; 00409 00410 //##die vier folgenden Varablen werden im Programmablauf zwar belegt, dann aber nicht weiter benutzt 00411 //Datum: 28.07.2002 BOOL b_id_Angle; 00412 //Datum: 28.07.2002 BOOL b_id_PeakIntensity; 00413 //Datum: 28.07.2002 BOOL b_id_Intensity; 00414 //Datum: 28.07.2002 BOOL b_id_HalfWidth; 00415 00416 //Datum: 28.07.2002 BOOL b_id_Report; 00417 //Datum: 28.07.2002 BOOL bTimerActive; 00418 //Datum: 28.07.2002 int nFailureId; 00419 }; 00420 00421 //############################################################################# 00422 // TMacroExecuteDlg 00423 //############################################################################# 00424 00425 class TMacroExecuteDlg : public TModelessDlg 00426 { 00427 public: 00428 TMacroExecuteDlg( TModelessDlg** ); 00429 private: 00430 TMacroTag *TheMacro; 00431 TDetector *Detector; 00432 HWND hMacroList; 00433 BOOL Dlg_OnInit( HWND, HWND, LPARAM ); 00434 void Dlg_OnCommand( HWND, int, HWND, UINT ); 00435 BOOL CanClose( void ); 00436 void LeaveDialog( void ); 00437 int MessageLine; 00438 BOOL bInterrupted; 00439 BOOL bActionCaused; 00440 int SetupTask; 00441 BOOL bCheckMacro; 00442 }; 00443 00444 #endif //_WORKFLOW_H_ 00445 00446 //############################################################################# 00447 // LASTLINE 00448 //#############################################################################

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