mrDarker
2025-06-19 576e5fc2d2db7d106dc264c685d5a59849082d1f
SourceCode/Bond/Servo/CEFEM.cpp
@@ -684,7 +684,7 @@
         CEqReadStep* pStep = new CEqReadStep(0x6301, 108 * 2,
            [&](void* pFrom, int code, const char* pszData, size_t size) -> int {
               if (code == ROK && pszData != nullptr && size > 0) {
                  decodePanelDataRequest((CStep*)pFrom, pszData, size);
                  decodeFacDataReport((CStep*)pFrom, pszData, size);
               }
               return -1;
            });
@@ -697,19 +697,30 @@
      }
      {
         // Panel Data Request
         // JOB Data Request
         CEqReadStep* pStep = new CEqReadStep(0x617d, 2 * 2,
            [&](void* pFrom, int code, const char* pszData, size_t size) -> int {
               if (code == ROK && pszData != nullptr && size > 0) {
                  decodePanelDataRequest((CStep*)pFrom, pszData, size);
                  decodeJobDataRequest((CStep*)pFrom, pszData, size);
                  // efme, 获取数据后返回
                  // Cassette Sequence No      1W
                  // Job Sequence No         1W
                  // Job DataS            256W
                  char szBuffer[1024] = { 0 };
                  CJobDataS* pJobDataS = m_pPort[3]->getJobDataSWithCassette(4001, 1);
                  if (pJobDataS != nullptr) {
                     int size = pJobDataS->serialize(szBuffer, 1024);
                     ((CEqReadStep*)pFrom)->setReturnData(szBuffer, size);
                  }
               }
               return -1;
            });
         pStep->setName(STEP_EFEM_PANEL_DATA_REQUEST);
         pStep->setProp("Port", (void*)1);
         pStep->setWriteSignalDev(0x15d);
         pStep->setReturnDev(0x73a);
         if (addStep(STEP_ID_PANEL_DATA_REQUEST, pStep) != 0) {
         pStep->setWriteSignalDev(0x35);
         pStep->setReturnDev(0x5EA);
         if (addStep(STEP_ID_JOB_DATA_REQUEST, pStep) != 0) {
            delete pStep;
         }
      }