mrDarker
2025-10-22 e8a27bb203fe2aff70390a5eca002d7438da9b0f
SourceCode/Bond/SGMeasurement/SGMeasurementDlg.h
@@ -1,10 +1,11 @@

// SGMeasurementDlg.h: 头文件
//
#pragma once
#include "PLCSignalListener.h"
#include "ProductResultStorage.h"
#include <map>
#include <vector>
@@ -40,6 +41,7 @@
   afx_msg void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct);
   afx_msg void OnClose();
   afx_msg LRESULT OnTrayIconClick(WPARAM wParam, LPARAM lParam);
   afx_msg void OnTrayOpenDir();
   afx_msg void OnTrayRestore();
   afx_msg void OnTrayExit();
   afx_msg void OnBnClickedButtonConnect();
@@ -115,6 +117,60 @@
    * @param vecBuffer 测量数据缓存,将被逐行打印到日志中。
    */
   void PrintSampleData(int nOutNo, const std::vector<float>& vecBuffer);
   /**
    * @brief 获取当前应用程序所在的目录路径。
    *
    * 通过 GetModuleFileName 获取当前可执行文件的完整路径,
    * 并截取掉文件名部分,返回目录路径,末尾自带反斜杠。
    *
    * @return CString 应用程序所在目录,例如 "C:\\Program Files\\SGMeasurement\\"
    */
   CString GetAppDirectory();
   /**
    * @brief 获取配置文件的完整路径。
    *
    * 配置文件名固定为 "config.ini",位于应用程序目录下。
    *
    * @return CString 配置文件完整路径,例如 "C:\\Program Files\\SGMeasurement\\config.ini"
    */
   CString GetConfigPath();
   /**
    * @brief 从 ini 配置文件加载存储与分析参数。
    *
    * 读取指定 ini 文件中的参数值,并更新对话框类中的成员变量,
    * 包括存储设置(触发方式、采样点数)、跳变检测参数、稳定区提取参数等。
    * 若文件中缺少某些字段,将使用默认值。
    *
    * @param strFile ini 文件路径。
    * @return true 表示加载成功,false 表示加载失败(如文件不存在)。
    */
   bool LoadConfig(const CString& strFile);
   /**
    * @brief 将当前存储与分析参数保存到 ini 配置文件。
    *
    * 把对话框类中的成员变量(存储设置、跳变检测、稳定区提取等参数)
    * 序列化并写入到指定的 ini 文件中,以便下次启动时恢复。
    *
    * @param strFile ini 文件路径。
    * @return true 表示保存成功,false 表示保存失败。
    */
   bool SaveConfig(const CString& strFile);
   /**
    * @brief 设置或取消当前程序的开机自启动。
    *
    * 该函数会在注册表 `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run`
    * 下写入或删除当前程序的路径,从而控制是否随 Windows 启动自动运行。
    *
    * @param bEnable 是否启用自启动。true 表示设置开机自启,false 表示取消自启。
    *
    * @return true 表示操作成功;false 表示操作失败(如注册表权限不足)。
    */
   bool SetAutoStart(bool bEnable);
   /**
    * @brief 尝试连接到测量设备。
@@ -233,9 +289,9 @@
    * @brief 分析指定端口的存储数据,并提取两段玻璃数据与稳定区,计算偏移。
    *
    * @param nOutNo     输出端口编号(1~4)
    * @return float     成功返回计算出的偏移量,失败返回 -1.0f
    * @return double     成功返回计算出的偏移量,失败返回 -1.0f
    */
   float AnalyzeStoredData(int nOutNo);
   double AnalyzeStoredData(int nOutNo);
   // === 系统状态与运行数据 ===
@@ -334,10 +390,24 @@
    */
   BOOL m_bExitingFromTray;
   // === 自启动相关 ===
   /**
    * @brief 是否开机自启动
    */
   BOOL m_nAutoStart;
   // === PLC 信号监听器 ===
   /**
    * @brief PLC 信号监听器实例,用于处理 PLC 信号事件
    */
   CPLCSignalListener m_plcListener;
   // === 产品结果存储 ===
   /**
    * @brief 产品结果存储实例,用于保存和管理测量结果
    */
   CProductResultStorage m_resultStorage;
};