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.
mitlib.pub/MITLIB/mcctrdll/Cassette.h

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_)