| | |
| | | CBonder::CBonder() : CEquipment() |
| | | { |
| | | m_nIndex = 0; |
| | | m_bPermittedStore = FALSE; |
| | | } |
| | | |
| | | CBonder::~CBonder() |
| | |
| | | |
| | | { |
| | | // eq process |
| | | // 使用CEqReadStep替换CEqProcessStep |
| | | /* |
| | | CEqProcessStep* pStep = new CEqProcessStep(); |
| | | pStep->setName(STEP_PROCESS); |
| | | pStep->setWriteSignalDev(m_nIndex == 0 ? 0x347 : 0x647); |
| | | pStep->setProcessDev(m_nIndex == 0 ? 0xab55 : 0xeb55); |
| | | if (addStep(STEP_ID_PROCESS_DATA_REPORT, pStep) != 0) { |
| | | delete pStep; |
| | | } |
| | | */ |
| | | CEqReadStep* pStep = new CEqReadStep((m_nIndex == 0 ? 0xab55 : 0xeb55), 538 * 2, |
| | | [&](void* pFrom, int code, const char* pszData, size_t size) -> int { |
| | | if (code == ROK && pszData != nullptr && size > 0) { |
| | | decodeProcessDataReport((CStep*)pFrom, pszData, size); |
| | | } |
| | | return -1; |
| | | }); |
| | | pStep->setName(STEP_PROCESS); |
| | | pStep->setWriteSignalDev((m_nIndex == 0 ? 0x347 : 0x647)); |
| | | if (addStep(STEP_ID_PROCESS_DATA_REPORT, pStep) != 0) { |
| | | delete pStep; |
| | | } |
| | |
| | | { |
| | | return m_nIndex; |
| | | } |
| | | |
| | | int CBonder::onReceivedJob(int port, CJobDataS* pJobDataS) |
| | | { |
| | | m_bPermittedStore = FALSE; |
| | | Lock(); |
| | | size_t size = m_glassList.size(); |
| | | if (size == 0) { |
| | | m_bPermittedStore = TRUE; |
| | | } |
| | | else if (size == 1) { |
| | | CGlass* pGlass = m_glassList.front(); |
| | | if ( (pGlass->getType() == MaterialsType::G1 && pJobDataS->getMaterialsType() == (int)MaterialsType::G2) |
| | | || (pGlass->getType() == MaterialsType::G2 && pJobDataS->getMaterialsType() == (int)MaterialsType::G1)) { |
| | | m_bPermittedStore = TRUE; |
| | | } |
| | | } |
| | | Unlock(); |
| | | |
| | | if (m_bPermittedStore) { |
| | | return CEquipment::onReceivedJob(port, pJobDataS); |
| | | } |
| | | else { |
| | | return -1; |
| | | } |
| | | } |
| | | |
| | | int CBonder::onSentOutJob(int port, CJobDataS* pJobDataS) |
| | | { |
| | | CEquipment::onSentOutJob(port, pJobDataS); |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | int CBonder::onProcessData(CProcessData* pProcessData) |
| | | { |
| | | CEquipment::onProcessData(pProcessData); |
| | | |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | // Bonder检查腔体玻璃信息,如腔体为空可进G1或G2, |
| | | // 如腔体只有一片G1,可进G2,如腔体只有一片G2, 可进G1 |
| | | // 其它情况不可进片 |
| | | int CBonder::storedJob(CJobDataB* pJobDataB) |
| | | { |
| | | if (!m_bPermittedStore) |
| | | return -1; |
| | | |
| | | return CEquipment::storedJob(pJobDataB); |
| | | } |
| | | } |