| | |
| | | addPin(SERVO::PinType::OUTPUT, _T("Out2")); |
| | | } |
| | | |
| | | // 必须要实现的虚函数,在此初始化Slot信息 |
| | | void CLoadPort::initSlots() |
| | | { |
| | | m_slot[0].enable(); |
| | | m_slot[0].setPosition(m_nID); |
| | | m_slot[0].setNo(1); |
| | | m_slot[0].setName("Slot 1"); |
| | | m_slot[1].enable(); |
| | | m_slot[1].setPosition(m_nID); |
| | | m_slot[1].setNo(2); |
| | | m_slot[1].setName("Slot 2"); |
| | | m_slot[2].setPosition(m_nID); |
| | | m_slot[2].enable(); |
| | | m_slot[2].setNo(3); |
| | | m_slot[2].setName("Slot 3"); |
| | | m_slot[3].setPosition(m_nID); |
| | | m_slot[3].enable(); |
| | | m_slot[3].setNo(4); |
| | | m_slot[3].setName("Slot 4"); |
| | | m_slot[4].setPosition(m_nID); |
| | | m_slot[4].enable(); |
| | | m_slot[4].setNo(5); |
| | | m_slot[4].setName("Slot 5"); |
| | | m_slot[5].setPosition(m_nID); |
| | | m_slot[5].enable(); |
| | | m_slot[5].setNo(6); |
| | | m_slot[5].setName("Slot 6"); |
| | | } |
| | | |
| | | void CLoadPort::initSteps() |
| | | { |
| | | CEquipment::initSteps(); |
| | |
| | | int CLoadPort::recvIntent(CPin* pPin, CIntent* pIntent) |
| | | { |
| | | return __super::recvIntent(pPin, pIntent); |
| | | } |
| | | |
| | | int CLoadPort::outputGlass(int port) |
| | | { |
| | | return __super::outputGlass(port); |
| | | } |
| | | |
| | | BOOL CLoadPort::glassWillArrive(CGlass* pGlass) |
| | | { |
| | | BOOL bRet = __super::glassWillArrive(pGlass); |
| | | if (!bRet) { |
| | | return FALSE; |
| | | } |
| | | |
| | | return (m_glassList.size() < 8); |
| | | } |
| | | |
| | | int CLoadPort::sendCassetteCtrlCmd(short cmd, |
| | |
| | | /* |
| | | * 生成测试用的玻璃列表 |
| | | */ |
| | | int CLoadPort::testGenerateGlassList(MaterialsType type, int count, const char* pszPrefix, int startSuffix) |
| | | int CLoadPort::testGenerateGlassList(MaterialsType type, const char* pszPrefix, int startSuffix) |
| | | { |
| | | // 如果非空就不生成了 |
| | | Lock(); |
| | | if (!m_glassList.empty()) { |
| | | if (hasGlass()) { |
| | | Unlock(); |
| | | return -1; |
| | | } |
| | |
| | | |
| | | char szBuffer[64]; |
| | | int suffix = startSuffix; |
| | | for (int i = 0; i < count; i++) { |
| | | for (int i = 0; i < SLOT_MAX; i++) { |
| | | if (!m_slot[i].isEnable()) continue; |
| | | |
| | | CJobDataB jb; |
| | | CJobDataS js; |
| | | |
| | |
| | | pGlass->setJobDataB(&jb); |
| | | pGlass->setType(type); |
| | | pGlass->setJobDataS(&js); |
| | | addGlassToList(pGlass); |
| | | pGlass->addRef(); |
| | | m_slot[i].setContext(pGlass); |
| | | } |
| | | |
| | | return 0; |