3399板子配置适配
This commit is contained in:
parent
a577af2d56
commit
8109139e24
|
@ -3,3 +3,4 @@ Debug/*
|
||||||
Release/*
|
Release/*
|
||||||
HuaGoCorrect/Debug/*
|
HuaGoCorrect/Debug/*
|
||||||
HuaGoCorrect/Release/*
|
HuaGoCorrect/Release/*
|
||||||
|
HuaGoCorrect/ScanPicture/*
|
|
@ -7,3 +7,9 @@
|
||||||
|
|
||||||
2021年7月31日
|
2021年7月31日
|
||||||
1.增加3399 板子g100 g200 校正及配置功能
|
1.增加3399 板子g100 g200 校正及配置功能
|
||||||
|
|
||||||
|
2021年8月17日
|
||||||
|
1. 界面增加速度模式配置功能;
|
||||||
|
2. 增加明场暗场校正最大明场值配置;
|
||||||
|
3. 界面UI按钮顺序调整对齐等操作;
|
||||||
|
V4.2版本
|
||||||
|
|
|
@ -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
|
|
BIN
HuaGoCorrect.suo
BIN
HuaGoCorrect.suo
Binary file not shown.
|
@ -25,6 +25,7 @@ CA3::~CA3()
|
||||||
void CA3::DoDataExchange(CDataExchange* pDX)
|
void CA3::DoDataExchange(CDataExchange* pDX)
|
||||||
{
|
{
|
||||||
CDialog::DoDataExchange(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_BTNSETCOLORSP, &CA3::OnBnClickedBtnsetcolorsp)
|
||||||
ON_BN_CLICKED(IDC_BTNGETSLEEPTIME, &CA3::OnBnClickedBtngetsleeptime)
|
ON_BN_CLICKED(IDC_BTNGETSLEEPTIME, &CA3::OnBnClickedBtngetsleeptime)
|
||||||
ON_BN_CLICKED(IDC_BTNSETSLEEPTIME, &CA3::OnBnClickedBtnsetsleeptime)
|
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()
|
END_MESSAGE_MAP()
|
||||||
|
|
||||||
|
|
||||||
|
@ -48,7 +56,10 @@ BOOL CA3::OnInitDialog()
|
||||||
CDialog::OnInitDialog();
|
CDialog::OnInitDialog();
|
||||||
|
|
||||||
// TODO: 在此添加额外的初始化
|
// TODO: 在此添加额外的初始化
|
||||||
|
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
|
return TRUE; // return TRUE unless you set the focus to a control
|
||||||
// 异常: OCX 属性页应返回 FALSE
|
// 异常: OCX 属性页应返回 FALSE
|
||||||
}
|
}
|
||||||
|
@ -106,25 +117,29 @@ void CA3::OnBnClickedBtnsetcolorsp()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void CA3::OnGetOrSetSp(bool get,int type)
|
void CA3::OnGetOrSetSp(bool get, int type)
|
||||||
{
|
{
|
||||||
int sp;
|
int sp;
|
||||||
CString str_sp;
|
CString str_sp;
|
||||||
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
||||||
int itemid = type == 0 ? IDC_LBGRAYSP : (type == 1 ? IDC_LBCOLORSP : IDC_LBGUVSP); //IDC_LBCOLORSP
|
int itemid = type == 0 ? IDC_LBGRAYSP : (type == 1 ? IDC_LBCOLORSP : IDC_LBGUVSP); //IDC_LBCOLORSP
|
||||||
|
if (parent->m_drv.get() && parent->m_drv->IsConnected()) {
|
||||||
if (get)
|
if (get)
|
||||||
{
|
{
|
||||||
|
|
||||||
parent->m_drv->GetSptime(type, sp);
|
parent->m_drv->GetSptime(type, sp);
|
||||||
str_sp.Format("%d", sp);
|
str_sp.Format(L"%d", sp);
|
||||||
SetDlgItemText(itemid, str_sp);
|
SetDlgItemText(itemid, str_sp);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
GetDlgItemText(itemid, str_sp);
|
GetDlgItemText(itemid, str_sp);
|
||||||
int value= atoi(str_sp);
|
USES_CONVERSION;
|
||||||
|
std::string str(W2A(str_sp));
|
||||||
|
int value = atoi(str.c_str());
|
||||||
parent->m_drv->SetSptime(type, value);
|
parent->m_drv->SetSptime(type, value);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -134,19 +149,49 @@ void CA3::OnGetOrSetSleepTime(bool get, int type)
|
||||||
CString str_sp;
|
CString str_sp;
|
||||||
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
||||||
int itemid = type == 0 ? IDC_LBGRAYSP : (type == 1 ? IDC_LBCOLORSP : IDC_LBGUVSP); //IDC_LBCOLORSP
|
int itemid = type == 0 ? IDC_LBGRAYSP : (type == 1 ? IDC_LBCOLORSP : IDC_LBGUVSP); //IDC_LBCOLORSP
|
||||||
|
if (parent->m_drv.get() && parent->m_drv->IsConnected()) {
|
||||||
if (get)
|
if (get)
|
||||||
{
|
{
|
||||||
|
|
||||||
parent->m_drv->GetSptime(type, sp);
|
parent->m_drv->GetSptime(type, sp);
|
||||||
str_sp.Format("%d", sp);
|
str_sp.Format(L"%d", sp);
|
||||||
SetDlgItemText(itemid, str_sp);
|
SetDlgItemText(itemid, str_sp);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
GetDlgItemText(itemid, str_sp);
|
GetDlgItemText(itemid, str_sp);
|
||||||
int value = atoi(str_sp);
|
USES_CONVERSION;
|
||||||
|
std::string str(W2A(str_sp));
|
||||||
|
int value = atoi(str.c_str());
|
||||||
parent->m_drv->SetSptime(type, value);
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CA3::UpdateSleepTime(bool get)
|
void CA3::UpdateSleepTime(bool get)
|
||||||
|
@ -154,19 +199,23 @@ void CA3::UpdateSleepTime(bool get)
|
||||||
int sp;
|
int sp;
|
||||||
CString str_sp;
|
CString str_sp;
|
||||||
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
||||||
|
if (parent->m_drv.get() && parent->m_drv->IsConnected()) {
|
||||||
if (get)
|
if (get)
|
||||||
{
|
{
|
||||||
parent->m_drv->GetSleepTime(sp);
|
parent->m_drv->GetSleepTime(sp);
|
||||||
str_sp.Format("%d", sp);
|
str_sp.Format(L"%d", sp);
|
||||||
SetDlgItemText(IDC_LBSLEEPTIME, str_sp);
|
SetDlgItemText(IDC_LBSLEEPTIME, str_sp);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
GetDlgItemText(IDC_LBSLEEPTIME, str_sp);
|
GetDlgItemText(IDC_LBSLEEPTIME, str_sp);
|
||||||
int value = atoi(str_sp);
|
USES_CONVERSION;
|
||||||
|
std::string str(W2A(str_sp));
|
||||||
|
int value = atoi(str.c_str());
|
||||||
if (value <= 0) value = 60;
|
if (value <= 0) value = 60;
|
||||||
parent->m_drv->SetSleepTime(value);
|
parent->m_drv->SetSleepTime(value);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CA3::OnBnClickedBtngetsleeptime()
|
void CA3::OnBnClickedBtngetsleeptime()
|
||||||
|
@ -179,3 +228,101 @@ void CA3::OnBnClickedBtnsetsleeptime()
|
||||||
{
|
{
|
||||||
UpdateSleepTime(false);
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
#include <map>
|
||||||
|
|
||||||
// CA3 对话框
|
// CA3 对话框
|
||||||
|
|
||||||
|
@ -32,11 +32,43 @@ public:
|
||||||
private:
|
private:
|
||||||
void OnGetOrSetSp(bool get, int type);
|
void OnGetOrSetSp(bool get, int type);
|
||||||
public:
|
public:
|
||||||
afx_msg
|
afx_msg void OnGetOrSetSleepTime(bool get, int type);
|
||||||
void OnGetOrSetSleepTime(bool get, int type);
|
void UpdateMaxBright(bool get,int id);
|
||||||
void UpdateSleepTime(bool get);
|
void UpdateSleepTime(bool get);
|
||||||
void OnBnClickedBtngetsleeptime();
|
void OnBnClickedBtngetsleeptime();
|
||||||
afx_msg void OnBnClickedBtnsetsleeptime();
|
afx_msg void OnBnClickedBtnsetsleeptime();
|
||||||
afx_msg void OnBnClickedBtngetcolorsp2();
|
afx_msg void OnBnClickedBtnsetclrmaxbrt();
|
||||||
afx_msg void OnBnClickedBtnsetcolorsp2();
|
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<int, speedmodeparam> 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<int, CString> 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;
|
||||||
};
|
};
|
||||||
|
|
|
@ -118,14 +118,16 @@ void CA4::SendCorrectParam()
|
||||||
UpdateData();
|
UpdateData();
|
||||||
int index = m_A4FlatModel.GetCurSel();
|
int index = m_A4FlatModel.GetCurSel();
|
||||||
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
||||||
|
if (parent->m_drv.get() && parent->m_drv->IsConnected()) {
|
||||||
parent->m_drv->SendFlatData(params, index);
|
parent->m_drv->SendFlatData(params, index);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void CA4::OnCbnSelChangeA4FlatModel()
|
void CA4::OnCbnSelChangeA4FlatModel()
|
||||||
{
|
{
|
||||||
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
||||||
if (parent->m_drv->IsConnected())
|
if (parent->m_drv.get()&&parent->m_drv->IsConnected())
|
||||||
{
|
{
|
||||||
auto correctdata = parent->m_drv->GetFlatData();
|
auto correctdata = parent->m_drv->GetFlatData();
|
||||||
updateA4Config(correctdata);
|
updateA4Config(correctdata);
|
||||||
|
@ -179,7 +181,9 @@ void CA4::LoadCfg()
|
||||||
void CA4::OnBnClickedBtnReboot()
|
void CA4::OnBnClickedBtnReboot()
|
||||||
{
|
{
|
||||||
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
||||||
|
if (parent->m_drv.get() && parent->m_drv->IsConnected()) {
|
||||||
parent->m_drv->Reboot();
|
parent->m_drv->Reboot();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -203,9 +207,11 @@ void CA4::OnBnClickedBtnGetvidpid()
|
||||||
void CA4::OnBnClickedBtngetSerial()
|
void CA4::OnBnClickedBtngetSerial()
|
||||||
{
|
{
|
||||||
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
||||||
std::string serial= parent->m_drv->GetSerialNum();
|
if (parent->m_drv.get() && parent->m_drv->IsConnected()) {
|
||||||
|
std::string serial = parent->m_drv->GetSerialNum();
|
||||||
CString c_serial(serial.c_str());
|
CString c_serial(serial.c_str());
|
||||||
SetDlgItemText(IDC_tbxSerial, c_serial);
|
SetDlgItemText(IDC_tbxSerial, c_serial);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -224,10 +230,13 @@ void CA4::OnBnClickedBtnSetSerial()
|
||||||
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
||||||
CString cserial;
|
CString cserial;
|
||||||
GetDlgItemText(IDC_tbxSerial, cserial);
|
GetDlgItemText(IDC_tbxSerial, cserial);
|
||||||
|
if (parent->m_drv.get() && parent->m_drv->IsConnected()) {
|
||||||
if (!cserial.IsEmpty())
|
if (!cserial.IsEmpty())
|
||||||
{
|
{
|
||||||
std::string ser(cserial.GetBuffer());
|
USES_CONVERSION;
|
||||||
parent->m_drv->SetSerialNum(ser);
|
std::string str(W2A(cserial));
|
||||||
|
parent->m_drv->SetSerialNum(str);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -236,11 +245,13 @@ void CA4::OnBnClickedBtnGethor()
|
||||||
{
|
{
|
||||||
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
||||||
int ratio = 0;
|
int ratio = 0;
|
||||||
|
if (parent->m_drv.get() && parent->m_drv->IsConnected()) {
|
||||||
parent->m_drv->GetRatio(0, ratio);
|
parent->m_drv->GetRatio(0, ratio);
|
||||||
float f_ratio = *(float*)∶
|
float f_ratio = *(float*)∶
|
||||||
CString str;
|
CString str;
|
||||||
str.Format("%.4f", f_ratio);
|
str.Format(L"%.4f", f_ratio);
|
||||||
SetDlgItemText(IDC_tbxHOR, str);
|
SetDlgItemText(IDC_tbxHOR, str);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -248,45 +259,57 @@ void CA4::OnBnClickedBtnGetver()
|
||||||
{
|
{
|
||||||
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
||||||
int ratio = 0;
|
int ratio = 0;
|
||||||
|
if (parent->m_drv.get() && parent->m_drv->IsConnected()) {
|
||||||
parent->m_drv->GetRatio(1, ratio);
|
parent->m_drv->GetRatio(1, ratio);
|
||||||
float f_ratio = *(float*)∶
|
float f_ratio = *(float*)∶
|
||||||
CString str;
|
CString str;
|
||||||
str.Format("%.4f", f_ratio);
|
str.Format(L"%.4f", f_ratio);
|
||||||
SetDlgItemText(IDC_tbxVER, str);
|
SetDlgItemText(IDC_tbxVER, str);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void CA4::OnBnClickedBtnSethor()
|
void CA4::OnBnClickedBtnSethor()
|
||||||
{
|
{
|
||||||
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
||||||
|
if (parent->m_drv.get() && parent->m_drv->IsConnected()) {
|
||||||
CString str;
|
CString str;
|
||||||
GetDlgItemText(IDC_tbxHOR, str);
|
GetDlgItemText(IDC_tbxHOR, str);
|
||||||
float f_value = atof(str);
|
USES_CONVERSION;
|
||||||
|
std::string s_str(W2A(str));
|
||||||
|
float f_value = atof(s_str.c_str());
|
||||||
int value = *(int*)&f_value;
|
int value = *(int*)&f_value;
|
||||||
parent->m_drv->SetRatio(0, value);
|
parent->m_drv->SetRatio(0, value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void CA4::OnBnClickedBtnSetver()
|
void CA4::OnBnClickedBtnSetver()
|
||||||
{
|
{
|
||||||
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
||||||
|
if (parent->m_drv.get() && parent->m_drv->IsConnected()) {
|
||||||
CString str;
|
CString str;
|
||||||
GetDlgItemText(IDC_tbxVER, str);
|
GetDlgItemText(IDC_tbxVER, str);
|
||||||
float f_value = atof(str);
|
USES_CONVERSION;
|
||||||
|
std::string s_str(W2A(str));
|
||||||
|
float f_value = atof(s_str.c_str());
|
||||||
int value = *(int*)&f_value;
|
int value = *(int*)&f_value;
|
||||||
parent->m_drv->SetRatio(1, value);
|
parent->m_drv->SetRatio(1, value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void CA4::OnBnClickedBtngetVersion()
|
void CA4::OnBnClickedBtngetVersion()
|
||||||
{
|
{
|
||||||
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
||||||
|
if (parent->m_drv.get() && parent->m_drv->IsConnected()) {
|
||||||
std::string ver = parent->m_drv->GetFWVersion();
|
std::string ver = parent->m_drv->GetFWVersion();
|
||||||
if (ver.size() > 0)
|
if (ver.size() > 0)
|
||||||
{
|
{
|
||||||
CString str(ver.c_str());
|
CString str(ver.c_str());
|
||||||
SetDlgItemText(IDC_tbxVersion, str);
|
SetDlgItemText(IDC_tbxVersion, str);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MAX_LENGTH 14
|
#define MAX_LENGTH 14
|
||||||
|
@ -315,14 +338,15 @@ void CA4::OnBnClickedBtnGetexpos()
|
||||||
{
|
{
|
||||||
// TODO: 在此添加控件通知处理程序代码
|
// TODO: 在此添加控件通知处理程序代码
|
||||||
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
auto parent = (CHuaGoCorrectDlg*)GetParent();
|
||||||
|
if (parent->m_drv.get() && parent->m_drv->IsConnected()) {
|
||||||
int esposeA, exposeB;
|
int esposeA, exposeB;
|
||||||
parent->m_drv->GetExpose(esposeA,exposeB);
|
parent->m_drv->GetExpose(esposeA, exposeB);
|
||||||
CString expA, expB;
|
CString expA, expB;
|
||||||
expA.Format("%d", esposeA);
|
expA.Format(L"%d", esposeA);
|
||||||
expB.Format("%d", exposeB);
|
expB.Format(L"%d", exposeB);
|
||||||
SetDlgItemText(IDC_tbxUVAExpos, expA);
|
SetDlgItemText(IDC_tbxUVAExpos, expA);
|
||||||
SetDlgItemText(IDC_tbxUVBExpos, expB);
|
SetDlgItemText(IDC_tbxUVBExpos, expB);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -334,9 +358,14 @@ void CA4::OnBnClickedBtnSetexpos()
|
||||||
CString expA, expB;
|
CString expA, expB;
|
||||||
GetDlgItemText(IDC_tbxUVAExpos, expA);
|
GetDlgItemText(IDC_tbxUVAExpos, expA);
|
||||||
GetDlgItemText(IDC_tbxUVBExpos, expB);
|
GetDlgItemText(IDC_tbxUVBExpos, expB);
|
||||||
esposeA= atoi(expA);
|
USES_CONVERSION;
|
||||||
exposeB = atoi(expB);
|
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);
|
parent->m_drv->SetExpose(esposeA, exposeB);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -389,3 +418,13 @@ void CA4::UpdateGains(int id, bool increase)
|
||||||
}
|
}
|
||||||
UpdateData(FALSE);
|
UpdateData(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CA4::OnEnChangetbxfrexposure2()
|
||||||
|
{
|
||||||
|
// TODO: 如果该控件是 RICHEDIT 控件,它将不
|
||||||
|
// 发送此通知,除非重写 CDialog::OnInitDialog()
|
||||||
|
// 函数并调用 CRichEditCtrl().SetEventMask(),
|
||||||
|
// 同时将 ENM_CHANGE 标志“或”运算到掩码中。
|
||||||
|
|
||||||
|
// TODO: 在此添加控件通知处理程序代码
|
||||||
|
}
|
||||||
|
|
|
@ -74,4 +74,5 @@ public:
|
||||||
afx_msg void OnBnClickedBtnbup();
|
afx_msg void OnBnClickedBtnbup();
|
||||||
afx_msg void OnBnClickedBtnbdown();
|
afx_msg void OnBnClickedBtnbdown();
|
||||||
void UpdateGains(int id, bool get);
|
void UpdateGains(int id, bool get);
|
||||||
|
afx_msg void OnEnChangetbxfrexposure2();
|
||||||
};
|
};
|
||||||
|
|
|
@ -177,13 +177,18 @@ void CVISON::showfun()
|
||||||
auto ret = ((CHuaGoCorrectDlg*)parent)->m_drv->aquire_image(path, 0);
|
auto ret = ((CHuaGoCorrectDlg*)parent)->m_drv->aquire_image(path, 0);
|
||||||
if (ret != -1)
|
if (ret != -1)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if (path.length() > 0) {
|
||||||
imageindex++;
|
imageindex++;
|
||||||
aquiredimgindx++;
|
aquiredimgindx++;
|
||||||
CString cPath(path.c_str());
|
USES_CONVERSION;
|
||||||
|
std::string t_path = StringToUtf(path);
|
||||||
|
CString cPath(A2T(t_path.c_str()));
|
||||||
m_path.push_back(cPath);
|
m_path.push_back(cPath);
|
||||||
m_onStop(false, aquiredimgindx);
|
m_onStop(false, aquiredimgindx);
|
||||||
DrawPicture(cPath);
|
DrawPicture(cPath);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_auireable = false;
|
m_auireable = false;
|
||||||
|
|
|
@ -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);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -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_)
|
|
|
@ -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: 在此添加额外的初始化
|
|
||||||
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();
|
|
||||||
}
|
|
|
@ -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();
|
|
||||||
};
|
|
Binary file not shown.
|
@ -104,8 +104,8 @@ void CHuaGoCorrectApp::CreateScanFile()
|
||||||
char cTime[11];
|
char cTime[11];
|
||||||
CTime currTime = CTime::GetCurrentTime();
|
CTime currTime = CTime::GetCurrentTime();
|
||||||
_snprintf(cTime, 11, "%04d-%02d-%02d", currTime.GetYear(), currTime.GetMonth(), currTime.GetDay());
|
_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\\";
|
path = ".\\ScanPicture\\";
|
||||||
|
|
||||||
if (!PathIsDirectory(path))
|
if (!PathIsDirectory(path))
|
||||||
|
|
Binary file not shown.
|
@ -29,7 +29,7 @@
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
<UseDebugLibraries>true</UseDebugLibraries>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
<UseOfMfc>Dynamic</UseOfMfc>
|
<UseOfMfc>Dynamic</UseOfMfc>
|
||||||
<PlatformToolset>v142</PlatformToolset>
|
<PlatformToolset>v142</PlatformToolset>
|
||||||
<VCToolsVersion>
|
<VCToolsVersion>
|
||||||
|
@ -47,7 +47,7 @@
|
||||||
<ConfigurationType>Application</ConfigurationType>
|
<ConfigurationType>Application</ConfigurationType>
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
<UseDebugLibraries>false</UseDebugLibraries>
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
<CharacterSet>Unicode</CharacterSet>
|
||||||
<UseOfMfc>Dynamic</UseOfMfc>
|
<UseOfMfc>Dynamic</UseOfMfc>
|
||||||
<PlatformToolset>v142</PlatformToolset>
|
<PlatformToolset>v142</PlatformToolset>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
@ -215,8 +215,6 @@ opencv_imgproc2410.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<ClInclude Include="A4.h" />
|
<ClInclude Include="A4.h" />
|
||||||
<ClInclude Include="BlockingQueue.h" />
|
<ClInclude Include="BlockingQueue.h" />
|
||||||
<ClInclude Include="commondef.h" />
|
<ClInclude Include="commondef.h" />
|
||||||
<ClInclude Include="Config.h" />
|
|
||||||
<ClInclude Include="ConfigParam.h" />
|
|
||||||
<ClInclude Include="CVISON.h" />
|
<ClInclude Include="CVISON.h" />
|
||||||
<ClInclude Include="DefHSCommon.h" />
|
<ClInclude Include="DefHSCommon.h" />
|
||||||
<ClInclude Include="DefHSStructure.h" />
|
<ClInclude Include="DefHSStructure.h" />
|
||||||
|
@ -246,8 +244,6 @@ opencv_imgproc2410.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="A3.cpp" />
|
<ClCompile Include="A3.cpp" />
|
||||||
<ClCompile Include="A4.cpp" />
|
<ClCompile Include="A4.cpp" />
|
||||||
<ClCompile Include="Config.cpp" />
|
|
||||||
<ClCompile Include="ConfigParam.cpp" />
|
|
||||||
<ClCompile Include="CVISON.cpp" />
|
<ClCompile Include="CVISON.cpp" />
|
||||||
<ClCompile Include="gscan3399.cpp" />
|
<ClCompile Include="gscan3399.cpp" />
|
||||||
<ClCompile Include="gscn_drv.cpp" />
|
<ClCompile Include="gscn_drv.cpp" />
|
||||||
|
|
|
@ -48,9 +48,6 @@
|
||||||
<ClInclude Include="Resource.h">
|
<ClInclude Include="Resource.h">
|
||||||
<Filter>头文件</Filter>
|
<Filter>头文件</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="Config.h">
|
|
||||||
<Filter>头文件</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="filetools.h">
|
<ClInclude Include="filetools.h">
|
||||||
<Filter>头文件</Filter>
|
<Filter>头文件</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
@ -96,9 +93,6 @@
|
||||||
<ClInclude Include="A4.h">
|
<ClInclude Include="A4.h">
|
||||||
<Filter>头文件</Filter>
|
<Filter>头文件</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="ConfigParam.h">
|
|
||||||
<Filter>头文件</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CVISON.h">
|
<ClInclude Include="CVISON.h">
|
||||||
<Filter>头文件</Filter>
|
<Filter>头文件</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
@ -137,9 +131,6 @@
|
||||||
<ClCompile Include="stdafx.cpp">
|
<ClCompile Include="stdafx.cpp">
|
||||||
<Filter>源文件</Filter>
|
<Filter>源文件</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="Config.cpp">
|
|
||||||
<Filter>源文件</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="imageprocess.cpp">
|
<ClCompile Include="imageprocess.cpp">
|
||||||
<Filter>源文件</Filter>
|
<Filter>源文件</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
@ -170,9 +161,6 @@
|
||||||
<ClCompile Include="A4.cpp">
|
<ClCompile Include="A4.cpp">
|
||||||
<Filter>源文件</Filter>
|
<Filter>源文件</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="ConfigParam.cpp">
|
|
||||||
<Filter>源文件</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="CVISON.cpp">
|
<ClCompile Include="CVISON.cpp">
|
||||||
<Filter>源文件</Filter>
|
<Filter>源文件</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
|
@ -100,7 +100,7 @@ BEGIN_MESSAGE_MAP(CHuaGoCorrectDlg, CDialogEx)
|
||||||
ON_BN_CLICKED(IDC_BTN_FLAT, &CHuaGoCorrectDlg::OnBnClickedBtnFlat)
|
ON_BN_CLICKED(IDC_BTN_FLAT, &CHuaGoCorrectDlg::OnBnClickedBtnFlat)
|
||||||
ON_CBN_SELCHANGE(IDC_dpi_comboBox, &CHuaGoCorrectDlg::OnCbnSelChangeDpi)
|
ON_CBN_SELCHANGE(IDC_dpi_comboBox, &CHuaGoCorrectDlg::OnCbnSelChangeDpi)
|
||||||
ON_CBN_SELCHANGE(IDC_color_comboBox, &CHuaGoCorrectDlg::OnCbnSelChangeColor)
|
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_SELECTFILE, &CHuaGoCorrectDlg::OnBnClickedBtnSelectfile)
|
||||||
ON_BN_CLICKED(IDC_BTN_UPDATE, &CHuaGoCorrectDlg::OnBnClickedBtnUpdate)
|
ON_BN_CLICKED(IDC_BTN_UPDATE, &CHuaGoCorrectDlg::OnBnClickedBtnUpdate)
|
||||||
ON_BN_CLICKED(IDC_BTN_REFRESH, &CHuaGoCorrectDlg::OnBnClickedBtnRefresh)
|
ON_BN_CLICKED(IDC_BTN_REFRESH, &CHuaGoCorrectDlg::OnBnClickedBtnRefresh)
|
||||||
|
@ -157,7 +157,7 @@ BOOL CHuaGoCorrectDlg::OnInitDialog()
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
CString str;
|
CString str;
|
||||||
str.Format("%d", num);
|
str.Format(L"%d", num);
|
||||||
SetDlgItemText(IDC_STATIC_NUM, str);
|
SetDlgItemText(IDC_STATIC_NUM, str);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -165,7 +165,7 @@ BOOL CHuaGoCorrectDlg::OnInitDialog()
|
||||||
|
|
||||||
m_tab.GetClientRect(&tabRect); // 获取标签控件客户区Rect
|
m_tab.GetClientRect(&tabRect); // 获取标签控件客户区Rect
|
||||||
// 调整tabRect,使其覆盖范围适合放置标签页
|
// 调整tabRect,使其覆盖范围适合放置标签页
|
||||||
tabRect.left += 1;
|
tabRect.left += 10;
|
||||||
tabRect.right -= 1;
|
tabRect.right -= 1;
|
||||||
tabRect.top += 35;
|
tabRect.top += 35;
|
||||||
tabRect.bottom -= 1;
|
tabRect.bottom -= 1;
|
||||||
|
@ -185,7 +185,6 @@ BOOL CHuaGoCorrectDlg::OnInitDialog()
|
||||||
m_ComboxColor.InsertString(0, _T("gray"));
|
m_ComboxColor.InsertString(0, _T("gray"));
|
||||||
m_ComboxColor.InsertString(1, _T("color"));
|
m_ComboxColor.InsertString(1, _T("color"));
|
||||||
m_ComboxColor.SetCurSel(1);
|
m_ComboxColor.SetCurSel(1);
|
||||||
//m_drv->set_decompress_pix_type(TWPT_RGB);
|
|
||||||
|
|
||||||
m_A4Scanner.SetCheck(0);
|
m_A4Scanner.SetCheck(0);
|
||||||
n_hour = 0;
|
n_hour = 0;
|
||||||
|
@ -239,7 +238,7 @@ bool CHuaGoCorrectDlg::RefreshUSBList()
|
||||||
while (info != ret.end())
|
while (info != ret.end())
|
||||||
{
|
{
|
||||||
CString strinfo;
|
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);
|
m_Usbs.InsertString(i, strinfo);
|
||||||
info++;
|
info++;
|
||||||
i++;
|
i++;
|
||||||
|
@ -311,9 +310,9 @@ void CHuaGoCorrectDlg::RefreshTabChange()
|
||||||
|
|
||||||
// 获取标签控件客户区Rect,并对其调整,以适合放置标签页
|
// 获取标签控件客户区Rect,并对其调整,以适合放置标签页
|
||||||
m_tab.GetClientRect(&tabRect);
|
m_tab.GetClientRect(&tabRect);
|
||||||
tabRect.left += 10;
|
tabRect.left += 15;
|
||||||
tabRect.right -= 1;
|
tabRect.right += 20;
|
||||||
tabRect.top += 35;
|
tabRect.top += 20;
|
||||||
tabRect.bottom -= 1;
|
tabRect.bottom -= 1;
|
||||||
|
|
||||||
switch (m_tab.GetCurSel())
|
switch (m_tab.GetCurSel())
|
||||||
|
@ -343,7 +342,7 @@ void CHuaGoCorrectDlg::Scan()
|
||||||
HGScanConfig config = { 0 };
|
HGScanConfig config = { 0 };
|
||||||
config.g200params.dpi = 1;//only support 200DPI
|
config.g200params.dpi = 1;//only support 200DPI
|
||||||
config.g200params.paper = 0;
|
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.color = m_iColorIndex == 1 ? 1 : 0;
|
||||||
config.g200params.double_feed_enbale = TRUE;
|
config.g200params.double_feed_enbale = TRUE;
|
||||||
config.g200params.screw_detect_enable = FALSE;
|
config.g200params.screw_detect_enable = FALSE;
|
||||||
|
@ -354,15 +353,15 @@ void CHuaGoCorrectDlg::Scan()
|
||||||
m_drv->Scanner_StartScan(-1);
|
m_drv->Scanner_StartScan(-1);
|
||||||
m_drv->run();
|
m_drv->run();
|
||||||
|
|
||||||
//if (b_suspend)
|
if (b_suspend)
|
||||||
// KillTimer(N_TIMER_SEC);
|
KillTimer(N_TIMER_SEC);
|
||||||
|
|
||||||
//b_suspend = FALSE;
|
b_suspend = FALSE;
|
||||||
//n_hour = 0;
|
n_hour = 0;
|
||||||
//n_minute = 0;
|
n_minute = 0;
|
||||||
//n_second = 0;
|
n_second = 0;
|
||||||
//SetTimer(N_TIMER_SEC, N_TIME_SEC, NULL);
|
SetTimer(N_TIMER_SEC, N_TIME_SEC, NULL);
|
||||||
//SetTimer(N_TIMER_SHOW, N_TIME_SHOW, NULL);
|
SetTimer(N_TIMER_SHOW, N_TIME_SHOW, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -371,7 +370,7 @@ void CHuaGoCorrectDlg::OnBnClickedCheckparamset()
|
||||||
// TODO: 在此添加控件通知处理程序代码
|
// TODO: 在此添加控件通知处理程序代码
|
||||||
if (!m_drv->IsConnected())
|
if (!m_drv->IsConnected())
|
||||||
{
|
{
|
||||||
MessageBox("扫描仪未连接!");
|
MessageBox(TEXT("扫描仪未连接!"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
m_A4Dlg.SendCorrectParam();
|
m_A4Dlg.SendCorrectParam();
|
||||||
|
@ -383,7 +382,7 @@ void CHuaGoCorrectDlg::OnBnClickedCheckparamread()
|
||||||
// TODO: 在此添加控件通知处理程序代码
|
// TODO: 在此添加控件通知处理程序代码
|
||||||
if (!m_drv->IsConnected())
|
if (!m_drv->IsConnected())
|
||||||
{
|
{
|
||||||
MessageBox("扫描仪未连接!");
|
MessageBox(TEXT("扫描仪未连接!"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
m_tab.SetCurSel(0);
|
m_tab.SetCurSel(0);
|
||||||
|
@ -397,14 +396,29 @@ void CHuaGoCorrectDlg::OnBnClickedBtnFlat()
|
||||||
m_iflatIndex = -2;
|
m_iflatIndex = -2;
|
||||||
if (!m_drv->IsConnected())
|
if (!m_drv->IsConnected())
|
||||||
{
|
{
|
||||||
MessageBox("扫描仪未连接!");
|
MessageBox(TEXT("扫描仪未连接!"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (GetDlgItem(IDC_CKBCORRECTMODE)->IsWindowVisible())
|
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());
|
m_drv->StartFlat(((CButton*)GetDlgItem(IDC_CKBCORRECTMODE))->GetCheck());
|
||||||
}
|
|
||||||
|
|
||||||
|
}
|
||||||
else
|
else
|
||||||
m_drv->StartFlat(true);//彩色
|
m_drv->StartFlat(true);//彩色
|
||||||
}
|
}
|
||||||
|
@ -413,26 +427,26 @@ void CHuaGoCorrectDlg::WriteLog(CString msg)
|
||||||
{
|
{
|
||||||
if (!msg.IsEmpty())
|
if (!msg.IsEmpty())
|
||||||
{
|
{
|
||||||
FILE* pFile = fopen(".//log//CorrectLog.log", "a+");
|
//FILE* pFile = fopen(".//log//CorrectLog.log", "a+");
|
||||||
if (pFile != NULL)
|
//if (pFile != NULL)
|
||||||
{
|
//{
|
||||||
char cTime[32];
|
// char cTime[32];
|
||||||
CTime currTime = CTime::GetCurrentTime();
|
// CTime currTime = CTime::GetCurrentTime();
|
||||||
_snprintf(cTime, 30, "[%04d-%02d-%02d %02d:%02d:%02d]",
|
// _snprintf(cTime, 30, "[%04d-%02d-%02d %02d:%02d:%02d]",
|
||||||
currTime.GetYear(), currTime.GetMonth(), currTime.GetDay(),
|
// currTime.GetYear(), currTime.GetMonth(), currTime.GetDay(),
|
||||||
currTime.GetHour(), currTime.GetMinute(), currTime.GetSecond());
|
// currTime.GetHour(), currTime.GetMinute(), currTime.GetSecond());
|
||||||
fwrite(cTime, 1, strlen(cTime), pFile);
|
// fwrite(cTime, 1, strlen(cTime), pFile);
|
||||||
fwrite(msg, 1, strlen(msg), pFile);
|
// fwrite(msg, 1, strlen(msg.GetBuffer()), pFile);
|
||||||
fwrite("\n", 1, 1, pFile);
|
// fwrite("\n", 1, 1, pFile);
|
||||||
fclose(pFile);
|
// fclose(pFile);
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CHuaGoCorrectDlg::OnCancel()
|
void CHuaGoCorrectDlg::OnCancel()
|
||||||
{
|
{
|
||||||
// TODO: 在此添加专用代码和/或调用基类
|
// TODO: 在此添加专用代码和/或调用基类
|
||||||
if (IDOK != AfxMessageBox("确定要退出服务器吗?", MB_ICONQUESTION | MB_OKCANCEL))
|
if (IDOK != AfxMessageBox(L"确定要退出此程序吗?", MB_ICONQUESTION | MB_OKCANCEL))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -469,51 +483,51 @@ void CHuaGoCorrectDlg::OnBnClickedStopScan()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//void CHuaGoCorrectDlg::OnTimer(UINT_PTR nIDEvent)
|
void CHuaGoCorrectDlg::OnTimer(UINT_PTR nIDEvent)
|
||||||
//{
|
{
|
||||||
// // TODO: 在此添加消息处理程序代码和/或调用默认值
|
// TODO: 在此添加消息处理程序代码和/或调用默认值
|
||||||
// switch (nIDEvent)
|
switch (nIDEvent)
|
||||||
// {
|
{
|
||||||
// case 1:
|
case 1:
|
||||||
// {
|
{
|
||||||
// if (b_review == FALSE)
|
if (b_review == FALSE)
|
||||||
// {
|
{
|
||||||
// n_second++;
|
n_second++;
|
||||||
// if (n_second == 60)
|
if (n_second == 60)
|
||||||
// {
|
{
|
||||||
// n_second = 0;
|
n_second = 0;
|
||||||
// n_minute++;
|
n_minute++;
|
||||||
// }
|
}
|
||||||
// if (n_minute == 60)
|
if (n_minute == 60)
|
||||||
// {
|
{
|
||||||
// n_minute = 0;
|
n_minute = 0;
|
||||||
// n_hour++;
|
n_hour++;
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
// case 2:
|
case 2:
|
||||||
// {
|
{
|
||||||
// if (b_review == FALSE)
|
if (b_review == FALSE)
|
||||||
// {
|
{
|
||||||
// int h1, h2, m1, m2, s1, s2;
|
int h1, h2, m1, m2, s1, s2;
|
||||||
// h1 = n_hour / 10;
|
h1 = n_hour / 10;
|
||||||
// h2 = n_hour % 10;
|
h2 = n_hour % 10;
|
||||||
// m1 = n_minute / 10;
|
m1 = n_minute / 10;
|
||||||
// m2 = n_minute % 10;
|
m2 = n_minute % 10;
|
||||||
// s1 = n_second / 10;
|
s1 = n_second / 10;
|
||||||
// s2 = n_second % 10;
|
s2 = n_second % 10;
|
||||||
// s_hour.Format("%d%d", h1, h2);
|
s_hour.Format(L"%d%d", h1, h2);
|
||||||
// s_minute.Format("%d%d", m1, m2);
|
s_minute.Format(L"%d%d", m1, m2);
|
||||||
// s_second.Format("%d%d", s1, s2);
|
s_second.Format(L"%d%d", s1, s2);
|
||||||
// }
|
}
|
||||||
// UpdateData(FALSE);
|
UpdateData(FALSE);
|
||||||
// }
|
}
|
||||||
// default:
|
default:
|
||||||
// break;
|
break;
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// CDialogEx::OnTimer(nIDEvent);
|
CDialogEx::OnTimer(nIDEvent);
|
||||||
//}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 选择更新文件
|
/// 选择更新文件
|
||||||
|
@ -530,8 +544,10 @@ void CHuaGoCorrectDlg::OnBnClickedBtnSelectfile()
|
||||||
NULL);
|
NULL);
|
||||||
if (IDOK == ofd.DoModal())
|
if (IDOK == ofd.DoModal())
|
||||||
{
|
{
|
||||||
|
USES_CONVERSION;
|
||||||
|
|
||||||
updateFilePath = ofd.GetPathName();
|
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);
|
GetDlgItem(IDC_CKBUVMODEL)->EnableWindow(i->vid == 0x3072 && i->pid == 0x0300);
|
||||||
}
|
}
|
||||||
m_drv->open(i->vid, i->pid, 0);
|
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);
|
m_drv->SetPath(savepath);
|
||||||
if (i->pid & 0x39)
|
if (i->pid & 0x39)
|
||||||
{
|
{
|
||||||
|
@ -624,11 +641,11 @@ void CHuaGoCorrectDlg::OnBnClickedBtnstart()
|
||||||
|
|
||||||
if (!m_drv->IsConnected())
|
if (!m_drv->IsConnected())
|
||||||
{
|
{
|
||||||
MessageBox("扫描仪未连接!");
|
MessageBox(L"扫描仪未连接!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
m_iColorIndex = m_ComboxColor.GetCurSel();
|
m_iColorIndex = m_ComboxColor.GetCurSel();
|
||||||
GetDlgItem(IDC_STATIC_NUM)->SetWindowText("0");
|
GetDlgItem(IDC_STATIC_NUM)->SetWindowText(L"0");
|
||||||
m_drv->DevStateChange();
|
m_drv->DevStateChange();
|
||||||
m_drv->reset();
|
m_drv->reset();
|
||||||
Scan();
|
Scan();
|
||||||
|
@ -656,9 +673,9 @@ void CHuaGoCorrectDlg::OnBnClickedBtnstop()
|
||||||
m2 = n_minute % 10;
|
m2 = n_minute % 10;
|
||||||
s1 = n_second / 10;
|
s1 = n_second / 10;
|
||||||
s2 = n_second % 10;
|
s2 = n_second % 10;
|
||||||
s_hour.Format("%d%d", h1, h2);
|
s_hour.Format(L"%d%d", h1, h2);
|
||||||
s_minute.Format("%d%d", m1, m2);
|
s_minute.Format(L"%d%d", m1, m2);
|
||||||
s_second.Format("%d%d", s1, s2);
|
s_second.Format(L"%d%d", s1, s2);
|
||||||
UpdateData(FALSE);
|
UpdateData(FALSE);
|
||||||
}
|
}
|
||||||
m_drv->Stop_scan();
|
m_drv->Stop_scan();
|
||||||
|
@ -667,8 +684,10 @@ void CHuaGoCorrectDlg::OnBnClickedBtnstop()
|
||||||
void CHuaGoCorrectDlg::updatefunc()
|
void CHuaGoCorrectDlg::updatefunc()
|
||||||
{
|
{
|
||||||
CProgressCtrl* prb = (CProgressCtrl*)GetDlgItem(IDC_PRB_UPDATE);
|
CProgressCtrl* prb = (CProgressCtrl*)GetDlgItem(IDC_PRB_UPDATE);
|
||||||
int ret= m_drv->Updata(updateFilePath, [this,&prb](long pos, long len) {
|
USES_CONVERSION;
|
||||||
prb->SetRange32(0,len);
|
std::string updatefile(W2A(updateFilePath));
|
||||||
|
int ret = m_drv->Updata(updatefile, [this, &prb](long pos, long len) {
|
||||||
|
prb->SetRange32(0, len);
|
||||||
prb->SetPos(pos);
|
prb->SetPos(pos);
|
||||||
});
|
});
|
||||||
if (ret == false)
|
if (ret == false)
|
||||||
|
@ -679,60 +698,4 @@ void CHuaGoCorrectDlg::updatefunc()
|
||||||
{
|
{
|
||||||
MessageBox(TEXT("更新完成!"), TEXT("提示"), MB_OK | MB_ICONINFORMATION);
|
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<char> 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);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
#include "twain.h"
|
#include "twain.h"
|
||||||
#include "A3.h"
|
#include "A3.h"
|
||||||
#include "A4.h"
|
#include "A4.h"
|
||||||
#include "ConfigParam.h"
|
//#include "ConfigParam.h"
|
||||||
#include "afxwin.h"
|
#include "afxwin.h"
|
||||||
#include "CVISON.h"
|
#include "CVISON.h"
|
||||||
#include "scn_usb.h"
|
#include "scn_usb.h"
|
||||||
|
@ -63,7 +63,6 @@ public:
|
||||||
CA4 m_A4Dlg;
|
CA4 m_A4Dlg;
|
||||||
CVISON m_VisonDlg;
|
CVISON m_VisonDlg;
|
||||||
CA3 m_A3dlg;
|
CA3 m_A3dlg;
|
||||||
CConfigParam m_ConfigParam;
|
|
||||||
std::shared_ptr<IScanner> m_drv;
|
std::shared_ptr<IScanner> m_drv;
|
||||||
CRect tabRect; // 标签控件客户区的位置和大小
|
CRect tabRect; // 标签控件客户区的位置和大小
|
||||||
void Scan();
|
void Scan();
|
||||||
|
@ -104,7 +103,7 @@ public:
|
||||||
CString s_minute;
|
CString s_minute;
|
||||||
CString s_second;
|
CString s_second;
|
||||||
afx_msg void OnBnClickedStopScan();
|
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 OnBnClickedBtnSelectfile();
|
||||||
afx_msg void OnBnClickedBtnUpdate();
|
afx_msg void OnBnClickedBtnUpdate();
|
||||||
afx_msg void OnBnClickedBtnRefresh();
|
afx_msg void OnBnClickedBtnRefresh();
|
||||||
|
@ -112,7 +111,7 @@ public:
|
||||||
afx_msg void OnBnClickedBtnstart();
|
afx_msg void OnBnClickedBtnstart();
|
||||||
afx_msg void OnBnClickedBtnstop();
|
afx_msg void OnBnClickedBtnstop();
|
||||||
private:
|
private:
|
||||||
std::string updateFilePath;
|
CString updateFilePath;
|
||||||
std::thread m_updateThread;
|
std::thread m_updateThread;
|
||||||
void updatefunc();
|
void updatefunc();
|
||||||
};
|
};
|
||||||
|
|
|
@ -15,6 +15,7 @@ public:
|
||||||
virtual void SetFWVersion() = 0;
|
virtual void SetFWVersion() = 0;
|
||||||
virtual std::string GetSerialNum() = 0;
|
virtual std::string GetSerialNum() = 0;
|
||||||
virtual void SetSerialNum(std::string serial) = 0;
|
virtual void SetSerialNum(std::string serial) = 0;
|
||||||
|
virtual std::string GetKernelVersion() =0;
|
||||||
virtual void SetRatio(int tyepe, int ration) = 0;
|
virtual void SetRatio(int tyepe, int ration) = 0;
|
||||||
virtual void GetRatio(int type, int& ratio) = 0;
|
virtual void GetRatio(int type, int& ratio) = 0;
|
||||||
virtual void Reboot() = 0;
|
virtual void Reboot() = 0;
|
||||||
|
@ -44,8 +45,12 @@ public:
|
||||||
virtual void SetSptime(int type, int time) = 0;
|
virtual void SetSptime(int type, int time) = 0;
|
||||||
virtual void GetSleepTime(int& sleeptime) = 0;
|
virtual void GetSleepTime(int& sleeptime) = 0;
|
||||||
virtual void SetSleepTime(int sleeptime) = 0;
|
virtual void SetSleepTime(int sleeptime) = 0;
|
||||||
virtual bool Updata(std::string filename, std::function<void(long, long)> 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<void(long, long)> func) = 0;
|
||||||
|
virtual void SetFlatCallback(std::function<void(std::string)> func) = 0;
|
||||||
|
virtual void GetSpeedMode(int& speedmode,bool get) = 0 ;
|
||||||
void SetPath(std::string csFilePath)
|
void SetPath(std::string csFilePath)
|
||||||
{
|
{
|
||||||
csPath = csFilePath;
|
csPath = csFilePath;
|
||||||
|
|
|
@ -49,7 +49,7 @@ cv::Mat JpegBuffer::getMat( int pixType)
|
||||||
//XdPrint("buffer size is :%d ==========================\n",getSize());
|
//XdPrint("buffer size is :%d ==========================\n",getSize());
|
||||||
cv::Mat image = jl.decode(m_buffer, pixType);//oixtype
|
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);
|
//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",)
|
//FileTools::write_log("D:/1.txt",)
|
||||||
|
|
|
@ -313,34 +313,34 @@ TCHAR* GetCurExeFilePath(HINSTANCE hInstance, TCHAR* lpPath, DWORD dwSize)
|
||||||
|
|
||||||
TCHAR* GetExistFileDir(TCHAR* p_file_path)
|
TCHAR* GetExistFileDir(TCHAR* p_file_path)
|
||||||
{
|
{
|
||||||
WIN32_FIND_DATA wfd = {0};
|
//WIN32_FIND_DATA wfd = {0};
|
||||||
LPSTR p_test = NULL;
|
//LPSTR p_test = NULL;
|
||||||
HANDLE hFindFile = INVALID_HANDLE_VALUE;
|
//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;
|
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)
|
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;
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( _access(p_file_path, 0) == 0)
|
//if ( _access(p_file_path, 0) == 0)
|
||||||
{
|
//{
|
||||||
return TRUE;
|
// return TRUE;
|
||||||
}
|
//}
|
||||||
|
|
||||||
if ( !flg )
|
if ( !flg )
|
||||||
return FALSE;
|
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)
|
BOOL CheckDiskFreeBitM(HWND hWin, TCHAR *p_disk_name, DWORD dw_min_bit_m)
|
||||||
{
|
{
|
||||||
TCHAR *p = NULL;
|
//TCHAR *p = NULL;
|
||||||
TCHAR sz_root_path_name[MAX_PATH + 1] = {0};
|
//TCHAR sz_root_path_name[MAX_PATH + 1] = {0};
|
||||||
INT len = 0;
|
//INT len = 0;
|
||||||
|
//
|
||||||
|
//DWORD dwTotalDiskSpace = 0;
|
||||||
|
//DWORD dwFreeDiskSpace = 0;
|
||||||
|
//DWORD dwUsedDiskSpace = 0;
|
||||||
|
|
||||||
DWORD dwTotalDiskSpace = 0;
|
//ULARGE_INTEGER uiFreeBytesAvailableToCaller;
|
||||||
DWORD dwFreeDiskSpace = 0;
|
//ULARGE_INTEGER uiTotalNumberOfBytes;
|
||||||
DWORD dwUsedDiskSpace = 0;
|
//ULARGE_INTEGER uiTotalNumberOfFreeBytes;
|
||||||
|
|
||||||
ULARGE_INTEGER uiFreeBytesAvailableToCaller;
|
//UINT un_ret = 0;
|
||||||
ULARGE_INTEGER uiTotalNumberOfBytes;
|
//if ( p_disk_name == NULL )
|
||||||
ULARGE_INTEGER uiTotalNumberOfFreeBytes;
|
// return FALSE;
|
||||||
|
|
||||||
UINT un_ret = 0;
|
//len = _tcslen(p_disk_name);
|
||||||
if ( p_disk_name == NULL )
|
//if ( len > MAX_PATH )
|
||||||
return FALSE;
|
//{
|
||||||
|
// len = MAX_PATH;
|
||||||
|
//}
|
||||||
|
|
||||||
len = _tcslen(p_disk_name);
|
//memcpy(sz_root_path_name, p_disk_name, (size_t)len);
|
||||||
if ( len > MAX_PATH )
|
|
||||||
{
|
|
||||||
len = MAX_PATH;
|
|
||||||
}
|
|
||||||
|
|
||||||
memcpy(sz_root_path_name, p_disk_name, (size_t)len);
|
//p = _tcsstr(sz_root_path_name, "\\");
|
||||||
|
//if ( p == NULL )
|
||||||
p = _tcsstr(sz_root_path_name, "\\");
|
//{
|
||||||
if ( p == NULL )
|
// if ( len == 2 )
|
||||||
{
|
// {
|
||||||
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;
|
||||||
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;
|
||||||
else
|
//}
|
||||||
return FALSE;
|
//if ( p != NULL )
|
||||||
}
|
// *(p+1) = 0;
|
||||||
if ( p != NULL )
|
//un_ret = GetDriveType(sz_root_path_name);
|
||||||
*(p+1) = 0;
|
//if ( un_ret == 0 || un_ret == 1)
|
||||||
un_ret = GetDriveType(sz_root_path_name);
|
//{
|
||||||
if ( un_ret == 0 || un_ret == 1)
|
// return FALSE;
|
||||||
{
|
//}
|
||||||
return FALSE;
|
//
|
||||||
}
|
//if(GetDiskFreeSpaceEx(sz_root_path_name, &uiFreeBytesAvailableToCaller, &uiTotalNumberOfBytes, &uiTotalNumberOfFreeBytes))
|
||||||
|
//{
|
||||||
if(GetDiskFreeSpaceEx(sz_root_path_name, &uiFreeBytesAvailableToCaller, &uiTotalNumberOfBytes, &uiTotalNumberOfFreeBytes))
|
// //dwTotalDiskSpace = (DWORD)(uiTotalNumberOfBytes.QuadPart / 1024 / 1024);
|
||||||
{
|
// dwFreeDiskSpace = (DWORD)(uiFreeBytesAvailableToCaller.QuadPart >> 20);
|
||||||
//dwTotalDiskSpace = (DWORD)(uiTotalNumberOfBytes.QuadPart / 1024 / 1024);
|
// //dwUsedDiskSpace = dwTotalDiskSpace - dwFreeDiskSpace;
|
||||||
dwFreeDiskSpace = (DWORD)(uiFreeBytesAvailableToCaller.QuadPart >> 20);
|
// if ( dwFreeDiskSpace < dw_min_bit_m )
|
||||||
//dwUsedDiskSpace = dwTotalDiskSpace - dwFreeDiskSpace;
|
// {
|
||||||
if ( dwFreeDiskSpace < dw_min_bit_m )
|
// //ShowErrorStr(hWin, 1101);//1101=磁盘空间不足
|
||||||
{
|
// MyMessageBox( TEXT("磁盘分区可用空间不足"), 0, MB_ICONWARNING);
|
||||||
//ShowErrorStr(hWin, 1101);//1101=磁盘空间不足
|
// return FALSE;
|
||||||
MyMessageBox( TEXT("磁盘分区可用空间不足"), 0, MB_ICONWARNING);
|
// }
|
||||||
return FALSE;
|
//}
|
||||||
}
|
//else
|
||||||
}
|
//{
|
||||||
else
|
// MyMessageBox( TEXT("磁盘分区可用空间不足"), 0, MB_ICONWARNING);
|
||||||
{
|
// //GetErrorMessage(NULL, 0, FALSE);
|
||||||
MyMessageBox( TEXT("磁盘分区可用空间不足"), 0, MB_ICONWARNING);
|
// return FALSE;
|
||||||
//GetErrorMessage(NULL, 0, FALSE);
|
//}
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
//ShowErrorStr(hWin, 1101);//1101=磁盘空间不足
|
//ShowErrorStr(hWin, 1101);//1101=磁盘空间不足
|
||||||
//return FALSE;
|
//return FALSE;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
Binary file not shown.
|
@ -313,6 +313,11 @@ enum Scanner_Reg_Defs
|
||||||
SR_SET_SLEEPTIME,
|
SR_SET_SLEEPTIME,
|
||||||
SR_GET_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_CUO_ERROR = 0x50,
|
||||||
SR_GET_DOU_ERROR,
|
SR_GET_DOU_ERROR,
|
||||||
SR_GET_JAM_ERROR,
|
SR_GET_JAM_ERROR,
|
||||||
|
@ -326,7 +331,11 @@ enum Scanner_Reg_Defs
|
||||||
SR_UPDATA_RECOVERY = 0x103,
|
SR_UPDATA_RECOVERY = 0x103,
|
||||||
SR_UPDATA_REBOOT = 0x104,
|
SR_UPDATA_REBOOT = 0x104,
|
||||||
SR_POWEROFF = 0x105,
|
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
|
enum Scanner_Cmd_Defs
|
||||||
|
@ -355,7 +364,8 @@ enum HGType
|
||||||
FPGA,
|
FPGA,
|
||||||
V4L2,
|
V4L2,
|
||||||
IMG,
|
IMG,
|
||||||
STOPSCAN,
|
AutoCorrect,
|
||||||
|
STOPSCAN
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef union HG_ScanConfig
|
typedef union HG_ScanConfig
|
||||||
|
@ -396,4 +406,5 @@ struct HGEIntInfo
|
||||||
{
|
{
|
||||||
HGType From;
|
HGType From;
|
||||||
unsigned int Code;
|
unsigned int Code;
|
||||||
|
unsigned int Img_Index;
|
||||||
};
|
};
|
|
@ -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)
|
void gscan3399::SetRatio(int tyepe, int ration)
|
||||||
{
|
{
|
||||||
scanner_write_reg(m_usb, tyepe == 0 ? SR_SET_H_RATIO : SR_SET_V_RATIO, ration);
|
scanner_write_reg(m_usb, tyepe == 0 ? SR_SET_H_RATIO : SR_SET_V_RATIO, ration);
|
||||||
|
@ -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<void(long, long)> func)
|
bool gscan3399::Updata(std::string filename, std::function<void(long, long)> func)
|
||||||
{
|
{
|
||||||
std::ifstream updatefile;
|
std::ifstream updatefile;
|
||||||
|
@ -369,25 +401,18 @@ CaptureParams gscan3399::GetFlatData()
|
||||||
void gscan3399::StartFlat(bool iscolor)
|
void gscan3399::StartFlat(bool iscolor)
|
||||||
{
|
{
|
||||||
int color = iscolor ? 1 : 0;
|
int color = iscolor ? 1 : 0;
|
||||||
|
if (m_usbthread.get())
|
||||||
|
{
|
||||||
|
b_usbthread = false;
|
||||||
|
if (m_usbthread->joinable())
|
||||||
|
{
|
||||||
|
m_usbthread->join();
|
||||||
|
m_usbthread.reset();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
b_usbthread = true;
|
||||||
|
m_usbthread.reset(new thread(&gscan3399::usb_run, this));
|
||||||
scanner_write_reg(m_usb, SC_AUTOCORRECT, color);
|
scanner_write_reg(m_usb, SC_AUTOCORRECT, color);
|
||||||
unsigned char buff[64] = { 0 };
|
|
||||||
StopWatch sw;
|
|
||||||
while (sw.elapsed_s() < 120)
|
|
||||||
{
|
|
||||||
auto lenght = m_usb->read_int(buff, sizeof(buff));
|
|
||||||
if (lenght == sizeof(buff))
|
|
||||||
{
|
|
||||||
HGEIntInfo info = *(HGEIntInfo*)&buff;
|
|
||||||
if (info.From == 5 && info.Code == 6)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void gscan3399::DevStateChange()
|
void gscan3399::DevStateChange()
|
||||||
|
@ -404,7 +429,6 @@ void gscan3399::close()
|
||||||
{
|
{
|
||||||
if (m_usb.get())
|
if (m_usb.get())
|
||||||
m_usb->close();
|
m_usb->close();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void gscan3399::GetExpose(int& Aside, int& Bside)
|
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);
|
scanner_write_reg(m_usb, SR_SET_SLEEPTIME, sleeptime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void gscan3399::SetFlatCallback(std::function<void(std::string)> 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)
|
void gscan3399::usbcallback(bool isleft, void* usrdata)
|
||||||
{
|
{
|
||||||
|
@ -471,7 +514,7 @@ void gscan3399::get_imgdata()
|
||||||
if (is_bulktransferring())
|
if (is_bulktransferring())
|
||||||
{
|
{
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(1));
|
std::this_thread::sleep_for(std::chrono::milliseconds(1));
|
||||||
continue;
|
return;
|
||||||
}
|
}
|
||||||
imgremains++;
|
imgremains++;
|
||||||
auto& buffi = im_data;
|
auto& buffi = im_data;
|
||||||
|
@ -535,7 +578,9 @@ void gscan3399::imgproce(std::shared_ptr<std::vector<char>>& buffs)
|
||||||
p = localtime(&timp);
|
p = localtime(&timp);
|
||||||
std::string filename = std::to_string(p->tm_hour) + "_" + std::to_string(p->tm_min) + "_" + std::to_string(p->tm_sec);
|
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;
|
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()) {
|
if (!mat.empty()) {
|
||||||
cv::imwrite(path, mat);
|
cv::imwrite(path, mat);
|
||||||
m_imagespath.Put(path);
|
m_imagespath.Put(path);
|
||||||
|
@ -559,7 +604,7 @@ void gscan3399::usb_run()
|
||||||
}
|
}
|
||||||
memset(buff, 0, sizeof(buff));
|
memset(buff, 0, sizeof(buff));
|
||||||
auto length = m_usb->read_int(buff, 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;
|
HGEIntInfo info = *(HGEIntInfo*)&buff;
|
||||||
switch (info.From)
|
switch (info.From)
|
||||||
|
@ -568,6 +613,19 @@ void gscan3399::usb_run()
|
||||||
if (is_runing())
|
if (is_runing())
|
||||||
get_imgdata();
|
get_imgdata();
|
||||||
break;
|
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:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ public:
|
||||||
virtual void SetFWVersion();
|
virtual void SetFWVersion();
|
||||||
virtual std::string GetSerialNum();
|
virtual std::string GetSerialNum();
|
||||||
virtual void SetSerialNum(std::string serial);
|
virtual void SetSerialNum(std::string serial);
|
||||||
|
virtual std::string GetKernelVersion();
|
||||||
virtual void SetRatio(int tyepe, int ration);
|
virtual void SetRatio(int tyepe, int ration);
|
||||||
virtual void GetRatio(int type, int& ratio);
|
virtual void GetRatio(int type, int& ratio);
|
||||||
virtual void Reboot();
|
virtual void Reboot();
|
||||||
|
@ -31,7 +32,8 @@ public:
|
||||||
virtual void run();
|
virtual void run();
|
||||||
virtual int get_decompress_pix_type();
|
virtual int get_decompress_pix_type();
|
||||||
virtual void set_decompress_pix_type(int pixtype);
|
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<void(long, long)> func);
|
virtual bool Updata(std::string filename, std::function<void(long, long)> func);
|
||||||
|
|
||||||
virtual void SetIsDuplex(bool value);
|
virtual void SetIsDuplex(bool value);
|
||||||
|
@ -64,6 +66,11 @@ public:
|
||||||
|
|
||||||
virtual void GetSleepTime(int& sleeptime);
|
virtual void GetSleepTime(int& sleeptime);
|
||||||
virtual void SetSleepTime(int sleeptime);
|
virtual void SetSleepTime(int sleeptime);
|
||||||
|
|
||||||
|
virtual void SetFlatCallback(std::function<void(std::string)> func);
|
||||||
|
virtual void GetSpeedMode(int& speedmode,bool getorset);
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static void usbcallback(bool isleft, void* usrdata);
|
static void usbcallback(bool isleft, void* usrdata);
|
||||||
int read_data(void* data, int length, int timeout);
|
int read_data(void* data, int length, int timeout);
|
||||||
|
@ -88,4 +95,5 @@ private:
|
||||||
BlockingQueue<std::string> m_imagespath;
|
BlockingQueue<std::string> m_imagespath;
|
||||||
std::atomic_int imgremains;
|
std::atomic_int imgremains;
|
||||||
HGScanConfig m_config;
|
HGScanConfig m_config;
|
||||||
|
std::function<void(std::string)> m_flatcallback;
|
||||||
};
|
};
|
|
@ -18,7 +18,7 @@ GScn_Drv::GScn_Drv()
|
||||||
{
|
{
|
||||||
//run();
|
//run();
|
||||||
|
|
||||||
XdPrint("Init GScn_Drv() \n");
|
XdPrint(L"Init GScn_Drv() \n");
|
||||||
|
|
||||||
m_bRun = false;
|
m_bRun = false;
|
||||||
devState = DEV_STOP;
|
devState = DEV_STOP;
|
||||||
|
@ -35,9 +35,9 @@ GScn_Drv::~GScn_Drv()
|
||||||
m_bRun = false;
|
m_bRun = false;
|
||||||
devState = DEV_STOP;
|
devState = DEV_STOP;
|
||||||
m_threadUsb.join();
|
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()
|
void GScn_Drv::InitMSGMap()
|
||||||
|
@ -82,7 +82,7 @@ void GScn_Drv::open(int vid, int pid,int index)
|
||||||
m_usb->open();//同时存在多个同种扫描设备时,默认选取第一个vid pid匹配的设备
|
m_usb->open();//同时存在多个同种扫描设备时,默认选取第一个vid pid匹配的设备
|
||||||
selectDeviceIndex=index;
|
selectDeviceIndex=index;
|
||||||
m_scannerType=G300;
|
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<void(std::string)> func)
|
||||||
|
{
|
||||||
|
m_flatcallback = func;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GScn_Drv::GetSpeedMode(int& speedmode, bool get)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void GScn_Drv::reset()
|
void GScn_Drv::reset()
|
||||||
{
|
{
|
||||||
while (!m_pImages.empty())
|
while (!m_pImages.empty())
|
||||||
|
@ -425,11 +442,13 @@ DWORD GScn_Drv::usbmain()
|
||||||
case DETECT_STAPLE:
|
case DETECT_STAPLE:
|
||||||
case PAPER_SKEW:
|
case PAPER_SKEW:
|
||||||
case HARDWARE_ERROR:
|
case HARDWARE_ERROR:
|
||||||
case PC_SCAN_BUSY_or_ERROR:
|
case PC_SCAN_BUSY_or_ERROR:{
|
||||||
MessageBox(h, ntcMsg[usbcb.u32_Data].c_str(), "Ìáʾ", MB_OK | MB_ICONERROR);
|
USES_CONVERSION;
|
||||||
|
MessageBox(h, CString(ntcMsg[usbcb.u32_Data].c_str()), L"Ìáʾ", MB_OK | MB_ICONERROR);
|
||||||
devState = DEV_WRONG;
|
devState = DEV_WRONG;
|
||||||
m_pImages.SetScanFlag(false);
|
m_pImages.SetScanFlag(false);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case NORMAL:
|
case NORMAL:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -442,15 +461,15 @@ DWORD GScn_Drv::usbmain()
|
||||||
}
|
}
|
||||||
catch (CMemoryException* e)
|
catch (CMemoryException* e)
|
||||||
{
|
{
|
||||||
XdPrint("CMemoryException");
|
XdPrint(L"CMemoryException");
|
||||||
}
|
}
|
||||||
catch (CFileException* e)
|
catch (CFileException* e)
|
||||||
{
|
{
|
||||||
XdPrint("CFileException");
|
XdPrint(L"CFileException");
|
||||||
}
|
}
|
||||||
catch (CException* e)
|
catch (CException* e)
|
||||||
{
|
{
|
||||||
XdPrint("CException");
|
XdPrint(L"CException");
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -508,11 +527,11 @@ std::string GScn_Drv::GetFWVersion()
|
||||||
std::lock_guard<std::mutex> lck(m_imgLocker);
|
std::lock_guard<std::mutex> lck(m_imgLocker);
|
||||||
std::string pFWVersion = " ";
|
std::string pFWVersion = " ";
|
||||||
USBCB usbcb = { GET_FW_VERSION,0,0 };
|
USBCB usbcb = { GET_FW_VERSION,0,0 };
|
||||||
XdPrint("Get GetFWVersion");
|
XdPrint(L"Get GetFWVersion");
|
||||||
m_usb->write_bulk(&usbcb, sizeof(usbcb));
|
m_usb->write_bulk(&usbcb, sizeof(usbcb));
|
||||||
|
|
||||||
CString cslog;
|
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);
|
m_usb->read_bulk(&pFWVersion[0], 10);
|
||||||
return pFWVersion;
|
return pFWVersion;
|
||||||
|
@ -541,16 +560,21 @@ void GScn_Drv::SetSerialNum(std::string pvalue)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string GScn_Drv::GetKernelVersion()
|
||||||
|
{
|
||||||
|
return "un support";
|
||||||
|
}
|
||||||
|
|
||||||
int GScn_Drv::GetScanNum()
|
int GScn_Drv::GetScanNum()
|
||||||
{
|
{
|
||||||
std::lock_guard<std::mutex> lck(m_imgLocker);
|
std::lock_guard<std::mutex> lck(m_imgLocker);
|
||||||
USBCB usbcb = { GET_SCANN_NUM,0,4 };
|
USBCB usbcb = { GET_SCANN_NUM,0,4 };
|
||||||
DWORD transfer;
|
DWORD transfer;
|
||||||
XdPrint("Get GetScanNum");
|
XdPrint(L"Get GetScanNum");
|
||||||
m_usb->write_bulk(&usbcb, sizeof(usbcb));
|
m_usb->write_bulk(&usbcb, sizeof(usbcb));
|
||||||
|
|
||||||
CString cslog;
|
CString cslog;
|
||||||
cslog.Format("GetScanNum Read_Data %d",usbcb.u32_Data);
|
cslog.Format(L"GetScanNum Read_Data %d",usbcb.u32_Data);
|
||||||
//WriteLog(cslog);
|
//WriteLog(cslog);
|
||||||
|
|
||||||
m_usb->read_bulk(&usbcb, sizeof(usbcb));
|
m_usb->read_bulk(&usbcb, sizeof(usbcb));
|
||||||
|
@ -562,7 +586,7 @@ void GScn_Drv::ClrRollerNum()
|
||||||
std::lock_guard<std::mutex> lck(m_imgLocker);
|
std::lock_guard<std::mutex> lck(m_imgLocker);
|
||||||
USBCB usbcb = { CLR_ROLLER_NUM,0,4 };
|
USBCB usbcb = { CLR_ROLLER_NUM,0,4 };
|
||||||
DWORD transfer;
|
DWORD transfer;
|
||||||
XdPrint("Get ClrRollerNum");
|
XdPrint(L"Get ClrRollerNum");
|
||||||
m_usb->write_bulk(&usbcb, sizeof(usbcb));
|
m_usb->write_bulk(&usbcb, sizeof(usbcb));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -572,7 +596,7 @@ void GScn_Drv::ClrScanNum()
|
||||||
std::lock_guard<std::mutex> lck(m_imgLocker);
|
std::lock_guard<std::mutex> lck(m_imgLocker);
|
||||||
USBCB usbcb = { CLR_SCAN_NUM,0,4 };
|
USBCB usbcb = { CLR_SCAN_NUM,0,4 };
|
||||||
DWORD transfer;
|
DWORD transfer;
|
||||||
XdPrint("Get ClrScanNum");
|
XdPrint(L"Get ClrScanNum");
|
||||||
m_usb->write_bulk(&usbcb, sizeof(usbcb));
|
m_usb->write_bulk(&usbcb, sizeof(usbcb));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -648,7 +672,7 @@ std::string GScn_Drv::GetSerialNum()
|
||||||
str.resize(14);
|
str.resize(14);
|
||||||
USBCB usbcb = { GET_SERIAL,0,14 };
|
USBCB usbcb = { GET_SERIAL,0,14 };
|
||||||
m_usb->write_bulk(&usbcb, sizeof(usbcb));
|
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);
|
m_usb->read_bulk(&str, 14);
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,7 @@ public:
|
||||||
virtual void SetFWVersion();
|
virtual void SetFWVersion();
|
||||||
virtual std::string GetSerialNum();
|
virtual std::string GetSerialNum();
|
||||||
virtual void SetSerialNum(std::string serial);
|
virtual void SetSerialNum(std::string serial);
|
||||||
|
virtual std::string GetKernelVersion();
|
||||||
virtual void SetRatio(int tyepe, int ration);
|
virtual void SetRatio(int tyepe, int ration);
|
||||||
virtual void GetRatio(int type, int& ratio);
|
virtual void GetRatio(int type, int& ratio);
|
||||||
virtual void Reboot();
|
virtual void Reboot();
|
||||||
|
@ -71,6 +72,12 @@ public:
|
||||||
virtual void GetSleepTime(int& sleeptime);
|
virtual void GetSleepTime(int& sleeptime);
|
||||||
virtual void SetSleepTime(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<void(std::string)> func);
|
||||||
|
virtual void GetSpeedMode(int& speedmode, bool get);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
volatile int devState;
|
volatile int devState;
|
||||||
volatile bool m_bRun;
|
volatile bool m_bRun;
|
||||||
|
@ -95,4 +102,5 @@ private:
|
||||||
DWORD usbmain();
|
DWORD usbmain();
|
||||||
void Pop_Image();
|
void Pop_Image();
|
||||||
HGScanConfig m_config;
|
HGScanConfig m_config;
|
||||||
|
std::function<void(std::string)> m_flatcallback;
|
||||||
};
|
};
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
130
HuaGoScan.ini
130
HuaGoScan.ini
|
@ -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
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue