LAPTOP-SNT8I5JK\Boounion
2025-04-26 410ea79955e2d115643a38f40e006f1aeaba897b
SourceCode/Bond/Servo/CMaster.cpp
@@ -34,7 +34,7 @@
   CMaster::CMaster()
   {
      m_listener = {nullptr, nullptr, nullptr};
      m_listener = {nullptr, nullptr, nullptr, nullptr};
      m_bDataModify = FALSE;
      m_hEventReadBitsThreadExit[0] = ::CreateEvent(NULL, TRUE, FALSE, NULL);
      m_hEventReadBitsThreadExit[1] = ::CreateEvent(NULL, TRUE, FALSE, NULL);
@@ -65,6 +65,7 @@
      m_listener.onEqAlive = listener.onEqAlive;
      m_listener.onEqCimStateChanged = listener.onEqCimStateChanged;
      m_listener.onEqAlarm = listener.onEqAlarm;
      m_listener.onEqVcrEventReport = listener.onEqVcrEventReport;
   }
   int CMaster::init()
@@ -197,6 +198,13 @@
         CEquipment* p = (CEquipment*)pEquipment;
         if (m_listener.onEqAlarm != nullptr) {
            m_listener.onEqAlarm(this, p, state, alarmId, unitId, level);
         }
      };
      listener.onVcrEventReport = [&](void* pEquipment, void* pReport) -> void {
         CEquipment* p = (CEquipment*)pEquipment;
         CVcrEventReport* p2 = (CVcrEventReport*)pReport;
         if (m_listener.onEqVcrEventReport != nullptr) {
            m_listener.onEqVcrEventReport(this, p, p2);
         }
      };
      listener.onDataChanged = [&](void* pEquipment, int code) -> void {
@@ -433,6 +441,16 @@
         }
      }
      {
         // VCR1 Event Report
         CEqVcrEventStep* pStep = new CEqVcrEventStep();
         pStep->setName(STEP_EQ_VCR1_EVENT_REPORT);
         pStep->setWriteSignalDev(0x4a);
         pStep->setVcrEventReportDev(0x5fef);
         if (pEquipment->addStep(STEP_ID_VCR1_EVENT_REPORT, pStep) != 0) {
            delete pStep;
         }
      }
      {
         CEqCimMessageClearStep* pStep = new CEqCimMessageClearStep();
         pStep->setName(STEP_CIM_MESSAGE_CLEAR);
         pStep->setWriteSignalDev(0x72);