// IrisFODIS_CalibrationToolDlg.h: 头文件 // #pragma once #include #include "CDlgInform.h" typedef struct tagFODISCALDATAFRAME { int iExposureTime; int iPixels; double dTemperature; float pfWaveLength[2048]; double pdGain[2048]; double pdOffset[2048]; }FPODISCalData; typedef struct tagCalibrationFrame { UINT uiExposureTimeInMS; float fTemperature; int iPixels; float fWaveLength[4096] = { 0 }; double dCal_Gain[4096] = { 0 }; double dCal_Offset[4096] = { 0 }; }CalFrame; typedef struct tagDataFrame { UINT usExposureTimeInMS; int lData[4096]; float fTemperature = 0; double dTimes = 0; }DataFrame; typedef struct tagCalDataFrame { USHORT usExposureTime; float fData[2048]; float fTemperature; double dSyncTimes; }CalDataFrame; // CIrisFODISCalibrationToolDlg 对话框 class CIrisFODISCalibrationToolDlg : public CDialogEx { // 构造 public: CIrisFODISCalibrationToolDlg(CWnd* pParent = nullptr); // 标准构造函数 // 对话框数据 #ifdef AFX_DESIGN_TIME enum { IDD = IDD_IRISFODIS_CALIBRATIONTOOL_DIALOG }; #endif protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 private: std::vector m_vecFodisFile; CString m_cstrFODISFilePath,m_cstrCalFilePath,m_cstrOutputFilePath; CWinThread * m_ptrdProcess; CDlgInform * m_pdlgInfo; private: void ShowFileDialog(long lResID, LPCTSTR lpszDefExt, LPCTSTR lpszFilter, int iType); void ShowFolderDialog(long lResID, LPCTSTR lpszDefExt); void ResetListBoxHScrollBar(long lResID); void CreateInformDialog(CString cstrInformation, int iShow); public: static UINT ThreadProcessFODISCal(LPVOID pParam); // 实现 protected: HICON m_hIcon; // 生成的消息映射函数 virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); DECLARE_MESSAGE_MAP() public: afx_msg void OnBnClickedButtonFodisdata(); CEdit m_ceFODISFilePath; CListBox m_lbFilePath; afx_msg void OnBnClickedButtonCaldata(); afx_msg void OnBnClickedButtonOutputdata(); CEdit m_ceOutputPath; afx_msg void OnBnClickedButtonStartcalc(); CEdit m_ceCalFilePath; };