LAPTOP-SNT8I5JK\Boounion
2025-05-23 6fc65c5cf54432d1044fbe9799aca76f7273798c
SourceCode/Bond/Servo/CPageGraph1.cpp
@@ -114,6 +114,7 @@
BOOL CPageGraph1::OnInitDialog()
{
   CDialogEx::OnInitDialog();
   InitRxWindows();
   SetTimer(1, 3000, nullptr);
@@ -197,13 +198,6 @@
   m_pGraph->AddIndicateBox(INDICATE_MEASUREMENT, 737, 516, 48, RGB(22, 22, 22),
      RGB(255, 127, 39), EQ_BOX_OFFLINE);
   m_pGraph->SetBoxText(INDICATE_MEASUREMENT, "13", "Measurement");
   // 绑定数据
   {
      SERVO::CEquipment* pEquipment = theApp.m_model.m_master.getEquipment(EQ_ID_EFEM);
      m_pGraph->SetIndicateBoxData(INDICATE_ROBOT_ARM1, pEquipment);
   }
   return TRUE;  // return TRUE unless you set the focus to a control
@@ -393,15 +387,44 @@
   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;
}
@@ -410,7 +433,6 @@
{
   if (1 == nIDEvent) {
      KillTimer(1);
      InitRxWindows();
      // 更新状态
      {