SourceCode/Bond/Servo/CEquipment.cpp
@@ -23,7 +23,7 @@
   CEquipment::CEquipment() : m_nID(0), m_strName(""), m_strDescription(""), m_station(0, 255)
   {
      m_listener = { nullptr, nullptr, nullptr };
      m_listener = { nullptr, nullptr, nullptr, nullptr };
      m_alive = {FALSE, 0, FALSE};
      m_bCimState = FALSE;
      m_bUpstreamInline = FALSE;
@@ -65,6 +65,7 @@
   {
      m_listener.onAlive = listener.onAlive;
      m_listener.onCimStateChanged = listener.onCimStateChanged;
      m_listener.onAlarm = listener.onAlarm;
      m_listener.onDataChanged = listener.onDataChanged;
   }
@@ -485,6 +486,26 @@
      return m_bVCREnable[index];
   }
   int CEquipment::onStepEvent(CStep* pStep, int code)
   {
      if (code == STEP_EVENT_READDATA) {
         if (isAlarmStep(pStep)) {
            SERVO::CEqAlarmStep* pEqAlarmStep = (SERVO::CEqAlarmStep*)pStep;
            int state = pEqAlarmStep->getAlarmState();
            ASSERT(state == 0 || state == 1);
            if (m_listener.onAlarm != nullptr) {
               m_listener.onAlarm(this, state,
                  pEqAlarmStep->getAlarmId(),
                  pEqAlarmStep->getUnitId(),
                  pEqAlarmStep->getAlarmLevel());
            }
         }
      }
      return 0;
   }
   CPin* CEquipment::addPin(PinType type, char* pszName)
   {
      // 不允许名字添加重复的pin
@@ -715,4 +736,10 @@
      return pGlass;
   }
   bool CEquipment::isAlarmStep(SERVO::CStep* pStep)
   {
      return CToolUnits::startsWith(pStep->getName(), STEP_ALARM_START);
   }
}