| | |
| | | #include "CPageCassetteCtrlCmd.h" |
| | | #include "CJobDataB.h" |
| | | |
| | | #define WM_MANUAL_ROUTE_REAPPLY (WM_APP + 105) |
| | | |
| | | |
| | | // CPageGraph2 对话框 |
| | | |
| | |
| | | ON_WM_DESTROY() |
| | | ON_WM_SIZE() |
| | | ON_WM_TIMER() |
| | | ON_MESSAGE(WM_MANUAL_ROUTE_REAPPLY, &CPageGraph2::OnManualRouteMsg) |
| | | END_MESSAGE_MAP() |
| | | |
| | | |
| | |
| | | }; |
| | | listener.onEqItemPosChanged = [&](EQITEM* pItem, int x, int y) -> void { |
| | | ASSERT(pItem); |
| | | PostMessage(WM_MANUAL_ROUTE_REAPPLY, 0, 0); |
| | | }; |
| | | listener.onDblckEqItem = [&](EQITEM* pItem) -> bool { |
| | | ASSERT(pItem); |
| | |
| | | } |
| | | } |
| | | |
| | | void CPageGraph2::ApplyManualRoutes() |
| | | { |
| | | if (m_pEqsGraphWnd == nullptr) { |
| | | return; |
| | | } |
| | | |
| | | auto pMeasurement = (SERVO::CEquipment*)theApp.m_model.m_master.getEquipment(EQ_ID_MEASUREMENT); |
| | | auto pLoadPort1 = (SERVO::CEquipment*)theApp.m_model.m_master.getEquipment(EQ_ID_LOADPORT1); |
| | | auto pLoadPort3 = (SERVO::CEquipment*)theApp.m_model.m_master.getEquipment(EQ_ID_LOADPORT3); |
| | | auto pLoadPort4 = (SERVO::CEquipment*)theApp.m_model.m_master.getEquipment(EQ_ID_LOADPORT4); |
| | | if (pMeasurement == nullptr || pLoadPort1 == nullptr || pLoadPort3 == nullptr) { |
| | | return; |
| | | } |
| | | |
| | | SERVO::CPin* pOut1 = pMeasurement->getPin("Out1"); |
| | | SERVO::CPin* pOut2 = pMeasurement->getPin("Out2"); |
| | | SERVO::CPin* pIn1 = pLoadPort1->getPin("In"); |
| | | SERVO::CPin* pIn3 = pLoadPort3->getPin("In"); |
| | | if (pOut1 == nullptr || pOut2 == nullptr || pIn1 == nullptr || pIn3 == nullptr) { |
| | | return; |
| | | } |
| | | |
| | | if (pOut1->getConnectedPin() == pIn1) { |
| | | PIN* pGraphOut1 = m_pEqsGraphWnd->GetPin((DWORD_PTR)pMeasurement, (DWORD_PTR)pOut1); |
| | | PIN* pGraphIn1 = m_pEqsGraphWnd->GetPin((DWORD_PTR)pLoadPort1, (DWORD_PTR)pIn1); |
| | | if (pGraphOut1 != nullptr && pGraphIn1 != nullptr) { |
| | | m_pEqsGraphWnd->SetManualRoute(pGraphOut1, pGraphIn1, TRUE); |
| | | } |
| | | } |
| | | |
| | | if (pOut2->getConnectedPin() == pIn3) { |
| | | PIN* pGraphOut2 = m_pEqsGraphWnd->GetPin((DWORD_PTR)pMeasurement, (DWORD_PTR)pOut2); |
| | | PIN* pGraphIn3 = m_pEqsGraphWnd->GetPin((DWORD_PTR)pLoadPort3, (DWORD_PTR)pIn3); |
| | | if (pGraphOut2 != nullptr && pGraphIn3 != nullptr) { |
| | | m_pEqsGraphWnd->SetManualRoute(pGraphOut2, pGraphIn3, FALSE); |
| | | if (pLoadPort4 != nullptr && pGraphOut2->nLinePtCount >= 6) { |
| | | EQITEM* pGraphPort4 = m_pEqsGraphWnd->GetItem((DWORD_PTR)pLoadPort4); |
| | | if (pGraphPort4 != nullptr) { |
| | | int yTarget = pGraphPort4->rect.bottom + 20; |
| | | if (pGraphOut2->ptConnectedLine[2].y < yTarget) { |
| | | pGraphOut2->ptConnectedLine[2].y = yTarget; |
| | | pGraphOut2->ptConnectedLine[3].y = yTarget; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | void CPageGraph2::OnTimer(UINT_PTR nIDEvent) |
| | | { |
| | | if (1 == nIDEvent) { |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | ApplyManualRoutes(); |
| | | } |
| | | |
| | | CDialogEx::OnTimer(nIDEvent); |
| | | } |
| | | |
| | | LRESULT CPageGraph2::OnManualRouteMsg(WPARAM wParam, LPARAM lParam) |
| | | { |
| | | ApplyManualRoutes(); |
| | | CWnd* pGraphWnd = GetDlgItem(IDC_EQSGRAPHWND1); |
| | | if (pGraphWnd != nullptr) { |
| | | pGraphWnd->Invalidate(FALSE); |
| | | } |
| | | return 0; |
| | | } |
| | | |
| | | void CPageGraph2::SaveEqsGraphData() |
| | | { |
| | | char szFilepath[MAX_PATH]; |