SourceCode/Bond/Servo/HsmsPassive.cpp
@@ -521,6 +521,9 @@
      else if (nStream == 2 && pHeader->function == 41) {
         replyCommand(pMessage);
      }
      else if (nStream == 2 && pHeader->function == 43) {
         replyConfigureSpooling(pMessage);
      }
      else if (nStream == 5 && pHeader->function == 3) {
         replyEanbleDisableAlarmReport(pMessage);
      }
@@ -665,6 +668,7 @@
   SetEvent(m_hCimWorkEvent);
   Unlock();
   return ER_NOERROR;
}
@@ -1067,6 +1071,51 @@
   return 0;
}
// S2F43
int CHsmsPassive::replyConfigureSpooling(IMessage* pRecv)
{
   if (m_pPassive == NULL || STATE::SELECTED != m_pPassive->getState()) {
      return ER_NOTSELECT;
   }
   ISECS2Item* pBody = pRecv->getBody();
   if (pBody == nullptr || pBody->getType() != SITYPE::L) ER_PARAM_ERROR;
   // 清空所有
   if (pBody->getSubItemSize() == 0) {
      m_spoolingConfig.clear();
      goto MYREPLY;
   }
   // 依次配置Stream
   for (int i = 0; i < pBody->getSubItemSize(); i++) {
      ISECS2Item* pStreamItem = pBody->getSubItem(i);
      ASSERT(pStreamItem);
      unsigned char STRID, FCNID;
      pStreamItem->getSubItemU1(0, STRID);
      ISECS2Item* pFcnItemList = pStreamItem->getSubItem(1);
      if (pFcnItemList->getSubItemSize() == 0) {
         m_spoolingConfig[STRID].clear();
      }
      else {
         for (int j = 0; j < pFcnItemList->getSubItemSize(); j++) {
            pFcnItemList->getSubItemU1(j, FCNID);
            m_spoolingConfig[STRID].insert(FCNID);
         }
      }
   }
   // 打印验证结果
   for (auto s : m_spoolingConfig) {
      LOGI("====> stream:%d", s.first);
      for (auto f : s.second) {
         LOGI("function:%d", f);
      }
   }
MYREPLY:
   replyAck(2, 42, pRecv->getHeader()->systemBytes, BYTE(0), "ERACK");
   return 0;
}
// S5F3
int CHsmsPassive::replyEanbleDisableAlarmReport(IMessage* pRecv)
{
@@ -1182,6 +1231,18 @@
   SetEvent(m_hCimWorkEvent);
   Unlock();
   int size = pAction->serialize(nullptr, 0);;
   if (size > 0) {
      char* pszBuffer = new char[size];
      pAction->serialize(pszBuffer, size);
      AfxMessageBox("abc");
      CHsmsAction* pAction2 = new CHsmsAction();
      pAction2->unserialize(pszBuffer, size);
      AfxMessageBox("def");
      m_pPassive->sendMessage(pAction2->getSendMessage());
   }
   return ER_NOERROR;
}