LAPTOP-SNT8I5JK\Boounion
2025-09-11 da9868ca4cb6acccea7f5b6592d23379f9ae14a6
SourceCode/Bond/Servo/Model.cpp
@@ -8,6 +8,7 @@
#include "CGlassPool.h"
#include "TransferManager.h"
#include "RecipeManager.h"
#include "GlassLogDb.h"
CModel::CModel()
@@ -382,10 +383,24 @@
         }
         m_hsmsPassive.requestEventReportSend_CarrierID_Readed();
      }
      else if (status == PORT_BLOCKED) {
         SERVO::CLoadPort* pLoadPort = dynamic_cast<SERVO::CLoadPort*>(pEquipment);
         if (pLoadPort != nullptr) {
            m_hsmsPassive.setVariableValue("BlockedPortId", pLoadPort->getID());
         }
         m_hsmsPassive.requestEventReportSend_Port_Blocked();
      }
      else if (status == PORT_LOAD_READY) {
         SERVO::CLoadPort* pLoadPort = dynamic_cast<SERVO::CLoadPort*>(pEquipment);
         if (pLoadPort != nullptr) {
            m_hsmsPassive.setVariableValue("LoadReadyPortId", pLoadPort->getID());
         }
         m_hsmsPassive.requestEventReportSend_Port_Load_Ready();
      }
      else if (status == PORT_UNLOAD_READY) {
         SERVO::CLoadPort* pLoadPort = dynamic_cast<SERVO::CLoadPort*>(pEquipment);
         if (pLoadPort != nullptr) {
            m_hsmsPassive.setVariableValue("PortId", pLoadPort->getID());
            m_hsmsPassive.setVariableValue("UnloadReadyPortId", pLoadPort->getID());
         }
         m_hsmsPassive.requestEventReportSend_Port_Unload_Ready();
      }
@@ -413,13 +428,15 @@
      m_hsmsPassive.setVariableValue("PJEndID", ((SERVO::CProcessJob*)pj)->id().c_str());
      m_hsmsPassive.requestEventReportSend_PJ_End();
   };
   masterListener.onPanelStart = [&](void* pMaster, void* pj) {
      m_hsmsPassive.setVariableValue("PanelStartID", ((SERVO::CGlass*)pj)->getID().c_str());
   masterListener.onPanelStart = [&](void* pMaster, void* pPanel) {
      m_hsmsPassive.setVariableValue("PanelStartID", ((SERVO::CGlass*)pPanel)->getID().c_str());
      m_hsmsPassive.requestEventReportSend_Panel_Start();
   };
   masterListener.onPanelEnd = [&](void* pMaster, void* pj) {
      m_hsmsPassive.setVariableValue("PanelEndID", ((SERVO::CGlass*)pj)->getID().c_str());
   masterListener.onPanelEnd = [&](void* pMaster, void* pPanel) {
      m_hsmsPassive.setVariableValue("PanelEndID", ((SERVO::CGlass*)pPanel)->getID().c_str());
      m_hsmsPassive.requestEventReportSend_Panel_End();
      auto& db = GlassLogDb::Instance();
      db.insertFromCGlass((*(SERVO::CGlass*)pPanel));
   };
   m_master.setListener(masterListener);
   m_master.setContinuousTransferCount(m_configuration.getContinuousTransferCount());
@@ -447,6 +464,11 @@
   alarmManager.readAlarmFile(szBuffer);
   // Glass数据库
   strLogDir.Format(_T("%s\\db\\process.db"), (LPTSTR)(LPCTSTR)m_strWorkDir);
   std::string path((LPTSTR)(LPCTSTR)strLogDir);
   GlassLogDb::Init(path);
   return 0;
}