LAPTOP-SNT8I5JK\Boounion
2025-05-10 0b32b5ca45370256da5bbfa8ca43014890258997
SourceCode/Bond/Servo/CEFEM.cpp
@@ -300,7 +300,7 @@
            CEqReadStep* pStep = new CEqReadStep(0x5c31 + 18 * i, 18 * 2,
               [&](void* pFrom, int code, const char* pszData, size_t size) -> int {
                  if (code == ROK && pszData != nullptr && size > 0) {
                     int port = (int)((CEqReadStep*)pFrom)->getProp("Port");
                     int port = (int)(__int64)((CEqReadStep*)pFrom)->getProp("Port");
                     if (port > 0) {
                        decodeFetchedOutJobReport(port, pszData, size);
                     }
@@ -312,6 +312,30 @@
            pStep->setProp("Port", (void*)(__int64)(i + 1));
            pStep->setWriteSignalDev(0x023 + i);
            if (addStep(STEP_ID_FETCHED_OUT_JOB_REPORT1 + i, pStep) != 0) {
               delete pStep;
            }
         }
      }
      {
         // Store Job Report #1~15
         char szBuffer[256];
         for (int i = 0; i < 15; i++) {
            CEqReadStep* pStep = new CEqReadStep(0x5b23 + 18 * i, 18 * 2,
               [&](void* pFrom, int code, const char* pszData, size_t size) -> int {
                  if (code == ROK && pszData != nullptr && size > 0) {
                     int port = (int)(__int64)((CEqReadStep*)pFrom)->getProp("Port");
                     if (port > 0) {
                        decodeStoredJobReport(port, pszData, size);
                     }
                  }
                  return -1;
               });
            sprintf_s(szBuffer, "%s%d", STEP_EQ_STORED_JOBn, i + 1);
            pStep->setName(szBuffer);
            pStep->setProp("Port", (void*)(__int64)(i + 1));
            pStep->setWriteSignalDev(0x014 + i);
            if (addStep(STEP_ID_STORE_JOB_REPORT1 + i, pStep) != 0) {
               delete pStep;
            }
         }
@@ -407,4 +431,34 @@
      return -1;
   }
   int CEFEM::onStore(int port, const char* pszGlassId)
   {
      if (port == 1) {
         return m_pPort[0]->storedJob(pszGlassId);
      }
      if (port == 2) {
         return m_pPort[1]->storedJob(pszGlassId);
      }
      if (port == 3) {
         return m_pPort[2]->storedJob(pszGlassId);
      }
      if (port == 4) {
         return m_pPort[3]->storedJob(pszGlassId);
      }
      if (port == 5) {
         return m_pArmTray[0]->storedJob(pszGlassId);
      }
      if (port == 6) {
         return m_pArmTray[1]->storedJob(pszGlassId);
      }
      if (port == 7) {
         return m_pAligner->storedJob(pszGlassId);
      }
      if (port == 8) {
         return m_pFliper->storedJob(pszGlassId);
      }
      return -1;
   }
}