chenluhua1980
2026-01-10 6d140a6e6f2c24c9c7de46bb7c375ae4cbf931e7
SourceCode/Bond/EAPSimulator/CHsmsActive.cpp
@@ -5,6 +5,19 @@
static unsigned short DATAID = 1;
// Truncated SECS message logging to avoid overly long strings crashing UI/log
static void LogSecsMessageBrief(const char* tag, IMessage* pMessage, size_t maxLen = 1024)
{
   if (pMessage == nullptr) return;
   const char* msgStr = pMessage->toString();
   if (msgStr == nullptr) return;
   std::string buf(msgStr);
   if (buf.size() > maxLen) {
      buf = buf.substr(0, maxLen) + "...<truncated>";
   }
   LOGI("%s%s", tag, buf.c_str());
}
CHsmsActive::CHsmsActive()
{
   m_listener = {};
@@ -65,8 +78,8 @@
      int nStream = (pHeader->stream & 0x7F);
      TRACE("收到消息 S%dF%d================\n", pHeader->stream & 0x7F, pHeader->function);
      TRACE("Body:%s\n", pMessage->toString());
      LOGI("onRecvDataMessage(%s).", pMessage->toString());
      LogSecsMessageBrief("Body:", pMessage);
      LogSecsMessageBrief("onRecvDataMessage:", pMessage);
      if (nStream == 5 && pHeader->function == 1) {
         // S5F1
@@ -342,10 +355,32 @@
   IMessage* pMessage = nullptr;
   int nRet = HSMS_Create1Message(pMessage, m_nSessionId, 1 | REPLY, 3, ++m_nSystemByte);
   pMessage->getBody()->addU4Item(SVID, "SVID");
   pMessage->getBody()->addU2Item(static_cast<unsigned short>(SVID), "SVID");
   m_pActive->sendMessage(pMessage);
   HSMS_Destroy1Message(pMessage);
   return 0;
}
int CHsmsActive::hsmsQueryAllStatusVariables()
{
   IMessage* pMessage = nullptr;
   int nRet = HSMS_Create1Message(pMessage, m_nSessionId, 1 | REPLY, 11, ++m_nSystemByte);
   // Host sends L:0 (empty list) to request all SVIDs.
   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;
}
@@ -359,6 +394,20 @@
   return 0;
}
int CHsmsActive::hsmsDeletePPID(const std::vector<std::string>& ppids)
{
   IMessage* pMessage = nullptr;
   int nRet = HSMS_Create1Message(pMessage, m_nSessionId, 7 | REPLY, 17, ++m_nSystemByte);
   if (nRet != 0 || pMessage == nullptr) return -1;
   ISECS2Item* pBody = pMessage->getBody();
   for (const auto& ppid : ppids) {
      pBody->addItem(ppid.c_str(), "PPID");
   }
   m_pActive->sendMessage(pMessage);
   HSMS_Destroy1Message(pMessage);
   return 0;
}
int CHsmsActive::hsmsCarrierActionRequest(unsigned int DATAID, 
   const char* pszCarrierAction, 
   const char* pszCarrierId,