| | |
| | | // 必须要实现的虚函数,在此初始化Slot信息 |
| | | void CArm::initSlots() |
| | | { |
| | | |
| | | m_slot[0].enable(); |
| | | m_slot[0].setPosition(m_nID); |
| | | m_slot[0].setNo(1); |
| | | m_slot[0].setName("Slot 1(Temp)"); |
| | | m_slot[1].enable(); |
| | | m_slot[1].setPosition(m_nID); |
| | | m_slot[1].setNo(2); |
| | | m_slot[1].setName("Slot 2(Temp)"); |
| | | } |
| | | |
| | | void CArm::onTimer(UINT nTimerid) |
| | |
| | | // 原:保证列表中只存储一个物料 |
| | | // 修改为:先清空之前的,再添加当前pGlass, 如果pGlass有buddy,也要加入列表中 |
| | | Lock(); |
| | | for (auto item : m_glassList) { |
| | | item->release(); |
| | | CGlass* pPreviousGlass; |
| | | pPreviousGlass = (CGlass*)m_slot[0].getContext(); |
| | | if (pPreviousGlass != nullptr) { |
| | | pPreviousGlass->release(); |
| | | } |
| | | m_glassList.clear(); |
| | | addGlassToList(pGlass); |
| | | pPreviousGlass = (CGlass*)m_slot[1].getContext(); |
| | | if (pPreviousGlass != nullptr) { |
| | | pPreviousGlass->release(); |
| | | } |
| | | |
| | | m_slot[0].setContext(pGlass); |
| | | if (pGlass->getBuddy() != nullptr) { |
| | | addGlassToList(pGlass->getBuddy()); |
| | | m_slot[1].setContext(pGlass->getBuddy()); |
| | | } |
| | | Unlock(); |
| | | |
| | |
| | | int CArm::tempFetchOut(OUT CGlass*& pGlass) |
| | | { |
| | | Lock(); |
| | | if (m_glassList.empty()) { |
| | | CGlass* pPreviousGlass = (CGlass*)m_slot[0].getContext(); |
| | | if (pPreviousGlass == nullptr) { |
| | | Unlock(); |
| | | return -1; |
| | | } |
| | | |
| | | pGlass = m_glassList.front(); |
| | | pGlass = pPreviousGlass; |
| | | pGlass->addRef(); |
| | | for (auto item : m_glassList) { |
| | | item->release(); |
| | | } |
| | | m_glassList.clear(); |
| | | m_slot[0].setContext(nullptr); |
| | | Unlock(); |
| | | |
| | | if (m_listener.onDataChanged != nullptr) { |