chenluhua1980
2026-01-24 fbc7719e6c3386418014b92c033d84a3c930e58b
SourceCode/Bond/EAPSimulator/CHsmsActive.cpp
@@ -373,12 +373,50 @@
   return 0;
}
int CHsmsActive::hsmsQueryAllDataVariables()
{
   IMessage* pMessage = nullptr;
   int nRet = HSMS_Create1Message(pMessage, m_nSessionId, 1 | REPLY, 21, ++m_nSystemByte);
   // Host sends L:0 (empty list) to request all DVIDs.
   pMessage->getBody()->addItem(); // empty list
   m_pActive->sendMessage(pMessage);
   HSMS_Destroy1Message(pMessage);
   return 0;
}
int CHsmsActive::hsmsQueryAllCollectionEvents()
{
   IMessage* pMessage = nullptr;
   int nRet = HSMS_Create1Message(pMessage, m_nSessionId, 1 | REPLY, 23, ++m_nSystemByte);
   // Host sends L:0 (empty list) to request all CEIDs.
   pMessage->getBody()->addItem(); // empty list
   m_pActive->sendMessage(pMessage);
   HSMS_Destroy1Message(pMessage);
   return 0;
}
int CHsmsActive::hsmsEquipmentConstantRequest(const std::vector<unsigned short>& ecids)
{
   IMessage* pMessage = nullptr;
   int nRet = HSMS_Create1Message(pMessage, m_nSessionId, 2 | REPLY, 13, ++m_nSystemByte);
   for (auto id : ecids) {
      pMessage->getBody()->addU2Item(id, "ECID");
   }
   m_pActive->sendMessage(pMessage);
   HSMS_Destroy1Message(pMessage);
   return 0;
}
int CHsmsActive::hsmsEquipmentConstantSend(const std::vector<std::pair<unsigned short, std::string>>& ecidValues)
{
   IMessage* pMessage = nullptr;
   int nRet = HSMS_Create1Message(pMessage, m_nSessionId, 2 | REPLY, 15, ++m_nSystemByte);
   ISECS2Item* pBody = pMessage->getBody();
   for (const auto& kv : ecidValues) {
      ISECS2Item* pEntry = pBody->addItem();
      pEntry->addU2Item(kv.first, "ECID");
      pEntry->addItem(kv.second.c_str(), "ECV");
   }
   m_pActive->sendMessage(pMessage);
   HSMS_Destroy1Message(pMessage);
   return 0;
@@ -408,6 +446,19 @@
   return 0;
}
int CHsmsActive::hsmsProcessProgramRequest(const char* pszPPID)
{
   if (pszPPID == nullptr || strlen(pszPPID) == 0) return -1;
   IMessage* pMessage = nullptr;
   if (HSMS_Create1Message(pMessage, m_nSessionId, 7 | REPLY, 5, ++m_nSystemByte) != 0 || pMessage == nullptr) {
      return -1;
   }
   pMessage->getBody()->setString(pszPPID, "PPID");
   m_pActive->sendMessage(pMessage);
   HSMS_Destroy1Message(pMessage);
   return 0;
}
int CHsmsActive::hsmsCarrierActionRequest(unsigned int DATAID, 
   const char* pszCarrierAction, 
   const char* pszCarrierId,