LAPTOP-SNT8I5JK\Boounion
2025-04-11 92dee0d8070594c351008d02fd9645c9e5de80a7
SourceCode/Bond/Servo/CEquipment.cpp
@@ -24,7 +24,7 @@
   CEquipment::CEquipment() : m_nID(0), m_strName(""), m_strDescription(""), m_station(0, 255)
   {
      m_listener = { nullptr, nullptr, nullptr, nullptr };
      m_alive = {FALSE, 0, FALSE};
      m_alive = { FALSE, 0, FALSE };
      m_bCimState = FALSE;
      m_bUpstreamInline = FALSE;
      m_bDownstreamInline = FALSE;
@@ -328,7 +328,7 @@
            }
         }
      }
      // CIM State
      bFlag = isBitOn(pszData, size, ++index);
      if (!equalBool(m_bCimState, bFlag)) {
@@ -383,6 +383,8 @@
      // CIM Mode
      CHECK_WRITE_STEP_SIGNAL(0x350, pszData, size);
      // EQ Mode
      CHECK_WRITE_STEP_SIGNAL(0x355, pszData, size);
      // Port1 ~ Port4
      CHECK_READ_STEP_SIGNAL(0x3e0, pszData, size);
@@ -495,11 +497,13 @@
            int state = pEqAlarmStep->getAlarmState();
            ASSERT(state == 0 || state == 1);
            if (m_listener.onAlarm != nullptr) {
               m_listener.onAlarm(this, state,
               m_listener.onAlarm(this, state,
                  pEqAlarmStep->getAlarmId(),
                  pEqAlarmStep->getUnitId(),
                  pEqAlarmStep->getAlarmLevel());
            }
            return 1;
         }
      }
@@ -748,4 +752,27 @@
      return CToolUnits::startsWith(pStep->getName(), "EQPort")
         && pStep->getName().find("Cassette") != std::string::npos;
   }
}
   int CEquipment::setEqMode(short mode)
   {
      SERVO::CEqModeChangeStep* pStep = (SERVO::CEqModeChangeStep*)getStepWithName(STEP_EQ_MODE_CHANGE);
      if (pStep == nullptr) {
         return -1;
      }
      return pStep->setEqMode(mode);
   }
   int CEquipment::setCimMode(BOOL bOn)
   {
      SERVO::CEqCimModeChangeStep* pStep = (SERVO::CEqCimModeChangeStep*)getStepWithName(STEP_CIM_MODE_CHANGE);
      if (pStep == nullptr) {
         return -1;
      }
      if (bOn)
         return pStep->cimOn();
      else
         return pStep->cimOff();
   }
}