// Wafer.h: interface for the CWafer class. // ////////////////////////////////////////////////////////////////////// #pragma once #include "DllDefines.h" #include "Die.h" class MCCTRDLLCLASS CWafer { public: // Default constructor CWafer(); // Constructor to init wafer parameters CWafer(double dWaferDiameter, double dWaferEdgeClearance, int iNumOfDiePerWafer, int iRow, int iCol); // Default Destructor virtual ~CWafer(); // Set number of die per wafer. Returns true if sucessful bool SetNumOfDiePerWafer(int iDiePerWafer); // allocate die array size. Returns true if sucessful bool SetDieArray(); // set wafer diameter. Returns true if sucessful bool SetWaferDiameter(double dWaferDiameter); // set wafer edge clearance. Returns true if sucessful bool SetWaferEdgeClearance(double dWaferEdgeClearance); // set Die bin code. Returns true if sucessful bool SetDieBinCode(int iRow, int iCol, char cDieBinCode); // set num of row bool SetNumRow(int iRow); // set num of col bool SetNumCol(int iCol); // set die grap x in mm. Returns true if successful bool SetDieGrapX(double dGrapX); // set die grap y in mm. Returns true if successful bool SetDieGrapY(double dGrapY); // Set Die Size Y in mm. Return true if sucessful bool SetDieSizeY(double dDieSizeY); // Set Die Size X in mm. Return true if sucessful bool SetDieSizeX(double dDieSizeX); // get wafer diameter double GetWaferDiameter(); // get wafer edge clearance double GetWaferEdgeClearance(); // get wafer diameter - edge clearance double GetEffectiveWaferDiameter(); // get die per wafer int GetDiePerWafer(); // get die bin code char GetDieBinCode(int iRow, int iCol); // get die grap x in mm double GetDieGrapX(); // get die grap y in mm double GetDieGrapY(); // Get Die Size Y in mm double GetDieSizeY(); // Get Die Size X in mm double GetDieSizeX(); // get num of wafer col int GetNumCol(); // get num of wafer row int GetNumRow(); // get wafer x working area double GetXWorkingWaferDiameter(); // get wafer y working area double GetYWorkingWaferDiameter(); // initialised wafer diameter, Edge clearance, number of die per wafer and die bin code array // Return true if sucessful bool InitWaferPara(double dWaferDiameter, double dWaferEdgeClearance, int iNumOfDiePerWafer, int iRow, int iCol); // rotate wafer map by 90 degree CW void RotateWafer90(); // rotate wafer map by 180 degree CW void RotateWafer180(); // rotate wafer map by 270 degree CW void RotateWafer270(); /// set the rotation angle of the wafer in CW bool SetDegreeRotated(int iDegree); /// Get the rotation angle of the wafer in cw double GetDegreeRotated(); protected: char* m_cWafer; // store bin code info // CMutex m_CritSection; private: int m_iDiePerWafer; // number of die per wafer int m_iCol; // number of col int m_iRow; // number of row int m_iDegreeRotated; // rotated degree in angle double m_dWaferDiameter; // wafer diameter double m_dWaferEdgeClearance; // wafer edge clearance CDie m_Die; // store die info };