104 lines
3.0 KiB
C++
104 lines
3.0 KiB
C++
// Proto_Util.h: interface for the CDataLink class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
#if !defined(AFX_Proto_Util_H__B422904C_2CEB_495B_B7BD_B45AB30286DD__INCLUDED_)
|
|
#define AFX_Proto_Util_H__B422904C_2CEB_495B_B7BD_B45AB30286DD__INCLUDED_
|
|
|
|
#define MV_TRACE if ( g_pLogger && g_pLogger->m_lLogMask & LOGACTIONS ) g_pLogger->SendAndFlushPerMode
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
#include "logger.h"
|
|
#include "SsiStatus.h"
|
|
|
|
enum SETTLE_STATUS
|
|
{
|
|
NOTSETTLED = 0,
|
|
SETTLED,
|
|
TIMEDOUT
|
|
};
|
|
|
|
// CSettleStageParams and CSettleStage are copied from QVI, but QVI is based on millionths of and inch
|
|
// and we will use microns for MV
|
|
class CSettleStageParams
|
|
{
|
|
public:
|
|
CSettleStageParams()
|
|
{
|
|
EDGE_RETRY_TIMEOUT_X = 800;
|
|
EDGE_RETRY_TIMEOUT_Y = 800;
|
|
EDGE_RETRY_TIMEOUT_Z = 800;
|
|
EDGE_RETRY_TIMEOUT_MAG = 800;
|
|
EDGE_RETRY_BANDWIDTH_X = 1;
|
|
EDGE_RETRY_BANDWIDTH_Y = 1;
|
|
EDGE_RETRY_BANDWIDTH_Z = 1;
|
|
EDGE_RETRY_BANDWIDTH_MAG = 1;
|
|
EDGE_RETRY_COUNT_X = 1;
|
|
EDGE_RETRY_COUNT_Y = 1;
|
|
EDGE_RETRY_COUNT_Z = 1;
|
|
EDGE_RETRY_COUNT_MAG = 1;
|
|
};
|
|
|
|
long EDGE_RETRY_TIMEOUT_X; //300
|
|
long EDGE_RETRY_TIMEOUT_Y; //300
|
|
long EDGE_RETRY_TIMEOUT_Z; //300
|
|
long EDGE_RETRY_TIMEOUT_MAG; //300
|
|
long EDGE_RETRY_BANDWIDTH_X; //50
|
|
long EDGE_RETRY_BANDWIDTH_Y; //50
|
|
long EDGE_RETRY_BANDWIDTH_Z; //50
|
|
long EDGE_RETRY_BANDWIDTH_MAG; //50
|
|
long EDGE_RETRY_COUNT_X; //1
|
|
long EDGE_RETRY_COUNT_Y; //1
|
|
long EDGE_RETRY_COUNT_Z; //1
|
|
long EDGE_RETRY_COUNT_MAG; //1
|
|
};
|
|
|
|
class CSettleStage
|
|
{
|
|
public:
|
|
CSettleStage(long lAxis, double dStartTime, long lStart, long lDeadband, double dTestIncrSec, double dMaxTimeSec);
|
|
enum SETTLE_STATUS Test(double dCurTime, long lCurPos);
|
|
|
|
private:
|
|
double m_dStartTime;
|
|
long m_lStartPos;
|
|
long m_lDeadband;
|
|
double m_dTestIncrSec;
|
|
double m_dMaxTimeSec;
|
|
double m_dIncrStartTimeSec;
|
|
long m_lAxis;
|
|
};
|
|
|
|
//======================================================================================
|
|
class CProto_Util
|
|
{
|
|
public:
|
|
|
|
double ScaleToMM(long lCount, double dResolution);
|
|
long MMtoScale(double lDistanceMM, double dResolution);
|
|
|
|
//
|
|
CProto_Util();
|
|
virtual ~CProto_Util();
|
|
SSI_STATUS Initialize();
|
|
SSI_STATUS Terminate();
|
|
SSI_STATUS GetAppPath(CString &Path);
|
|
SSI_STATUS ExtractAppPath(CString &Path);
|
|
|
|
double TimeInSecs(void);
|
|
CLogger* g_pLogger;
|
|
void _swap_byte(unsigned short &Val);
|
|
void _reverse_dword(DWORD *);
|
|
void _scale2inch(unsigned long scale, double &inch);
|
|
void _inch2scale(unsigned long &scale, double inch);
|
|
long _4char2long(unsigned char *cBuff);
|
|
void _char2bin(unsigned char *cBuff, BYTE *cBytes, int len);
|
|
void _clear_blanks(char *cBuff);
|
|
void _ascii2bin(char *cBuff);
|
|
SSI_STATUS WaitForSettleXYZZM();
|
|
};
|
|
|
|
#endif
|
|
// !defined(AFX_Proto_Util_H__B422904C_2CEB_495B_B7BD_B45AB30286DD__INCLUDED_)
|