00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
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"
00022
00023
#include "workflow\workflow.h"
00024
#include "motrstrg\motrstrg.h"
00025
00026
00027
00028
00029
00030
00031
00032 enum EFormat {
eDF= 1,
eSF= 2 };
00033
00034
00035
00036
00037
00038 class TTopography :
private IMainEvents
00039 {
00040
00041
00042
private:
00043
TTopography(
void );
00044
TTopography(
const TTopography& ) {}
00045
TTopography& operator= (
const TTopography& );
00046
00047
00048
public:
00049
static TTopography *
GetInstance();
00050
00051
00052
public:
00053 TDetector *
GetDetector (
void )
00054 {
00055
return m_lnkDetector;
00056 };
00057
TDetector *
GetActDetector (
void );
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 );
00072 LPCSTR
GetMotorUnit (
void );
00073 LPCSTR GetDigitFormat (
const EFormat );
00074
int GetActMotor (
void );
00075
int GetMotorCount (
void );
00076 double GetStartAngle (
void )
00077 {
00078
return m_dStartAngle;
00079 };
00080
double GetAngle (
void );
00081 UINT GetMotorDigits (
const EFormat );
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
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
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
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
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
00273
public:
00274 BOOL
DoInitDetectors(
void );
00275 BOOL
DoInitMotor(
void );
00276
void DoInitWorkPoint(
void );
00277 BOOL DoStartMeasure ( ECmdId,
int,
int, LPSTR, HWND );
00278 BOOL DoStartMeasure (
TMacroTag*, HWND );
00279 BOOL
DoStopMeasure(
void );
00280
void DoSetDetectorParams (
float, DWORD, BOOL );
00281
void DoResetDetectorParams(
void );
00282 BOOL
DoSaveMonitorSignal(
void );
00283 BOOL
DoSaveMotorSettings(
void );
00284 BOOL
DoLoadMotorSettings(
void );
00285
00286
00287
00288
private:
00289 BOOL
DoInitMotor( EAxisType, BOOL );
00290
virtual void OnLeave ( );
00291
00292
00293
00294
private:
00295
TDetector *m_lnkDetector;
00296
TDetector *m_lnkMonitor;
00297
TMacroTag *m_lnkMWorkPoint;
00298
00299 WORD m_nNumberCycle;
00300
float m_fWorkPoint;
00301
float m_fControlRange;
00302
float m_fControlStep;
00303
float m_fMoveStep;
00304
float m_fMaxAngleEscape;
00305
int m_Motor;
00306 DWORD m_dwMaxCounts;
00307
double m_dStartAngle;
00308
float m_fAngleBetweenShots;
00309 LONG m_lMeasurementTime;
00310
float m_fMaxTime;
00311 DWORD m_dwCurrentTime;
00312 DWORD m_dwStartTime;
00313
00314 BOOL m_bSmallAngleSide;
00315 BOOL m_bMonitorUsed;
00316 BOOL m_bMultipleShot;
00317 BOOL m_bControlActive;
00318 BOOL m_bSetupOk;
00319 BOOL m_bStartPointOk;
00320 WORD m_nRestShots;
00321 BOOL m_bTimeFinish;
00322 BOOL m_bAdditionalTime;
00323 BOOL m_bExceptionOccured;
00324 BOOL m_bTimeRunning;
00325
00326
static TTopography *s_Instance;
00327 };
00328
00329
#endif //_TP_FUNK_H
00330
00331