SourceCode/Bond/SGMeasurement/SGMeasurementDlg.cpp
@@ -761,7 +761,7 @@
   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 0xFF;
@@ -932,6 +932,10 @@
         result[i] = AnalyzeStoredData(i + 1); // OUT1 ~ OUT4
      }
      std::string strProductID;
      m_plcListener.ReadProductID(strProductID);
      m_resultStorage.SaveAnalyzeResult(CString(strProductID.c_str()), result);
      CString strLog;
      strLog.Format(_T("分析结果:OUT1: %.3f, OUT2: %.3f, OUT3: %.3f, OUT4: %.3f"), result[0], result[1], result[2], result[3]);
      return result;
@@ -994,11 +998,21 @@
      RC nRet = SGIF_GetCalcDataALL(DeviceID, value);
      if (nRet == RC_OK) {
         for (int i = 0; i < 4; ++i) {
            m_dOutValues[i] = value[i].Value;
         }
            double dNew = value[i].Value;
            if (fabs(m_dOutValues[i] - dNew) > 1e-6) {
               m_dOutValues[i] = dNew;
         // 更新绑定控件
         UpdateData(FALSE);
               CString str;
               str.Format(_T("%.3f"), dNew);
               switch (i) {
               case 0: GetDlgItem(IDC_EDIT_OUT1)->SetWindowText(str); break;
               case 1: GetDlgItem(IDC_EDIT_OUT2)->SetWindowText(str); break;
               case 2: GetDlgItem(IDC_EDIT_OUT3)->SetWindowText(str); break;
               case 3: GetDlgItem(IDC_EDIT_OUT4)->SetWindowText(str); break;
               }
            }
         }
      }
      else {
         CString strError;