From 50f3078f4efb3718e921b76567bd33d6c3640a44 Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期三, 21 一月 2026 22:20:31 +0800
Subject: [PATCH] 1.新增“读即已读”逻辑:CServoDlg::AckAlarm(int alarmId)记录已读并刷新角标;弹窗在显示任一告警时自动调用,导航上一条/下一条都会标记已读,工具条数量会同步更新。

---
 SourceCode/Bond/Servo/ServoDlg.cpp |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletions(-)

diff --git a/SourceCode/Bond/Servo/ServoDlg.cpp b/SourceCode/Bond/Servo/ServoDlg.cpp
index 9d50889..7ab2e44 100644
--- a/SourceCode/Bond/Servo/ServoDlg.cpp
+++ b/SourceCode/Bond/Servo/ServoDlg.cpp
@@ -280,7 +280,7 @@
 					text = _T("ControlJob: None");
 				}
 				if (m_pMyStatusbar != nullptr) {
-					m_pMyStatusbar->setRunTimeText((LPTSTR)(LPCTSTR)text);
+					m_pMyStatusbar->setJobText((LPTSTR)(LPCTSTR)text);
 					if (cj != nullptr && cj->state() == SERVO::CJState::Paused) {
 						m_pMyStatusbar->setBackgroundColor(STATUSBAR_BK_ALARM);
 						m_pMyStatusbar->setForegroundColor(RGB(0, 0, 0));
@@ -415,6 +415,12 @@
 		}
 		pBtn->EnableWindow(TRUE);
 	}
+}
+
+void CServoDlg::AckAlarm(int alarmId)
+{
+	m_ackAlarms.insert(alarmId);
+	RefreshAlarmBadge();
 }
 
 void CServoDlg::RaiseTestAlarm()
@@ -586,6 +592,7 @@
 	m_pMyStatusbar = new CMyStatusbar();
 	m_pMyStatusbar->Create(IDD_STATUSBAR, this);
 	m_pMyStatusbar->ShowWindow(SW_SHOW);
+	m_pMyStatusbar->setJobText("ControlJob: None");
 	LOGI("[BOOT][UI] statusbar created, elapsed=%llu ms", (unsigned long long)(GetTickCount64() - boot_ui_begin));
 
 
@@ -621,6 +628,13 @@
 		theApp.m_model.loadPortParams();
 	}
 
+	// 杩樺師鐘舵�佹爮杩愯鏃堕棿鏄剧ず锛堥伩鍏嶄竴鐩村仠鐣欏湪鈥滄鍦ㄥ姞杞藉巻鍙茬紦瀛�...鈥濓級
+	if (m_pMyStatusbar != nullptr) {
+		CString strText;
+		GetRuntimeFormatText(strText, "");
+		m_pMyStatusbar->setRunTimeText((LPTSTR)(LPCTSTR)strText);
+	}
+
 
 	// 鍒濆鍖杕aster浠ュ悗闇�瑕佹帶浠剁粦瀹氭暟鎹�
 	m_pPageGraph1->BindEquipmentToGraph();

--
Gitblit v1.9.3