mirror of http://192.168.1.51:8099/lmh188/twain3.0
修复部分UI逻辑问题
This commit is contained in:
parent
a9ae29134d
commit
a74735c8d8
|
@ -53,15 +53,17 @@ BOOL CAboutDlg::OnInitDialog()
|
|||
CStatic* pStatic = (CStatic*)GetDlgItem(IDC_PICABOUTHUAGO);
|
||||
#ifdef MAKEHUAGAO
|
||||
HBITMAP hBitmap = ::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BMPABOUTDLG));
|
||||
#elif defined HANVON
|
||||
HBITMAP hBitmap = ::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP3));
|
||||
#else defined LANXUM
|
||||
HBITMAP hBitmap = ::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP2));
|
||||
#endif
|
||||
pStatic->ModifyStyle(0xF, SS_BITMAP | SS_CENTERIMAGE);
|
||||
pStatic->SetBitmap(hBitmap);
|
||||
#ifndef MAKEHUAGAO
|
||||
#ifndef LANXUM
|
||||
#if defined MAKEHUAGAO || defined LANXUM || defined HANVON
|
||||
GetDlgItem(IDC_PICABOUTHUAGO)->ShowWindow(TRUE);
|
||||
#else
|
||||
GetDlgItem(IDC_PICABOUTHUAGO)->ShowWindow(FALSE);
|
||||
#endif // !LANXUM
|
||||
#endif
|
||||
SetDlgItemText(IDC_LBDESIGNERVALUE, COMPANY_NAME);
|
||||
SetDlgItemText(IDC_LBCOMPANYADDRESS, COMPANY_ADDRESS);
|
||||
|
|
|
@ -181,6 +181,7 @@ BEGIN_MESSAGE_MAP(CBasicPage, CTabPageSSL)
|
|||
ON_CBN_SELCHANGE(IDC_CMBRESLUTION, &CBasicPage::OnCbnSelchangeCmbreslution)
|
||||
ON_CBN_SELCHANGE(IDC_CMBDUPLEX, &CBasicPage::OnCbnSelchangeCmbduplex)
|
||||
ON_BN_CLICKED(IDC_BTNDISCARDSETTING, &CBasicPage::OnClickedBtndiscardsetting)
|
||||
ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLIDERDPI, &CBasicPage::OnNMReleasedcaptureSliderdpi)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
|
@ -270,6 +271,17 @@ void CBasicPage::updateCmbDuplex(BOOL insert)
|
|||
//int tmp_resindex = m_cmBoxResultion->GetCurSel();
|
||||
int tmp_resindex = m_Slider_Dpi.m_iPosition;
|
||||
int totalcount = m_cmBoxDuplex->GetCount();
|
||||
|
||||
if (tmp_duplexindex == 0)
|
||||
{
|
||||
GetDlgItem(IDC_CKBSWITCHFRONTBACK)->EnableWindow(FALSE);
|
||||
((CButton*)GetDlgItem(IDC_CKBSWITCHFRONTBACK))->SetCheck(FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
GetDlgItem(IDC_CKBSWITCHFRONTBACK)->EnableWindow(TRUE);
|
||||
}
|
||||
|
||||
if (tmp_colorindex == 0 && tmp_paperindex > 19 && tmp_resindex >= 300) {
|
||||
if (m_cmBoxDuplex->GetCurSel() == 4)
|
||||
{
|
||||
|
@ -283,6 +295,20 @@ void CBasicPage::updateCmbDuplex(BOOL insert)
|
|||
m_cmBoxDuplex->InsertString(4, TEXT("对折"));
|
||||
}
|
||||
}
|
||||
if (m_Slider_Dpi.m_iPosition > 300 && m_cmBoxSS->GetCount() > 20)
|
||||
{
|
||||
if (m_cmBoxSS->GetCurSel() >= 20)
|
||||
m_cmBoxSS->SetCurSel(19);
|
||||
m_cmBoxSS->DeleteString(22);
|
||||
m_cmBoxSS->DeleteString(21);
|
||||
m_cmBoxSS->DeleteString(20);
|
||||
}
|
||||
else if (m_Slider_Dpi.m_iPosition <= 300 && m_cmBoxSS->GetCount() <= 20)
|
||||
{
|
||||
m_cmBoxSS->InsertString(20, _T("最大扫描尺寸自动裁切"));
|
||||
m_cmBoxSS->InsertString(21, _T("最大扫描尺寸"));
|
||||
m_cmBoxSS->InsertString(22, _T("三联试卷"));
|
||||
}
|
||||
#ifndef G300
|
||||
if (tmp_paperindex == 19 || tmp_paperindex == 20 || tmp_paperindex == 21 || tmp_paperindex == 22 || tmp_paperindex == 1|| tmp_paperindex == 4|| tmp_paperindex == 5){
|
||||
(((CButton*)GetDlgItem(IDC_CKBSIZEDETECT)))->SetCheck(false);
|
||||
|
@ -306,3 +332,39 @@ void CBasicPage::updateCmbDuplex(BOOL insert)
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
void CBasicPage::OnNMReleasedcaptureSliderdpi(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
{
|
||||
// TODO: 在此添加控件通知处理程序代码
|
||||
if(pResult!=nullptr)
|
||||
*pResult = 0;
|
||||
#ifdef G200
|
||||
|
||||
if (m_Slider_Dpi.m_iPosition > 300 && m_cmBoxSS->GetCount() > 20)
|
||||
{
|
||||
if (m_cmBoxSS->GetCurSel() >= 20)
|
||||
m_cmBoxSS->SetCurSel(19);
|
||||
m_cmBoxSS->DeleteString(22);
|
||||
m_cmBoxSS->DeleteString(21);
|
||||
m_cmBoxSS->DeleteString(20);
|
||||
}
|
||||
else if (m_Slider_Dpi.m_iPosition <= 300 && m_cmBoxSS->GetCount() <= 20)
|
||||
{
|
||||
m_cmBoxSS->InsertString(20,_T("最大扫描尺寸自动裁切"));
|
||||
m_cmBoxSS->InsertString(21,_T("最大扫描尺寸"));
|
||||
m_cmBoxSS->InsertString(22,_T("三联试卷"));
|
||||
}
|
||||
if (m_Slider_Dpi.m_iPosition > 300 && m_cmBoxDuplex->GetCount() > 4)
|
||||
{
|
||||
if (m_cmBoxDuplex->GetCurSel() == 4)
|
||||
m_cmBoxDuplex->SetCurSel(1);
|
||||
m_cmBoxDuplex->DeleteString(4);
|
||||
}
|
||||
else if (m_Slider_Dpi.m_iPosition <= 300 && m_cmBoxDuplex->GetCount() <= 4)
|
||||
{
|
||||
m_cmBoxDuplex->InsertString(4, _T("对折"));
|
||||
}
|
||||
#endif // G200
|
||||
|
||||
}
|
||||
|
|
|
@ -54,4 +54,5 @@ private:
|
|||
std::string m_serialNum;
|
||||
public:
|
||||
afx_msg void OnCbnSelchangeCblowpowermode();
|
||||
afx_msg void OnNMReleasedcaptureSliderdpi(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
};
|
||||
|
|
|
@ -66,6 +66,7 @@ BOOL CTwainUI::OnInitDialog()
|
|||
m_pageImageProc->ImageAutoDescrewUpdate(m_pageBasic->m_cmBoxSS->GetCurSel());
|
||||
//m_pageFeedPaper->FeedAutoDescrewUpdate(m_pageBasic->m_cmBoxSS->GetCurSel());
|
||||
UpdateUi();
|
||||
m_pageBasic->OnNMReleasedcaptureSliderdpi(nullptr, nullptr);
|
||||
};
|
||||
|
||||
int nPageID = 0;
|
||||
|
@ -85,7 +86,7 @@ BOOL CTwainUI::OnInitDialog()
|
|||
UpdateUI();
|
||||
UpdateListConfig();
|
||||
dataChangeFunction();
|
||||
setvisable_size(false);
|
||||
//setvisable_size(false);
|
||||
#ifdef G200
|
||||
setvisable_sleepmode(false);
|
||||
#endif // G200
|
||||
|
|
|
@ -10,6 +10,7 @@ G400ScanConfig::G400ScanConfig(GScanCap& gcap)
|
|||
cfg.params.isColor = 1;
|
||||
else
|
||||
cfg.params.isColor = SupPixelTypes[gcap.pixtype];
|
||||
//cfg.params.isColor = 1;
|
||||
#ifdef UV
|
||||
cfg.params.enableUV = gcap.hardwarecaps.en_uv;//gcap.hardwarecaps.en_stapledetect==0?0:1;
|
||||
#else
|
||||
|
|
|
@ -120,7 +120,7 @@ static map<UsbSupported, string> msgs = {
|
|||
{UsbSupported::USB_BULK_ERROR,"USB数据读取错误!"},
|
||||
{UsbSupported::V4L2_AQULRE_ERROR,"扫描仪取图失败!"},
|
||||
{UsbSupported::V4L2_IMAGE_EMPTY,"扫描仪图像处理异常!"},
|
||||
{UsbSupported::SLEEPING,"设备处于休眠模式,请唤醒休眠后再扫描!"},
|
||||
{UsbSupported::SLEEPING,"设备处于休眠模式,请按电源键关闭休眠!"},
|
||||
{UsbSupported::HAVE_DOGEAR,"检测到有折角,停止扫描!"},
|
||||
};
|
||||
|
||||
|
@ -140,7 +140,7 @@ class IScanner
|
|||
public:
|
||||
IScanner() {
|
||||
imgreadednum = imgtransfered = roller_num = lose_image_num = 0;
|
||||
is_AndroidOrLinux = false;
|
||||
is_Android = false;
|
||||
}
|
||||
virtual ~IScanner()
|
||||
{
|
||||
|
@ -263,7 +263,7 @@ protected:
|
|||
int roller_num;
|
||||
int scannum;
|
||||
int lose_image_num;
|
||||
bool is_AndroidOrLinux;
|
||||
bool is_Android;
|
||||
int error_index;
|
||||
|
||||
};
|
|
@ -127,6 +127,12 @@ int GScanO1003399::aquire_bmpdata(std::vector<unsigned char>& bmpdata)
|
|||
{
|
||||
if ((imagecount == 0) && (!scanflag) || (sw.elapsed_s() > 30))
|
||||
{
|
||||
if (is_scan())
|
||||
{
|
||||
sw.reset();
|
||||
continue;
|
||||
}
|
||||
|
||||
DoEvents();
|
||||
this_thread::sleep_for(chrono::milliseconds(1));
|
||||
if (sw.elapsed_s() > 30.0)
|
||||
|
|
|
@ -264,10 +264,10 @@ std::string GScanO400::GetFWVersion()
|
|||
m_usb->read_bulk(&fwVersion[0], fwVersion.size());
|
||||
std::this_thread::sleep_for(chrono::milliseconds(10));
|
||||
}
|
||||
if (fwVersion.substr(0, 2) == "G3" || fwVersion.substr(0, 2) == "G4")
|
||||
is_AndroidOrLinux = false;
|
||||
if (fwVersion.substr(0, 2) == "G3" || fwVersion.substr(0, 2) == "G4" ||fwVersion.substr(0,2)== "GU")
|
||||
is_Android = false;
|
||||
else
|
||||
is_AndroidOrLinux = true;
|
||||
is_Android = true;
|
||||
return fwVersion;
|
||||
}
|
||||
return "";
|
||||
|
@ -333,7 +333,7 @@ BOOL GScanO400::Get_Scanner_PaperOn()
|
|||
Set_ErrorCode(USB_DISCONNECTED);
|
||||
return true;
|
||||
}
|
||||
//return false;
|
||||
|
||||
USBCB usbcb = { GET_PAPER_STATUS ,2,0 };
|
||||
std::lock_guard<std::mutex> lck(m_imgLocker);
|
||||
m_usb->write_bulk(&usbcb, sizeof(usbcb));
|
||||
|
@ -386,6 +386,7 @@ void GScanO400::config_params(GScanCap& params)
|
|||
void GScanO400::Scanner_StartScan(UINT16 count)
|
||||
{
|
||||
scanfalg = false;
|
||||
Set_ErrorCode(0);
|
||||
roller_num = Get_Roller_num();
|
||||
std::lock_guard<std::mutex> lck(m_imgLocker);
|
||||
if (m_threadUsb && m_threadUsb->joinable()) {
|
||||
|
@ -453,29 +454,20 @@ void GScanO400::Scanner_StartScan(UINT16 count)
|
|||
|
||||
int GScanO400::notifyscan()
|
||||
{
|
||||
if (is_AndroidOrLinux)
|
||||
return 2;
|
||||
if (!m_usb.get() && !m_usb->is_connected())
|
||||
return -1;
|
||||
USBCB notify = { 0x100,0,0 };
|
||||
m_usb->write_bulk(¬ify, sizeof(notify));
|
||||
m_usb->read_bulk(¬ify, sizeof(notify));
|
||||
if (notify.u32_Data == 0x100)
|
||||
if ((notify.u32_Data != 0x10 && GetFWVersion().length() < 10) || notify.u32_Data == 0x100)
|
||||
{
|
||||
ShellExecute(NULL, TEXT("open"), GetHidedlgPath(), CString("扫描仪处于休眠状态正在唤醒! 提示 "), NULL, SW_HIDE);
|
||||
auto now = std::chrono::system_clock::now();
|
||||
while (std::chrono::system_clock::now() < now + std::chrono::milliseconds(8000))
|
||||
{
|
||||
DoEvents();
|
||||
}
|
||||
ShellExecute(NULL, TEXT("open"), GetHidedlgPath(), CString("扫描仪唤醒完成! 提示 "), NULL, SW_HIDE);
|
||||
return 1;
|
||||
ShellExecute(NULL, TEXT("open"), GetHidedlgPath(), CString("扫描仪处于休眠状态,请按电源键唤醒! 提示 "), NULL, SW_HIDE);
|
||||
return -1;
|
||||
}
|
||||
else if (notify.u32_Data == 0x10)
|
||||
return 0;
|
||||
return -1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
void GScanO400::Stop_scan()
|
||||
{
|
||||
std::lock_guard<std::mutex> lck(m_imgLocker);
|
||||
|
@ -676,7 +668,7 @@ void GScanO400::usbmain()
|
|||
UpdateScanInfo(countNReaded(), get_imgTransfered());
|
||||
#endif
|
||||
|
||||
if (!is_AndroidOrLinux)
|
||||
if (!is_Android)
|
||||
Pop_Image();
|
||||
FileTools::writelog(log_INFO, "从扫描仪接收" + to_string(get_imgnReaded()) + "份文件。耗时 " + to_string(sw.elapsed_ms()));
|
||||
sw.reset();
|
||||
|
@ -703,7 +695,7 @@ void GScanO400::usbmain()
|
|||
case USB_BULK_ERROR:
|
||||
if (!haveError)
|
||||
{
|
||||
//if (is_AndroidOrLinux)
|
||||
//if (is_Android)
|
||||
//{
|
||||
haveError = true;
|
||||
Set_ErrorCode(usbcb.u32_Data);
|
||||
|
|
|
@ -264,7 +264,7 @@ void ImageMatQueue::setparam(const GScanCap& param)
|
|||
{
|
||||
CImageApplyResize* apply;
|
||||
bool islongcustomcrop = false;
|
||||
if (param.papertype == TwSS::USStatement)
|
||||
if (param.papertype == TwSS::USStatement || param.normalCrop)
|
||||
islongcustomcrop = true;
|
||||
if (param.is_autocrop || islongcustomcrop) {
|
||||
double ratio = param.resolution_dst / 200.0;//
|
||||
|
@ -311,6 +311,8 @@ void ImageMatQueue::setparam(const GScanCap& param)
|
|||
SHGetSpecialFolderPath(NULL, szIniFile, CSIDL_WINDOWS, TRUE);
|
||||
#ifdef LANXUM
|
||||
_tcscat(szIniFile, _T("\\twain_32\\LANXUMSCAN\\tessdata"));
|
||||
#elif defined HANVON
|
||||
_tcscat(szIniFile, _T("\\twain_32\\HanvonScan\\tessdata"));
|
||||
#else
|
||||
_tcscat(szIniFile, _T("\\twain_32\\HuaGoScan\\tessdata"));
|
||||
#endif //
|
||||
|
@ -507,6 +509,9 @@ void ImageMatQueue::proc()
|
|||
else
|
||||
{
|
||||
auto mat = imread(info.path, rmc);
|
||||
//auto mat = imread(info.path, IMREAD_COLOR);
|
||||
//if (rmc == IMREAD_GRAYSCALE)
|
||||
// cvtColor(mat, mat, CV_RGB2GRAY);
|
||||
if (!mat.empty())
|
||||
{
|
||||
Mat front = mat(Rect(0, 0, mat.cols / 2, mat.rows));
|
||||
|
@ -605,7 +610,8 @@ void ImageMatQueue::proc()
|
|||
if (mats[i].channels() == 3)
|
||||
cvtColor(mats[i], mats[i], cv::COLOR_BGR2GRAY);
|
||||
#endif
|
||||
idata = (scanParam.pixtype == 0 || (((scanParam.automaticcolortype == 0) && (scanParam.automaticcolor == true)) && (mats[i].channels() == 1))) ? (IMat2Bmp)Mat2BmpBw(mats[i], scanParam.resolution_dst) : Mat2Bmp(mats[i], scanParam.resolution_dst);
|
||||
idata = (scanParam.pixtype == 0 || (((scanParam.automaticcolortype == 0) && (scanParam.automaticcolor == true)) && (mats[i].channels() == 1))) ?
|
||||
(IMat2Bmp)Mat2BmpBw(mats[i], scanParam.resolution_dst) : Mat2Bmp(mats[i], scanParam.resolution_dst);
|
||||
if (!scanParam.multi_output_red)
|
||||
mats[i].release();
|
||||
|
||||
|
|
|
@ -49,16 +49,17 @@ public:
|
|||
}
|
||||
memcpy(m_data->data() + 54, colortable, 256 * 4);
|
||||
}
|
||||
cv::imencode(".bmp", mat, *(m_data.get()));
|
||||
//cv::imencode(".bmp", mat, *(m_data.get()));
|
||||
setBmpFileHeader(mat);
|
||||
setBmpInfoHeader(mat, res);
|
||||
//uchar* data = m_data->data() + headersize + bmpdatasize;
|
||||
//uchar* matdata = mat.data;
|
||||
//for (int i = 0; i < mat.rows; i++) {
|
||||
// data -= m_datalinesize;
|
||||
// memcpy(data, matdata, step);
|
||||
// matdata += step;
|
||||
//}
|
||||
|
||||
uchar* data = m_data->data() + headersize + bmpdatasize;
|
||||
uchar* matdata = mat.data;
|
||||
for (int i = 0; i < mat.rows; i++) {
|
||||
data -= m_datalinesize;
|
||||
memcpy(data, matdata, step);
|
||||
matdata += step;
|
||||
}
|
||||
}
|
||||
private:
|
||||
void setBmpFileHeader(const cv::Mat& mat)
|
||||
|
|
|
@ -461,6 +461,8 @@ CString GetHidedlgPath()
|
|||
SHGetSpecialFolderPath(NULL, szIniFile, CSIDL_WINDOWS, TRUE);
|
||||
#ifdef MAKEHUAGAO
|
||||
_tcscat(szIniFile, _T("\\twain_32\\HuaGoScan\\hidedlg.exe"));
|
||||
#elif defined HANVON
|
||||
_tcscat(szIniFile, _T("\\twain_32\\HanvonScan\\hidedlg.exe"));
|
||||
#elif defined LANXUM
|
||||
_tcscat(szIniFile, _T("\\twain_32\\LANXUMSCAN\\hidedlg.exe"));
|
||||
#else // MAKEHUAGAO
|
||||
|
|
|
@ -108,9 +108,9 @@ void GscanJsonConfig::SaveGscanCapConfig(const GScanCap & gcap, const std::strin
|
|||
#ifdef UV
|
||||
outJson["Config"].Add(ENUVMODEL, (bool)(gcap.hardwarecaps.en_uv), false);
|
||||
#endif
|
||||
outJson["Config"].Add(BRIGHTNESS, (int)(gcap.brightness));
|
||||
outJson["Config"].Add(BRIGHTNESS, (double)(gcap.brightness));
|
||||
outJson["Config"].Add(AUTOCONTRAST, (bool)(gcap.is_autocontrast), false);
|
||||
outJson["Config"].Add(CONTRAST, (int)(gcap.contrast));
|
||||
outJson["Config"].Add(CONTRAST, (double)(gcap.contrast));
|
||||
outJson["Config"].Add(GAMMA_, (double)(gcap.gamma));
|
||||
|
||||
outJson["Config"].Add(FILTERTYPE, (int)(gcap.filter));
|
||||
|
@ -131,10 +131,10 @@ void GscanJsonConfig::SaveGscanCapConfig(const GScanCap & gcap, const std::strin
|
|||
outJson["Config"].Add(DOCORIENTATION, (int)(gcap.imageRotateDegree));
|
||||
outJson["Config"].Add(AUTO_TEXT, (bool)(gcap.is_autotext),false);
|
||||
outJson["Config"].Add(BACKROTATE180, (bool)(gcap.is_backrotate180), false);
|
||||
outJson["Config"].Add(NOISE, (int)(gcap.noise), false);
|
||||
outJson["Config"].Add(NOISE, (int)(gcap.noise));
|
||||
outJson["Config"].Add(ISCONVEX, (bool)(gcap.is_convex), false);
|
||||
outJson["Config"].Add(INDENT, (int)(gcap.indent), false);
|
||||
outJson["Config"].Add(AUTOCROP_THRESHOLD, (int)(gcap.AutoCrop_threshold), false);
|
||||
outJson["Config"].Add(INDENT, (int)(gcap.indent));
|
||||
outJson["Config"].Add(AUTOCROP_THRESHOLD, (int)(gcap.AutoCrop_threshold));
|
||||
outJson["Config"].Add(DOGEAR_DETECTION, (bool)(gcap.is_dogeardetection), false);
|
||||
outJson["Config"].Add(SCREWDETECT, (bool)(gcap.hardwarecaps.en_skrewdetect), false);
|
||||
outJson["Config"].Add(SCREWLEVEL, (int)(gcap.hardwarecaps.skrewdetectlevel));
|
||||
|
|
|
@ -182,22 +182,22 @@ void CSmartEdit::OnUpdate()
|
|||
}
|
||||
else
|
||||
{
|
||||
m_iValue = _tstoi( buf );
|
||||
if( m_iValue < m_iMin )
|
||||
{
|
||||
m_iValue = m_iMin;
|
||||
OnBadInput();
|
||||
}
|
||||
else if( m_iValue > m_iMax )
|
||||
{
|
||||
m_iValue = m_iMax;
|
||||
OnBadInput();
|
||||
}
|
||||
else
|
||||
error = FALSE;
|
||||
}
|
||||
m_iValue = _tstoi(buf);
|
||||
if (m_iValue < m_iMin)
|
||||
{
|
||||
m_iValue = m_iMin;
|
||||
OnBadInput();
|
||||
}
|
||||
else if (m_iValue > m_iMax)
|
||||
{
|
||||
m_iValue = m_iMax;
|
||||
OnBadInput();
|
||||
}
|
||||
else
|
||||
error = FALSE;
|
||||
}
|
||||
|
||||
if( m_pSlider )
|
||||
if (m_pSlider)
|
||||
m_pSlider->SetSlidePos( m_iValue );
|
||||
|
||||
if( error )
|
||||
|
|
|
@ -90,6 +90,8 @@ static constexpr const Identity srcIdent(
|
|||
DataGroup::Image,
|
||||
#ifdef MAKEHUAGAO
|
||||
"HUAGO",
|
||||
#elif defined HANVON
|
||||
"HANVON",
|
||||
#elif defined LANXUM
|
||||
"LANXUM",
|
||||
#else // MAKEHUAGAO
|
||||
|
@ -97,52 +99,60 @@ static constexpr const Identity srcIdent(
|
|||
#endif
|
||||
|
||||
#ifdef G200
|
||||
#if defined (ISG100)
|
||||
#ifdef LANXUM
|
||||
"G62S Series",
|
||||
#else // ISG100
|
||||
"G100 Series",
|
||||
#endif
|
||||
#else // ISG100
|
||||
#ifdef LANXUM
|
||||
"G73S Series",
|
||||
#else // ISG100
|
||||
"G200 Series",
|
||||
#endif
|
||||
#endif
|
||||
#ifdef ISG100
|
||||
#ifdef LANXUM
|
||||
"G62S Series",
|
||||
#else // ISG100
|
||||
"G100 Series",
|
||||
#endif
|
||||
#else // ISG100
|
||||
#ifdef LANXUM
|
||||
"G73S Series",
|
||||
#elif defined HANVON
|
||||
"HW-7000W Series",
|
||||
#else // ISG100
|
||||
"G200 Series",
|
||||
#endif
|
||||
#endif
|
||||
#elif defined(G300) // G200
|
||||
#ifdef LANXUM
|
||||
"G42S Series",
|
||||
#else // ISG100
|
||||
"G300 Series",
|
||||
#endif
|
||||
#ifdef LANXUM
|
||||
"G42S Series",
|
||||
#elif defined HANVON
|
||||
"HW-7000W Series",
|
||||
#else // ISG100
|
||||
"G300 Series",
|
||||
#endif
|
||||
|
||||
#elif defined(G400) // G200
|
||||
#ifdef LANXUM
|
||||
"G52S Series",
|
||||
#else // ISG100
|
||||
"G400 Series",
|
||||
#endif
|
||||
#ifdef LANXUM
|
||||
"G52S Series",
|
||||
#elif defined HANVON
|
||||
"HW-7000W Series",
|
||||
#else // ISG100
|
||||
"G400 Series",
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef G200
|
||||
#if defined (ISG100)
|
||||
#ifdef MAKEHUAGAO
|
||||
"HUAGOSCAN G100 TWAIN"
|
||||
#elif defined LANXUM //!LANXUM
|
||||
"LANXUMSCAN G62S TWAIN"
|
||||
#else // !MAKEHUAGAO
|
||||
"ZhibenScan G100 TWAIN"
|
||||
#endif
|
||||
#else // ISG100
|
||||
#ifdef MAKEHUAGAO
|
||||
"HUAGOSCAN G200 TWAIN"
|
||||
#elif defined LANXUM //!LANXUM
|
||||
"LANXUMSCAN G73S TWAIN"
|
||||
#else // !MAKEHUAGAO
|
||||
"ZhibenScan G200 TWAIN"
|
||||
#endif
|
||||
#ifdef ISG100
|
||||
#ifdef MAKEHUAGAO
|
||||
"HUAGOSCAN G100 TWAIN"
|
||||
#elif defined LANXUM //!LANXUM
|
||||
"LANXUMSCAN G62S TWAIN"
|
||||
#else // !MAKEHUAGAO
|
||||
"ZhibenScan G100 TWAIN"
|
||||
#endif
|
||||
#else // ISG100
|
||||
#ifdef MAKEHUAGAO
|
||||
"HUAGOSCAN G200 TWAIN"
|
||||
#elif defined HANVON
|
||||
"HANVONSCAN HW-7000W TAWIN"
|
||||
#elif defined LANXUM //!LANXUM
|
||||
"LANXUMSCAN G73S TWAIN"
|
||||
#else // !MAKEHUAGAO
|
||||
"ZhibenScan G200 TWAIN"
|
||||
#endif
|
||||
#endif
|
||||
#elif defined G300 // G200
|
||||
#ifdef MAKEHUAGAO
|
||||
|
@ -152,19 +162,24 @@ static constexpr const Identity srcIdent(
|
|||
"HUAGOSCAN G300 TWAIN"
|
||||
#endif
|
||||
|
||||
#elif defined HANVON
|
||||
"HANVONSCAN HW-7000W TAWIN"
|
||||
|
||||
#elif defined LANXUM //!LANXUM
|
||||
"LANXUMSCAN G42S TWAIN"
|
||||
#else // !MAKEHUAGAO
|
||||
"ZhibenScan G300 TWAIN"
|
||||
#endif
|
||||
#elif defined(G400) // G200
|
||||
#ifdef MAKEHUAGAO
|
||||
"HUAGOSCAN G400 TWAIN"
|
||||
#elif defined LANXUM //!LANXUM
|
||||
"LANXUMSCAN G52S TWAIN"
|
||||
#else // !MAKEHUAGAO
|
||||
"ZhibenScan G400 TWAIN"
|
||||
#endif
|
||||
#ifdef MAKEHUAGAO
|
||||
"HUAGOSCAN G400 TWAIN"
|
||||
#elif defined HANVON
|
||||
"HANVONSCAN HW-7000W TAWIN"
|
||||
#elif defined LANXUM //!LANXUM
|
||||
"LANXUMSCAN G52S TWAIN"
|
||||
#else // !MAKEHUAGAO
|
||||
"ZhibenScan G400 TWAIN"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
|
@ -263,7 +278,11 @@ static std::vector<Vid_pid> DeviceID{
|
|||
|
||||
#endif // ISG100
|
||||
};
|
||||
#elif defined HANVON
|
||||
static std::vector<Vid_pid> DeviceID{
|
||||
|
||||
{0x2903,0x7000},
|
||||
};
|
||||
#else
|
||||
static std::vector<Vid_pid> DeviceID{
|
||||
{0x64B,0x7823},
|
||||
|
@ -844,8 +863,15 @@ Result HuagaoDs::identityOpenDs(const Identity&) {
|
|||
return checkDeviceOnline();
|
||||
}
|
||||
scanner->open(vid, pid);
|
||||
|
||||
|
||||
if (scanner->get_ErrorCode() == SLEEPING) {
|
||||
if (hMutex) {
|
||||
ReleaseMutex(hMutex);
|
||||
CloseHandle(hMutex);
|
||||
hMutex = NULL;
|
||||
}
|
||||
showmsg("¾¯¸æ", msgs[(UsbSupported)81]);
|
||||
return seqError();
|
||||
}
|
||||
if (!scanner->IsConnected()) {
|
||||
//ShellExecute(NULL, TEXT("open"), GetHidedlgPath(), CString("201"), NULL, SW_HIDE);
|
||||
showmsg("警告", msgs[(UsbSupported)201]);
|
||||
|
@ -1082,7 +1108,7 @@ Result HuagaoDs::identityOpenDs(const Identity&) {
|
|||
m_caps[CapType::IXResolution] = [this](Msg msg, Capability& data) {
|
||||
switch (msg) {
|
||||
case Msg::Get:
|
||||
data = Capability::createRange<CapType::IXResolution>(Fix32(100.0f), Fix32(300.0f), Fix32(1.0f), Fix32(m_scanparam->resolution_dst), Fix32(200.0));
|
||||
data = Capability::createRange<CapType::IXResolution>(Fix32(100.0f), Fix32(600.0f), Fix32(1.0f), Fix32(m_scanparam->resolution_dst), Fix32(200.0));
|
||||
return success();
|
||||
case Msg::GetCurrent:
|
||||
data = Capability::createOneValue<CapType::IXResolution>(Fix32(m_scanparam->resolution_dst));
|
||||
|
@ -1094,7 +1120,7 @@ Result HuagaoDs::identityOpenDs(const Identity&) {
|
|||
return success();
|
||||
case Msg::Set: {
|
||||
auto mech = data.currentItem<CapType::IXResolution>();
|
||||
if (mech < 100.0f || mech > 300.0f)
|
||||
if (mech < 100.0f || mech > 600.0f)
|
||||
return badValue();
|
||||
m_scanparam->resolution_dst = (float)mech;
|
||||
return success();
|
||||
|
@ -2359,13 +2385,22 @@ Twpp::Result HuagaoDs::showTwainUI(Twpp::UserInterface& ui, bool bUiOnly)
|
|||
//!< show ui to scan button push
|
||||
auto scanFunction = [this](const GScanCap& caps) {
|
||||
if (!scanner->IsConnected())
|
||||
{
|
||||
scanner->open(vid, pid);
|
||||
if (!scanner->IsConnected())
|
||||
return checkDeviceOnline();
|
||||
}
|
||||
#ifndef G200
|
||||
while (!scanner->Get_Scanner_PaperOn())
|
||||
{
|
||||
if (scanner->get_ErrorCode() == SLEEPING) {
|
||||
showmsg("¾¯¸æ", msgs[(UsbSupported)81]);
|
||||
scanner->Set_ErrorCode(0);
|
||||
return seqError();
|
||||
}
|
||||
if (MessageBox(NULL, L"检测到无纸,请添加纸张", L"提示", MB_YESNO | MB_SYSTEMMODAL) == IDNO) {
|
||||
m_pendingXfers = 0;
|
||||
return;
|
||||
return seqError();
|
||||
}
|
||||
}
|
||||
#endif // !G200
|
||||
|
@ -2375,7 +2410,7 @@ Twpp::Result HuagaoDs::showTwainUI(Twpp::UserInterface& ui, bool bUiOnly)
|
|||
if (!scanner->IsConnected())
|
||||
{
|
||||
MessageBox(NULL, L"USB连接异常,请连接USB后重新打开扫描软件", L"提示", MB_OK | MB_SYSTEMMODAL);
|
||||
return;
|
||||
return seqError();
|
||||
}
|
||||
|
||||
if (startScan() == success()) {
|
||||
|
@ -2532,7 +2567,9 @@ Twpp::Result HuagaoDs::startScan()
|
|||
//FileTools::write_log("D:\\1.txt",info);
|
||||
FileTools::writelog(log_INFO, "start scan");
|
||||
#ifndef G200
|
||||
scanner->notifyscan();
|
||||
if(scanner->notifyscan()<1)
|
||||
return seqError();
|
||||
|
||||
scanner->clear_hwerror();
|
||||
|
||||
#endif //
|
||||
|
|
Binary file not shown.
Binary file not shown.
BIN
huagao/stdafx.h
BIN
huagao/stdafx.h
Binary file not shown.
Loading…
Reference in New Issue