From d64036c0510cf06009a7252e318d828fbc2658f0 Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期四, 11 九月 2025 09:22:02 +0800
Subject: [PATCH] Merge branch 'clh' into liuyang

---
 SourceCode/Bond/SGMeasurement/SGMeasurementDlg.cpp |   29 ++++++++++++++++++++---------
 1 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/SourceCode/Bond/SGMeasurement/SGMeasurementDlg.cpp b/SourceCode/Bond/SGMeasurement/SGMeasurementDlg.cpp
index 94363a7..dcf3a01 100644
--- a/SourceCode/Bond/SGMeasurement/SGMeasurementDlg.cpp
+++ b/SourceCode/Bond/SGMeasurement/SGMeasurementDlg.cpp
@@ -247,7 +247,7 @@
 	strFullLogLine.Format(_T("%s %s"), strLevel, strContent);
 
 	// 鍐欏叆鏃ュ織鏂囦欢
-	// LOG_LINE(strFullLogLine);
+	LOG_LINE(strFullLogLine);
 }
 
 void CSGMeasurementDlg::HighlightAllMatches(const CString& strSearch, COLORREF clrHighlight/* = RGB(255, 165, 0)*/)
@@ -639,7 +639,8 @@
 
 	fAvg1 = CalcAverage(vecGlass1);
 	fAvg2 = CalcAverage(vecGlass2);
-	fOffset = std::fabs(fAvg2 - fAvg1);  // 绗簩鐗� - 绗竴鐗�
+	fOffset = fAvg2 - fAvg1;				// 绗簩鐗� - 绗竴鐗�
+	//fOffset = std::fabs(fAvg2 - fAvg1);	// 绗簩鐗� - 绗竴鐗�
 
 	CString strLog;
 	strLog.Format(_T("绗竴鐗囩幓鐠冨钩鍧囧��: %.3f锛岀浜岀墖鐜荤拑骞冲潎鍊�: %.3f锛屽亸绉婚噺: %.3f"), fAvg1, fAvg2, fOffset);
@@ -760,10 +761,10 @@
 	vecBuffer.resize(nReceived);
 	CleanInvalidValuesInPlace(nOutNo, vecBuffer);
 
-	std::vector<float> vecGlass1, vecGlass2;
+ 	std::vector<float> vecGlass1, vecGlass2;
 	if (!SplitGlassSegments(nOutNo, vecBuffer, vecGlass1, vecGlass2, m_fJumpThreshold, m_nJumpWindow, m_nValleyMargin, m_nMinGlass1Count)) {
 		AppendLogLineRichStyled(_T("鏈兘璇嗗埆鍑轰袱鐗囩幓鐠冪殑鏁版嵁銆�"), LOG_COLOR_WARNING);
-		return -1.0f;
+		return -1.0f; 
 	}
 
 	std::vector<float> vecGlass1Filtered, vecGlass2Filtered;
@@ -887,13 +888,13 @@
 		if (type == -1) {
 			AppendLogLineRichStyled(msg, LOG_COLOR_ERROR);
 		}
-		if (type == 0) {
+		else if (type == 0) {
 			AppendLogLineRichStyled(msg, LOG_COLOR_SUCCESS);
 		}
 		else if (type == 1) {
 			AppendLogLineRichStyled(msg, LOG_COLOR_WARNING);
 		}
-		else {
+		else if (type == 2) {
 			AppendLogLineRichStyled(msg, LOG_COLOR_NORMAL);
 		}
 	});
@@ -903,9 +904,14 @@
 
 	// 璁剧疆 PLC 鐩戝惉鍣ㄧ殑寮�濮嬮噰闆嗗洖璋冨嚱鏁�
 	m_plcListener.SetStartCallback([this]() {
-		InitDataStorage();
-		StartDataStorage();
-		UpdateControlStatus(m_bConnected, m_bSaving);
+		if (!m_bConnected) {
+			ConnectToDevice();
+		}
+
+		if (InitDataStorage()) {
+			StartDataStorage();
+			UpdateControlStatus(m_bConnected, m_bSaving);
+		}
 	});
 
 	// 璁剧疆 PLC 鐩戝惉鍣ㄧ殑鍋滄閲囬泦鍥炶皟鍑芥暟
@@ -916,6 +922,11 @@
 
 	// 璁剧疆 PLC 鐩戝惉鍣ㄧ殑鍒嗘瀽鍥炶皟鍑芥暟
 	m_plcListener.SetAnalyzeCallback([this]() {
+		if (!m_bConnected) {
+			AppendLogLineRichStyled(_T("璁惧鏈繛鎺ワ紝璇峰厛杩炴帴璁惧銆�"), LOG_COLOR_WARNING);
+			return std::array<double, 4>{ -1.0, -1.0, -1.0, -1.0 };
+		}
+
 		std::array<double, 4> result;
 		for (int i = 0; i < 4; ++i) {
 			result[i] = AnalyzeStoredData(i + 1); // OUT1 ~ OUT4

--
Gitblit v1.9.3