| | |
| | | if (m_hbrBkgnd != nullptr) { |
| | | ::DeleteObject(m_hbrBkgnd); |
| | | } |
| | | |
| | | if (m_pObserver != nullptr) { |
| | | m_pObserver->unsubscribe(); |
| | | m_pObserver = NULL; |
| | | } |
| | | } |
| | | |
| | | void CPageGraph1::OnSize(UINT nType, int cx, int cy) |
| | |
| | | Invalidate(); |
| | | } |
| | | |
| | | void CPageGraph1::BindEquipmentToGraph() |
| | | { |
| | | struct EquipmentBindInfo |
| | | { |
| | | int nEquipmentID; |
| | | int nIndicateID; |
| | | }; |
| | | |
| | | static const EquipmentBindInfo EQUIPMENT_BIND_LIST[] = { |
| | | { EQ_ID_EFEM, INDICATE_ROBOT_ARM1 }, |
| | | { EQ_ID_EFEM, INDICATE_ROBOT_ARM2 }, |
| | | { EQ_ID_Bonder1, INDICATE_BONDER1 }, |
| | | { EQ_ID_Bonder2, INDICATE_BONDER2 }, |
| | | { EQ_ID_LOADPORT1, INDICATE_LPORT1 }, |
| | | { EQ_ID_LOADPORT2, INDICATE_LPORT2 }, |
| | | { EQ_ID_LOADPORT3, INDICATE_LPORT3 }, |
| | | { EQ_ID_LOADPORT4, INDICATE_LPORT4 }, |
| | | { EQ_ID_FLIPER, INDICATE_FLIPER }, |
| | | { EQ_ID_VACUUMBAKE, INDICATE_VACUUM_BAKE }, |
| | | { EQ_ID_ALIGNER, INDICATE_ALIGNER }, |
| | | { EQ_ID_BAKE_COOLING, INDICATE_BAKE_COOLING } |
| | | }; |
| | | |
| | | for (const auto& stBindInfo : EQUIPMENT_BIND_LIST) |
| | | { |
| | | SERVO::CEquipment* pEquipment = theApp.m_model.m_master.getEquipment(stBindInfo.nEquipmentID); |
| | | m_pGraph->SetIndicateBoxData(stBindInfo.nIndicateID, pEquipment); |
| | | } |
| | | } |
| | | |
| | | void CPageGraph1::OnGraphItemClicked(NMHDR* pNMHDR, LRESULT* pResult) |
| | | { |
| | | BYSERVOGRAPH_NMHDR* pGraphNmhdr = reinterpret_cast<BYSERVOGRAPH_NMHDR*>(pNMHDR); |
| | | CString s; s.Format(_T("OnGraphItemClicked %d"), pGraphNmhdr->dwData); |
| | | SERVO::CEquipment* pEquipment = (SERVO::CEquipment*)m_pGraph->GetIndicateBoxData(pGraphNmhdr->dwData); |
| | | if (pEquipment != nullptr) { |
| | | AfxMessageBox(pEquipment->getName().c_str()); |
| | | theApp.m_model.notifyPtr(RX_CODE_SELECT_EQUIPMENT, pEquipment); |
| | | } |
| | | |
| | | |
| | | *pResult = 0; |
| | | } |