LAPTOP-SNT8I5JK\Boounion
2025-09-22 9e9e63ef44ff672989d7b78bf37afb2054267671
SourceCode/Bond/Servo/CMaster.cpp
@@ -1541,12 +1541,52 @@
                     carrier->contexts.push_back((void*)pGlass);
                     if (pGlass != nullptr) {
                        pGlass->setProcessJob(pj);
                        PJWarp& jpWarp = pj->getPjWarp();
                        int nRecipeID = RecipeManager::getInstance().getIdByPPID(pj->recipeSpec());
                        RecipeInfo stRecipeInfo = RecipeManager::getInstance().getRecipeByPPID(pj->recipeSpec());
                        std::vector<DeviceRecipe> vecRecipeInfo = stRecipeInfo.vecDeviceList;
                        pGlass->setScheduledForProcessing(jpWarp.checkSlot[slot-1]);
                        pGlass->setType(static_cast<SERVO::MaterialsType>(jpWarp.material[slot-1]));
                        SERVO::CJobDataS* pJobDataS = pGlass->getJobDataS();
                        if (pJobDataS != nullptr) {
                           SERVO::CJobDataS* pJobDataS = pGlass->getJobDataS();
                           pJobDataS->setLotId(pj->getLotId().c_str());
                           pJobDataS->setProductId(pj->getProductId().c_str());
                           pJobDataS->setOperationId(pj->getOperationId().c_str());
                           pJobDataS->setMaterialsType(jpWarp.material[slot - 1]);
                           pJobDataS->setMasterRecipe(nRecipeID);
                           for (const auto& info : vecRecipeInfo) {
                              const std::string& name = info.strDeviceName;
                              short nRecipeID = (short)info.nRecipeID;
                              if (name == EQ_NAME_EFEM) {
                                 pJobDataS->setDeviceRecipeId(0, nRecipeID);
                     }
                              else if (name == EQ_NAME_BONDER1) {
                                 pJobDataS->setDeviceRecipeId(1, nRecipeID);
                  }
                              else if (name == EQ_NAME_BONDER2) {
                                 pJobDataS->setDeviceRecipeId(2, nRecipeID);
                              }
                              else if (name == EQ_NAME_BAKE_COOLING) {
                                 pJobDataS->setDeviceRecipeId(3, nRecipeID);
                              }
                              else if (name == EQ_NAME_VACUUMBAKE) {
                                 pJobDataS->setDeviceRecipeId(4, nRecipeID);
                              }
                              else if (name == EQ_NAME_MEASUREMENT) {
                                 pJobDataS->setDeviceRecipeId(5, nRecipeID);
               }
            }
                        }
                     }
                  }
               }
            }
         }
         
         if (m_listener.onLoadPortStatusChanged != nullptr) {
@@ -2271,7 +2311,15 @@
      return 0;
   }
   void CMaster::setPortType(unsigned int index, BOOL enable, int type, int mode,
   void CMaster::setPortType(unsigned int index, int type)
   {
      ASSERT(index < 4);
      int eqid[] = { EQ_ID_LOADPORT1, EQ_ID_LOADPORT2, EQ_ID_LOADPORT3, EQ_ID_LOADPORT4};
      CLoadPort* pPort = (CLoadPort*)getEquipment(eqid[index]);
      pPort->localSetPortType((SERVO::PortType)type);
   }
   void CMaster::setPortTypeEx(unsigned int index, BOOL enable, int type, int mode,
      int cassetteType, int transferMode, BOOL autoChangeEnable)
   {
      ASSERT(index < 4);