Merge branch 'clh' into liuyang
已重命名1个文件
已添加1个文件
已修改27个文件
已删除1个文件
| | |
| | | { |
| | | return __super::recvIntent(pPin, pIntent); |
| | | } |
| | | |
| | | BOOL CAligner::glassWillArrive(CGlass* pGlass) |
| | | { |
| | | BOOL bRet = __super::glassWillArrive(pGlass); |
| | | if (!bRet) { |
| | | return FALSE; |
| | | } |
| | | |
| | | return m_glassList.empty(); |
| | | } |
| | | } |
| | |
| | | virtual void serialize(CArchive& ar); |
| | | virtual void getAttributeVector(CAttributeVector& attrubutes); |
| | | virtual int recvIntent(CPin* pPin, CIntent* pIntent); |
| | | virtual BOOL glassWillArrive(CGlass* pGlass); |
| | | }; |
| | | } |
| | | |
| | |
| | | { |
| | | return __super::recvIntent(pPin, pIntent); |
| | | } |
| | | |
| | | BOOL CBakeCooling::glassWillArrive(CGlass* pGlass) |
| | | { |
| | | BOOL bRet = __super::glassWillArrive(pGlass); |
| | | if (!bRet) { |
| | | return FALSE; |
| | | } |
| | | |
| | | return (m_glassList.size() < 4); |
| | | } |
| | | } |
| | |
| | | virtual void serialize(CArchive& ar); |
| | | virtual void getAttributeVector(CAttributeVector& attrubutes); |
| | | virtual int recvIntent(CPin* pPin, CIntent* pIntent); |
| | | virtual BOOL glassWillArrive(CGlass* pGlass); |
| | | }; |
| | | } |
| | | |
| | |
| | | { |
| | | return __super::recvIntent(pPin, pIntent); |
| | | } |
| | | |
| | | BOOL CBonder::glassWillArrive(CGlass* pGlass) |
| | | { |
| | | BOOL bRet = __super::glassWillArrive(pGlass); |
| | | if (!bRet) { |
| | | return FALSE; |
| | | } |
| | | |
| | | return m_glassList.empty(); |
| | | } |
| | | } |
| | |
| | | virtual void serialize(CArchive& ar); |
| | | virtual void getAttributeVector(CAttributeVector& attrubutes); |
| | | virtual int recvIntent(CPin* pPin, CIntent* pIntent); |
| | | virtual BOOL glassWillArrive(CGlass* pGlass); |
| | | }; |
| | | } |
| | | |
| | |
| | | { |
| | | return __super::recvIntent(pPin, pIntent); |
| | | } |
| | | |
| | | BOOL CEFEM::glassWillArrive(CGlass* pGlass) |
| | | { |
| | | BOOL bRet = __super::glassWillArrive(pGlass); |
| | | if (!bRet) { |
| | | return FALSE; |
| | | } |
| | | |
| | | return m_glassList.empty(); |
| | | } |
| | | } |
| | |
| | | virtual void serialize(CArchive& ar); |
| | | virtual void getAttributeVector(CAttributeVector& attrubutes); |
| | | virtual int recvIntent(CPin* pPin, CIntent* pIntent); |
| | | virtual BOOL glassWillArrive(CGlass* pGlass); |
| | | }; |
| | | } |
| | | |
| | |
| | | |
| | | CEquipment::~CEquipment() |
| | | { |
| | | for (auto item : m_glassList) { |
| | | item->release(); |
| | | } |
| | | m_glassList.clear(); |
| | | |
| | | for (auto item : m_mapStep) { |
| | | delete item.second; |
| | | } |
| | |
| | | std::to_string((int)item->getType()).c_str(), "")); |
| | | } |
| | | |
| | | for (auto item : m_panelList) { |
| | | attrubutes.addAttribute(new CAttribute("Panel", |
| | | for (auto item : m_glassList) { |
| | | attrubutes.addAttribute(new CAttribute("Glass", |
| | | item->getID().c_str(), "")); |
| | | } |
| | | } |
| | |
| | | |
| | | void CEquipment::serialize(CArchive& ar) |
| | | { |
| | | |
| | | if (ar.IsStoring()) { |
| | | Lock(); |
| | | int count = (int)m_glassList.size(); |
| | | ar << count; |
| | | for (auto item : m_glassList) { |
| | | item->serialize(ar); |
| | | } |
| | | Unlock(); |
| | | } |
| | | else { |
| | | Lock(); |
| | | int count; |
| | | ar >> count; |
| | | for (int i = 0; i < count; i++) { |
| | | CGlass* pGlass = new CGlass(); |
| | | pGlass->serialize(ar); |
| | | addGlassToList(pGlass); |
| | | } |
| | | Unlock(); |
| | | } |
| | | } |
| | | |
| | | void CEquipment::onReceiveLBData(const char* pszData, size_t size) |
| | |
| | | |
| | | // ç©æ |
| | | if (code == FLOW_MOVE_MATERIAL) { |
| | | CPanel* pPanel = (CPanel*)pIntent->getContext(); |
| | | ASSERT(pPanel); |
| | | if (!glassWillArrive(pPanel)) { |
| | | CGlass* pGlass = (CGlass*)pIntent->getContext(); |
| | | ASSERT(pGlass); |
| | | if (!glassWillArrive(pGlass)) { |
| | | return FLOW_REJECT; |
| | | } |
| | | return glassArrived(pPanel); |
| | | return glassArrived(pGlass); |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | // 模æååºç¬¬ä¸å¼ Panel,ä¼ éå°ä¸ä¸ç¯è |
| | | Lock(); |
| | | CPanel* pContext = m_panelList.front(); |
| | | if (m_glassList.empty()) { |
| | | Unlock(); |
| | | return -2; |
| | | } |
| | | CGlass* pContext = m_glassList.front(); |
| | | pContext->addRef(); |
| | | |
| | | CIntent intent(FLOW_MOVE_MATERIAL, "", pContext); |
| | |
| | | LOGE("<CEquipment>å¯¹æ¹æç»æ¥æ¶Intent."); |
| | | } |
| | | else if (nRet == FLOW_ACCEPT) { |
| | | m_panelList.pop_front(); |
| | | m_glassList.pop_front(); |
| | | pContext->release(); // æ·»å å°åéæ¶addRef, ååºæ¶release |
| | | } |
| | | |
| | |
| | | return 0; |
| | | } |
| | | |
| | | BOOL CEquipment::glassWillArrive(CPanel* pPanel) |
| | | BOOL CEquipment::glassWillArrive(CGlass* pGlass) |
| | | { |
| | | return TRUE; |
| | | } |
| | | |
| | | int CEquipment::glassArrived(CPanel* pPanel) |
| | | int CEquipment::glassArrived(CGlass* pGlass) |
| | | { |
| | | Lock(); |
| | | pPanel->addRef(); |
| | | m_panelList.push_back(pPanel); |
| | | pGlass->addRef(); |
| | | m_glassList.push_back(pGlass); |
| | | Unlock(); |
| | | return FLOW_ACCEPT; |
| | | } |
| | | |
| | | void CEquipment::addPanelToList(CPanel* pPanel) |
| | | void CEquipment::addGlassToList(CGlass* pGlass) |
| | | { |
| | | ASSERT(pPanel); |
| | | ASSERT(pGlass); |
| | | |
| | | Lock(); |
| | | pPanel->addRef(); |
| | | m_panelList.push_back(pPanel); |
| | | pGlass->addRef(); |
| | | m_glassList.push_back(pGlass); |
| | | Unlock(); |
| | | } |
| | | } |
| | |
| | | #include <vector> |
| | | #include <map> |
| | | #include <list> |
| | | #include "CPanel.h" |
| | | #include "CGlass.h" |
| | | |
| | | |
| | | namespace SERVO { |
| | |
| | | std::vector<CPin*>& CEquipment::getInputPins(); |
| | | std::vector<CPin*>& CEquipment::getOutputPins(); |
| | | virtual int recvIntent(CPin* pPin, CIntent* pIntent); |
| | | virtual BOOL glassWillArrive(CPanel* pPanel); |
| | | virtual BOOL glassWillArrive(CGlass* pGlass); |
| | | virtual int outputGlass(int port); |
| | | virtual int glassArrived(CPanel* pPanel); |
| | | virtual int glassArrived(CGlass* pGlass); |
| | | |
| | | // 以ä¸ä¸ºä»CC-Link读åå°çBitæ å¿ä½æ£æµå½æ° |
| | | public: |
| | |
| | | protected: |
| | | inline void Lock() { EnterCriticalSection(&m_criticalSection); } |
| | | inline void Unlock() { LeaveCriticalSection(&m_criticalSection); } |
| | | void addPanelToList(CPanel* pPanel); |
| | | void addGlassToList(CGlass* pGlass); |
| | | |
| | | protected: |
| | | EquipmentListener m_listener; |
| | |
| | | MemoryBlock m_blockWriteBit; |
| | | std::vector<CPin*> m_inputPins; |
| | | std::vector<CPin*> m_outputPins; |
| | | std::list<CPanel*> m_panelList; |
| | | std::list<CGlass*> m_glassList; |
| | | |
| | | |
| | | // 以ä¸ä¸ºä»CC-Link读åå°çBitæ å¿ä½ |
| | |
| | | { |
| | | return __super::recvIntent(pPin, pIntent); |
| | | } |
| | | |
| | | BOOL CFliper::glassWillArrive(CGlass* pGlass) |
| | | { |
| | | BOOL bRet = __super::glassWillArrive(pGlass); |
| | | if (!bRet) { |
| | | return FALSE; |
| | | } |
| | | |
| | | return m_glassList.empty(); |
| | | } |
| | | } |
| | |
| | | virtual void serialize(CArchive& ar); |
| | | virtual void getAttributeVector(CAttributeVector& attrubutes); |
| | | virtual int recvIntent(CPin* pPin, CIntent* pIntent); |
| | | virtual BOOL glassWillArrive(CGlass* pGlass); |
| | | }; |
| | | } |
| | | |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | #include "stdafx.h" |
| | | #include "CGlass.h" |
| | | |
| | | |
| | | namespace SERVO { |
| | | CGlass::CGlass() |
| | | { |
| | | |
| | | } |
| | | |
| | | CGlass::~CGlass() |
| | | { |
| | | |
| | | } |
| | | |
| | | std::string& CGlass::getClassName() |
| | | { |
| | | static std::string strName = "CGlass"; |
| | | return strName; |
| | | } |
| | | |
| | | std::string CGlass::toString() |
| | | { |
| | | std::string strText; |
| | | strText += "CGlass["; |
| | | strText += ("ID:" + m_strID + ";"); |
| | | strText += "]"; |
| | | |
| | | return strText; |
| | | } |
| | | |
| | | void CGlass::setID(const char* pszID) |
| | | { |
| | | m_strID = pszID; |
| | | } |
| | | |
| | | std::string& CGlass::getID() |
| | | { |
| | | return m_strID; |
| | | } |
| | | |
| | | void CGlass::serialize(CArchive& ar) |
| | | { |
| | | if (ar.IsStoring()) |
| | | { |
| | | Lock(); |
| | | WriteString(ar, m_strID); |
| | | Unlock(); |
| | | } |
| | | else |
| | | { |
| | | Lock(); |
| | | ReadString(ar, m_strID); |
| | | Unlock(); |
| | | } |
| | | } |
| | | } |
| ÎļþÃû´Ó SourceCode/Bond/Servo/CPanel.h ÐÞ¸Ä |
| | |
| | | |
| | | |
| | | namespace SERVO { |
| | | class CPanel : public CContext |
| | | class CGlass : public CContext |
| | | { |
| | | public: |
| | | CPanel(); |
| | | virtual ~CPanel(); |
| | | CGlass(); |
| | | virtual ~CGlass(); |
| | | |
| | | public: |
| | | virtual std::string& getClassName(); |
| | | virtual std::string toString(); |
| | | void setID(const char* pszID); |
| | | std::string& getID(); |
| | | void serialize(CArchive& ar); |
| | | |
| | | private: |
| | | std::string m_strID; |
| | |
| | | int CLoadPort::outputGlass(int port) |
| | | { |
| | | // 妿åè¡¨ä¸æ²¡æPanel,模æçæ10å¼ |
| | | if (m_panelList.empty()) { |
| | | if (m_glassList.empty()) { |
| | | static int ii = 0; |
| | | char szBuffer[64]; |
| | | LOGI("<CLoadPort>模æçæ10å¼ PANEL"); |
| | | for (int i = 0; i < 10; i++) { |
| | | sprintf_s(szBuffer, "P20250320A1A%d", ++ii); |
| | | CPanel* pPanel = new CPanel(); |
| | | pPanel->setID(szBuffer); |
| | | addPanelToList(pPanel); |
| | | CGlass* pGlass = new CGlass(); |
| | | pGlass->setID(szBuffer); |
| | | addGlassToList(pGlass); |
| | | } |
| | | } |
| | | |
| | | return __super::outputGlass(port); |
| | | } |
| | | |
| | | BOOL CLoadPort::glassWillArrive(CGlass* pGlass) |
| | | { |
| | | BOOL bRet = __super::glassWillArrive(pGlass); |
| | | if (!bRet) { |
| | | return FALSE; |
| | | } |
| | | |
| | | return (m_glassList.size() < 8); |
| | | } |
| | | } |
| | |
| | | virtual void serialize(CArchive& ar); |
| | | virtual void getAttributeVector(CAttributeVector& attrubutes); |
| | | virtual int recvIntent(CPin* pPin, CIntent* pIntent); |
| | | virtual BOOL glassWillArrive(CGlass* pGlass); |
| | | |
| | | public: |
| | | virtual int outputGlass(int port); |
| | |
| | | addBakeCooling(listener); |
| | | connectEquipments(); |
| | | |
| | | |
| | | // 读ç¼åæ°æ® |
| | | readCache(); |
| | | |
| | | |
| | | // 宿¶å¨ |
| | | g_pMaster = this; |
| | |
| | | for (auto item : m_listEquipment) { |
| | | item->term(); |
| | | } |
| | | saveCache(); |
| | | |
| | | |
| | | return 0; |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | // èªå¨ä¿åç¼å |
| | | saveCache(); |
| | | } |
| | | |
| | | void CMaster::connectEquipments() |
| | |
| | | LOGE("è¿æ¥BakeCooling-LoadPort4失败"); |
| | | } |
| | | } |
| | | |
| | | int CMaster::saveCache() |
| | | { |
| | | CFile file; |
| | | if (!file.Open(m_strFilepath.c_str(), CFile::modeCreate | CFile::modeWrite)) { |
| | | return -1; |
| | | } |
| | | |
| | | CArchive ar(&file, CArchive::store); |
| | | serialize(ar); |
| | | ar.Close(); |
| | | file.Close(); |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | void CMaster::setCacheFilepath(const char* pszFilepath) |
| | | { |
| | | m_strFilepath = pszFilepath; |
| | | } |
| | | |
| | | int CMaster::readCache() |
| | | { |
| | | CFile file; |
| | | if (!file.Open(m_strFilepath.c_str(), CFile::modeRead)) { |
| | | return -1; |
| | | } |
| | | |
| | | CArchive ar(&file, CArchive::load); |
| | | serialize(ar); |
| | | ar.Close(); |
| | | file.Close(); |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | void CMaster::serialize(CArchive& ar) |
| | | { |
| | | for (auto item : m_listEquipment) { |
| | | item->serialize(ar); |
| | | } |
| | | } |
| | | } |
| | |
| | | void onTimer(UINT nTimerid); |
| | | std::list<CEquipment*>& getEquipmentList(); |
| | | CEquipment* getEquipment(int id); |
| | | void setCacheFilepath(const char* pszFilepath); |
| | | |
| | | private: |
| | | int addToEquipmentList(CEquipment* pEquipment); |
| | |
| | | int addBonder(int index, StepListener& listener); |
| | | int addBakeCooling(StepListener& listener); |
| | | void connectEquipments(); |
| | | |
| | | int saveCache(); |
| | | int readCache(); |
| | | void serialize(CArchive& ar); |
| | | |
| | | private: |
| | | MasterListener m_listener; |
| | | CCCLinkIEControl m_cclink; |
| | | std::list<CEquipment*> m_listEquipment; |
| | | std::string m_strFilepath; |
| | | }; |
| | | } |
| | | |
| | |
| | | { |
| | | return __super::recvIntent(pPin, pIntent); |
| | | } |
| | | |
| | | BOOL CMeasurement::glassWillArrive(CGlass* pGlass) |
| | | { |
| | | BOOL bRet = __super::glassWillArrive(pGlass); |
| | | if (!bRet) { |
| | | return FALSE; |
| | | } |
| | | |
| | | return m_glassList.empty(); |
| | | } |
| | | } |
| | |
| | | virtual void serialize(CArchive& ar); |
| | | virtual void getAttributeVector(CAttributeVector& attrubutes); |
| | | virtual int recvIntent(CPin* pPin, CIntent* pIntent); |
| | | virtual BOOL glassWillArrive(CGlass* pGlass); |
| | | }; |
| | | } |
| | | |
| | |
| | | ASSERT(pPin1->pData); |
| | | ASSERT(pPin2->pData); |
| | | |
| | | //int nRet = ((IPin*)pPin1->pData)->checkConnectPin((IPin*)pPin2->pData); |
| | | //if (nRet >= 0) { |
| | | // return true; |
| | | //} |
| | | |
| | | return false; |
| | | }; |
| | | listener.onConnectPin = [](PIN* pPin1, PIN* pPin2) -> bool { |
| | |
| | | ASSERT(pPin1->pData); |
| | | ASSERT(pPin2->pData); |
| | | |
| | | //int nRet = ((IPin*)pPin1->pData)->connectPin((IPin*)pPin2->pData); |
| | | //if (nRet >= 0) { |
| | | // return true; |
| | | //} |
| | | |
| | | return false; |
| | | }; |
| | | listener.onDisconnectPin = [](PIN* pPin) -> bool { |
| | | ASSERT(pPin); |
| | | ASSERT(pPin->pData); |
| | | |
| | | //int nRet = ((IPin*)pPin->pData)->disconnect(); |
| | | //if (nRet >= 0) { |
| | | // return true; |
| | | //} |
| | | |
| | | return false; |
| | | }; |
| | | listener.onDeleteEqItem = [&](EQITEM* pItem) -> bool { |
| | | ASSERT(pItem); |
| | | ASSERT(pItem->pData); |
| | | return true; |
| | | // return _filterManager.unload((CFilter*)pFilter->pData) >= 0; |
| | | return false; |
| | | }; |
| | | listener.onEqItemPosChanged = [&](EQITEM* pItem, int x, int y) -> void { |
| | | ASSERT(pItem); |
| | |
| | | |
| | | return true; |
| | | }; |
| | | listener.onSelectEqItem = [&](EQITEM* pItem) -> bool { |
| | | ASSERT(pItem); |
| | | SERVO::CEquipment* pEquipment = (SERVO::CEquipment*)pItem->pData; |
| | | theApp.m_model.notifyPtr(RX_CODE_SELECT_EQUIPMENT, pEquipment); |
| | | |
| | | return true; |
| | | }; |
| | | |
| | | m_pEqsGraphWnd = CEqsGraphWnd::FromHandle(GetDlgItem(IDC_EQSGRAPHWND1)->m_hWnd); |
| | | m_pEqsGraphWnd->SetBkgndColor(m_crBkgnd); |
| | |
| | | { |
| | | return __super::recvIntent(pPin, pIntent); |
| | | } |
| | | |
| | | BOOL CVacuumBake::glassWillArrive(CGlass* pGlass) |
| | | { |
| | | BOOL bRet = __super::glassWillArrive(pGlass); |
| | | if (!bRet) { |
| | | return FALSE; |
| | | } |
| | | |
| | | return m_glassList.empty(); |
| | | } |
| | | } |
| | |
| | | virtual void serialize(CArchive& ar); |
| | | virtual void getAttributeVector(CAttributeVector& attrubutes); |
| | | virtual int recvIntent(CPin* pPin, CIntent* pIntent); |
| | | virtual BOOL glassWillArrive(CGlass* pGlass); |
| | | }; |
| | | } |
| | | |
| | |
| | | m_listener.onEqItemPosChanged = nullptr; |
| | | m_listener.onDblckEqItem = nullptr; |
| | | m_listener.onRclickEqItem = nullptr; |
| | | m_listener.onSelectEqItem = nullptr; |
| | | m_crItemBackground[0] = RGB(218, 218, 218); |
| | | m_crItemBackground[1] = RGB(193, 208, 227); |
| | | m_crItemFrame[0] = RGB(128, 128, 128); |
| | |
| | | m_listener.onEqItemPosChanged = listener.onEqItemPosChanged; |
| | | m_listener.onDblckEqItem = listener.onDblckEqItem; |
| | | m_listener.onRclickEqItem = listener.onRclickEqItem; |
| | | m_listener.onSelectEqItem = listener.onSelectEqItem; |
| | | } |
| | | |
| | | BOOL CEqsGraphWnd::SetCurSel(int nSel) |
| | |
| | | PIN *pLastPin = m_pCurPin; |
| | | PIN *pLastSelLineOutPin = m_pSelLineOutPin; |
| | | BOOL bChanged = FALSE; |
| | | BOOL bSelectChanged = FALSE; |
| | | EQITEM* pHitItem = NULL; |
| | | PIN *pHitPin = NULL; |
| | | PIN *pPin2 = NULL; |
| | |
| | | } |
| | | |
| | | if (nRet == HT_ITEM) { |
| | | m_pCurItem = pHitItem; |
| | | m_pCurItem->bHighlight = TRUE; |
| | | if (m_pCurItem != pHitItem) { |
| | | m_pCurItem = pHitItem; |
| | | m_pCurItem->bHighlight = TRUE; |
| | | bSelectChanged = TRUE; |
| | | } |
| | | } |
| | | else if (nRet == HT_PIN) { |
| | | m_pCurPin = pHitPin; |
| | |
| | | } |
| | | |
| | | |
| | | if (bSelectChanged) { |
| | | if (m_listener.onSelectEqItem != nullptr) { |
| | | m_listener.onSelectEqItem(m_pCurItem); |
| | | } |
| | | } |
| | | |
| | | |
| | | return ::DefWindowProc(m_hWnd, WM_LBUTTONDOWN, wParam, lParam); |
| | | } |
| | | |
| | |
| | | ONEQITEMPOSCHANGED onEqItemPosChanged; |
| | | ONDELETEEQITEM onDblckEqItem; |
| | | ONDELETEEQITEM onRclickEqItem; |
| | | ONDELETEEQITEM onSelectEqItem; |
| | | } EqsGraphListener; |
| | | |
| | | class CEqsGraphWnd |
| | |
| | | m_configuration.getUnitId(strUnitId); |
| | | |
| | | // æºå¨åå·åè½¯ä»¶çæ¬å·åºä»é
ç½®ä¸è¯»åï¼å½åå
åºå®å¼ |
| | | CString strModeType = _T("Bond2860"); |
| | | CString strModeType = _T("Master"); |
| | | CString strSoftRev = _T("1.0.2"); |
| | | |
| | | |
| | |
| | | m_master.setListener(masterListener); |
| | | |
| | | |
| | | // master 设置ç¼åæä»¶ |
| | | CString strMasterDataFile; |
| | | strMasterDataFile.Format(_T("%s\\Master.dat"), (LPTSTR)(LPCTSTR)m_strWorkDir); |
| | | m_master.setCacheFilepath((LPTSTR)(LPCTSTR)strMasterDataFile); |
| | | |
| | | |
| | | // å è½½è¦åä¿¡æ¯ |
| | | AlarmManager& alarmManager = AlarmManager::getInstance(); |
| | | char szBuffer[MAX_PATH]; |
| | |
| | | <ClInclude Include="CEqStatusStep.h" /> |
| | | <ClInclude Include="CEqVCREnableStep.h" /> |
| | | <ClInclude Include="CFliper.h" /> |
| | | <ClInclude Include="CGlass.h" /> |
| | | <ClInclude Include="CLoadPort.h" /> |
| | | <ClInclude Include="CMeasurement.h" /> |
| | | <ClInclude Include="ColorTransfer.h" /> |
| | | <ClInclude Include="CPageGraph1.h" /> |
| | | <ClInclude Include="CPageGraph2.h" /> |
| | | <ClInclude Include="CPanel.h" /> |
| | | <ClInclude Include="CPanelAttributes.h" /> |
| | | <ClInclude Include="CPanelEquipment.h" /> |
| | | <ClInclude Include="CPanelMaster.h" /> |
| | |
| | | <ClCompile Include="CEqStatusStep.cpp" /> |
| | | <ClCompile Include="CEqVCREnableStep.cpp" /> |
| | | <ClCompile Include="CFliper.cpp" /> |
| | | <ClCompile Include="CGlass.cpp" /> |
| | | <ClCompile Include="CLoadPort.cpp" /> |
| | | <ClCompile Include="CMeasurement.cpp" /> |
| | | <ClCompile Include="ColorTransfer.cpp" /> |
| | | <ClCompile Include="CPageGraph1.cpp" /> |
| | | <ClCompile Include="CPageGraph2.cpp" /> |
| | | <ClCompile Include="CPanel.cpp" /> |
| | | <ClCompile Include="CPanelAttributes.cpp" /> |
| | | <ClCompile Include="CPanelEquipment.cpp" /> |
| | | <ClCompile Include="CPanelMaster.cpp" /> |
| | |
| | | <ClCompile Include="CBakeCooling.cpp" /> |
| | | <ClCompile Include="CVacuumBake.cpp" /> |
| | | <ClCompile Include="Intent.cpp" /> |
| | | <ClCompile Include="CPanel.cpp" /> |
| | | <ClCompile Include="EqsGraphWnd.cpp" /> |
| | | <ClCompile Include="ColorTransfer.cpp" /> |
| | | <ClCompile Include="MapPosWnd.cpp" /> |
| | | <ClCompile Include="HmTab.cpp" /> |
| | | <ClCompile Include="CPageGraph1.cpp" /> |
| | | <ClCompile Include="CPageGraph2.cpp" /> |
| | | <ClCompile Include="CGlass.cpp" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <ClInclude Include="AlarmManager.h" /> |
| | |
| | | <ClInclude Include="CBakeCooling.h" /> |
| | | <ClInclude Include="CVacuumBake.h" /> |
| | | <ClInclude Include="Intent.h" /> |
| | | <ClInclude Include="CPanel.h" /> |
| | | <ClInclude Include="EqsGraphWnd.h" /> |
| | | <ClInclude Include="ColorTransfer.h" /> |
| | | <ClInclude Include="MapPosWnd.h" /> |
| | | <ClInclude Include="HmTab.h" /> |
| | | <ClInclude Include="CPageGraph1.h" /> |
| | | <ClInclude Include="CPageGraph2.h" /> |
| | | <ClInclude Include="CGlass.h" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <ResourceCompile Include="Servo.rc" /> |
| | |
| | | CHmTab* m_pTab = CHmTab::Hook(GetDlgItem(IDC_TAB1)->m_hWnd); |
| | | m_pTab->SetPaddingLeft(20); |
| | | m_pTab->SetItemMarginLeft(18); |
| | | m_pTab->AddItem("æ¥è¡¨", FALSE); |
| | | m_pTab->AddItem("æ¥å¿", TRUE); |
| | | m_pTab->AddItem("״̬ͼ", FALSE); |
| | | m_pTab->AddItem("è¿æ¥å¾", TRUE); |
| | | m_pTab->SetCurSel(0); |
| | | m_pTab->SetBkgndColor(RGB(222, 222, 222)); |
| | | ShowChildPage(0); |