| | |
| | | // JOB Data Request |
| | | CEqReadStep* pStep = new CEqReadStep(0x0, 0, |
| | | [&](void* pFrom, int code, const char* pszData, size_t size) -> int { |
| | | if (code == ROK && pszData != nullptr && size > 0) { |
| | | if (code == ROK /* && pszData != nullptr && size > 0*/) { |
| | | // 由于EFEM没有发送参数到master, 我们只需要返回数据 |
| | | // Cassette Sequence No和Job Sequence No根据上一次调试缓存而来 |
| | | // decodeJobDataRequest((CStep*)pFrom, pszData, size); |
| | |
| | | if (m_pActiveContext != nullptr) { |
| | | CJobDataS* pJobDataS = ((CGlass*)m_pActiveContext)->getJobDataS(); |
| | | if (pJobDataS != nullptr) { |
| | | pJobDataS->serialize(szBuffer, 1024); |
| | | pJobDataS->serialize(szBuffer, 1024); |
| | | ack = (short)JobDataRequestAck::OK; |
| | | } |
| | |
| | | |
| | | int CEFEM::onFetchedOutJob(int port, CJobDataB* pJobDataB) |
| | | { |
| | | if (port == 1) { |
| | | return m_pPort[0]->onFetchedOutJob(port, pJobDataB); |
| | | } |
| | | if (port == 2) { |
| | | return m_pPort[1]->onFetchedOutJob(port, pJobDataB); |
| | | } |
| | | if (port == 3) { |
| | | return m_pPort[2]->onFetchedOutJob(port, pJobDataB); |
| | | } |
| | | if (port == 4) { |
| | | return m_pPort[3]->onFetchedOutJob(port, pJobDataB); |
| | | } |
| | | if (port == 5) { |
| | | return m_pArmTray[0]->onFetchedOutJob(port, pJobDataB); |
| | | } |
| | | if (port == 6) { |
| | | return m_pArmTray[1]->onFetchedOutJob(port, pJobDataB); |
| | | } |
| | | if (port == 7) { |
| | | return m_pAligner->onFetchedOutJob(port, pJobDataB); |
| | | } |
| | | if (port == 8) { |
| | | return m_pFliper->onFetchedOutJob(port, pJobDataB); |
| | | // 转发到子单元设备 |
| | | CEquipment* pEqs[] = { m_pPort[0], m_pPort[1], m_pPort[2], m_pPort[3], m_pArmTray[0], m_pArmTray[1], |
| | | m_pAligner, m_pFliper }; |
| | | if (1 <= port && port <= 8) { |
| | | pEqs[port - 1]->onFetchedOutJob(port, pJobDataB); |
| | | } |
| | | |
| | | return -1; |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | int CEFEM::onStoredJob(int port, CJobDataB* pJobDataB) |
| | | { |
| | | if (port == 1) { |
| | | return m_pPort[0]->onStoredJob(port, pJobDataB); |
| | | } |
| | | if (port == 2) { |
| | | return m_pPort[1]->onStoredJob(port, pJobDataB); |
| | | } |
| | | if (port == 3) { |
| | | return m_pPort[2]->onStoredJob(port, pJobDataB); |
| | | } |
| | | if (port == 4) { |
| | | return m_pPort[3]->onStoredJob(port, pJobDataB); |
| | | } |
| | | if (port == 5) { |
| | | return m_pArmTray[0]->onStoredJob(port, pJobDataB); |
| | | } |
| | | if (port == 6) { |
| | | return m_pArmTray[1]->onStoredJob(port, pJobDataB); |
| | | } |
| | | if (port == 7) { |
| | | return m_pAligner->onStoredJob(port, pJobDataB); |
| | | } |
| | | if (port == 8) { |
| | | return m_pFliper->onStoredJob(port, pJobDataB); |
| | | // 转发到子单元设备 |
| | | CEquipment* pEqs[] = { m_pPort[0], m_pPort[1], m_pPort[2], m_pPort[3], m_pArmTray[0], m_pArmTray[1], |
| | | m_pAligner, m_pFliper }; |
| | | if (1 <= port && port <= 8) { |
| | | pEqs[port - 1]->onStoredJob(port, pJobDataB); |
| | | } |
| | | |
| | | return -1; |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | int CEFEM::getIndexerOperationModeBaseValue() |