chenluhua1980
2026-01-09 6b306b81f8a07c3e36676a0a5c305b3b1ea68c60
SourceCode/Bond/Servo/HsmsPassive.h
@@ -138,7 +138,7 @@
   int deleteReport(int rptid);
   int addReport(int rptid, const std::vector<unsigned int>& vids);
   int updateReport(int rptid, const std::vector<unsigned int>& vids);
   void clearAllReport();
   void clearAllReport(BOOL bSave = FALSE);
   // 从文件中加载CVariable列表
   int loadVarialbles(const char* pszFilepath);
@@ -150,6 +150,8 @@
   // 取得指定Variable
   SERVO::CVariable* getVariable(int variableId);
   SERVO::CVariable* getVariable(const char* pszName);
   int getCurrentControlState();
   bool isHostCommandAllowed();
   int deleteVariable(int variableId);
   int addVariable(const char* pszName, const char* pszFormat, const char* pszRemark, int& outId);
   int updateVariable(int variableId, const char* pszName, const char* pszFormat, const char* pszRemark);
@@ -158,6 +160,8 @@
   void setVariableValue(const char* pszName, __int64 value);
   void setVariableValue(const char* pszName, const char* value);
   void setVariableValue(const char* pszName, std::vector<SERVO::CVariable>& vars);
   // 执行一段持锁的代码块,用于保证 set+send 的原子性
   void withVariableLock(const std::function<void()>& fn);
   // 从文件中加载CReport列表
   int loadReports(const char* pszFilepath);
@@ -220,6 +224,8 @@
   int requestEventReportSend_OCR_PanelID_Read_OK();
   int requestEventReportSend_LoadPortNotAssoc();
   int requestEventReportSend_ProcessDataReport();
   int requestEventReportSend_SubEqpStart();
   int requestEventReportSend_SubEqpEnd();
private:
   void replyAck(int s, int f, unsigned int systemBytes, BYTE ack, const char* pszAckName);
@@ -228,6 +234,8 @@
   int replyAreYouThere(IMessage* pRecv);
   int replyEstablishCommunications(IMessage* pRecv);
   int replySelectedEquipmentStatusData(IMessage* pRecv);
   int replyStatusVariableNamelistRequest(IMessage* pRecv);  // S1F11/S1F12
   int replyCollectionEventNamelistRequest(IMessage* pRecv); // S1F23/S1F24
   int replyOnLine(IMessage* pRecv);
   int replyOffLine(IMessage* pRecv);
   int replyEquipmentConstantRequest(IMessage* pRecv);
@@ -298,6 +306,13 @@
   // CollectionEvent vector
   std::vector<SERVO::CCollectionEvent*> m_collectionEvents;
   // Spooling Config
   std::map<uint16_t, std::set<uint16_t>> m_spoolingConfig;
   // Spooling blacklist: StreamId -> {FunctionId...}
   // In this map means DO NOT spool/cache.
   // Special case: stream 1 is not spooled regardless of config.
   // If a stream key exists with empty set => blacklist ALL functions in that stream.
   std::map<uint16_t, std::set<uint16_t>> m_spoolBlacklistByStream;
   bool m_spoolingEnabled{ true };
private:
   bool shouldSpool(uint8_t streamId, uint8_t functionId) const;
};