You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
2.4 KiB
C++
97 lines
2.4 KiB
C++
// Cassette.h: interface for the CCassette class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined(AFX_CASSETTE_H__40D32EAF_CD08_423E_8533_3E3871B0E5FB__INCLUDED_)
|
|
#define AFX_CASSETTE_H__40D32EAF_CD08_423E_8533_3E3871B0E5FB__INCLUDED_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
#ifdef BUILD_MCCTRDLL
|
|
#define MCCTRDLLCLASS __declspec(dllexport)
|
|
#else
|
|
#define MCCTRDLLCLASS __declspec(dllimport)
|
|
#endif
|
|
|
|
#define MAX_SLOT_PER_CASSETTE 25
|
|
|
|
struct stCassette
|
|
{
|
|
int nSlotInfo[MAX_SLOT_PER_CASSETTE];
|
|
};
|
|
|
|
enum
|
|
{
|
|
NO_WAFER,
|
|
PRESENT,
|
|
CROSS_SLOT,
|
|
DOUBLE_WAFER,
|
|
WAFER_PROCESSED,
|
|
WAFER_PROCESSING,
|
|
WAFER_REJECTED,
|
|
MAX_SLOT_STATE,
|
|
ALL_SLOTS_OK = NO_WAFER,
|
|
};
|
|
|
|
enum
|
|
{
|
|
BOTTOM_UP,
|
|
TOP_DOWN,
|
|
};
|
|
|
|
class MCCTRDLLCLASS CCassette
|
|
{
|
|
public:
|
|
bool IsAllSlotsFilled();
|
|
int GetNextEmptyWaferSlot(bool bDir = BOTTOM_UP);
|
|
static int IsAnyCrossSlotorDoubleWafer(stCassette stCass, int nSlots);
|
|
int IsAnyCrossSlotOrDoubleWafer();
|
|
bool IsCassNeedProcessing();
|
|
int GetNextWaferSlot();
|
|
bool IsAllSlotsProcessed();
|
|
stCassette GetCassetteInfo();
|
|
int GetSlotStatus(int nSlotNo);
|
|
bool Init(stCassette stCass, int nNoOfSlot = MAX_SLOT_PER_CASSETTE);
|
|
CCassette();
|
|
virtual ~CCassette();
|
|
|
|
bool Init(int iNumOfSlot);
|
|
bool SetNumOfSlot(int iNumOfSlot);
|
|
bool SetSlotPitch(double dSlotPitch);
|
|
bool SetSlotStatus(int iSlotNum, int iSlotStatus);
|
|
bool SetCurSlotNum(int iSlotNum);
|
|
bool SetCurSlotStatus(int iSlotStatus);
|
|
int GetNumOfSlot();
|
|
double GetSlotPitch();
|
|
int GetCurrentSlot();
|
|
int GetNextSlotNum();
|
|
int GetNextSlot();
|
|
bool IndexToNextSlot();
|
|
void ResetSlotNum();
|
|
|
|
int *m_iSlot;
|
|
int m_iCurSlot;
|
|
|
|
double m_dSlotPitch;
|
|
|
|
enum
|
|
{
|
|
NO_WAFER_PRESENT,
|
|
WAFER_PRESENT,
|
|
WAFER_REJECT, // due to cannot pick wafer ???
|
|
INVALID = -1, // result not valid
|
|
CURRENT_CASSETTE = 0,
|
|
NEW_CASSETTE = 1,
|
|
};
|
|
|
|
private:
|
|
bool CheckValidStatus(int nStatus);
|
|
bool CheckSlotNoValid(int nSlotNo);
|
|
stCassette m_stCassette;
|
|
int m_iNumOfSlot;
|
|
};
|
|
|
|
#endif // !defined(AFX_CASSETTE_H__40D32EAF_CD08_423E_8533_3E3871B0E5FB__INCLUDED_)
|