Machine Interface Utility:VER1.0

This commit is contained in:
TAO Cheng
2013-05-09 20:29:54 +08:00
commit 036cdcb228
743 changed files with 104786 additions and 0 deletions
@@ -0,0 +1,104 @@
// 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_)