From da9df9d46ed3fc50e0c03497bd9f76b8aa1a4595 Mon Sep 17 00:00:00 2001 From: chenluhua1980 <Chenluhua@qq.com> Date: 星期三, 14 一月 2026 15:37:48 +0800 Subject: [PATCH] 1.修复以下问题: 作业前置条件不足导致 PJ 验证失败:onPRJobMultiCreate 调 CMaster::setProcessJobs,CProcessJob::validate 要求“当前没有其它 PJ”(issue 1000),且 carrierPresent/slotUsable 必须为真。只要本地还有未结批的 PJ/CJ 或载具/槽位状态未就绪(ID 未绑、Slot 未使能),Host 发送的 CreateMultiPJ 会直接被丢弃(返回 size=0),但当前代码没有向 Host 回 ACK/NAK,Host 会误以为创建成功。 --- SourceCode/Bond/BondEq/AlarmMonitor.h | 24 +++++++++++++----------- 1 files changed, 13 insertions(+), 11 deletions(-) diff --git a/SourceCode/Bond/BondEq/AlarmMonitor.h b/SourceCode/Bond/BondEq/AlarmMonitor.h index ae84f65..c7cf2f1 100644 --- a/SourceCode/Bond/BondEq/AlarmMonitor.h +++ b/SourceCode/Bond/BondEq/AlarmMonitor.h @@ -17,24 +17,26 @@ virtual void onRecvBroadcast(void* pSender, CIntent* pIntent); virtual void init(); virtual void term(); - void setBeginAddr(int nAddr); int readAlarmListFromFile(const char* pszFilepath); virtual void OnTimer(UINT nTimerid); const char* getAlarmText(int nID); - void Alarm(int id, int level); virtual void Serialize(CArchive& ar); - void getAlarmList(std::list<CAlarm*>& list); + std::map<int, CAlarm*>& getAlarmingMap(); + BOOL isAlarming(); + CAlarm* getActiveAlarm(); + void getAlarmRecords(std::list< CAlarm*>& list); private: - void AddAlarm(CAlarm* pAlarm); + BOOL compareData(const char* pScrData, const char* pTarData, int len); + int addAlarmTemplate(int id, int level, const char* pszDescription); + BOOL isAlarmOn(int id); + BOOL findAlarm(std::vector<int>& ids, int id); + void addAlarmToHistoryRecord(CAlarm* pAlarm); + BOOL addAlarming(CAlarm* pAlarm); private: - int m_nBeginAddr; - -private: - std::map<int, std::string> m_mapAlarmText; - int m_nLastId; - int m_nLastLevel; - std::list<CAlarm*> m_alarms; + std::map<int, CAlarm*> m_mapAlarmTemplate; // 这是警告的模板,从文件加载 + std::map<int, CAlarm*> m_mapAlarming; // 正在发生的警告 + char* m_pRawData; }; -- Gitblit v1.9.3