huago-corrcet_tools/HuaGoCorrect/HuaGoCorrectDlg.h

210 lines
4.5 KiB
C++

// HuaGoCorrectDlg.h : 头文件
//
#pragma once
#include "afxcmn.h"
#include "HuaGoCorrect.h"
#include "DefHSCommon.h"
#include "gscn_drv.h"
#include "Config.h"
#include "twain.h"
#include "A3.h"
#include "A4.h"
#include "CIS.h"
#include "m_Dis.h"
#include "ConfigParam.h"
#include "afxwin.h"
#include "CVISON.h"
#include <memory>
#include "ImageApply.h"
#include "ImageApplyAdjustColors.h"
#include "ImageApplyAutoCrop.h"
#include "ImageApplyBWBinaray.h"
#include "ImageApplyChannel.h"
#include "ImageApplyCrop.h"
#include "ImageApplyDiscardBlank.h"
#include "ImageApplyResize.h"
#include "ImageApplyRotation.h"
#include "ImageApplySharpen.h"
using namespace std;
#define WM_MYMESSAGE (WM_USER+100)
enum TwSS : ushort
{
A4 = 1,
A3 = 11,
USStatement = 52
};
// CHuaGoCorrectDlg 对话框
class CHuaGoCorrectDlg : public CDialogEx
{
// 构造
public:
CHuaGoCorrectDlg(CWnd* pParent = NULL); // 标准构造函数
// 对话框数据
enum { IDD = IDD_HUAGOCORRECT_DIALOG };
bool m_bScanning;
bool ls_flat;
int papercount;
int m_iPicIndex;
int m_iflatIndex;
int m_iDpiIndex;
int m_iColorIndex;
int iAMaxStep;
int iAMiddleStep;
int iAMinStep;
int iBMaxStep;
int iBMiddleStep;
int iBMinStep;
int iAERMaxStep;
int iAERMiddleStep;
int iAERMinStep;
int iAEGMaxStep;
int iAEGMiddleStep;
int iAEGMinStep;
int iAEBMaxStep;
int iAEBMiddleStep;
int iAEBMinStep;
int iBERMaxStep;
int iBERMiddleStep;
int iBERMinStep;
int iBEGMaxStep;
int iBEGMiddleStep;
int iBEGMinStep;
int iBEBMaxStep;
int iBEBMiddleStep;
int iBEBMinStep;
int iGainStep;
int n_hour;
int n_minute;
int n_second;
int usb_vid;
int usb_pid;
BOOL b_review;
BOOL b_suspend;
CConfig m_Cfg;
CA3 m_A3Dlg;
CA4 m_A4Dlg;
CIS m_CISDlg;
m_Dis m_dis;
CVISON m_VisonDlg;
CConfigParam m_ConfigParam;
shared_ptr<GScn_Drv> m_drv;
CRect tabRect; // 标签控件客户区的位置和大小
void Scan();
void RefreshTabChange();
int Mat2CImage(Mat *mat, CImage &img);
cv::Mat m_matFImage;
cv::Mat m_matBImage;
int Version_id[5][2] = { {0x064b,0x7823},{0x3072,0x0100},{0x3072 ,0x0200},{0x3072 ,0x0300},{0x3072 ,0x0400} };
void ShowFrontImage(int index);
void ShowBackImage(int index);
void A3ParamSet();
void A4ParamSet();
void intToByte(UINT *src,byte *bytes,int iLength);
void bytesToInt(byte* bytes,UINT *des, int iLength);
void CorrectBlackImage();
void CorrectWhiteImage();
void CorrectWhiteGain();
void CorrectFinish();
void WriteLog(CString msg);
void CyclePro();
void CorrectCMDUpdate();
void CorrectEndUpdate();
void ConfigParamUpdate();
void InitButton();
void FSongleCorrect();
bool bABlackImage;
bool bBBlackImage;
bool bAGrayWhiteImage;
bool bBGrayWhiteImage;
bool bAColorWhiteImage;
bool bAcolr;
bool bAcolg;
bool bAcolb;
bool bBColorWhiteImage;
bool bBcolr;
bool bBcolg;
bool bBcolb;
bool bAGrayWhiteGain;
bool bBGrayWhiteGain;
bool bAColorWhiteGain;
bool bBColorWhiteGain;
std::vector<std::shared_ptr<CImageApply>> m_iaList;
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
HICON m_hIcon;
HANDLE m_hThread;
BOOL m_bExit;
void CorrectThreadFunc();
static unsigned WINAPI CorrectThread(void* pCorrect);
// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
public:
CTabCtrl m_tab;
afx_msg BOOL PreCreateWindow(CREATESTRUCT& cs);
afx_msg void OnTcnSelChangeTab(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnBnClickedCheckparamset();
afx_msg void OnBnClickedCheckparamread();
void UpdateList(CONFIGPARAMS configParams, bool canUpdate);
afx_msg void OnBnClickedBtnFlat();
CButton m_pBlack;
CButton m_pWExposure;
CButton m_pWGain;
afx_msg void OnBnClickedBtnFlatm();
CCriticalSection m_deviceLock;
virtual void OnCancel();
BOOL m_bPause;
BOOL m_bParamError;
afx_msg void OnBnClickedBtnBlackflat();
afx_msg void OnBnClickedBtnExflat();
afx_msg void OnBnClickedBtnGainflat();
afx_msg void OnBnClickedBtnContinue();
afx_msg void OnBnClickedBtnPause();
CComboBox m_ComboxDpi;
CComboBox m_ComboxColor;
afx_msg void OnCbnSelChangeDpi();
afx_msg void OnCbnSelChangeColor();
afx_msg void OnBnClickedConfirm();
afx_msg void OnBnClickedBtnParamcfg();
CButton m_check_FpgaFlat;
CString s_hour;
CString s_minute;
CString s_second;
afx_msg void OnBnClickedStopScan();
afx_msg void OnTimer(UINT_PTR nIDEvent);
afx_msg LRESULT OnMyMessage(/*HWND hWnd, UINT Msg,*/ WPARAM w,LPARAM l);
CButton close_butten;
CComboBox twss;
CComboBox duplex;
CComboBox Version;
afx_msg void OnCbnSelchangeCombo1();
};