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

M_MOTHW.H

gehe zur Dokumentation dieser Datei
00001 // File m_mothw.h 00002 // (C) 1993,1994 by Heiko Damerow MPG AG "Roentgenbeugung" 00003 #ifndef __M_MOTHW_H 00004 #define __M_MOTHW_H 00005 00006 #include "utils\u_utils.h" 00007 #include "motrstrg\motorcontroller.h" 00008 00009 //--||--\\--||--//--||--\\--||--//--||--\\--||--//--||--\\--||--//--||--\\--||-- 00010 00011 union tpos 00012 { 00013 char byte[ 4 ]; 00014 long pos; 00015 }; 00016 00017 class TDC_Drive : public TMotor 00018 { 00019 public: 00020 TDC_Drive( void ); 00021 // Funktionen, die untergeordnete Pendants aufrufen 00022 BOOL GetPosition( BOOL ); 00023 long GetFailure( void ); 00024 BOOL MoveByPosition( long ); 00025 BOOL MoveToPosition( long ); 00026 virtual BOOL SetMoment( float ) 00027 { 00028 return TRUE; 00029 }; 00030 virtual float GetMoment( void ) 00031 { 00032 return 1.0; 00033 }; 00034 BOOL SetSpeed( double ); 00035 double GetSpeed( void ); 00036 virtual int SaveSettings( BOOL ); 00037 BOOL PushSettings( void ); 00038 BOOL PopSettings( void ); 00039 virtual BOOL SetVelocity( DWORD ) 00040 { 00041 return TRUE; 00042 }; 00043 virtual BOOL SetAcceleration( DWORD ) 00044 { 00045 return TRUE; 00046 }; 00047 virtual DWORD GetVelocity( void ) 00048 { 00049 return 1; 00050 }; 00051 virtual DWORD GetAcceleration( void ) 00052 { 00053 return 1; 00054 }; 00055 protected: 00056 virtual int Initialize( void ); 00057 virtual BOOL ActivateDrive( void ) 00058 { 00059 return FALSE; 00060 }; 00061 virtual BOOL Reset( void ) 00062 { 00063 return FALSE; 00064 }; 00065 virtual BOOL ActivateFilterParameters( void ) 00066 { 00067 return FALSE; 00068 }; 00069 WORD wDeathBand; 00070 WORD wDynamicFailure; 00071 WORD wDeccelerationPoint; 00072 WORD wMaxTorque; 00073 // Spezifische Funktionen 00074 virtual BOOL CheckBoardOk( void ) 00075 { 00076 return FALSE; 00077 }; 00078 virtual BOOL IsMoveFinish( void ) 00079 { 00080 return FALSE; 00081 }; 00082 virtual BOOL IsLimitHit( void ) 00083 { 00084 return FALSE; 00085 }; 00086 virtual BOOL _GetPosition( long * ) 00087 { 00088 return FALSE; 00089 }; 00090 virtual BOOL _GetFailure( long * ) 00091 { 00092 return FALSE; 00093 }; 00094 virtual BOOL MoveRelative( long ) 00095 { 00096 return FALSE; 00097 }; 00098 virtual BOOL MoveAbsolute( long ) 00099 { 00100 return FALSE; 00101 }; 00102 private: 00103 int nMaxError; 00104 }; 00105 00106 class TC_812 : public TDC_Drive 00107 { 00108 friend class TOptimizeDC_812Dlg; 00109 00110 public: 00111 TC_812( void ); 00112 00113 virtual int ExecuteCmd( char* ) 00114 { 00115 return R_OK; 00116 }; 00117 void OptimizingDlg( void ); 00118 00119 protected: 00120 int SaveSettings( BOOL ); 00121 virtual int Reset( void ); 00122 virtual BOOL CheckBoardOk( void ) 00123 { 00124 return TRUE; 00125 }; 00126 virtual BOOL SetHome( void ); 00127 virtual BOOL _GetPosition( long* ); 00128 virtual BOOL _GetFailure( long* ); 00129 BOOL ActivateDrive( void ); 00130 BOOL ActivateFilterParameters( void ); 00131 BOOL SetMoment( float ); 00132 float GetMoment( void ); 00133 virtual BOOL IsMoveFinish( void ); 00134 BOOL SetLine( int, BOOL ); 00135 BOOL IsLimitHit( void ); 00136 BOOL IsIndexArrived( void ); 00137 BOOL StartToIndex( long& ); 00138 BOOL StopDrive( BOOL ); // Kullmann, Reinecker (08.08.02) Parameter geändert int -> BOOL 00139 BOOL MoveRelative( long ); 00140 BOOL MoveAbsolute( long ); 00141 WORD GetStatus( void ); 00142 int nWaitTicks; 00143 WORD wTorque; 00144 WORD wStaticGain; 00145 WORD wDynamicGain; 00146 int nOnBoardId; 00147 00148 private: 00149 BOOL SetLimit( DWORD ); 00150 BOOL SetVelocity( DWORD ); 00151 DWORD GetVelocity( void ); 00152 BOOL SetStaticGain( WORD ); 00153 WORD GetStaticGain( void ); 00154 BOOL SetDynamicGain( WORD ); 00155 WORD GetDynamicGain( void ); 00156 BOOL SetTorque( WORD ); 00157 WORD GetTorque( void ); 00158 BOOL SetAcceleration( DWORD ); 00159 DWORD GetAcceleration( void ); 00160 }; 00161 00162 00163 class TC_812ISA : public TC_812 00164 { 00165 public: 00166 TC_812ISA( void ); 00167 00168 protected: 00169 int ExecuteCmd( char* ); 00170 BOOL CheckBoardOk( void ); 00171 BOOL SetHome( void ); 00172 void StartCheckScan( void ); 00173 // the following functions can used the direct access 00174 BOOL IsMoveFinish( void ); 00175 BOOL _GetPosition( long* ); 00176 BOOL _GetFailure( long* ); 00177 00178 private: 00179 int PutChar( const char ); 00180 char GetChar( void ); 00181 DWORD dwBaseAddr; 00182 00183 TC_812Controller* Hardware; 00184 }; 00185 00186 class TC_832 : public TDC_Drive 00187 { 00188 friend class TOptimizeDC_832Dlg; 00189 00190 public: 00191 TC_832( void ); 00192 00193 BOOL StopLimitWatch( void ); 00194 BOOL StartLimitWatch( void ); 00195 void ( *lpfnLimitWatch ) ( UINT, UINT, DWORD, DWORD, DWORD ); 00196 void OptimizingDlg( void ); 00197 00198 protected: 00199 int SaveSettings( BOOL ); 00200 BOOL ActivateFilterParameters( void ); 00201 BOOL CheckBoardOk( void ); 00202 BOOL ActivateDrive( void ); 00203 void StartCheckScan( void ); 00204 int Reset( void ); 00205 WORD wKI; // IntegralGain 00206 WORD wKL; // IntegralLimit 00207 WORD wKP; // StaticGain 00208 WORD wKD; // DynamicGain 00209 00210 private: 00211 long Drive628( BYTE, WORD, long ); 00212 int ExecuteCmd( LPSTR ); 00213 BOOL IsMoveFinish( void ); 00214 BOOL IsLimitHit( void ); 00215 BOOL IsIndexArrived( void ); 00216 BOOL StartToIndex( long & ); 00217 BOOL StopDrive( BOOL ); // Kullmann, Reinecker (08.08.02) Parameter geändert int -> BOOL 00218 BOOL SetLimit( DWORD ); 00219 BOOL SetVelocity( DWORD ); 00220 DWORD GetVelocity( void ); 00221 BOOL SetHome( void ); 00222 BOOL SetAcceleration( DWORD ); 00223 DWORD GetAcceleration( void ); 00224 WORD GetStatus( void ); 00225 BOOL _GetPosition( long * ); 00226 BOOL _GetFailure( long * ); 00227 BOOL MoveRelative( long ); 00228 BOOL MoveAbsolute( long ); 00229 00230 WORD wBaseAddr; 00231 int nOnBoardId; 00232 BYTE cConfig; 00233 WORD wSample; 00234 00235 TC_832Controller* Hardware; 00236 DWORD ControllerIndex; 00237 UINT nEvent; 00238 const WORD CmdRegister; 00239 const WORD DataRegister; 00240 00241 WORD baddr; 00242 WORD raddr; 00243 }; 00244 00245 class TPosControlDlg : public TModalDlg 00246 { 00247 public: 00248 TPosControlDlg( ); 00249 00250 // ANFANG Kullmann+Reinecker (12.03.2004) 00251 typedef enum EPosType {eMin, ePos, eMax}; 00252 int ScrollbarCalculate( TMotor *act, EPosType aType ); //Neu : Kullmann, Reinecker (14.11.02) const beim Parameter entfernt, sonst const-member-functions im Motor nötig 00253 /*int GetBarRange( TMotor * ); 00254 int GetBarPos( TMotor * ); */ 00255 // ENDE Kullmann+Reinecker (12.03.2004) 00256 00257 BOOL HScrollBar( WPARAM, LPARAM ); 00258 BOOL Dlg_OnInit( HWND, HWND, LPARAM ); 00259 void Dlg_OnCommand( HWND, int, HWND, UINT ); 00260 void Dlg_OnTimer( HWND, UINT ); 00261 void LeaveDialog( void ); 00262 00263 private: 00264 long NewPosition; 00265 HWND BarHandle; 00266 HWND hMotorList; 00267 BOOL bMoveActive; 00268 LPMotor Motor; 00269 }; 00270 00271 class TMotorParamDlg : public TModalDlg 00272 { 00273 public: 00274 TMotorParamDlg( void ); 00275 00276 BOOL Dlg_OnInit( HWND, HWND, LPARAM ); 00277 void Dlg_OnCommand( HWND, int, HWND, UINT ); 00278 BOOL CanClose( void ); 00279 00280 private: 00281 LPMotor Motor; 00282 BOOL Flag; 00283 float SpeedScale; 00284 HWND hMotorList; 00285 }; 00286 00287 class TCalibrateDlg : public TModalDlg 00288 { 00289 public: 00290 TCalibrateDlg( int ); 00291 virtual ~TCalibrateDlg( void ); 00292 00293 private: 00294 BOOL Dlg_OnInit( HWND, HWND, LPARAM ); 00295 void Dlg_OnCommand( HWND, int, HWND, UINT ); 00296 void Dlg_OnTimer( HWND, UINT ); 00297 BOOL CanClose( void ); 00298 void LeaveDialog( void ); 00299 HWND hMotorList; 00300 LPMotor Motor; 00301 BOOL nTask; // Kullmann, Reinecker (08.08.02) Parameter geändert int -> BOOL 00302 long* lOldPos; 00303 BOOL* bIndexPosReached; 00304 BOOL* bZeroPosReached; 00305 BOOL* bTargetPosReached; 00306 BOOL bValidCalibrationData; 00307 BOOL bZeroShouldSet; 00308 BOOL bAllMotors; 00309 BOOL bHoldPosition; 00310 }; 00311 00312 class TOptimizeDC_832Dlg : public TModalDlg 00313 { 00314 public: 00315 TOptimizeDC_832Dlg( void ); 00316 00317 private: 00318 BOOL CanClose( void ); 00319 void Dlg_OnCommand( HWND, int, HWND, UINT ); 00320 BOOL Dlg_OnInit( HWND, HWND, LPARAM ); 00321 void LeaveDialog( void ); 00322 TC_832* Drive; 00323 DWORD old_vel, old_accel; 00324 WORD old_kd, old_kp, old_ki, old_kl; 00325 WORD old_poswidth; 00326 BOOL bCancel; 00327 }; 00328 00329 class TOptimizeDC_812Dlg : public TModalDlg 00330 { 00331 public: 00332 TOptimizeDC_812Dlg( void ); 00333 00334 private: 00335 BOOL CanClose( void ); 00336 void Dlg_OnCommand( HWND, int, HWND, UINT ); 00337 BOOL Dlg_OnInit( HWND, HWND, LPARAM ); 00338 void LeaveDialog( void ); 00339 TC_812 *Drive; 00340 DWORD old_vel, old_accel; 00341 WORD old_gain, old_dgain, old_torque; 00342 WORD old_poswidth; 00343 BOOL bCancel; 00344 }; 00345 00346 #endif 00347 // _M_MOTHW_H 00348 // __LastLine__

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