chenluhua1980
2026-01-06 4d9d8d22e3666076988c30afb4e7c6fe365c19aa
SourceCode/Bond/Servo/HsmsPassive.h
@@ -135,17 +135,24 @@
   // 取消 define report
   bool removeReport(int rptid);
   void clearAllReport();
   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(BOOL bSave = FALSE);
   // 从文件中加载CVariable列表
   int loadVarialbles(const char* pszFilepath);
   // 取得CVariable列表
   std::vector<SERVO::CVariable*>& getVariables();
   unsigned int getMaxVariableId() const;
   // 取得指定Variable
   SERVO::CVariable* getVariable(int variableId);
   SERVO::CVariable* getVariable(const char* pszName);
   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);
   // 设置变量值
   void setVariableValue(const char* pszName, __int64 value);
@@ -157,15 +164,20 @@
   // 取得Report列表
   std::vector<SERVO::CReport*>& getReports();
   unsigned int getMaxReportId() const;
   // 从文件中加载CCollectionEvent列表
   int loadCollectionEvents(const char* pszFilepath);
   // 取得CCollectionEvent列表
   std::vector<SERVO::CCollectionEvent*>& getCollectionEvents();
   unsigned int getMaxCollectionEventId() const;
   // 取消/删除所有CollectionEvent
   void clearAllCollectionEvent();
   int deleteCollectionEvent(unsigned short CEID);
   int addCollectionEvent(unsigned int CEID, const char* name, const char* desc, const std::vector<unsigned int>& rptids);
   int updateCollectionEvent(unsigned int CEID, const char* name, const char* desc, const std::vector<unsigned int>& rptids);
   // 取得CCollectionEvent
   SERVO::CCollectionEvent* getEvent(unsigned short CEID);
@@ -191,8 +203,12 @@
   int requestEventReportSend(unsigned int CEID);
   int requestEventReportSend(const char* pszEventName);
   int requestEventReportSend_CarrierID_Readed();
   int requestEventReportSend_CheckSlotMap();
   int requestEventReportSend_SlotMapVerificationOK();
   int requestEventReportSend_SlotMapVerificationNG();
   int requestEventReportSend_Port_Unload_Ready();
   int requestEventReportSend_Port_Load_Ready();
   int requestEventReportSend_Port_Ready_To_Release();
   int requestEventReportSend_Port_Blocked();
   int requestEventReportSend_PJ_Queued();
   int requestEventReportSend_PJ_Start();
@@ -202,6 +218,10 @@
   int requestEventReportSend_Panel_Start();
   int requestEventReportSend_Panel_End();
   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);
@@ -234,6 +254,9 @@
   int onRecvMsg(IMessage* pMessage);
   void clearAllVariabel();
   std::vector<unsigned int> parseVidList(CString& strNums);
   int writeVariablesToFile(const std::string& filepath);
   int writeReportsToFile(const std::string& filepath);
   int writeCollectionEventsToFile(const std::string& filepath);
private:
   CModel* m_pModel;
@@ -251,6 +274,15 @@
private:
   SECSListener m_listener;
   std::string m_strVariableFilepath;
   bool m_bVariableUtf8{ false };
   bool m_bVariableUtf8Bom{ false };
   std::string m_strReportFilepath;
   bool m_bReportUtf8{ false };
   bool m_bReportUtf8Bom{ false };
   std::string m_strCollectionEventFilepath;
   bool m_bCollectionUtf8{ false };
   bool m_bCollectionUtf8Bom{ false };
   BOOL m_bCimWorking;
   HANDLE m_hCimWorkEvent;
   HANDLE m_hCimWorkThreadHandle;
@@ -268,7 +300,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;
};