| | |
| | | }; |
| | | listener.onPortStatusChanged = [&](void* pEquipment, short status, __int64 data) { |
| | | LOGE("<Master-%s>onPortStatusChanged。status=%d, data=%lld", ((CEquipment*)pEquipment)->getName().c_str(), status); |
| | | if (status == PORT_INUSE && m_pControlJob != nullptr) { |
| | | CLoadPort* pPort = (CLoadPort*)pEquipment; |
| | | auto pjs = m_pControlJob->getPjs(); |
| | | for (auto pj : pjs) { |
| | | auto carrier = pj->getCarrier(pPort->getCassetteId()); |
| | | if (carrier != nullptr) { |
| | | for (auto slot : carrier->slots) { |
| | | CGlass* pGlass = pPort->getGlassFromSlot(slot); |
| | | carrier->contexts.push_back((void*)pGlass); |
| | | if (pGlass != nullptr) { |
| | | pGlass->setProcessJob(pj); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | if (m_listener.onLoadPortStatusChanged != nullptr) { |
| | | m_listener.onLoadPortStatusChanged(this, (CEquipment*)pEquipment, status, data); |
| | | } |
| | |
| | | m_processJobs = temp; |
| | | this->saveState(); |
| | | |
| | | return m_processJobs.size(); |
| | | return (int)m_processJobs.size(); |
| | | } |
| | | |
| | | std::vector<CProcessJob*>& CMaster::getProcessJobs() |
| | |
| | | |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | CControlJob* CMaster::getControlJob() |
| | | { |
| | | return m_pControlJob; |
| | | } |
| | | |
| | | CLoadPort* CMaster::getPortWithCarrierId(const std::string& carrierId) const |
| | |
| | | m_processJobs.push_back(pProcessJob); |
| | | } |
| | | |
| | | |
| | | // 找到CProcessJob指针加入列表中 |
| | | std::vector<CProcessJob*> tempPjs; |
| | | auto ids = m_pControlJob->pjIds(); |
| | | for (auto id : ids) { |
| | | auto pj = getProcessJob(id); |
| | | if (pj != nullptr) { |
| | | tempPjs.push_back(pj); |
| | | } |
| | | } |
| | | m_pControlJob->setPJs(tempPjs); |
| | | |
| | | |
| | | // 如果版本升级,可在这里判断 version 来加载新字段 |
| | | |
| | | |