chenluhua1980
2026-01-09 6b306b81f8a07c3e36676a0a5c305b3b1ea68c60
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
@@ -349,6 +362,28 @@
   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;
}
int CHsmsActive::hsmsQueryPPIDList()
{
   IMessage* pMessage = nullptr;