LAPTOP-SNT8I5JK\Boounion
2025-08-07 b61e36d522da06650b393e6a8becfc12c892d285
SourceCode/Bond/Servo/CMaster.cpp
@@ -748,10 +748,17 @@
               CHECK_RUN_ACTIVE_ROBOT_TASK(m_pActiveRobotTask);
            }
            // Bonder2 -> BakeCooling
            // VacuumBake(G1) -> BakeCooling
            if (!rmd.armState[0]) {
               m_pActiveRobotTask = createTransferTask_continuous_transfer(pVacuumBake,
                  0, pBakeCooling, 0);
               CHECK_RUN_ACTIVE_ROBOT_TASK(m_pActiveRobotTask);
            }
            // Bonder2 -> VacuumBake(G1)
            if (!rmd.armState[0]) {
               m_pActiveRobotTask = createTransferTask_continuous_transfer(pBonder2,
                  0, pBakeCooling, 0);
                  0, pVacuumBake, 0);
               CHECK_RUN_ACTIVE_ROBOT_TASK(m_pActiveRobotTask);
            }
@@ -762,17 +769,10 @@
               CHECK_RUN_ACTIVE_ROBOT_TASK(m_pActiveRobotTask);
            }
            // VacuumBake(G1) -> Bonder1
            // Fliper(G2) -> Bonder1
            if (!rmd.armState[0] && !pBonder1->hasBondClass()) {
               m_pActiveRobotTask = createTransferTask_continuous_transfer(pVacuumBake,
                  0, pBonder1, 0);
               CHECK_RUN_ACTIVE_ROBOT_TASK(m_pActiveRobotTask);
            }
            // Fliper(G2) -> VacuumBake(G1)
            if (!rmd.armState[0]) {
               m_pActiveRobotTask = createTransferTask_continuous_transfer(pFliper,
                  0, pVacuumBake, 0);
                  0, pBonder1, 1);
               CHECK_RUN_ACTIVE_ROBOT_TASK(m_pActiveRobotTask);
            }
@@ -1034,7 +1034,7 @@
            ((CEquipment*)pEquipment)->getName().c_str(), scanMap, downMap);
      };
      listener.onPortStatusChanged = [&](void* pEquipment, short status, __int64 data) {
         LOGE("<Master-%s>Port InUse。status=%d, data=%lld", ((CEquipment*)pEquipment)->getName().c_str(), status);
         LOGE("<Master-%s>onPortStatusChanged。status=%d, data=%lld", ((CEquipment*)pEquipment)->getName().c_str(), status);
         if (m_listener.onLoadPortStatusChanged != nullptr) {
            m_listener.onLoadPortStatusChanged(this, (CEquipment*)pEquipment, status, data);
         }
@@ -1703,4 +1703,24 @@
   {
      return m_bEnableAlarmReport;
   }
   int CMaster::proceedWithCarrier(unsigned int port)
   {
      if (port >= 4) return -1;
      static int pid[] = { EQ_ID_LOADPORT1, EQ_ID_LOADPORT2, EQ_ID_LOADPORT3, EQ_ID_LOADPORT4};
      CLoadPort* pPort = (CLoadPort*)getEquipment(pid[port]);
      pPort->sendCassetteCtrlCmd(CCC_PROCESS_START, nullptr, 0, 0, 0, nullptr, nullptr);
      return 0;
   }
   int CMaster::carrierRelease(unsigned int port)
   {
      if (port >= 4) return -1;
      static int pid[] = { EQ_ID_LOADPORT1, EQ_ID_LOADPORT2, EQ_ID_LOADPORT3, EQ_ID_LOADPORT4 };
      CLoadPort* pPort = (CLoadPort*)getEquipment(pid[port]);
      pPort->sendCassetteCtrlCmd(CCC_PROCESS_CANCEL, nullptr, 0, 0, 0, nullptr, nullptr);
      return 0;
   }
}