#pragma once
|
|
#include <vector>
|
|
#define RANGE_RATE 0.56
|
|
enum RANGE_INDEX { Range_Left=0, Range_Middle, Range_Right, Range_Count };
|
|
struct SRangePoint
|
{
|
SRangePoint()
|
{
|
strName = _T("");
|
nPointCount = 0;
|
nStartX = 0;
|
nStartY = 0;
|
nSizeX = 0;
|
nRangeOrder = 0;
|
}
|
|
CString strName;
|
int nPointCount;
|
int nStartX;
|
int nStartY;
|
int nSizeX;
|
int nSizeY;
|
int nRangeOrder;
|
};
|
typedef std::vector<SRangePoint> VectorRangePoint;
|
typedef std::vector<SRangePoint>::iterator VectorRangePointIt;
|
typedef std::vector<SRangePoint>::const_iterator constVectorRangePointIt;
|
|
class AFX_EXT_CLASS CRcpSchedulingInfo
|
{
|
public:
|
CRcpSchedulingInfo(void) { Reset(); }
|
virtual ~CRcpSchedulingInfo(void) { Reset(); }
|
|
void Reset()
|
{
|
m_bShortestPath = FALSE;
|
m_bTactTimeFree = FALSE;
|
m_nMaxPadPointCount = 0;
|
m_nMaxPointCount = 0;
|
m_nMaxWsiPointCount = 0;
|
m_dTacTime = 0.0;
|
m_nGantrySinglePathUse = 0;
|
m_bUseRangeCntInfo = FALSE;
|
m_vecRangePointInfo.clear();
|
m_vecRangePointInfo.resize(Range_Count);
|
}
|
|
// getter
|
BOOL GetShortestPath() const { return m_bShortestPath; }
|
BOOL GetTacTimeFree() const { return m_bTactTimeFree; }
|
int GetMaxPadPointCount() const { return m_nMaxPadPointCount; }
|
int GetMaxPointCount() const { return m_nMaxPointCount; }
|
int GetMaxWsiPointCount() const { return m_nMaxWsiPointCount; }
|
double GetTacTime() const { return m_dTacTime; }
|
int GetSingleGantryPath()const {return m_nGantrySinglePathUse;}
|
|
BOOL GetUseRangeCntInfo() const { return m_bUseRangeCntInfo; }
|
SRangePoint* GetRangePointInfo(int nRangeIdx)
|
{
|
if (int(m_vecRangePointInfo.size()) < Range_Count) return 0;
|
return &m_vecRangePointInfo[nRangeIdx];
|
}
|
const SRangePoint* GetRangePointInfo(int nRangeIdx) const
|
{
|
if (int(m_vecRangePointInfo.size()) < Range_Count) return 0;
|
return &m_vecRangePointInfo[nRangeIdx];
|
}
|
int GetRangePointCount(int nRangeIdx) const
|
{
|
if (int(m_vecRangePointInfo.size()) < Range_Count) return 0;
|
return m_vecRangePointInfo[nRangeIdx].nPointCount;
|
}
|
int GetRangeStartX(int nRangeIdx) const
|
{
|
if (int(m_vecRangePointInfo.size()) < Range_Count) return 0;
|
return m_vecRangePointInfo[nRangeIdx].nStartX;
|
}
|
int GetRangeEndX(int nRangeIdx) const
|
{
|
if (int(m_vecRangePointInfo.size()) < Range_Count) return 0;
|
return (m_vecRangePointInfo[nRangeIdx].nStartX + m_vecRangePointInfo[nRangeIdx].nSizeX);
|
}
|
|
|
// setter
|
void SetShortestPath(BOOL bUse) { m_bShortestPath = bUse; }
|
void SetTacTimeFree(BOOL bUse) { m_bTactTimeFree = bUse; }
|
void SetMaxPadPointCount(int nCount) { m_nMaxPadPointCount=nCount; }
|
void SetMaxPointCount(int nCount) { m_nMaxPointCount = nCount; }
|
void SetMaxWsiPointCount(int nCount) { m_nMaxWsiPointCount = nCount; }
|
void SetTacTime(double dTime) { m_dTacTime = dTime; }
|
|
void SetUseRangeCntInfo(BOOL bUse) { m_bUseRangeCntInfo = bUse; }
|
void SetRangePointCount(int nRangeIdx, int nCount)
|
{
|
if (int(m_vecRangePointInfo.size()) < Range_Count) return;
|
m_vecRangePointInfo[nRangeIdx].nPointCount = nCount;
|
}
|
void SetRangeName(int nRangeIdx, CString strName)
|
{
|
if (int(m_vecRangePointInfo.size()) < Range_Count) return;
|
m_vecRangePointInfo[nRangeIdx].strName.Format(_T("%s"), strName);
|
}
|
void SetRangeStartX(int nRangeIdx, int nStartX)
|
{
|
if (int(m_vecRangePointInfo.size()) < Range_Count) return;
|
m_vecRangePointInfo[nRangeIdx].nStartX = nStartX;
|
}
|
void SetRangeStartY(int nRangeIdx, int nStartY)
|
{
|
if (int(m_vecRangePointInfo.size()) < Range_Count) return;
|
m_vecRangePointInfo[nRangeIdx].nStartY = nStartY;
|
}
|
void SetRangeSizeX(int nRangeIdx, int nSizeX)
|
{
|
if (int(m_vecRangePointInfo.size()) < Range_Count) return;
|
m_vecRangePointInfo[nRangeIdx].nSizeX = nSizeX;
|
}
|
void SetRangeSizeY(int nRangeIdx, int nSizeY)
|
{
|
if (int(m_vecRangePointInfo.size()) < Range_Count) return;
|
m_vecRangePointInfo[nRangeIdx].nSizeY = nSizeY;
|
}
|
void SetSingleGantryPath(int nType) {
|
m_nGantrySinglePathUse = nType;
|
}
|
|
protected:
|
// schedule info
|
BOOL m_bShortestPath; // ÃִܰŸ® À¯¹«
|
int m_nMaxPadPointCount; //Pad Review ÃÊ´ë Æ÷ÀÎÆ® ¼ö
|
int m_nMaxPointCount; // ÃÖ´ë Æ÷ÀÎÆ® ¼ö
|
int m_nMaxWsiPointCount; // WSI ÃÖ´ë Æ÷ÀÎÆ® ¼ö
|
BOOL m_bTactTimeFree; // ÅØ ÇÁ¸® À¯¹«
|
double m_dTacTime; // ÃÑ ½Ã°£
|
int m_nGantrySinglePathUse; // °ÕÆ®¸® Çϳª¸¸ »ç¿ëÇÒ¶§ 0= no 1= Left 2= Right
|
|
// schedule range info
|
BOOL m_bUseRangeCntInfo; // ¿µ¿ªº° °³¼ö »ç¿ë
|
VectorRangePoint m_vecRangePointInfo; // range point vector
|
};
|