mrDarker
2025-06-27 3b9f1a5229885901e646751242d9d88bf3d068ff
SourceCode/Bond/Servo/CBonder.cpp
@@ -337,6 +337,18 @@
      }
      {
         // Indexer Operation Mode Change
         CEqWriteStep* pStep = new CEqWriteStep();
         pStep->setName(STEP_EQ_IN_OP_MODE_CHANGE);
         pStep->setWriteSignalDev(0x370);
         pStep->setDataDev(0x923);
         pStep->setRetDataDev(0xa00e, 2);
         if (addStep(STEP_ID_IN_OP_CMD_REPLY, pStep) != 0) {
            delete pStep;
         }
      }
      {
         // Panel Data Report
         CEqReadStep* pStep = new CEqReadStep(0xA17f, 386 * 2,
            [&](void* pFrom, int code, const char* pszData, size_t size) -> int {
@@ -369,6 +381,38 @@
            delete pStep;
         }
      }
      // process start/end report
      {
         CEqReadStep* pStep = new CEqReadStep(m_nIndex == 0 ? 0x9D3F : 0xDD3F, 13 * 2,
            [&](void* pFrom, int code, const char* pszData, size_t size) -> int {
               if (code == ROK && pszData != nullptr && size > 0) {
                  decodeJobProcessStartReport((CStep*)pFrom, pszData, size);
               }
               return -1;
            });
         pStep->setName(STEP_EQ_JOB_PROCESS_START_REPORT);
         pStep->setProp("Port", (void*)1);
         pStep->setWriteSignalDev(m_nIndex == 0 ? 0x333 : 0x633);
         if (addStep(STEP_ID_JOB_PROCESS_START_REPORT, pStep) != 0) {
            delete pStep;
         }
      }
      {
         CEqReadStep* pStep = new CEqReadStep(m_nIndex == 0 ? 0x9D4C : 0xDD4C, 13 * 2,
            [&](void* pFrom, int code, const char* pszData, size_t size) -> int {
               if (code == ROK && pszData != nullptr && size > 0) {
                  decodeJobProcessEndReport((CStep*)pFrom, pszData, size);
               }
               return -1;
            });
         pStep->setName(STEP_EQ_JOB_PROCESS_END_REPORT);
         pStep->setProp("Port", (void*)1);
         pStep->setWriteSignalDev(m_nIndex == 0 ? 0x334 : 0x634);
         if (addStep(STEP_ID_JOB_PROCESS_END_REPORT, pStep) != 0) {
            delete pStep;
         }
      }
   }
   // 必须要实现的虚函数,在此初始化Slot信息
@@ -389,6 +433,17 @@
   void CBonder::onTimer(UINT nTimerid)
   {
      CEquipment::onTimer(nTimerid);
      // test
      /*
      static int i[2] = { 0, 0 };
      i[m_nIndex]++;
      if (i[m_nIndex] == 15) {
         char szBuffer[26];
         decodeJobProcessStartReport(getStep(STEP_ID_JOB_PROCESS_START_REPORT), szBuffer, 26);
      }
      */
   }
   void CBonder::serialize(CArchive& ar)