diff --git a/.gitignore b/.gitignore index 3b01ab2..f3f8e81 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ Debug/* Release/* HuaGoCorrect/Debug/* -HuaGoCorrect/Release/* \ No newline at end of file +HuaGoCorrect/Release/* +HuaGoCorrect/ScanPicture/* \ No newline at end of file diff --git a/HaoGaoCOrrect修改记录.txt b/HaoGaoCOrrect修改记录.txt index 69cab33..280e538 100644 --- a/HaoGaoCOrrect修改记录.txt +++ b/HaoGaoCOrrect修改记录.txt @@ -6,4 +6,10 @@ 5,CIS的通道,阀值以及畸变检测中目标值,偏差值等参数自动加载和保存 2021年7月31日 -1.增加3399 板子g100 g200 校正及配置功能 \ No newline at end of file +1.增加3399 板子g100 g200 校正及配置功能 + +2021年8月17日 +1. 界面增加速度模式配置功能; +2. 增加明场暗场校正最大明场值配置; +3. 界面UI按钮顺序调整对齐等操作; + V4.2版本 diff --git a/HuaGoCorrect.sln b/HuaGoCorrect.sln deleted file mode 100644 index c00d4ec..0000000 --- a/HuaGoCorrect.sln +++ /dev/null @@ -1,31 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.28307.960 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HuaGoCorrect_V3.0", "HuaGoCorrect\HuaGoCorrect.vcxproj", "{988CC4D3-44EC-4A9D-AC05-B2AF0EA48E75}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {988CC4D3-44EC-4A9D-AC05-B2AF0EA48E75}.Debug|Win32.ActiveCfg = Debug|Win32 - {988CC4D3-44EC-4A9D-AC05-B2AF0EA48E75}.Debug|Win32.Build.0 = Debug|Win32 - {988CC4D3-44EC-4A9D-AC05-B2AF0EA48E75}.Debug|x64.ActiveCfg = Debug|x64 - {988CC4D3-44EC-4A9D-AC05-B2AF0EA48E75}.Debug|x64.Build.0 = Debug|x64 - {988CC4D3-44EC-4A9D-AC05-B2AF0EA48E75}.Release|Win32.ActiveCfg = Release|Win32 - {988CC4D3-44EC-4A9D-AC05-B2AF0EA48E75}.Release|Win32.Build.0 = Release|Win32 - {988CC4D3-44EC-4A9D-AC05-B2AF0EA48E75}.Release|x64.ActiveCfg = Release|x64 - {988CC4D3-44EC-4A9D-AC05-B2AF0EA48E75}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {8B23184A-7ABD-4E4F-B3EC-DFE00243E802} - EndGlobalSection -EndGlobal diff --git a/HuaGoCorrect.suo b/HuaGoCorrect.suo deleted file mode 100644 index fb7f83f..0000000 Binary files a/HuaGoCorrect.suo and /dev/null differ diff --git a/HuaGoCorrect/A3.cpp b/HuaGoCorrect/A3.cpp index 78b933d..6df90bd 100644 --- a/HuaGoCorrect/A3.cpp +++ b/HuaGoCorrect/A3.cpp @@ -25,6 +25,7 @@ CA3::~CA3() void CA3::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); + DDX_Control(pDX, IDC_CMBSPEEDMODE, m_cmbSpeedmode); } @@ -37,6 +38,13 @@ BEGIN_MESSAGE_MAP(CA3, CDialog) ON_BN_CLICKED(IDC_BTNSETCOLORSP, &CA3::OnBnClickedBtnsetcolorsp) ON_BN_CLICKED(IDC_BTNGETSLEEPTIME, &CA3::OnBnClickedBtngetsleeptime) ON_BN_CLICKED(IDC_BTNSETSLEEPTIME, &CA3::OnBnClickedBtnsetsleeptime) + ON_BN_CLICKED(IDC_BTNSETCLRMAXBRT, &CA3::OnBnClickedBtnsetclrmaxbrt) + ON_BN_CLICKED(IDC_BTNSETGRYMAXBRT, &CA3::OnBnClickedBtnsetgrymaxbrt) + ON_BN_CLICKED(IDC_BTNGETCLRMAXBRT, &CA3::OnBnClickedBtngetclrmaxbrt) + ON_BN_CLICKED(IDC_BTNGETGRYMAXBRT, &CA3::OnBnClickedBtngetgrymaxbrt) + ON_BN_CLICKED(IDC_BTNGETVERSION, &CA3::OnBnClickedBtngetversion) + ON_BN_CLICKED(IDC_BTNSETSPEED, &CA3::OnBnClickedBtnsetspeed) + ON_BN_CLICKED(IDC_BTNGETSPEED, &CA3::OnBnClickedBtngetspeed) END_MESSAGE_MAP() @@ -48,7 +56,10 @@ BOOL CA3::OnInitDialog() CDialog::OnInitDialog(); // TODO: ڴӶijʼ - + for (size_t i = 0; i < speedmodeMap.size(); i++) + { + m_cmbSpeedmode.InsertString(i, speedmodeMapString[i]); + } return TRUE; // return TRUE unless you set the focus to a control // 쳣: OCX ҳӦ FALSE } @@ -106,24 +117,28 @@ void CA3::OnBnClickedBtnsetcolorsp() } -void CA3::OnGetOrSetSp(bool get,int type) +void CA3::OnGetOrSetSp(bool get, int type) { int sp; CString str_sp; auto parent = (CHuaGoCorrectDlg*)GetParent(); int itemid = type == 0 ? IDC_LBGRAYSP : (type == 1 ? IDC_LBCOLORSP : IDC_LBGUVSP); //IDC_LBCOLORSP - if (get) - { + if (parent->m_drv.get() && parent->m_drv->IsConnected()) { + if (get) + { - parent->m_drv->GetSptime(type, sp); - str_sp.Format("%d", sp); - SetDlgItemText(itemid, str_sp); - } - else - { - GetDlgItemText(itemid, str_sp); - int value= atoi(str_sp); - parent->m_drv->SetSptime(type, value); + parent->m_drv->GetSptime(type, sp); + str_sp.Format(L"%d", sp); + SetDlgItemText(itemid, str_sp); + } + else + { + GetDlgItemText(itemid, str_sp); + USES_CONVERSION; + std::string str(W2A(str_sp)); + int value = atoi(str.c_str()); + parent->m_drv->SetSptime(type, value); + } } } @@ -134,18 +149,48 @@ void CA3::OnGetOrSetSleepTime(bool get, int type) CString str_sp; auto parent = (CHuaGoCorrectDlg*)GetParent(); int itemid = type == 0 ? IDC_LBGRAYSP : (type == 1 ? IDC_LBCOLORSP : IDC_LBGUVSP); //IDC_LBCOLORSP - if (get) - { + if (parent->m_drv.get() && parent->m_drv->IsConnected()) { + if (get) + { - parent->m_drv->GetSptime(type, sp); - str_sp.Format("%d", sp); - SetDlgItemText(itemid, str_sp); + parent->m_drv->GetSptime(type, sp); + str_sp.Format(L"%d", sp); + SetDlgItemText(itemid, str_sp); + } + else + { + GetDlgItemText(itemid, str_sp); + USES_CONVERSION; + std::string str(W2A(str_sp)); + int value = atoi(str.c_str()); + parent->m_drv->SetSptime(type, value); + } } - else - { - GetDlgItemText(itemid, str_sp); - int value = atoi(str_sp); - parent->m_drv->SetSptime(type, value); +} + +void CA3::UpdateMaxBright(bool get, int id) +{ + int sp; + CString str_sp; + auto parent = (CHuaGoCorrectDlg*)GetParent(); + if (parent->m_drv.get() && parent->m_drv->IsConnected()) { + if (get) + { + unsigned int val = 0; + parent->m_drv->GetFlatMaxBright(id == IDC_LBCLRMAXBRT, val); + str_sp.Format(L"%d", val); + SetDlgItemText(id, str_sp); + } + else + { + GetDlgItemText(id, str_sp); + USES_CONVERSION; + std::string str(W2A(str_sp)); + int value = atoi(str.c_str()); + if (value <= 0) value = 180; + + parent->m_drv->SetFlatMaxBright(id == IDC_LBCLRMAXBRT, value); + } } } @@ -154,18 +199,22 @@ void CA3::UpdateSleepTime(bool get) int sp; CString str_sp; auto parent = (CHuaGoCorrectDlg*)GetParent(); - if (get) - { - parent->m_drv->GetSleepTime(sp); - str_sp.Format("%d", sp); - SetDlgItemText(IDC_LBSLEEPTIME, str_sp); - } - else - { - GetDlgItemText(IDC_LBSLEEPTIME, str_sp); - int value = atoi(str_sp); - if (value <= 0) value = 60; - parent->m_drv->SetSleepTime(value); + if (parent->m_drv.get() && parent->m_drv->IsConnected()) { + if (get) + { + parent->m_drv->GetSleepTime(sp); + str_sp.Format(L"%d", sp); + SetDlgItemText(IDC_LBSLEEPTIME, str_sp); + } + else + { + GetDlgItemText(IDC_LBSLEEPTIME, str_sp); + USES_CONVERSION; + std::string str(W2A(str_sp)); + int value = atoi(str.c_str()); + if (value <= 0) value = 60; + parent->m_drv->SetSleepTime(value); + } } } @@ -178,4 +227,102 @@ void CA3::OnBnClickedBtngetsleeptime() void CA3::OnBnClickedBtnsetsleeptime() { UpdateSleepTime(false); +} + +void CA3::OnBnClickedBtnsetclrmaxbrt() +{ + UpdateMaxBright(false, IDC_LBCLRMAXBRT); +} + + +void CA3::OnBnClickedBtnsetgrymaxbrt() +{ + // TODO: ڴӿؼ֪ͨ + UpdateMaxBright(false, IDC_LBGRYMAXBRT); + +} + + +void CA3::OnBnClickedBtngetclrmaxbrt() +{ + // TODO: ڴӿؼ֪ͨ + UpdateMaxBright(true, IDC_LBCLRMAXBRT); +} + + +void CA3::OnBnClickedBtngetgrymaxbrt() +{ + // TODO: ڴӿؼ֪ͨ + UpdateMaxBright(true, IDC_LBGRYMAXBRT); +} + + +void CA3::OnBnClickedBtngetversion() +{ + auto parent = (CHuaGoCorrectDlg*)GetParent(); + if (parent != NULL) + { + if (parent->m_drv.get() && parent->m_drv->IsConnected()) { + auto kversion = parent->m_drv->GetKernelVersion(); + CString version(kversion.c_str()); + SetDlgItemText(IDC_LBKERNEL_VERSION, version); + } + } +} + +void CA3::OnBnClickedBtnsetspeed() +{ + // TODO: ڴӿؼ֪ͨ + updatespeedmode(false); +} + +void CA3::OnBnClickedBtngetspeed() +{ + // TODO: ڴӿؼ֪ͨ + updatespeedmode(true); +} + + +void CA3::updatespeedmode(bool get) +{ + auto parent = (CHuaGoCorrectDlg*)GetParent(); + if (parent != NULL) + { + if (parent->m_drv.get() && parent->m_drv->IsConnected()) { + int speedmode; + if (get) + { + parent->m_drv->GetSpeedMode(speedmode, true); + bool bfound = false; + for (size_t i = 0; i < speedmodeMap.size(); i++) + { + if (speedmodeMap[i].Speedmode == speedmode) + { + m_cmbSpeedmode.SetCurSel(i); + OnGetOrSetSp(true, 0);//»Ҷsp + OnGetOrSetSp(true, 1);//²ɫsp + bfound = true; + break; + } + } + if (!bfound) + MessageBox(L"δҵӦٶģʽ", L"ʾ", MB_OK | MB_ICONINFORMATION); + } + else + { + int cmbindex = m_cmbSpeedmode.GetCurSel(); + if (cmbindex != -1) + { + auto t_speedmode = speedmodeMap[cmbindex]; + parent->m_drv->GetSpeedMode(t_speedmode.Speedmode, false); + parent->m_drv->SetSptime(0, t_speedmode.GraySp); + parent->m_drv->SetSptime(1, t_speedmode.ColorSp); + } + } + } + else + { + MessageBox(L"δҵɨǣ", L"ʾ", MB_OK | MB_ICONINFORMATION); + } + } } \ No newline at end of file diff --git a/HuaGoCorrect/A3.h b/HuaGoCorrect/A3.h index 6c55965..884e56f 100644 --- a/HuaGoCorrect/A3.h +++ b/HuaGoCorrect/A3.h @@ -1,5 +1,5 @@ #pragma once - +#include // CA3 Ի @@ -32,11 +32,43 @@ public: private: void OnGetOrSetSp(bool get, int type); public: - afx_msg - void OnGetOrSetSleepTime(bool get, int type); + afx_msg void OnGetOrSetSleepTime(bool get, int type); + void UpdateMaxBright(bool get,int id); void UpdateSleepTime(bool get); void OnBnClickedBtngetsleeptime(); afx_msg void OnBnClickedBtnsetsleeptime(); - afx_msg void OnBnClickedBtngetcolorsp2(); - afx_msg void OnBnClickedBtnsetcolorsp2(); + afx_msg void OnBnClickedBtnsetclrmaxbrt(); + afx_msg void OnBnClickedBtnsetgrymaxbrt(); + afx_msg void OnBnClickedBtngetclrmaxbrt(); + afx_msg void OnBnClickedBtngetgrymaxbrt(); + afx_msg void OnBnClickedBtngetversion(); + afx_msg void OnBnClickedBtnsetspeed(); + afx_msg void OnBnClickedBtngetspeed(); + void updatespeedmode(bool get); +private: + struct speedmodeparam { + int Speedmode; + unsigned int ColorSp; + unsigned int GraySp; + }; + std::map speedmodeMap = { + {0,{70,0x437,0xca7}}, + {1,{80,0x388,0xa98}}, + {2,{90,0x30a,0x91f}}, + {3,{100,0x280,0x781}}, + {4,{110,0x280,0x781}}, + {5,{120,0x280,0x781}}, + {6,{130,0x280,0x781}} + }; + + std::map speedmodeMapString = { + {0,L"G100_70PPM"}, + {1,L"G100_80PPM"}, + {2,L"G100_90PPM"}, + {3,L"G200_100PPM"}, + {4,L"G200_110PPM"}, + {5,L"G200_120PPM"}, + {6,L"G200_130PPM"} + }; + CComboBox m_cmbSpeedmode; }; diff --git a/HuaGoCorrect/A4.cpp b/HuaGoCorrect/A4.cpp index acd4809..d36d583 100644 --- a/HuaGoCorrect/A4.cpp +++ b/HuaGoCorrect/A4.cpp @@ -118,14 +118,16 @@ void CA4::SendCorrectParam() UpdateData(); int index = m_A4FlatModel.GetCurSel(); auto parent = (CHuaGoCorrectDlg*)GetParent(); - parent->m_drv->SendFlatData(params, index); + if (parent->m_drv.get() && parent->m_drv->IsConnected()) { + parent->m_drv->SendFlatData(params, index); + } } void CA4::OnCbnSelChangeA4FlatModel() { auto parent = (CHuaGoCorrectDlg*)GetParent(); - if (parent->m_drv->IsConnected()) + if (parent->m_drv.get()&&parent->m_drv->IsConnected()) { auto correctdata = parent->m_drv->GetFlatData(); updateA4Config(correctdata); @@ -179,7 +181,9 @@ void CA4::LoadCfg() void CA4::OnBnClickedBtnReboot() { auto parent = (CHuaGoCorrectDlg*)GetParent(); - parent->m_drv->Reboot(); + if (parent->m_drv.get() && parent->m_drv->IsConnected()) { + parent->m_drv->Reboot(); + } } /// @@ -203,9 +207,11 @@ void CA4::OnBnClickedBtnGetvidpid() void CA4::OnBnClickedBtngetSerial() { auto parent = (CHuaGoCorrectDlg*)GetParent(); - std::string serial= parent->m_drv->GetSerialNum(); - CString c_serial(serial.c_str()); - SetDlgItemText(IDC_tbxSerial, c_serial); + if (parent->m_drv.get() && parent->m_drv->IsConnected()) { + std::string serial = parent->m_drv->GetSerialNum(); + CString c_serial(serial.c_str()); + SetDlgItemText(IDC_tbxSerial, c_serial); + } } /// @@ -224,10 +230,13 @@ void CA4::OnBnClickedBtnSetSerial() auto parent = (CHuaGoCorrectDlg*)GetParent(); CString cserial; GetDlgItemText(IDC_tbxSerial, cserial); - if (!cserial.IsEmpty()) - { - std::string ser(cserial.GetBuffer()); - parent->m_drv->SetSerialNum(ser); + if (parent->m_drv.get() && parent->m_drv->IsConnected()) { + if (!cserial.IsEmpty()) + { + USES_CONVERSION; + std::string str(W2A(cserial)); + parent->m_drv->SetSerialNum(str); + } } } @@ -236,11 +245,13 @@ void CA4::OnBnClickedBtnGethor() { auto parent = (CHuaGoCorrectDlg*)GetParent(); int ratio = 0; - parent->m_drv->GetRatio(0, ratio); - float f_ratio = *(float*)∶ - CString str; - str.Format("%.4f", f_ratio); - SetDlgItemText(IDC_tbxHOR, str); + if (parent->m_drv.get() && parent->m_drv->IsConnected()) { + parent->m_drv->GetRatio(0, ratio); + float f_ratio = *(float*)∶ + CString str; + str.Format(L"%.4f", f_ratio); + SetDlgItemText(IDC_tbxHOR, str); + } } @@ -248,44 +259,56 @@ void CA4::OnBnClickedBtnGetver() { auto parent = (CHuaGoCorrectDlg*)GetParent(); int ratio = 0; - parent->m_drv->GetRatio(1, ratio); - float f_ratio = *(float*)∶ - CString str; - str.Format("%.4f", f_ratio); - SetDlgItemText(IDC_tbxVER, str); + if (parent->m_drv.get() && parent->m_drv->IsConnected()) { + parent->m_drv->GetRatio(1, ratio); + float f_ratio = *(float*)∶ + CString str; + str.Format(L"%.4f", f_ratio); + SetDlgItemText(IDC_tbxVER, str); + } } void CA4::OnBnClickedBtnSethor() { auto parent = (CHuaGoCorrectDlg*)GetParent(); - CString str; - GetDlgItemText(IDC_tbxHOR, str); - float f_value = atof(str); - int value = *(int*)&f_value; - parent->m_drv->SetRatio(0, value); + if (parent->m_drv.get() && parent->m_drv->IsConnected()) { + CString str; + GetDlgItemText(IDC_tbxHOR, str); + USES_CONVERSION; + std::string s_str(W2A(str)); + float f_value = atof(s_str.c_str()); + int value = *(int*)&f_value; + parent->m_drv->SetRatio(0, value); + } } void CA4::OnBnClickedBtnSetver() { auto parent = (CHuaGoCorrectDlg*)GetParent(); - CString str; - GetDlgItemText(IDC_tbxVER, str); - float f_value = atof(str); - int value = *(int*)&f_value; - parent->m_drv->SetRatio(1, value); + if (parent->m_drv.get() && parent->m_drv->IsConnected()) { + CString str; + GetDlgItemText(IDC_tbxVER, str); + USES_CONVERSION; + std::string s_str(W2A(str)); + float f_value = atof(s_str.c_str()); + int value = *(int*)&f_value; + parent->m_drv->SetRatio(1, value); + } } void CA4::OnBnClickedBtngetVersion() { auto parent = (CHuaGoCorrectDlg*)GetParent(); - std::string ver = parent->m_drv->GetFWVersion(); - if (ver.size() > 0) - { - CString str(ver.c_str()); - SetDlgItemText(IDC_tbxVersion, str); + if (parent->m_drv.get() && parent->m_drv->IsConnected()) { + std::string ver = parent->m_drv->GetFWVersion(); + if (ver.size() > 0) + { + CString str(ver.c_str()); + SetDlgItemText(IDC_tbxVersion, str); + } } } @@ -315,14 +338,15 @@ void CA4::OnBnClickedBtnGetexpos() { // TODO: ڴӿؼ֪ͨ auto parent = (CHuaGoCorrectDlg*)GetParent(); - int esposeA, exposeB; - parent->m_drv->GetExpose(esposeA,exposeB); - CString expA, expB; - expA.Format("%d", esposeA); - expB.Format("%d", exposeB); - SetDlgItemText(IDC_tbxUVAExpos, expA); - SetDlgItemText(IDC_tbxUVBExpos, expB); - + if (parent->m_drv.get() && parent->m_drv->IsConnected()) { + int esposeA, exposeB; + parent->m_drv->GetExpose(esposeA, exposeB); + CString expA, expB; + expA.Format(L"%d", esposeA); + expB.Format(L"%d", exposeB); + SetDlgItemText(IDC_tbxUVAExpos, expA); + SetDlgItemText(IDC_tbxUVBExpos, expB); + } } @@ -334,9 +358,14 @@ void CA4::OnBnClickedBtnSetexpos() CString expA, expB; GetDlgItemText(IDC_tbxUVAExpos, expA); GetDlgItemText(IDC_tbxUVBExpos, expB); - esposeA= atoi(expA); - exposeB = atoi(expB); - parent->m_drv->SetExpose(esposeA, exposeB); + USES_CONVERSION; + std::string str_a(W2A(expA)); + std::string str_b(W2A(expB)); + esposeA= atoi(str_a.c_str()); + exposeB = atoi(str_b.c_str()); + if (parent->m_drv.get() && parent->m_drv->IsConnected()) { + parent->m_drv->SetExpose(esposeA, exposeB); + } } @@ -383,9 +412,19 @@ void CA4::UpdateGains(int id, bool increase) { int startindex = id == IDC_BTNADOWN ? 0 : 6; for (size_t i = startindex; i < (6 + startindex); i++) - { + { params.Gain[i] = params.Gain[i]--; } } UpdateData(FALSE); -} \ No newline at end of file +} + +void CA4::OnEnChangetbxfrexposure2() +{ + // TODO: ÿؼ RICHEDIT ؼ + // ʹ֪ͨд CDialog::OnInitDialog() + // CRichEditCtrl().SetEventMask() + // ͬʱ ENM_CHANGE ־㵽С + + // TODO: ڴӿؼ֪ͨ +} diff --git a/HuaGoCorrect/A4.h b/HuaGoCorrect/A4.h index e2965d2..64b5d02 100644 --- a/HuaGoCorrect/A4.h +++ b/HuaGoCorrect/A4.h @@ -74,4 +74,5 @@ public: afx_msg void OnBnClickedBtnbup(); afx_msg void OnBnClickedBtnbdown(); void UpdateGains(int id, bool get); + afx_msg void OnEnChangetbxfrexposure2(); }; diff --git a/HuaGoCorrect/CVISON.cpp b/HuaGoCorrect/CVISON.cpp index 1e8fa17..9a40e1f 100644 --- a/HuaGoCorrect/CVISON.cpp +++ b/HuaGoCorrect/CVISON.cpp @@ -177,12 +177,17 @@ void CVISON::showfun() auto ret = ((CHuaGoCorrectDlg*)parent)->m_drv->aquire_image(path, 0); if (ret != -1) { - imageindex++; - aquiredimgindx++; - CString cPath(path.c_str()); - m_path.push_back(cPath); - m_onStop(false, aquiredimgindx); - DrawPicture(cPath); + + if (path.length() > 0) { + imageindex++; + aquiredimgindx++; + USES_CONVERSION; + std::string t_path = StringToUtf(path); + CString cPath(A2T(t_path.c_str())); + m_path.push_back(cPath); + m_onStop(false, aquiredimgindx); + DrawPicture(cPath); + } } else { diff --git a/HuaGoCorrect/Config.cpp b/HuaGoCorrect/Config.cpp deleted file mode 100644 index acc8112..0000000 --- a/HuaGoCorrect/Config.cpp +++ /dev/null @@ -1,40 +0,0 @@ -// Config.cpp: implementation of the CConfig class. -// -////////////////////////////////////////////////////////////////////// - -#include "stdafx.h" -#include "Config.h" - -#ifdef _DEBUG -#undef THIS_FILE -static char THIS_FILE[]=__FILE__; -#define new DEBUG_NEW -#endif - -////////////////////////////////////////////////////////////////////// -// Construction/Destruction -////////////////////////////////////////////////////////////////////// - -CConfig::CConfig() -{ -} - -CConfig::~CConfig() -{ - -} - -void CConfig::GetTextInfo(CString strKeyName, CString &strText) -{ - char cParam[256]; - ::GetPrivateProfileString("TextInfo", strKeyName, "", cParam, 255, INI_FILE_NAME); - strText = cParam; -} - -void CConfig::LoadCfg() -{ - UINT iParam[30] = {0}; - iParam[0] = ::GetPrivateProfileInt("ColorCorrection", "FRExposure ", 340, INI_FILE_NAME); - -} - diff --git a/HuaGoCorrect/Config.h b/HuaGoCorrect/Config.h deleted file mode 100644 index 450f4bf..0000000 --- a/HuaGoCorrect/Config.h +++ /dev/null @@ -1,42 +0,0 @@ -// Config.h: interface for the CConfig class. -// -////////////////////////////////////////////////////////////////////// - -#if !defined(AFX_CONFIG_H__9AA09B6E_5336_4EBA_BF73_3B1389D6FAF0__INCLUDED_) -#define AFX_CONFIG_H__9AA09B6E_5336_4EBA_BF73_3B1389D6FAF0__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 - -#define INI_FILE_NAME "./HuaGoScan.ini" - -class CConfig -{ -public: - CConfig(); - virtual ~CConfig(); - - void LoadCfg(); - void GetTextInfo(CString strKeyName, CString &strText); - DWORD GetPort() - { - return m_dwLocalPort; - } - const char *GetTitle() - { - return m_strTitle; - } - - const char* GetSQLIP() - { - return m_strSQLIP; - } -private: - CString m_strTitle; // ʾı - CString m_strSQLIP; - - DWORD m_dwLocalPort; // Ķ˿ں -}; - -#endif // !defined(AFX_CONFIG_H__9AA09B6E_5336_4EBA_BF73_3B1389D6FAF0__INCLUDED_) diff --git a/HuaGoCorrect/ConfigParam.cpp b/HuaGoCorrect/ConfigParam.cpp deleted file mode 100644 index 22ac4c2..0000000 --- a/HuaGoCorrect/ConfigParam.cpp +++ /dev/null @@ -1,220 +0,0 @@ -// ConfigParam.cpp : ʵļ -// - -#include "stdafx.h" -#include "HuaGoCorrect.h" -#include "ConfigParam.h" -#include "afxdialogex.h" - - -// CConfigParam Ի - -IMPLEMENT_DYNAMIC(CConfigParam, CDialog) - -CConfigParam::CConfigParam(CWnd* pParent /*=NULL*/) - : CDialog(CConfigParam::IDD, pParent) - , m_AMaxStep(0) - , m_AMinStep(0) - , m_BMaxStep(0) - , m_BMinStep(0) - , m_AERMaxStep(0) - , m_AERMinStep(0) - , m_AEGMaxStep(0) - , m_AEGMinStep(0) - , m_AEBMaxStep(0) - , m_AEBMinStep(0) - , m_BERMaxStep(0) - , m_BERMinStep(0) - , m_BEGMaxStep(0) - , m_BEGMinStep(0) - , m_BEBMaxStep(0) - , m_BEBMinStep(0) - , m_GainStep(0) -{ - -} - -CConfigParam::~CConfigParam() -{ -} - -void CConfigParam::DoDataExchange(CDataExchange* pDX) -{ - CDialog::DoDataExchange(pDX); - DDX_Text(pDX, IDC_AMaxStep, m_AMaxStep); - DDV_MinMaxUInt(pDX, m_AMaxStep, 0, 255); - DDX_Text(pDX, IDC_AMinStep, m_AMinStep); - DDV_MinMaxUInt(pDX, m_AMinStep, 0, 255); - DDX_Text(pDX, IDC_BMaxStep, m_BMaxStep); - DDV_MinMaxUInt(pDX, m_BMaxStep, 0, 255); - DDX_Text(pDX, IDC_BMinStep, m_BMinStep); - DDV_MinMaxUInt(pDX, m_BMinStep, 0, 255); - DDX_Text(pDX, IDC_AERMaxStep, m_AERMaxStep); - DDV_MinMaxUInt(pDX, m_AERMaxStep, 0, 1000); - DDX_Text(pDX, IDC_AERMinStep, m_AERMinStep); - DDV_MinMaxUInt(pDX, m_AERMinStep, 0, 1000); - DDX_Text(pDX, IDC_AEGMaxStep, m_AEGMaxStep); - DDV_MinMaxUInt(pDX, m_AEGMaxStep, 0, 1000); - DDX_Text(pDX, IDC_AEGMinStep, m_AEGMinStep); - DDV_MinMaxUInt(pDX, m_AEGMinStep, 0, 1000); - DDX_Text(pDX, IDC_AEBMaxStep, m_AEBMaxStep); - DDV_MinMaxUInt(pDX, m_AEBMaxStep, 0, 1000); - DDX_Text(pDX, IDC_AEBMinStep, m_AEBMinStep); - DDV_MinMaxUInt(pDX, m_AEBMinStep, 0, 1000); - DDX_Text(pDX, IDC_BERMaxStep, m_BERMaxStep); - DDV_MinMaxUInt(pDX, m_BERMaxStep, 0, 1000); - DDX_Text(pDX, IDC_BERMinStep, m_BERMinStep); - DDV_MinMaxUInt(pDX, m_BERMinStep, 0, 1000); - DDX_Text(pDX, IDC_BEGMaxStep, m_BEGMaxStep); - DDV_MinMaxUInt(pDX, m_BEGMaxStep, 0, 1000); - DDX_Text(pDX, IDC_BEGMinStep, m_BEGMinStep); - DDV_MinMaxUInt(pDX, m_BEGMinStep, 0, 1000); - DDX_Text(pDX, IDC_BEBMaxStep, m_BEBMaxStep); - DDV_MinMaxUInt(pDX, m_BEBMaxStep, 0, 1000); - DDX_Text(pDX, IDC_BEBMinStep, m_BEBMinStep); - DDV_MinMaxUInt(pDX, m_BEBMinStep, 0, 1000); - DDX_Text(pDX, IDC_GainStep, m_GainStep); - DDV_MinMaxUInt(pDX, m_GainStep, 0, 1000); -} - - -BEGIN_MESSAGE_MAP(CConfigParam, CDialog) - ON_BN_CLICKED(IDC_BTN_SAVECFG, &CConfigParam::OnBtnSaveCFG) -END_MESSAGE_MAP() - - -// CConfigParam Ϣ - - -BOOL CConfigParam::OnInitDialog() -{ - CDialog::OnInitDialog(); - - // TODO: ڴӶijʼ - LoadConfig(); - - return TRUE; // return TRUE unless you set the focus to a control - // 쳣: OCX ҳӦ FALSE -} - -void CConfigParam::LoadConfig() -{ - UpdateData(TRUE); - m_AMaxStep = ::GetPrivateProfileInt("GrayBlack", "AGMaxStep", 255, INI_FILE_NAME); - m_AMinStep = ::GetPrivateProfileInt("GrayBlack", "AGMinStep", 0, INI_FILE_NAME); - m_BMaxStep = ::GetPrivateProfileInt("GrayBlack", "BGMaxStep", 255, INI_FILE_NAME); - m_BMinStep = ::GetPrivateProfileInt("GrayBlack", "BGMinStep", 0, INI_FILE_NAME); - m_AERMaxStep = ::GetPrivateProfileInt("ColorWhite", "ACRMaxStep", 900, INI_FILE_NAME); - m_AERMinStep = ::GetPrivateProfileInt("ColorWhite", "ACRMinStep", 0, INI_FILE_NAME); - m_AEGMaxStep = ::GetPrivateProfileInt("ColorWhite", "ACGMaxStep", 900, INI_FILE_NAME); - m_AEGMinStep = ::GetPrivateProfileInt("ColorWhite", "ACGMinStep", 0, INI_FILE_NAME); - m_AEBMaxStep = ::GetPrivateProfileInt("ColorWhite", "ACBMaxStep", 900, INI_FILE_NAME); - m_AEBMinStep = ::GetPrivateProfileInt("ColorWhite", "ACBMinStep", 0, INI_FILE_NAME); - m_BERMaxStep = ::GetPrivateProfileInt("ColorWhite", "BCRMaxStep", 900, INI_FILE_NAME); - m_BERMinStep = ::GetPrivateProfileInt("ColorWhite", "BCRMinStep", 0, INI_FILE_NAME); - m_BEGMaxStep = ::GetPrivateProfileInt("ColorWhite", "BCGMaxStep", 900, INI_FILE_NAME); - m_BEGMinStep = ::GetPrivateProfileInt("ColorWhite", "BCGMinStep", 0, INI_FILE_NAME); - m_BEBMaxStep = ::GetPrivateProfileInt("ColorWhite", "BCBMaxStep", 900, INI_FILE_NAME); - m_BEBMinStep = ::GetPrivateProfileInt("ColorWhite", "BCBMinStep", 0, INI_FILE_NAME); - m_GainStep = ::GetPrivateProfileInt("GainStep", "ABGainStep", 24, INI_FILE_NAME); - UpdateData(FALSE); -} - - -void CConfigParam::OnBtnSaveCFG() -{ - // TODO: ڴӿؼ֪ͨ - SaveParam(); - OnOK(); -} - -void CConfigParam::SaveParam() -{ - UpdateData(TRUE); - CString csAMaxStep,csAMinStep,csBMaxStep,csBMinStep,csABGainStep; - CString csAERMaxStep,csAERMinStep,csAEGMaxStep,csAEGMinStep,csAEBMaxStep,csAEBMinStep; - CString csBERMaxStep,csBERMinStep,csBEGMaxStep,csBEGMinStep,csBEBMaxStep,csBEBMinStep; - csAMaxStep.Format(_T("%d"),m_AMaxStep); - csAMinStep.Format(_T("%d"),m_AMinStep); - csBMaxStep.Format(_T("%d"),m_BMaxStep); - csBMinStep.Format(_T("%d"),m_BMinStep); - csAERMaxStep.Format(_T("%d"),m_AERMaxStep); - csAERMinStep.Format(_T("%d"),m_AERMinStep); - csAEGMaxStep.Format(_T("%d"),m_AEGMaxStep); - csAEGMinStep.Format(_T("%d"),m_AEGMinStep); - csAEBMaxStep.Format(_T("%d"),m_AEBMaxStep); - csAEBMinStep.Format(_T("%d"),m_AEBMinStep); - csBERMaxStep.Format(_T("%d"),m_BERMaxStep); - csBERMinStep.Format(_T("%d"),m_BERMinStep); - csBEGMaxStep.Format(_T("%d"),m_BEGMaxStep); - csBEGMinStep.Format(_T("%d"),m_BEGMinStep); - csBEBMaxStep.Format(_T("%d"),m_BEBMaxStep); - csBEBMinStep.Format(_T("%d"),m_BEBMinStep); - csABGainStep.Format(_T("%d"),m_GainStep); - UpdateData(FALSE); - - WritePrivateProfileString("GrayBlack", "AGMaxStep", csAMaxStep, INI_FILE_NAME); - WritePrivateProfileString("GrayBlack", "AGMinStep", csAMinStep, INI_FILE_NAME); - WritePrivateProfileString("ColorCorrection", "F1Offset", csAMaxStep, INI_FILE_NAME); - WritePrivateProfileString("ColorCorrection", "F2Offset", csAMaxStep, INI_FILE_NAME); - WritePrivateProfileString("ColorCorrection", "F3Offset", csAMaxStep, INI_FILE_NAME); - WritePrivateProfileString("ColorCorrection", "F4Offset", csAMaxStep, INI_FILE_NAME); - WritePrivateProfileString("ColorCorrection", "F5Offset", csAMaxStep, INI_FILE_NAME); - WritePrivateProfileString("ColorCorrection", "F6Offset", csAMaxStep, INI_FILE_NAME); - WritePrivateProfileString("GrayCorrection", "F1Offset", csAMaxStep, INI_FILE_NAME); - WritePrivateProfileString("GrayCorrection", "F2Offset", csAMaxStep, INI_FILE_NAME); - WritePrivateProfileString("GrayCorrection", "F3Offset", csAMaxStep, INI_FILE_NAME); - WritePrivateProfileString("GrayCorrection", "F4Offset", csAMaxStep, INI_FILE_NAME); - WritePrivateProfileString("GrayCorrection", "F5Offset", csAMaxStep, INI_FILE_NAME); - WritePrivateProfileString("GrayCorrection", "F6Offset", csAMaxStep, INI_FILE_NAME); - - WritePrivateProfileString("GrayBlack", "BGMaxStep", csBMaxStep, INI_FILE_NAME); - WritePrivateProfileString("GrayBlack", "BGMinStep", csBMinStep, INI_FILE_NAME); - WritePrivateProfileString("ColorCorrection", "B1Offset", csBMaxStep, INI_FILE_NAME); - WritePrivateProfileString("ColorCorrection", "B2Offset", csBMaxStep, INI_FILE_NAME); - WritePrivateProfileString("ColorCorrection", "B3Offset", csBMaxStep, INI_FILE_NAME); - WritePrivateProfileString("ColorCorrection", "B4Offset", csBMaxStep, INI_FILE_NAME); - WritePrivateProfileString("ColorCorrection", "B5Offset", csBMaxStep, INI_FILE_NAME); - WritePrivateProfileString("ColorCorrection", "B6Offset", csBMaxStep, INI_FILE_NAME); - WritePrivateProfileString("GrayCorrection", "B1Offset", csBMaxStep, INI_FILE_NAME); - WritePrivateProfileString("GrayCorrection", "B2Offset", csBMaxStep, INI_FILE_NAME); - WritePrivateProfileString("GrayCorrection", "B3Offset", csBMaxStep, INI_FILE_NAME); - WritePrivateProfileString("GrayCorrection", "B4Offset", csBMaxStep, INI_FILE_NAME); - WritePrivateProfileString("GrayCorrection", "B5Offset", csBMaxStep, INI_FILE_NAME); - WritePrivateProfileString("GrayCorrection", "B6Offset", csBMaxStep, INI_FILE_NAME); - - WritePrivateProfileString("ColorWhite", "ACRMaxStep", csAERMaxStep, INI_FILE_NAME); - WritePrivateProfileString("ColorWhite", "ACRMinStep", csAERMinStep, INI_FILE_NAME); - WritePrivateProfileString("ColorCorrection", "FRExposure", csAERMaxStep, INI_FILE_NAME); - - WritePrivateProfileString("ColorWhite", "ACGMaxStep", csAEGMaxStep, INI_FILE_NAME); - WritePrivateProfileString("ColorWhite", "ACGMinStep", csAEGMinStep, INI_FILE_NAME); - WritePrivateProfileString("ColorCorrection", "FGExposure", csAEGMaxStep, INI_FILE_NAME); - - WritePrivateProfileString("ColorWhite", "ACBMaxStep", csAEBMaxStep, INI_FILE_NAME); - WritePrivateProfileString("ColorWhite", "ACBMinStep", csAEBMinStep, INI_FILE_NAME); - WritePrivateProfileString("ColorCorrection", "FBExposure", csAEBMaxStep, INI_FILE_NAME); - - WritePrivateProfileString("ColorWhite", "BCRMaxStep", csBERMaxStep, INI_FILE_NAME); - WritePrivateProfileString("ColorWhite", "BCRMinStep", csBERMinStep, INI_FILE_NAME); - WritePrivateProfileString("ColorCorrection", "BRExposure", csBERMaxStep, INI_FILE_NAME); - - WritePrivateProfileString("ColorWhite", "BCGMaxStep", csBEGMaxStep, INI_FILE_NAME); - WritePrivateProfileString("ColorWhite", "BCGMinStep", csBEGMinStep, INI_FILE_NAME); - WritePrivateProfileString("ColorCorrection", "BGExposure", csBEGMaxStep, INI_FILE_NAME); - - WritePrivateProfileString("ColorWhite", "BCBMaxStep", csBEBMaxStep, INI_FILE_NAME); - WritePrivateProfileString("ColorWhite", "BCBMinStep", csBEBMinStep, INI_FILE_NAME); - WritePrivateProfileString("ColorCorrection", "BBExposure", csBEBMaxStep, INI_FILE_NAME); - - WritePrivateProfileString("GainStep", "ABGainStep", csABGainStep, INI_FILE_NAME); - - MessageBox(_T("")); -} - -void CConfigParam::OnOK() -{ - // TODO: ڴרô/û - - CDialog::OnOK(); -} diff --git a/HuaGoCorrect/ConfigParam.h b/HuaGoCorrect/ConfigParam.h deleted file mode 100644 index 6bb2e21..0000000 --- a/HuaGoCorrect/ConfigParam.h +++ /dev/null @@ -1,45 +0,0 @@ -#pragma once -#include "Config.h" - -// CConfigParam Ի - -class CConfigParam : public CDialog -{ - DECLARE_DYNAMIC(CConfigParam) - -public: - CConfigParam(CWnd* pParent = NULL); // ׼캯 - virtual ~CConfigParam(); - -// Ի - enum { IDD = IDD_DIALOG_CONFIGPARAM }; - - void LoadConfig(); - void SaveParam(); - -protected: - virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV ֧ - - DECLARE_MESSAGE_MAP() -public: - virtual BOOL OnInitDialog(); - UINT m_AMaxStep; - UINT m_AMinStep; - UINT m_BMaxStep; - UINT m_BMinStep; - UINT m_AERMaxStep; - UINT m_AERMinStep; - UINT m_AEGMaxStep; - UINT m_AEGMinStep; - UINT m_AEBMaxStep; - UINT m_AEBMinStep; - UINT m_BERMaxStep; - UINT m_BERMinStep; - UINT m_BEGMaxStep; - UINT m_BEGMinStep; - UINT m_BEBMaxStep; - UINT m_BEBMinStep; - UINT m_GainStep; - afx_msg void OnBtnSaveCFG(); - virtual void OnOK(); -}; diff --git a/HuaGoCorrect/HuaGoCorrect.aps b/HuaGoCorrect/HuaGoCorrect.aps index a56ad61..5dd707e 100644 Binary files a/HuaGoCorrect/HuaGoCorrect.aps and b/HuaGoCorrect/HuaGoCorrect.aps differ diff --git a/HuaGoCorrect/HuaGoCorrect.cpp b/HuaGoCorrect/HuaGoCorrect.cpp index 8562a12..14e2e20 100644 --- a/HuaGoCorrect/HuaGoCorrect.cpp +++ b/HuaGoCorrect/HuaGoCorrect.cpp @@ -104,8 +104,8 @@ void CHuaGoCorrectApp::CreateScanFile() char cTime[11]; CTime currTime = CTime::GetCurrentTime(); _snprintf(cTime, 11, "%04d-%02d-%02d", currTime.GetYear(), currTime.GetMonth(), currTime.GetDay()); - csDate.Format("%s",cTime); - + //csDate.Format(L"%s",cTime); + csDate = cTime; path = ".\\ScanPicture\\"; if (!PathIsDirectory(path)) diff --git a/HuaGoCorrect/HuaGoCorrect.rc b/HuaGoCorrect/HuaGoCorrect.rc index 8235658..272c3ec 100644 Binary files a/HuaGoCorrect/HuaGoCorrect.rc and b/HuaGoCorrect/HuaGoCorrect.rc differ diff --git a/HuaGoCorrect/HuaGoCorrect.vcxproj b/HuaGoCorrect/HuaGoCorrect.vcxproj index cb14a15..755d544 100644 --- a/HuaGoCorrect/HuaGoCorrect.vcxproj +++ b/HuaGoCorrect/HuaGoCorrect.vcxproj @@ -29,7 +29,7 @@ Application true - MultiByte + Unicode Dynamic v142 @@ -47,7 +47,7 @@ Application false true - MultiByte + Unicode Dynamic v142 @@ -215,8 +215,6 @@ opencv_imgproc2410.lib;%(AdditionalDependencies) - - @@ -246,8 +244,6 @@ opencv_imgproc2410.lib;%(AdditionalDependencies) - - diff --git a/HuaGoCorrect/HuaGoCorrect.vcxproj.filters b/HuaGoCorrect/HuaGoCorrect.vcxproj.filters index 10c3ea8..8589330 100644 --- a/HuaGoCorrect/HuaGoCorrect.vcxproj.filters +++ b/HuaGoCorrect/HuaGoCorrect.vcxproj.filters @@ -48,9 +48,6 @@ 头文件 - - 头文件 - 头文件 @@ -96,9 +93,6 @@ 头文件 - - 头文件 - 头文件 @@ -137,9 +131,6 @@ 源文件 - - 源文件 - 源文件 @@ -170,9 +161,6 @@ 源文件 - - 源文件 - 源文件 diff --git a/HuaGoCorrect/HuaGoCorrectDlg.cpp b/HuaGoCorrect/HuaGoCorrectDlg.cpp index d019991..473355a 100644 --- a/HuaGoCorrect/HuaGoCorrectDlg.cpp +++ b/HuaGoCorrect/HuaGoCorrectDlg.cpp @@ -100,7 +100,7 @@ BEGIN_MESSAGE_MAP(CHuaGoCorrectDlg, CDialogEx) ON_BN_CLICKED(IDC_BTN_FLAT, &CHuaGoCorrectDlg::OnBnClickedBtnFlat) ON_CBN_SELCHANGE(IDC_dpi_comboBox, &CHuaGoCorrectDlg::OnCbnSelChangeDpi) ON_CBN_SELCHANGE(IDC_color_comboBox, &CHuaGoCorrectDlg::OnCbnSelChangeColor) - //ON_WM_TIMER() + ON_WM_TIMER() ON_BN_CLICKED(IDC_BTN_SELECTFILE, &CHuaGoCorrectDlg::OnBnClickedBtnSelectfile) ON_BN_CLICKED(IDC_BTN_UPDATE, &CHuaGoCorrectDlg::OnBnClickedBtnUpdate) ON_BN_CLICKED(IDC_BTN_REFRESH, &CHuaGoCorrectDlg::OnBnClickedBtnRefresh) @@ -157,7 +157,7 @@ BOOL CHuaGoCorrectDlg::OnInitDialog() else { CString str; - str.Format("%d", num); + str.Format(L"%d", num); SetDlgItemText(IDC_STATIC_NUM, str); } }; @@ -165,7 +165,7 @@ BOOL CHuaGoCorrectDlg::OnInitDialog() m_tab.GetClientRect(&tabRect); // ȡǩؼͻRect // tabRectʹ串ǷΧʺϷñǩҳ - tabRect.left += 1; + tabRect.left += 10; tabRect.right -= 1; tabRect.top += 35; tabRect.bottom -= 1; @@ -185,7 +185,6 @@ BOOL CHuaGoCorrectDlg::OnInitDialog() m_ComboxColor.InsertString(0, _T("gray")); m_ComboxColor.InsertString(1, _T("color")); m_ComboxColor.SetCurSel(1); - //m_drv->set_decompress_pix_type(TWPT_RGB); m_A4Scanner.SetCheck(0); n_hour = 0; @@ -239,7 +238,7 @@ bool CHuaGoCorrectDlg::RefreshUSBList() while (info != ret.end()) { CString strinfo; - strinfo.Format("vid0x%x pid0X%x", info->vid, info->pid); + strinfo.Format(L"vid0x%x pid0X%x", info->vid, info->pid); m_Usbs.InsertString(i, strinfo); info++; i++; @@ -311,9 +310,9 @@ void CHuaGoCorrectDlg::RefreshTabChange() // ȡǩؼͻRectʺϷñǩҳ m_tab.GetClientRect(&tabRect); - tabRect.left += 10; - tabRect.right -= 1; - tabRect.top += 35; + tabRect.left += 15; + tabRect.right += 20; + tabRect.top += 20; tabRect.bottom -= 1; switch (m_tab.GetCurSel()) @@ -343,7 +342,7 @@ void CHuaGoCorrectDlg::Scan() HGScanConfig config = { 0 }; config.g200params.dpi = 1;//only support 200DPI config.g200params.paper = 0; - config.g200params.pc_correct = !((CButton*)GetDlgItem(IDC_CKBORGINIMG))->GetCheck(); + config.g200params.pc_correct = ((CButton*)GetDlgItem(IDC_CKBORGINIMG))->GetCheck(); config.g200params.color = m_iColorIndex == 1 ? 1 : 0; config.g200params.double_feed_enbale = TRUE; config.g200params.screw_detect_enable = FALSE; @@ -354,15 +353,15 @@ void CHuaGoCorrectDlg::Scan() m_drv->Scanner_StartScan(-1); m_drv->run(); - //if (b_suspend) - // KillTimer(N_TIMER_SEC); + if (b_suspend) + KillTimer(N_TIMER_SEC); - //b_suspend = FALSE; - //n_hour = 0; - //n_minute = 0; - //n_second = 0; - //SetTimer(N_TIMER_SEC, N_TIME_SEC, NULL); - //SetTimer(N_TIMER_SHOW, N_TIME_SHOW, NULL); + b_suspend = FALSE; + n_hour = 0; + n_minute = 0; + n_second = 0; + SetTimer(N_TIMER_SEC, N_TIME_SEC, NULL); + SetTimer(N_TIMER_SHOW, N_TIME_SHOW, NULL); } @@ -371,7 +370,7 @@ void CHuaGoCorrectDlg::OnBnClickedCheckparamset() // TODO: ڴӿؼ֪ͨ if (!m_drv->IsConnected()) { - MessageBox("ɨδӣ"); + MessageBox(TEXT("ɨδӣ")); return; } m_A4Dlg.SendCorrectParam(); @@ -383,7 +382,7 @@ void CHuaGoCorrectDlg::OnBnClickedCheckparamread() // TODO: ڴӿؼ֪ͨ if (!m_drv->IsConnected()) { - MessageBox("ɨδӣ"); + MessageBox(TEXT("ɨδӣ")); return; } m_tab.SetCurSel(0); @@ -397,14 +396,29 @@ void CHuaGoCorrectDlg::OnBnClickedBtnFlat() m_iflatIndex = -2; if (!m_drv->IsConnected()) { - MessageBox("ɨδӣ"); + MessageBox(TEXT("ɨδӣ")); return; } if (GetDlgItem(IDC_CKBCORRECTMODE)->IsWindowVisible()) { + m_tab.SetCurSel(2); + RefreshTabChange(); + ((CEdit*)(m_A3dlg.GetDlgItem(IDC_LSTFLATINFO)))->Clear(); + auto flatcall = [&](string info) { + USES_CONVERSION; + std::string c_str = StringToUtf(info); + CString pWideChar = A2T(c_str.c_str()); + CString oldinfo; + ((CEdit*)(m_A3dlg.GetDlgItem(IDC_LSTFLATINFO)))->GetWindowText(oldinfo); + oldinfo += pWideChar; + ((CEdit*)(m_A3dlg.GetDlgItem(IDC_LSTFLATINFO)))->SetWindowText(oldinfo); + auto edit = ((CEdit*)(m_A3dlg.GetDlgItem(IDC_LSTFLATINFO))); + edit->LineScroll(edit->GetLineCount()); + }; + m_drv->SetFlatCallback(flatcall); m_drv->StartFlat(((CButton*)GetDlgItem(IDC_CKBCORRECTMODE))->GetCheck()); + } - else m_drv->StartFlat(true);//ɫ } @@ -413,26 +427,26 @@ void CHuaGoCorrectDlg::WriteLog(CString msg) { if (!msg.IsEmpty()) { - FILE* pFile = fopen(".//log//CorrectLog.log", "a+"); - if (pFile != NULL) - { - char cTime[32]; - CTime currTime = CTime::GetCurrentTime(); - _snprintf(cTime, 30, "[%04d-%02d-%02d %02d:%02d:%02d]", - currTime.GetYear(), currTime.GetMonth(), currTime.GetDay(), - currTime.GetHour(), currTime.GetMinute(), currTime.GetSecond()); - fwrite(cTime, 1, strlen(cTime), pFile); - fwrite(msg, 1, strlen(msg), pFile); - fwrite("\n", 1, 1, pFile); - fclose(pFile); - } + //FILE* pFile = fopen(".//log//CorrectLog.log", "a+"); + //if (pFile != NULL) + //{ + // char cTime[32]; + // CTime currTime = CTime::GetCurrentTime(); + // _snprintf(cTime, 30, "[%04d-%02d-%02d %02d:%02d:%02d]", + // currTime.GetYear(), currTime.GetMonth(), currTime.GetDay(), + // currTime.GetHour(), currTime.GetMinute(), currTime.GetSecond()); + // fwrite(cTime, 1, strlen(cTime), pFile); + // fwrite(msg, 1, strlen(msg.GetBuffer()), pFile); + // fwrite("\n", 1, 1, pFile); + // fclose(pFile); + //} } } void CHuaGoCorrectDlg::OnCancel() { // TODO: ڴרô/û - if (IDOK != AfxMessageBox("ȷҪ˳", MB_ICONQUESTION | MB_OKCANCEL)) + if (IDOK != AfxMessageBox(L"ȷҪ˳˳", MB_ICONQUESTION | MB_OKCANCEL)) { return; } @@ -469,51 +483,51 @@ void CHuaGoCorrectDlg::OnBnClickedStopScan() } -//void CHuaGoCorrectDlg::OnTimer(UINT_PTR nIDEvent) -//{ -// // TODO: ڴϢ/Ĭֵ -// switch (nIDEvent) -// { -// case 1: -// { -// if (b_review == FALSE) -// { -// n_second++; -// if (n_second == 60) -// { -// n_second = 0; -// n_minute++; -// } -// if (n_minute == 60) -// { -// n_minute = 0; -// n_hour++; -// } -// } -// } -// case 2: -// { -// if (b_review == FALSE) -// { -// int h1, h2, m1, m2, s1, s2; -// h1 = n_hour / 10; -// h2 = n_hour % 10; -// m1 = n_minute / 10; -// m2 = n_minute % 10; -// s1 = n_second / 10; -// s2 = n_second % 10; -// s_hour.Format("%d%d", h1, h2); -// s_minute.Format("%d%d", m1, m2); -// s_second.Format("%d%d", s1, s2); -// } -// UpdateData(FALSE); -// } -// default: -// break; -// } -// -// CDialogEx::OnTimer(nIDEvent); -//} +void CHuaGoCorrectDlg::OnTimer(UINT_PTR nIDEvent) +{ + // TODO: ڴϢ/Ĭֵ + switch (nIDEvent) + { + case 1: + { + if (b_review == FALSE) + { + n_second++; + if (n_second == 60) + { + n_second = 0; + n_minute++; + } + if (n_minute == 60) + { + n_minute = 0; + n_hour++; + } + } + } + case 2: + { + if (b_review == FALSE) + { + int h1, h2, m1, m2, s1, s2; + h1 = n_hour / 10; + h2 = n_hour % 10; + m1 = n_minute / 10; + m2 = n_minute % 10; + s1 = n_second / 10; + s2 = n_second % 10; + s_hour.Format(L"%d%d", h1, h2); + s_minute.Format(L"%d%d", m1, m2); + s_second.Format(L"%d%d", s1, s2); + } + UpdateData(FALSE); + } + default: + break; + } + + CDialogEx::OnTimer(nIDEvent); +} /// /// ѡļ @@ -530,8 +544,10 @@ void CHuaGoCorrectDlg::OnBnClickedBtnSelectfile() NULL); if (IDOK == ofd.DoModal()) { + USES_CONVERSION; + updateFilePath = ofd.GetPathName(); - SetDlgItemText(IDC_LB_FILEPATH, updateFilePath.c_str()); + SetDlgItemText(IDC_LB_FILEPATH, updateFilePath); } } @@ -584,7 +600,8 @@ void CHuaGoCorrectDlg::OnCbnSelchangeCmbUsbs() GetDlgItem(IDC_CKBUVMODEL)->EnableWindow(i->vid == 0x3072 && i->pid == 0x0300); } m_drv->open(i->vid, i->pid, 0); - std::string savepath(GetMainApp()->path.GetBuffer()); + USES_CONVERSION; + std::string savepath(W2A(GetMainApp()->path.GetBuffer())); m_drv->SetPath(savepath); if (i->pid & 0x39) { @@ -608,7 +625,7 @@ void CHuaGoCorrectDlg::OnCbnSelchangeCmbUsbs() { MessageBox(TEXT("open current select usb scanner failed"), TEXT("Notify"), MB_OK | MB_ICONINFORMATION); } - + } } } @@ -624,11 +641,11 @@ void CHuaGoCorrectDlg::OnBnClickedBtnstart() if (!m_drv->IsConnected()) { - MessageBox("ɨδӣ"); + MessageBox(L"ɨδӣ"); return; } m_iColorIndex = m_ComboxColor.GetCurSel(); - GetDlgItem(IDC_STATIC_NUM)->SetWindowText("0"); + GetDlgItem(IDC_STATIC_NUM)->SetWindowText(L"0"); m_drv->DevStateChange(); m_drv->reset(); Scan(); @@ -656,9 +673,9 @@ void CHuaGoCorrectDlg::OnBnClickedBtnstop() m2 = n_minute % 10; s1 = n_second / 10; s2 = n_second % 10; - s_hour.Format("%d%d", h1, h2); - s_minute.Format("%d%d", m1, m2); - s_second.Format("%d%d", s1, s2); + s_hour.Format(L"%d%d", h1, h2); + s_minute.Format(L"%d%d", m1, m2); + s_second.Format(L"%d%d", s1, s2); UpdateData(FALSE); } m_drv->Stop_scan(); @@ -667,8 +684,10 @@ void CHuaGoCorrectDlg::OnBnClickedBtnstop() void CHuaGoCorrectDlg::updatefunc() { CProgressCtrl* prb = (CProgressCtrl*)GetDlgItem(IDC_PRB_UPDATE); - int ret= m_drv->Updata(updateFilePath, [this,&prb](long pos, long len) { - prb->SetRange32(0,len); + USES_CONVERSION; + std::string updatefile(W2A(updateFilePath)); + int ret = m_drv->Updata(updatefile, [this, &prb](long pos, long len) { + prb->SetRange32(0, len); prb->SetPos(pos); }); if (ret == false) @@ -679,60 +698,4 @@ void CHuaGoCorrectDlg::updatefunc() { MessageBox(TEXT("ɣ"), TEXT("ʾ"), MB_OK | MB_ICONINFORMATION); } - //std::ifstream updatefile; - //updatefile.open(updateFilePath, std::ios_base::in | std::ios_base::binary); - //if (!updatefile.is_open()) - //{ - // MessageBox(TEXT("ļʧܣ"), TEXT("ʾ"), MB_OK); - //} - //CProgressCtrl* prb = (CProgressCtrl*)GetDlgItem(IDC_PRB_UPDATE); - //updatefile.seekg(0, std::ios::end); - //size_t length = updatefile.tellg(); - //prb->SetRange32(0, length); - //updatefile.seekg(0, std::ios::beg); - //USBCB pre_update = { PRE_UPGRADE,0,length }; - //m_drv->m_usb->write_bulk(&pre_update, sizeof(pre_update)); - //size_t nreaded = 0; - //size_t nleft = length; - //int buffersize = 1024 * 1024; - //if (length <= buffersize)//С1MB - //{ - // char* uotstream = new char[length]; - // USBCB update = { START_UPGRADE,0,length }; - // m_drv->m_usb->write_bulk(&update, sizeof(update)); - // updatefile.read(uotstream, length); - // m_drv->m_usb->write_bulk(uotstream, length); - // m_drv->m_usb->read_bulk(&update, sizeof(update)); - // if (update.u32_Count != length) - // MessageBox(TEXT("ʧܣ"), TEXT("棡"), MB_OK); - // delete[] uotstream; - //} - //else - //{ - // while (true) - // { - // int ntotransfer; - // if (nleft < buffersize) - // ntotransfer = nleft; - // else - // ntotransfer = buffersize; - // USBCB update = { START_UPGRADE,0,ntotransfer }; - // m_drv->m_usb->write_bulk(&update, sizeof(update)); - // std::vector data; - // data.resize(ntotransfer); - // updatefile.read(data.data(), ntotransfer); - // m_drv->m_usb->write_bulk(data.data(), ntotransfer); - // m_drv->m_usb->read_bulk(&update, sizeof(update)); - // nreaded += ntotransfer; - // nleft -= ntotransfer; - // prb->SetPos(nreaded); - // if (nreaded >= length) - // break; - // this_thread::sleep_for(std::chrono::milliseconds(10)); - // } - //} - - //USBCB updatefinished = { UPDATE_FINISHED,0,0 }; - //m_drv->m_usb->write_bulk(&updatefinished, sizeof(updatefinished)); - //MessageBox(TEXT("̼ɣ"), TEXT("ʾ"), MB_OK | MB_ICONINFORMATION); } diff --git a/HuaGoCorrect/HuaGoCorrectDlg.h b/HuaGoCorrect/HuaGoCorrectDlg.h index 5c6e0f1..d1d3ab7 100644 --- a/HuaGoCorrect/HuaGoCorrectDlg.h +++ b/HuaGoCorrect/HuaGoCorrectDlg.h @@ -11,7 +11,7 @@ #include "twain.h" #include "A3.h" #include "A4.h" -#include "ConfigParam.h" +//#include "ConfigParam.h" #include "afxwin.h" #include "CVISON.h" #include "scn_usb.h" @@ -63,7 +63,6 @@ public: CA4 m_A4Dlg; CVISON m_VisonDlg; CA3 m_A3dlg; - CConfigParam m_ConfigParam; std::shared_ptr m_drv; CRect tabRect; // ǩؼͻλúʹС void Scan(); @@ -104,7 +103,7 @@ public: CString s_minute; CString s_second; afx_msg void OnBnClickedStopScan(); - //afx_msg void OnTimer(UINT_PTR nIDEvent); + afx_msg void OnTimer(UINT_PTR nIDEvent); afx_msg void OnBnClickedBtnSelectfile(); afx_msg void OnBnClickedBtnUpdate(); afx_msg void OnBnClickedBtnRefresh(); @@ -112,7 +111,7 @@ public: afx_msg void OnBnClickedBtnstart(); afx_msg void OnBnClickedBtnstop(); private: - std::string updateFilePath; + CString updateFilePath; std::thread m_updateThread; void updatefunc(); }; diff --git a/HuaGoCorrect/IScanner.h b/HuaGoCorrect/IScanner.h index fe6dbec..a7f750f 100644 --- a/HuaGoCorrect/IScanner.h +++ b/HuaGoCorrect/IScanner.h @@ -15,6 +15,7 @@ public: virtual void SetFWVersion() = 0; virtual std::string GetSerialNum() = 0; virtual void SetSerialNum(std::string serial) = 0; + virtual std::string GetKernelVersion() =0; virtual void SetRatio(int tyepe, int ration) = 0; virtual void GetRatio(int type, int& ratio) = 0; virtual void Reboot() = 0; @@ -44,8 +45,12 @@ public: virtual void SetSptime(int type, int time) = 0; virtual void GetSleepTime(int& sleeptime) = 0; virtual void SetSleepTime(int sleeptime) = 0; - virtual bool Updata(std::string filename, std::function func) = 0; + virtual void GetFlatMaxBright(bool iscolor, unsigned int& val) = 0; + virtual void SetFlatMaxBright(bool iscolor, unsigned int val) = 0; + virtual bool Updata(std::string filename, std::function func) = 0; + virtual void SetFlatCallback(std::function func) = 0; + virtual void GetSpeedMode(int& speedmode,bool get) = 0 ; void SetPath(std::string csFilePath) { csPath = csFilePath; diff --git a/HuaGoCorrect/JpegBuffer.cpp b/HuaGoCorrect/JpegBuffer.cpp index 53e27b6..7253917 100644 --- a/HuaGoCorrect/JpegBuffer.cpp +++ b/HuaGoCorrect/JpegBuffer.cpp @@ -49,7 +49,7 @@ cv::Mat JpegBuffer::getMat( int pixType) //XdPrint("buffer size is :%d ==========================\n",getSize()); cv::Mat image = jl.decode(m_buffer, pixType);//oixtype - XdPrint("Decode Image time epleased :%lf ==========================\n",sw.elapsed_ms()); + XdPrint(L"Decode Image time epleased :%lf ==========================\n",sw.elapsed_ms()); //XdPrint("==image col is :%d, image row is :%d, image size is :%d===\n",image.cols, image.rows, image.size); //FileTools::write_log("D:/1.txt",) diff --git a/HuaGoCorrect/PublicFunc.cpp b/HuaGoCorrect/PublicFunc.cpp index 1de0d09..b8bf051 100644 --- a/HuaGoCorrect/PublicFunc.cpp +++ b/HuaGoCorrect/PublicFunc.cpp @@ -313,34 +313,34 @@ TCHAR* GetCurExeFilePath(HINSTANCE hInstance, TCHAR* lpPath, DWORD dwSize) TCHAR* GetExistFileDir(TCHAR* p_file_path) { - WIN32_FIND_DATA wfd = {0}; - LPSTR p_test = NULL; - HANDLE hFindFile = INVALID_HANDLE_VALUE; + //WIN32_FIND_DATA wfd = {0}; + //LPSTR p_test = NULL; + //HANDLE hFindFile = INVALID_HANDLE_VALUE; - if ( p_file_path == NULL ) + //if ( p_file_path == NULL ) + // return NULL; + // + //hFindFile = FindFirstFile(p_file_path, &wfd); + //if (hFindFile != NULL) + //{ + // FindClose(hFindFile); + // hFindFile= INVALID_HANDLE_VALUE; + //} + //if ( wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) + //{ + // return p_file_path; + //} + // + //p_test = _tcsrchr(p_file_path, '\\'); + //if ( p_test != NULL ) + //{ + // *p_test = 0; + // return GetExistFileDir(p_file_path); + //} + //else + //{ return NULL; - - hFindFile = FindFirstFile(p_file_path, &wfd); - if (hFindFile != NULL) - { - FindClose(hFindFile); - hFindFile= INVALID_HANDLE_VALUE; - } - if ( wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) - { - return p_file_path; - } - - p_test = _tcsrchr(p_file_path, '\\'); - if ( p_test != NULL ) - { - *p_test = 0; - return GetExistFileDir(p_file_path); - } - else - { - return NULL; - } + //} } DWORD CALLBACK BrowserCallbackProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) @@ -375,10 +375,10 @@ BOOL CheckAndCreateFileDir(TCHAR* p_file_path, BOOL flg) return FALSE; } } - if ( _access(p_file_path, 0) == 0) - { - return TRUE; - } + //if ( _access(p_file_path, 0) == 0) + //{ + // return TRUE; + //} if ( !flg ) return FALSE; @@ -412,67 +412,67 @@ BOOL CheckAndCreateFileDir(TCHAR* p_file_path, BOOL flg) BOOL CheckDiskFreeBitM(HWND hWin, TCHAR *p_disk_name, DWORD dw_min_bit_m) { - TCHAR *p = NULL; - TCHAR sz_root_path_name[MAX_PATH + 1] = {0}; - INT len = 0; - - DWORD dwTotalDiskSpace = 0; - DWORD dwFreeDiskSpace = 0; - DWORD dwUsedDiskSpace = 0; + //TCHAR *p = NULL; + //TCHAR sz_root_path_name[MAX_PATH + 1] = {0}; + //INT len = 0; + // + //DWORD dwTotalDiskSpace = 0; + //DWORD dwFreeDiskSpace = 0; + //DWORD dwUsedDiskSpace = 0; - ULARGE_INTEGER uiFreeBytesAvailableToCaller; - ULARGE_INTEGER uiTotalNumberOfBytes; - ULARGE_INTEGER uiTotalNumberOfFreeBytes; + //ULARGE_INTEGER uiFreeBytesAvailableToCaller; + //ULARGE_INTEGER uiTotalNumberOfBytes; + //ULARGE_INTEGER uiTotalNumberOfFreeBytes; - UINT un_ret = 0; - if ( p_disk_name == NULL ) - return FALSE; + //UINT un_ret = 0; + //if ( p_disk_name == NULL ) + // return FALSE; - len = _tcslen(p_disk_name); - if ( len > MAX_PATH ) - { - len = MAX_PATH; - } + //len = _tcslen(p_disk_name); + //if ( len > MAX_PATH ) + //{ + // len = MAX_PATH; + //} - memcpy(sz_root_path_name, p_disk_name, (size_t)len); + //memcpy(sz_root_path_name, p_disk_name, (size_t)len); - p = _tcsstr(sz_root_path_name, "\\"); - if ( p == NULL ) - { - if ( len == 2 ) - { - if ( !((sz_root_path_name[0] >= 'A' && sz_root_path_name[0] <= 'Z' || sz_root_path_name[0] >= 'a' && sz_root_path_name[0] <= 'z') && sz_root_path_name[1]== ':') ) - return FALSE; - } - else - return FALSE; - } - if ( p != NULL ) - *(p+1) = 0; - un_ret = GetDriveType(sz_root_path_name); - if ( un_ret == 0 || un_ret == 1) - { - return FALSE; - } - - if(GetDiskFreeSpaceEx(sz_root_path_name, &uiFreeBytesAvailableToCaller, &uiTotalNumberOfBytes, &uiTotalNumberOfFreeBytes)) - { - //dwTotalDiskSpace = (DWORD)(uiTotalNumberOfBytes.QuadPart / 1024 / 1024); - dwFreeDiskSpace = (DWORD)(uiFreeBytesAvailableToCaller.QuadPart >> 20); - //dwUsedDiskSpace = dwTotalDiskSpace - dwFreeDiskSpace; - if ( dwFreeDiskSpace < dw_min_bit_m ) - { - //ShowErrorStr(hWin, 1101);//1101=̿ռ䲻 - MyMessageBox( TEXT("̷ÿռ䲻"), 0, MB_ICONWARNING); - return FALSE; - } - } - else - { - MyMessageBox( TEXT("̷ÿռ䲻"), 0, MB_ICONWARNING); - //GetErrorMessage(NULL, 0, FALSE); - return FALSE; - } + //p = _tcsstr(sz_root_path_name, "\\"); + //if ( p == NULL ) + //{ + // if ( len == 2 ) + // { + // if ( !((sz_root_path_name[0] >= 'A' && sz_root_path_name[0] <= 'Z' || sz_root_path_name[0] >= 'a' && sz_root_path_name[0] <= 'z') && sz_root_path_name[1]== ':') ) + // return FALSE; + // } + // else + // return FALSE; + //} + //if ( p != NULL ) + // *(p+1) = 0; + //un_ret = GetDriveType(sz_root_path_name); + //if ( un_ret == 0 || un_ret == 1) + //{ + // return FALSE; + //} + // + //if(GetDiskFreeSpaceEx(sz_root_path_name, &uiFreeBytesAvailableToCaller, &uiTotalNumberOfBytes, &uiTotalNumberOfFreeBytes)) + //{ + // //dwTotalDiskSpace = (DWORD)(uiTotalNumberOfBytes.QuadPart / 1024 / 1024); + // dwFreeDiskSpace = (DWORD)(uiFreeBytesAvailableToCaller.QuadPart >> 20); + // //dwUsedDiskSpace = dwTotalDiskSpace - dwFreeDiskSpace; + // if ( dwFreeDiskSpace < dw_min_bit_m ) + // { + // //ShowErrorStr(hWin, 1101);//1101=̿ռ䲻 + // MyMessageBox( TEXT("̷ÿռ䲻"), 0, MB_ICONWARNING); + // return FALSE; + // } + //} + //else + //{ + // MyMessageBox( TEXT("̷ÿռ䲻"), 0, MB_ICONWARNING); + // //GetErrorMessage(NULL, 0, FALSE); + // return FALSE; + //} //ShowErrorStr(hWin, 1101);//1101=̿ռ䲻 //return FALSE; return TRUE; diff --git a/HuaGoCorrect/Resource.h b/HuaGoCorrect/Resource.h index cace58a..298b72c 100644 Binary files a/HuaGoCorrect/Resource.h and b/HuaGoCorrect/Resource.h differ diff --git a/HuaGoCorrect/commondef.h b/HuaGoCorrect/commondef.h index 029dc06..9861740 100644 --- a/HuaGoCorrect/commondef.h +++ b/HuaGoCorrect/commondef.h @@ -312,7 +312,12 @@ enum Scanner_Reg_Defs SR_SET_COLOR_SP, SR_SET_SLEEPTIME, SR_GET_SLEEPTIME, - SR_GET_SLEEP_STAUTUS, + SR_GET_SLEEP_STAUTUS, + SR_GET_IMAGEPROCESSDONE, + SR_GET_KEEP_LAST_PAPER, + SR_GET_PAPERON, + SR_SET_SPEEDMODE, + SR_GET_SPEEDMODE, SR_GET_CUO_ERROR = 0x50, SR_GET_DOU_ERROR, SR_GET_JAM_ERROR, @@ -326,7 +331,11 @@ enum Scanner_Reg_Defs SR_UPDATA_RECOVERY = 0x103, SR_UPDATA_REBOOT = 0x104, SR_POWEROFF = 0x105, - SR_REBOOT = 0x106 + SR_REBOOT = 0x106, + SR_FLAT_CLR_MAX_BRIGHT, + SR_FLAT_GRAY_MAX_BRIGHT, + SR_KERNEL_VERSION_INFO_LENGTH, + SR_GET_KERNEL_VERSION }; enum Scanner_Cmd_Defs @@ -355,7 +364,8 @@ enum HGType FPGA, V4L2, IMG, - STOPSCAN, + AutoCorrect, + STOPSCAN }; typedef union HG_ScanConfig @@ -396,4 +406,5 @@ struct HGEIntInfo { HGType From; unsigned int Code; + unsigned int Img_Index; }; \ No newline at end of file diff --git a/HuaGoCorrect/gscan3399.cpp b/HuaGoCorrect/gscan3399.cpp index 22ba9c8..ee14292 100644 --- a/HuaGoCorrect/gscan3399.cpp +++ b/HuaGoCorrect/gscan3399.cpp @@ -147,6 +147,22 @@ void gscan3399::SetSerialNum(std::string serial) } } +std::string gscan3399::GetKernelVersion() +{ + std::string version = "unkown"; + if (m_usb.get() && m_usb->is_connected()) + { + int length = scanner_read_reg(m_usb, SR_KERNEL_VERSION_INFO_LENGTH); + version.resize(length); + if (length > 0) + { + scanner_write_reg(m_usb, SR_GET_KERNEL_VERSION, length); + read_data(&version[0], version.length(), 200); + } + } + return version; +} + void gscan3399::SetRatio(int tyepe, int ration) { scanner_write_reg(m_usb, tyepe == 0 ? SR_SET_H_RATIO : SR_SET_V_RATIO, ration); @@ -181,7 +197,7 @@ bool gscan3399::Get_Scanner_PaperOn() void gscan3399::Config_Scanner(HGScanConfig config) { m_config = config; - scanner_write_reg(m_usb, SR_CONFIG_SCAN_PARAM, config.value); + scanner_write_reg(m_usb, SR_CONFIG_SCAN_PARAM, config.value); } void gscan3399::Scanner_StartScan(UINT16 count) { @@ -227,6 +243,22 @@ void gscan3399::set_decompress_pix_type(int pixtype) } +void gscan3399::GetFlatMaxBright(bool iscolor, unsigned int& val) +{ + if (m_usb.get() && m_usb->is_connected()) + { + val= scanner_read_reg(m_usb, iscolor?SR_FLAT_CLR_MAX_BRIGHT:SR_FLAT_GRAY_MAX_BRIGHT); + } +} + +void gscan3399::SetFlatMaxBright(bool iscolor, unsigned int val) +{ + if (m_usb.get() && m_usb->is_connected()) + { + scanner_write_reg(m_usb, iscolor ? SR_FLAT_CLR_MAX_BRIGHT : SR_FLAT_GRAY_MAX_BRIGHT,val); + } +} + bool gscan3399::Updata(std::string filename, std::function func) { std::ifstream updatefile; @@ -369,25 +401,18 @@ CaptureParams gscan3399::GetFlatData() void gscan3399::StartFlat(bool iscolor) { int color = iscolor ? 1 : 0; - scanner_write_reg(m_usb, SC_AUTOCORRECT, color); - unsigned char buff[64] = { 0 }; - StopWatch sw; - while (sw.elapsed_s() < 120) + if (m_usbthread.get()) { - auto lenght = m_usb->read_int(buff, sizeof(buff)); - if (lenght == sizeof(buff)) + b_usbthread = false; + if (m_usbthread->joinable()) { - HGEIntInfo info = *(HGEIntInfo*)&buff; - if (info.From == 5 && info.Code == 6) - break; + m_usbthread->join(); + m_usbthread.reset(); } - this_thread::sleep_for(chrono::milliseconds(30)); - DoEvents(); } - if(sw.elapsed_s()<120) - MessageBox(NULL, TEXT(iscolor?"ɫԶУɣ":"ҶԶУɣ"), TEXT("ʾ"), MB_OK); - else - MessageBox(NULL, TEXT(iscolor ? "ɫԶУʧܣ" : "ɫԶУʧܣ"), TEXT("ʾ"), MB_OK); + b_usbthread = true; + m_usbthread.reset(new thread(&gscan3399::usb_run, this)); + scanner_write_reg(m_usb, SC_AUTOCORRECT, color); } void gscan3399::DevStateChange() @@ -404,7 +429,6 @@ void gscan3399::close() { if (m_usb.get()) m_usb->close(); - } void gscan3399::GetExpose(int& Aside, int& Bside) @@ -440,6 +464,25 @@ void gscan3399::SetSleepTime(int sleeptime) scanner_write_reg(m_usb, SR_SET_SLEEPTIME, sleeptime); } +void gscan3399::SetFlatCallback(std::function func) +{ + m_flatcallback = func; +} + +void gscan3399::GetSpeedMode(int& speedmode, bool get) +{ + if (m_usb.get() && m_usb->is_connected()) + { + if (get) + { + speedmode= scanner_read_reg(m_usb, SR_GET_SPEEDMODE); + } + else + { + scanner_write_reg(m_usb, SR_SET_SPEEDMODE,speedmode); + } + } +} void gscan3399::usbcallback(bool isleft, void* usrdata) { @@ -471,7 +514,7 @@ void gscan3399::get_imgdata() if (is_bulktransferring()) { std::this_thread::sleep_for(std::chrono::milliseconds(1)); - continue; + return; } imgremains++; auto& buffi = im_data; @@ -535,7 +578,9 @@ void gscan3399::imgproce(std::shared_ptr>& buffs) p = localtime(&timp); std::string filename = std::to_string(p->tm_hour) + "_" + std::to_string(p->tm_min) + "_" + std::to_string(p->tm_sec); static int indeximg = 0; - std::string path = csPath+"\\"+filename + ".png"; + ++indeximg; + auto str = indeximg % 2 == 1 ? "F" : "B"; + std::string path = csPath+"\\"+filename + str+".png"; if (!mat.empty()) { cv::imwrite(path, mat); m_imagespath.Put(path); @@ -559,7 +604,7 @@ void gscan3399::usb_run() } memset(buff, 0, sizeof(buff)); auto length = m_usb->read_int(buff, sizeof(buff)); - if (((length) == sizeof(buff)) || is_bulktransferring()) + if (((length) == sizeof(buff))) { HGEIntInfo info = *(HGEIntInfo*)&buff; switch (info.From) @@ -568,6 +613,19 @@ void gscan3399::usb_run() if (is_runing()) get_imgdata(); break; + case AutoCorrect: + if (info.Img_Index != 0) + { + std::string s_info; + s_info.resize(info.Img_Index); + m_usb->read_bulk(&s_info[0], s_info.length()); + //FileTools::write_log("D:\\info.txt", s_info); + if (m_flatcallback) + m_flatcallback(s_info); + } + if (info.Code == 4)//flat done + return; + break; default: break; } diff --git a/HuaGoCorrect/gscan3399.h b/HuaGoCorrect/gscan3399.h index 987f0c8..4222473 100644 --- a/HuaGoCorrect/gscan3399.h +++ b/HuaGoCorrect/gscan3399.h @@ -16,6 +16,7 @@ public: virtual void SetFWVersion(); virtual std::string GetSerialNum(); virtual void SetSerialNum(std::string serial); + virtual std::string GetKernelVersion(); virtual void SetRatio(int tyepe, int ration); virtual void GetRatio(int type, int& ratio); virtual void Reboot(); @@ -31,7 +32,8 @@ public: virtual void run(); virtual int get_decompress_pix_type(); virtual void set_decompress_pix_type(int pixtype); - + virtual void GetFlatMaxBright(bool iscolor, unsigned int& val); + virtual void SetFlatMaxBright(bool iscolor, unsigned int val); virtual bool Updata(std::string filename, std::function func); virtual void SetIsDuplex(bool value); @@ -64,6 +66,11 @@ public: virtual void GetSleepTime(int& sleeptime); virtual void SetSleepTime(int sleeptime); + + virtual void SetFlatCallback(std::function func); + virtual void GetSpeedMode(int& speedmode,bool getorset); + + private: static void usbcallback(bool isleft, void* usrdata); int read_data(void* data, int length, int timeout); @@ -88,4 +95,5 @@ private: BlockingQueue m_imagespath; std::atomic_int imgremains; HGScanConfig m_config; + std::function m_flatcallback; }; \ No newline at end of file diff --git a/HuaGoCorrect/gscn_drv.cpp b/HuaGoCorrect/gscn_drv.cpp index 334495b..31bb80d 100644 --- a/HuaGoCorrect/gscn_drv.cpp +++ b/HuaGoCorrect/gscn_drv.cpp @@ -18,7 +18,7 @@ GScn_Drv::GScn_Drv() { //run(); - XdPrint("Init GScn_Drv() \n"); + XdPrint(L"Init GScn_Drv() \n"); m_bRun = false; devState = DEV_STOP; @@ -35,9 +35,9 @@ GScn_Drv::~GScn_Drv() m_bRun = false; devState = DEV_STOP; m_threadUsb.join(); - XdPrint("m_threadUsb Released True 22222222222222222222222 \n"); + XdPrint(L"m_threadUsb Released True 22222222222222222222222 \n"); } - XdPrint("~ GScn_Drv() \n"); + XdPrint(L"~ GScn_Drv() \n"); } void GScn_Drv::InitMSGMap() @@ -82,7 +82,7 @@ void GScn_Drv::open(int vid, int pid,int index) m_usb->open();//ͬʱڶͬɨ豸ʱĬѡȡһvid pidƥ豸 selectDeviceIndex=index; m_scannerType=G300; - h= ::FindWindow(NULL, "HGScannerTool"); + h= ::FindWindow(NULL, L"HGScannerTool"); } } @@ -223,6 +223,23 @@ void GScn_Drv::SetSleepTime(int sleeptime) } } +void GScn_Drv::GetFlatMaxBright(bool iscolor, unsigned int& val) +{ +} + +void GScn_Drv::SetFlatMaxBright(bool iscolor, unsigned int val) +{ +} + +void GScn_Drv::SetFlatCallback(std::function func) +{ + m_flatcallback = func; +} + +void GScn_Drv::GetSpeedMode(int& speedmode, bool get) +{ +} + void GScn_Drv::reset() { while (!m_pImages.empty()) @@ -425,11 +442,13 @@ DWORD GScn_Drv::usbmain() case DETECT_STAPLE: case PAPER_SKEW: case HARDWARE_ERROR: - case PC_SCAN_BUSY_or_ERROR: - MessageBox(h, ntcMsg[usbcb.u32_Data].c_str(), "ʾ", MB_OK | MB_ICONERROR); + case PC_SCAN_BUSY_or_ERROR:{ + USES_CONVERSION; + MessageBox(h, CString(ntcMsg[usbcb.u32_Data].c_str()), L"ʾ", MB_OK | MB_ICONERROR); devState = DEV_WRONG; m_pImages.SetScanFlag(false); break; + } case NORMAL: break; default: @@ -442,15 +461,15 @@ DWORD GScn_Drv::usbmain() } catch (CMemoryException* e) { - XdPrint("CMemoryException"); + XdPrint(L"CMemoryException"); } catch (CFileException* e) { - XdPrint("CFileException"); + XdPrint(L"CFileException"); } catch (CException* e) { - XdPrint("CException"); + XdPrint(L"CException"); } return 0; } @@ -508,11 +527,11 @@ std::string GScn_Drv::GetFWVersion() std::lock_guard lck(m_imgLocker); std::string pFWVersion = " "; USBCB usbcb = { GET_FW_VERSION,0,0 }; - XdPrint("Get GetFWVersion"); + XdPrint(L"Get GetFWVersion"); m_usb->write_bulk(&usbcb, sizeof(usbcb)); CString cslog; - cslog.Format("GetFWVersion Read_Data %d",usbcb.u32_Data); + cslog.Format(L"GetFWVersion Read_Data %d",usbcb.u32_Data); m_usb->read_bulk(&pFWVersion[0], 10); return pFWVersion; @@ -541,16 +560,21 @@ void GScn_Drv::SetSerialNum(std::string pvalue) return; } +std::string GScn_Drv::GetKernelVersion() +{ + return "un support"; +} + int GScn_Drv::GetScanNum() { std::lock_guard lck(m_imgLocker); USBCB usbcb = { GET_SCANN_NUM,0,4 }; DWORD transfer; - XdPrint("Get GetScanNum"); + XdPrint(L"Get GetScanNum"); m_usb->write_bulk(&usbcb, sizeof(usbcb)); CString cslog; - cslog.Format("GetScanNum Read_Data %d",usbcb.u32_Data); + cslog.Format(L"GetScanNum Read_Data %d",usbcb.u32_Data); //WriteLog(cslog); m_usb->read_bulk(&usbcb, sizeof(usbcb)); @@ -562,7 +586,7 @@ void GScn_Drv::ClrRollerNum() std::lock_guard lck(m_imgLocker); USBCB usbcb = { CLR_ROLLER_NUM,0,4 }; DWORD transfer; - XdPrint("Get ClrRollerNum"); + XdPrint(L"Get ClrRollerNum"); m_usb->write_bulk(&usbcb, sizeof(usbcb)); return; } @@ -572,7 +596,7 @@ void GScn_Drv::ClrScanNum() std::lock_guard lck(m_imgLocker); USBCB usbcb = { CLR_SCAN_NUM,0,4 }; DWORD transfer; - XdPrint("Get ClrScanNum"); + XdPrint(L"Get ClrScanNum"); m_usb->write_bulk(&usbcb, sizeof(usbcb)); return; } @@ -648,7 +672,7 @@ std::string GScn_Drv::GetSerialNum() str.resize(14); USBCB usbcb = { GET_SERIAL,0,14 }; m_usb->write_bulk(&usbcb, sizeof(usbcb)); - XdPrint("GetSerialNum Read_Data %d",usbcb.u32_Data); + XdPrint(L"GetSerialNum Read_Data %d",usbcb.u32_Data); m_usb->read_bulk(&str, 14); return str; } diff --git a/HuaGoCorrect/gscn_drv.h b/HuaGoCorrect/gscn_drv.h index d0e2172..2ff5058 100644 --- a/HuaGoCorrect/gscn_drv.h +++ b/HuaGoCorrect/gscn_drv.h @@ -27,6 +27,7 @@ public: virtual void SetFWVersion(); virtual std::string GetSerialNum(); virtual void SetSerialNum(std::string serial); + virtual std::string GetKernelVersion(); virtual void SetRatio(int tyepe, int ration); virtual void GetRatio(int type, int& ratio); virtual void Reboot(); @@ -71,6 +72,12 @@ public: virtual void GetSleepTime(int& sleeptime); virtual void SetSleepTime(int sleeptime); + virtual void GetFlatMaxBright(bool iscolor, unsigned int& val); + virtual void SetFlatMaxBright(bool iscolor, unsigned int val); + + virtual void SetFlatCallback(std::function func); + virtual void GetSpeedMode(int& speedmode, bool get); + private: volatile int devState; volatile bool m_bRun; @@ -95,4 +102,5 @@ private: DWORD usbmain(); void Pop_Image(); HGScanConfig m_config; + std::function m_flatcallback; }; \ No newline at end of file diff --git a/HuaGoCorrect/pub/opencv/staticlib/debug/IlmImfd.lib b/HuaGoCorrect/pub/opencv/staticlib/debug/IlmImfd.lib deleted file mode 100644 index 62c8006..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/debug/IlmImfd.lib and /dev/null differ diff --git a/HuaGoCorrect/pub/opencv/staticlib/debug/ittnotifyd.lib b/HuaGoCorrect/pub/opencv/staticlib/debug/ittnotifyd.lib deleted file mode 100644 index c24c3f6..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/debug/ittnotifyd.lib and /dev/null differ diff --git a/HuaGoCorrect/pub/opencv/staticlib/debug/libjasperd.lib b/HuaGoCorrect/pub/opencv/staticlib/debug/libjasperd.lib deleted file mode 100644 index 7dd9aa9..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/debug/libjasperd.lib and /dev/null differ diff --git a/HuaGoCorrect/pub/opencv/staticlib/debug/libjpeg-turbod.lib b/HuaGoCorrect/pub/opencv/staticlib/debug/libjpeg-turbod.lib deleted file mode 100644 index 758283e..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/debug/libjpeg-turbod.lib and /dev/null differ diff --git a/HuaGoCorrect/pub/opencv/staticlib/debug/libpngd.lib b/HuaGoCorrect/pub/opencv/staticlib/debug/libpngd.lib deleted file mode 100644 index 1bf8a2d..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/debug/libpngd.lib and /dev/null differ diff --git a/HuaGoCorrect/pub/opencv/staticlib/debug/libprotobufd.lib b/HuaGoCorrect/pub/opencv/staticlib/debug/libprotobufd.lib deleted file mode 100644 index 8296898..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/debug/libprotobufd.lib and /dev/null differ diff --git a/HuaGoCorrect/pub/opencv/staticlib/debug/libtiffd.lib b/HuaGoCorrect/pub/opencv/staticlib/debug/libtiffd.lib deleted file mode 100644 index 12aed08..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/debug/libtiffd.lib and /dev/null differ diff --git a/HuaGoCorrect/pub/opencv/staticlib/debug/libwebpd.lib b/HuaGoCorrect/pub/opencv/staticlib/debug/libwebpd.lib deleted file mode 100644 index 8d62eea..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/debug/libwebpd.lib and /dev/null differ diff --git a/HuaGoCorrect/pub/opencv/staticlib/debug/opencv_core343d.lib b/HuaGoCorrect/pub/opencv/staticlib/debug/opencv_core343d.lib deleted file mode 100644 index 3ba101d..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/debug/opencv_core343d.lib and /dev/null differ diff --git a/HuaGoCorrect/pub/opencv/staticlib/debug/opencv_highgui343d.lib b/HuaGoCorrect/pub/opencv/staticlib/debug/opencv_highgui343d.lib deleted file mode 100644 index fc0caef..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/debug/opencv_highgui343d.lib and /dev/null differ diff --git a/HuaGoCorrect/pub/opencv/staticlib/debug/opencv_imgcodecs343d.lib b/HuaGoCorrect/pub/opencv/staticlib/debug/opencv_imgcodecs343d.lib deleted file mode 100644 index b317514..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/debug/opencv_imgcodecs343d.lib and /dev/null differ diff --git a/HuaGoCorrect/pub/opencv/staticlib/debug/opencv_imgproc343d.lib b/HuaGoCorrect/pub/opencv/staticlib/debug/opencv_imgproc343d.lib deleted file mode 100644 index 218b48e..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/debug/opencv_imgproc343d.lib and /dev/null differ diff --git a/HuaGoCorrect/pub/opencv/staticlib/debug/zlibd.lib b/HuaGoCorrect/pub/opencv/staticlib/debug/zlibd.lib deleted file mode 100644 index 5297d6b..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/debug/zlibd.lib and /dev/null differ diff --git a/HuaGoCorrect/pub/opencv/staticlib/release/IlmImf.lib b/HuaGoCorrect/pub/opencv/staticlib/release/IlmImf.lib deleted file mode 100644 index ff09f97..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/release/IlmImf.lib and /dev/null differ diff --git a/HuaGoCorrect/pub/opencv/staticlib/release/ittnotify.lib b/HuaGoCorrect/pub/opencv/staticlib/release/ittnotify.lib deleted file mode 100644 index 108326f..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/release/ittnotify.lib and /dev/null differ diff --git a/HuaGoCorrect/pub/opencv/staticlib/release/libjasper.lib b/HuaGoCorrect/pub/opencv/staticlib/release/libjasper.lib deleted file mode 100644 index a506c56..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/release/libjasper.lib and /dev/null differ diff --git a/HuaGoCorrect/pub/opencv/staticlib/release/libjpeg-turbo.lib b/HuaGoCorrect/pub/opencv/staticlib/release/libjpeg-turbo.lib deleted file mode 100644 index 879f338..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/release/libjpeg-turbo.lib and /dev/null differ diff --git a/HuaGoCorrect/pub/opencv/staticlib/release/libpng.lib b/HuaGoCorrect/pub/opencv/staticlib/release/libpng.lib deleted file mode 100644 index eef5a11..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/release/libpng.lib and /dev/null differ diff --git a/HuaGoCorrect/pub/opencv/staticlib/release/libprotobuf.lib b/HuaGoCorrect/pub/opencv/staticlib/release/libprotobuf.lib deleted file mode 100644 index 6e18c05..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/release/libprotobuf.lib and /dev/null differ diff --git a/HuaGoCorrect/pub/opencv/staticlib/release/libtiff.lib b/HuaGoCorrect/pub/opencv/staticlib/release/libtiff.lib deleted file mode 100644 index 8ca527c..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/release/libtiff.lib and /dev/null differ diff --git a/HuaGoCorrect/pub/opencv/staticlib/release/libwebp.lib b/HuaGoCorrect/pub/opencv/staticlib/release/libwebp.lib deleted file mode 100644 index 42c5d7c..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/release/libwebp.lib and /dev/null differ diff --git a/HuaGoCorrect/pub/opencv/staticlib/release/opencv_core343.lib b/HuaGoCorrect/pub/opencv/staticlib/release/opencv_core343.lib deleted file mode 100644 index 89c3f1d..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/release/opencv_core343.lib and /dev/null differ diff --git a/HuaGoCorrect/pub/opencv/staticlib/release/opencv_highgui343.lib b/HuaGoCorrect/pub/opencv/staticlib/release/opencv_highgui343.lib deleted file mode 100644 index 247e5aa..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/release/opencv_highgui343.lib and /dev/null differ diff --git a/HuaGoCorrect/pub/opencv/staticlib/release/opencv_imgcodecs343.lib b/HuaGoCorrect/pub/opencv/staticlib/release/opencv_imgcodecs343.lib deleted file mode 100644 index 76940f7..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/release/opencv_imgcodecs343.lib and /dev/null differ diff --git a/HuaGoCorrect/pub/opencv/staticlib/release/opencv_imgproc343.lib b/HuaGoCorrect/pub/opencv/staticlib/release/opencv_imgproc343.lib deleted file mode 100644 index c036efc..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/release/opencv_imgproc343.lib and /dev/null differ diff --git a/HuaGoCorrect/pub/opencv/staticlib/release/zlib.lib b/HuaGoCorrect/pub/opencv/staticlib/release/zlib.lib deleted file mode 100644 index 46284dd..0000000 Binary files a/HuaGoCorrect/pub/opencv/staticlib/release/zlib.lib and /dev/null differ diff --git a/HuaGoScan.ini b/HuaGoScan.ini deleted file mode 100644 index ca99448..0000000 --- a/HuaGoScan.ini +++ /dev/null @@ -1,130 +0,0 @@ -[ColorCorrection] -;ɫУģʽ -FRExposure =900 -FGExposure =900 -FBExposure =900 -F1Gain =30 -F2Gain =30 -F3Gain =30 -F4Gain =30 -F5Gain =30 -F6Gain =30 -F1Offset =255 -F2Offset =255 -F3Offset =255 -F4Offset =255 -F5Offset =255 -F6Offset =255 -BRExposure =900 -BGExposure =900 -BBExposure =900 -B1Gain =30 -B2Gain =30 -B3Gain =30 -B4Gain =30 -B5Gain =30 -B6Gain =30 -B1Offset =255 -B2Offset =255 -B3Offset =255 -B4Offset =255 -B5Offset =255 -B6Offset =255 -[ColorFlat] -;ɫ -FRExposure =340 -FGExposure =620 -FBExposure =324 -F1Gain =24 -F2Gain =24 -F3Gain =24 -F4Gain =24 -F5Gain =24 -F6Gain =24 -F1Offset =117 -F2Offset =117 -F3Offset =117 -F4Offset =117 -F5Offset =117 -F6Offset =117 -BRExposure =233 -BGExposure =418 -BBExposure =220 -B1Gain =24 -B2Gain =24 -B3Gain =24 -B4Gain =24 -B5Gain =24 -B6Gain =24 -B1Offset =64 -B2Offset =64 -B3Offset =64 -B4Offset =64 -B5Offset =64 -B6Offset =64 -[GrayCorrection] -;ҶУģʽ -FRExposure =200 -FGExposure =200 -FBExposure =200 -F1Gain =30 -F2Gain =30 -F3Gain =30 -F4Gain =30 -F5Gain =30 -F6Gain =30 -F1Offset =255 -F2Offset =255 -F3Offset =255 -F4Offset =255 -F5Offset =255 -F6Offset =255 -BRExposure =200 -BGExposure =200 -BBExposure =200 -B1Gain =30 -B2Gain =30 -B3Gain =30 -B4Gain =30 -B5Gain =30 -B6Gain =30 -B1Offset =255 -B2Offset =255 -B3Offset =255 -B4Offset =255 -B5Offset =255 -B6Offset =255 -[GrayFlat] -;Ҷ -FRExposure =340 -FGExposure =620 -FBExposure =324 -F1Gain =24 -F2Gain =24 -F3Gain =24 -F4Gain =24 -F5Gain =24 -F6Gain =24 -F1Offset =117 -F2Offset =117 -F3Offset =117 -F4Offset =117 -F5Offset =117 -F6Offset =117 -BRExposure =233 -BGExposure =418 -BBExposure =220 -B1Gain =24 -B2Gain =24 -B3Gain =24 -B4Gain =24 -B5Gain =24 -B6Gain =24 -B1Offset =64 -B2Offset =64 -B3Offset =64 -B4Offset =64 -B5Offset =64 -B6Offset =64 - -