diff --git a/huagao/CBasicPage.cpp b/huagao/CBasicPage.cpp index ea708769..1ddcd3ef 100644 --- a/huagao/CBasicPage.cpp +++ b/huagao/CBasicPage.cpp @@ -110,7 +110,7 @@ CBasicPage::CBasicPage(std::function dataChange, CWnd* pParent /*=nullpt , AreaNum(8) , DevnMax(200) , m_bswitchfrontback(FALSE) - ,discardblank_percent(10) + , discardblank_percent(10) { } @@ -123,6 +123,7 @@ void CBasicPage::DoDataExchange(CDataExchange* pDX) { CTabPageSSL::DoDataExchange(pDX); DDX_Check(pDX, IDC_CKBSWITCHFRONTBACK, m_bswitchfrontback); + DDX_Check(pDX, IDC_CKBSIZEDETECT, m_enableSizeCheck); } BOOL CBasicPage::OnInitDialog() @@ -260,4 +261,18 @@ void CBasicPage::updateCmbDuplex(BOOL insert) m_cmBoxDuplex->InsertString(4, TEXT("对折")); } } +#ifdef G200 +#ifndef ISG100 + if (tmp_paperindex == 16 || tmp_paperindex == 17) + { + (((CButton*)GetDlgItem(IDC_CKBSIZEDETECT)))->SetCheck(false); + GetDlgItem(IDC_CKBSIZEDETECT)->EnableWindow(false); + } + else + { + GetDlgItem(IDC_CKBSIZEDETECT)->EnableWindow(true); + } +#endif +#endif // G200 + } diff --git a/huagao/CBasicPage.h b/huagao/CBasicPage.h index dd12329e..331ef2d4 100644 --- a/huagao/CBasicPage.h +++ b/huagao/CBasicPage.h @@ -29,7 +29,7 @@ public: int DevnMax; BOOL m_bswitchfrontback; int discardblank_percent; - + BOOL m_enableSizeCheck; // 对话框数据 #ifdef AFX_DESIGN_TIME enum { IDD = IDD_PAGEBASIC }; diff --git a/huagao/CTwainUI.cpp b/huagao/CTwainUI.cpp index fb5010ec..d04d1e5f 100644 --- a/huagao/CTwainUI.cpp +++ b/huagao/CTwainUI.cpp @@ -157,6 +157,7 @@ void CTwainUI::UpdateUI() m_pageBasic->m_cmBoxResultion->SetCurSel(get_map_key_by_value(resolutions, settings->resolution_dst));//!< 分辨率 m_pageBasic->m_cmBoxDuplex->SetCurSel(getCmbDuplexIndex());//!< 单双面 m_pageBasic->m_cmBoxSS->SetCurSel(getPaparSizeIndex(settings->papertype, settings->paperAlign)); //!< 纸张类型 + m_pageBasic->m_enableSizeCheck = settings->en_sizecheck==1?TRUE:FALSE;//!< 尺寸检测 m_pageBasic->m_bswitchfrontback = settings->is_switchfrontback ? TRUE : FALSE; //!< 交换正反面 m_pageBasic->UpdateData(FALSE); if(getCmbDuplexIndex()==2|| getCmbDuplexIndex()==3) @@ -380,6 +381,7 @@ void CTwainUI::UpDateScanParam(PCONFIGPARAMS configItem, bool updateDs) //!< Page Basic m_pageBasic->UpdateData(); configItem->Pixtype = m_pageBasic->m_cmBoxColorMode->GetCurSel();//!< 颜色模式 index + configItem->EnSizeCheck = m_pageBasic->m_enableSizeCheck; configItem->Resolution = m_pageBasic->m_cmBoxResultion->GetCurSel();//!< 分辨率 index configItem->Duplex = m_pageBasic->m_cmBoxDuplex->GetCurSel();//!< 单双面 configItem->PaperSize = m_pageBasic->m_cmBoxSS->GetCurSel();//!< 纸张类型 index @@ -440,6 +442,7 @@ void CTwainUI::UpDateScanParam(PCONFIGPARAMS configItem, bool updateDs) settings->papertype = paper.Paper; settings->paperAlign = (PaperAlign)paper.Orentate; + settings->en_sizecheck = configItem->EnSizeCheck; settings->resolution_dst = Resolutions[configItem->Resolution]; settings->resolution_native = 200.0f; settings->is_switchfrontback = configItem->EnSwitchFrontBack ? 1 : 0; diff --git a/huagao/Device/GScan.h b/huagao/Device/GScan.h index 00ee8302..eae3c2f8 100644 --- a/huagao/Device/GScan.h +++ b/huagao/Device/GScan.h @@ -62,12 +62,20 @@ typedef enum tagUsbSupported { UPDATE_SCAN_PARAMETER = 72, // PCæ PC_SCAN_BUSY_or_ERROR = 73, + //ߡ DOG_EAR=74, + // + SIZE_ERROR=75, //USB δ USB_DISCONNECTED = 200, //ûֹͣ - USER_STOP = 201 + USER_STOP = 201, + //ԶУ + AUTO_FLAT_FINISHED = 202, + //usb + USB_CONNECTED, + HAVE_PAPER } UsbSupported, * PUsbSupported; diff --git a/huagao/Device/GScanO200.cpp b/huagao/Device/GScanO200.cpp index 2a0faff2..ca0f0f20 100644 --- a/huagao/Device/GScanO200.cpp +++ b/huagao/Device/GScanO200.cpp @@ -645,6 +645,7 @@ void GScanO200::usbmain() case PAPER_SKEW: case HARDWARE_ERROR: case PC_SCAN_BUSY_or_ERROR: + case SIZE_ERROR: #ifdef G200 Set_ErrorCode(usbcb.u32_Data); m_pImages->setscanflags(false); diff --git a/huagao/Device/IConfig.h b/huagao/Device/IConfig.h index b398d654..d7564396 100644 --- a/huagao/Device/IConfig.h +++ b/huagao/Device/IConfig.h @@ -4,12 +4,34 @@ #include #include "PublicFunc.h" #include "PaperSize.h" +#define FOR_LANXUM static std::map SupPaperTyps = { #ifdef G200 +#ifdef FOR_LANXUM {{TwSS::A3,PaperAlign::Rot0},0}, {{TwSS::A4,PaperAlign::Rot0},1}, {{TwSS::A4,PaperAlign::Rot270},2}, + {{TwSS::A5,PaperAlign::Rot0 },3}, + {{TwSS::A5,PaperAlign::Rot270},4}, + {{TwSS::A6,PaperAlign::Rot0},5}, + {{TwSS::A6,PaperAlign::Rot270},6}, + {{TwSS::B4,PaperAlign::Rot0},7}, + {{TwSS::B5,PaperAlign::Rot0},8}, + {{TwSS::B5,PaperAlign::Rot270},9}, + {{TwSS::B6,PaperAlign::Rot0},10}, + {{TwSS::B6,PaperAlign::Rot270},11}, + {{TwSS::USLetter,PaperAlign::Rot0},14}, + {{TwSS::USLetter,PaperAlign::Rot270},15}, + {{TwSS::USLedger,PaperAlign::Rot0},12}, + {{TwSS::USLegal,PaperAlign::Rot0},13}, + {{TwSS::None,PaperAlign::Rot0},0}, + {{TwSS::USStatement,PaperAlign::Rot0},16}, + {{TwSS::MaxSize,PaperAlign::Rot0},16} +#else + {{TwSS::A3,PaperAlign::Rot0},0}, + {{TwSS::A4,PaperAlign::Rot0},1}, + {{TwSS::A4,PaperAlign::Rot270},2}, {{TwSS::A5,PaperAlign::Rot0 },2}, {{TwSS::A5,PaperAlign::Rot270},2}, {{TwSS::A6,PaperAlign::Rot0},2}, @@ -26,6 +48,7 @@ static std::map SupPaperTyps = { {{TwSS::None,PaperAlign::Rot0},0}, {{TwSS::USStatement,PaperAlign::Rot0},16}, {{TwSS::MaxSize,PaperAlign::Rot0},16} +#endif #else {{TwSS::A3,PaperAlign::Rot0},G400_A3}, {{TwSS::A4,PaperAlign::Rot0},G400_A4}, @@ -87,7 +110,9 @@ typedef union Config_Param { unsigned int screw_detect_level : 3;//ʮλ unsigned int unused_one : 6; unsigned int pc_correct : 1; - unsigned int unused_two : 11; + unsigned int enable_sizecheck : 1; + unsigned int enabledsp_cache : 1; + unsigned int sizeerror_errorratio : 9; }; } ConfigParam; diff --git a/huagao/Device/JsonConfig.cpp b/huagao/Device/JsonConfig.cpp deleted file mode 100644 index 2bbb34a9..00000000 --- a/huagao/Device/JsonConfig.cpp +++ /dev/null @@ -1,522 +0,0 @@ -#include "StdAfx.h" -#include "JsonConfig.h" -#include -#include -#include -#include -#include "CJsonObject.hpp" - -JsonConfig::JsonConfig(void) -{ -} - - -JsonConfig::~JsonConfig(void) -{ -} - -/************************************************************************/ -/* ò */ -/************************************************************************/ -void JsonConfig::WriteToJson(PCONFIGPARAMS pConfigItem,const std::string fileNames,bool isConfigItem) -{ - - neb::CJsonObject outJson; - - outJson.AddEmptySubObject("Config");//header - outJson["Config"].Add(PIXTYPE,(int)(pConfigItem->Pixtype)); - outJson["Config"].Add(PAPARSIZE,(int)(pConfigItem->PaperSize)); - outJson["Config"].Add(AUTOCROP,(bool)(pConfigItem->EnAutoCrop),false); - outJson["Config"].Add(RESOLUTION,(int)(pConfigItem->Resolution)); - outJson["Config"].Add(DUPLEX,(int)(pConfigItem->Duplex)); - outJson["Config"].Add(DISCARBLANK,(bool)(pConfigItem->EnDiscardBlank),false); - outJson["Config"].Add(DISCARBLANKVINCE,(bool)(pConfigItem->EnDiscardBlankVince),false); - outJson["Config"].Add(DB_AREANUM, (int)(pConfigItem->DBlank_AreaNum)); - outJson["Config"].Add(DB_DEVNMAX, (int)(pConfigItem->DBlank_DevnMax)); - outJson["Config"].Add(FLOD, (bool)(pConfigItem->EnFlod),false); - outJson["Config"].Add(SWITCHFRONTBACK, (bool)(pConfigItem->EnSwitchFrontBack), false); - - outJson["Config"].Add(BRIGHTNESS,(float)(pConfigItem->Brightness)); - outJson["Config"].Add(AUTOCONTRAST,(bool)(pConfigItem->EnAutoContrast),false); - outJson["Config"].Add(CONTRAST,(float)(pConfigItem->Contrast)); - outJson["Config"].Add(GAMMA_,(int)(pConfigItem->Gamma)); - - outJson["Config"].Add(FILTERTYPE,(int)(pConfigItem->Filter)); - outJson["Config"].Add(SHARPENTYPE, (int)(pConfigItem->Sharpen)); - outJson["Config"].Add(AUTODESCREW,(bool)(pConfigItem->EnAutoDescrew),false); - outJson["Config"].Add(FILLBLACK,(bool)(pConfigItem->EnFillBlack),false); - outJson["Config"].Add(MULTIOUTPUT,(bool)(pConfigItem->EnMultiOutPutR),false); - outJson["Config"].Add(OUTHOLE,(bool)(pConfigItem->EnOutHole),false); - outJson["Config"].Add(OUTHOLERATIO,(int)(pConfigItem->OutHoleRatio)); - - outJson["Config"].Add(ULTRADETECT,(bool)(pConfigItem->EnUltrasonicDetect),false); - outJson["Config"].Add(BINDINGDETECT,(bool)(pConfigItem->EnBindingDetect),false); - outJson["Config"].Add(SCANCOUNT,(int)(pConfigItem->ScanCount)); - outJson["Config"].Add(DOCORIENTATION,(int)(pConfigItem->Orentation)); - outJson["Config"].Add(BACKROTATE180,(bool)(pConfigItem->EnBackRotate180),false); - outJson["Config"].Add(SCREWDETECT,(bool)(pConfigItem->EnScrewDetect),false); - outJson["Config"].Add(SCREWLEVEL,(int)(pConfigItem->ScrewDetectLevel)); - if (isConfigItem) - { - outJson["Config"].Add(ITEMCAPTION,(string)(pConfigItem->Caption)); - outJson["Config"].Add(SAVEPATH,(string)(pConfigItem->SavePath)); - } - std::ofstream os; - os.open(fileNames.c_str()); - os< cfgArray,const std::string filename) -{ - //Json::StyledWriter sw; - neb::CJsonObject root; - root.AddEmptySubObject("Config"); - root["Config"].AddEmptySubArray(PIXTYPE); - root["Config"].AddEmptySubArray(PAPARSIZE); - root["Config"].AddEmptySubArray(AUTOCROP); - root["Config"].AddEmptySubArray(RESOLUTION); - root["Config"].AddEmptySubArray(DUPLEX); - root["Config"].AddEmptySubArray(DISCARBLANK); - root["Config"].AddEmptySubArray(DISCARBLANKVINCE); - root["Config"].AddEmptySubArray(DB_AREANUM); - root["Config"].AddEmptySubArray(DB_DEVNMAX); - root["Config"].AddEmptySubArray(FLOD); - root["Config"].AddEmptySubArray(SWITCHFRONTBACK); - - root["Config"].AddEmptySubArray(BRIGHTNESS); - root["Config"].AddEmptySubArray(AUTOCONTRAST); - root["Config"].AddEmptySubArray(CONTRAST); - root["Config"].AddEmptySubArray(GAMMA_); - - root["Config"].AddEmptySubArray(FILTERTYPE); - root["Config"].AddEmptySubArray(SHARPENTYPE); - root["Config"].AddEmptySubArray(AUTODESCREW); - root["Config"].AddEmptySubArray(FILLBLACK); - root["Config"].AddEmptySubArray(MULTIOUTPUT); - root["Config"].AddEmptySubArray(OUTHOLE); - root["Config"].AddEmptySubArray(OUTHOLERATIO); - - root["Config"].AddEmptySubArray(ULTRADETECT); - root["Config"].AddEmptySubArray(BINDINGDETECT); - root["Config"].AddEmptySubArray(SCANCOUNT); - root["Config"].AddEmptySubArray(DOCORIENTATION); - root["Config"].AddEmptySubArray(BACKROTATE180); - root["Config"].AddEmptySubArray(SCREWDETECT); - root["Config"].AddEmptySubArray(SCREWLEVEL); - - root["Config"].AddEmptySubArray(ITEMCAPTION); - root["Config"].AddEmptySubArray(SAVEPATH); - for (int i = 0; i < cfgArray.size(); i++) - { - root["Config"][PIXTYPE].Add(cfgArray[i].Pixtype); - root["Config"][PAPARSIZE].Add(cfgArray[i].PaperSize); - root["Config"][AUTOCROP].Add(i, cfgArray[i].EnAutoCrop); - root["Config"][RESOLUTION].Add(cfgArray[i].Resolution); - root["Config"][DUPLEX].Add(cfgArray[i].Duplex); - root["Config"][DISCARBLANK].Add(i, cfgArray[i].EnDiscardBlank); - root["Config"][DISCARBLANKVINCE].Add(i, cfgArray[i].EnDiscardBlankVince); - root["Config"][DB_AREANUM].Add(cfgArray[i].DBlank_AreaNum); - root["Config"][DB_DEVNMAX].Add(cfgArray[i].DBlank_DevnMax); - root["Config"][FLOD].Add(i,cfgArray[i].EnFlod); - root["Config"][SWITCHFRONTBACK].Add(i, cfgArray[i].EnSwitchFrontBack); - - root["Config"][BRIGHTNESS].Add(cfgArray[i].Brightness); - root["Config"][AUTOCONTRAST].Add(i,cfgArray[i].EnAutoContrast); - root["Config"][CONTRAST].Add(cfgArray[i].Contrast); - root["Config"][GAMMA_].Add(cfgArray[i].Gamma); - - root["Config"][FILTERTYPE].Add(cfgArray[i].Filter); - root["Config"][SHARPENTYPE].Add(cfgArray[i].Sharpen); - root["Config"][AUTODESCREW].Add(i,cfgArray[i].EnAutoDescrew); - root["Config"][FILLBLACK].Add(i,cfgArray[i].EnFillBlack); - root["Config"][MULTIOUTPUT].Add(i,cfgArray[i].EnMultiOutPutR); - root["Config"][OUTHOLE].Add(i,cfgArray[i].EnOutHole); - root["Config"][OUTHOLERATIO].Add(cfgArray[i].OutHoleRatio); - - root["Config"][ULTRADETECT].Add(i,cfgArray[i].EnUltrasonicDetect); - root["Config"][BINDINGDETECT].Add(i,cfgArray[i].EnBindingDetect); - root["Config"][SCANCOUNT].Add(cfgArray[i].ScanCount); - root["Config"][DOCORIENTATION].Add(cfgArray[i].Orentation); - root["Config"][BACKROTATE180].Add(i,cfgArray[i].EnBackRotate180); - root["Config"][SCREWDETECT].Add(i,cfgArray[i].EnScrewDetect); - root["Config"][SCREWLEVEL].Add(cfgArray[i].ScrewDetectLevel); - - if (cfgArray[i].Caption.c_str()!=NULL) - { - root["Config"][ITEMCAPTION].Add(cfgArray[i].Caption); - } - if (cfgArray[i].SavePath.c_str()!=NULL) - { - root["Config"][SAVEPATH].Add(cfgArray[i].SavePath); - } - } - std::ofstream os; - os.open(filename.c_str()); - os< vc; - vc.push_back(GetDefaultConfigParams()); - WriteJsonArrayToFile(vc, dstpath); - return vc[0]; - } - _tcscat(szIniFile, TWAIN_JSON_NAME); - std::string s_default = TCHAR2STRING(szIniFile); - - vector vc; - vc=ReadJsonArrayFromFile(s_default.c_str()); - if (vc.size()!=0) - { - return vc[0]; - } - return GetDefaultConfigParams(); -} - -bool JsonConfig::DeleteJsonFile(std::string path) -{ - return (remove(path.c_str())); -} - -std::vector JsonConfig::ReadJsonArrayFromFile(const std::string filename) -{ - std::vector re; - FILE* file=fopen(filename.c_str(),"rb"); - if (!file) - { - return re; - } - fseek(file,0,SEEK_END); - long size=ftell(file); - fseek(file,0,SEEK_SET); - std::string text; - char* buffer=new char[size+1]; - buffer[size]=0; - if (!fread(buffer,1,size,file)==(unsigned long)size) - { - return re; - } - text=buffer; - fclose(file); - delete []buffer; - re=parseJsonFromString(text); - return re; -} - -CONFIGPARAMS JsonConfig::GetDefaultConfigParams() -{ - CONFIGPARAMS params; - params.Pixtype=1;//Ҷ - params.PaperSize=0;//A3 - params.EnAutoCrop=FALSE;//Զ - params.Resolution=2;//200dpi - params.Duplex=1;//˫ - params.EnDiscardBlank=FALSE;//Զհҳ - params.EnDiscardBlankVince=FALSE; - params.DBlank_AreaNum = 8; - params.DBlank_DevnMax = 200; - params.EnFlod = FALSE; - params.EnSwitchFrontBack = FALSE; - - params.Brightness=0.0f;// - params.EnAutoContrast=FALSE;//ԶԱȶ - params.Contrast=0;//Աȶ - params.Gamma=1.0f;//٤ֵ - - params.Filter=0;//ɫ - params.Sharpen = 0;// - params.EnFillBlack=FALSE;//ڿ - params.EnAutoDescrew=TRUE;//Զƫ - params.EnMultiOutPutR=FALSE;// - params.EnOutHole=FALSE;//ȥ׶ - params.OutHoleRatio=10;//Ĭֵ0.10 - - params.EnUltrasonicDetect=TRUE;//⿪ - params.EnBindingDetect=FALSE;//װ⿪ - params.ScanCount=-1;//ɨ - params.Orentation=0;//ת0 - params.EnBackRotate180=FALSE;//ת180 ת - params.EnScrewDetect=TRUE;//б - params.ScrewDetectLevel=3;//бȼ 3 - return params; -} - -std::vector JsonConfig::parseJsonFromString(const std::string str) -{ - - neb::CJsonObject root(str); - vector vcConfig; - int size=0; - neb::CJsonObject itmPaparSize; - root["Config"].Get(PAPARSIZE,itmPaparSize); - size=itmPaparSize.GetArraySize(); - if (size>0) - { - neb::CJsonObject itmPixType; - root["Config"].Get(PIXTYPE,itmPixType); - neb::CJsonObject itmAutoCrop; - root["Config"].Get(AUTOCROP,itmAutoCrop); - neb::CJsonObject itmRes; - root["Config"].Get(RESOLUTION,itmRes); - neb::CJsonObject itmDulpex; - root["Config"].Get(DUPLEX,itmDulpex); - neb::CJsonObject itmDiscardBlk; - root["Config"].Get(DISCARBLANK,itmDiscardBlk); - neb::CJsonObject itmDiscardBlkVince; - root["Config"].Get(DISCARBLANKVINCE,itmDiscardBlkVince); - neb::CJsonObject itmDBAreaNum; - root["Config"].Get(DB_AREANUM, itmDBAreaNum); - neb::CJsonObject itmDBDevnMax; - root["Config"].Get(DB_DEVNMAX, itmDBDevnMax); - neb::CJsonObject itmEnFlod; - root["Config"].Get(FLOD, itmEnFlod); - neb::CJsonObject itmEnSwitchFrontBack; - root["Config"].Get(SWITCHFRONTBACK, itmEnSwitchFrontBack); - - neb::CJsonObject itmBrtnes; - root["Config"].Get(BRIGHTNESS,itmBrtnes); - neb::CJsonObject itmAutoCrnt; - root["Config"].Get(AUTOCONTRAST,itmAutoCrnt); - neb::CJsonObject itmContrast; - root["Config"].Get(CONTRAST,itmContrast); - neb::CJsonObject itmGamma; - root["Config"].Get(GAMMA_,itmGamma); - - neb::CJsonObject itmFilter; - root["Config"].Get(FILTERTYPE,itmFilter); - neb::CJsonObject itmSharpen; - root["Config"].Get(SHARPENTYPE, itmSharpen); - neb::CJsonObject itmAutoDescrew; - root["Config"].Get(AUTODESCREW,itmAutoDescrew); - neb::CJsonObject itmFillBlack; - root["Config"].Get(FILLBLACK,itmFillBlack); - neb::CJsonObject itmMultiOutput; - root["Config"].Get(MULTIOUTPUT,itmMultiOutput); - neb::CJsonObject itmOutHole; - root["Config"].Get(OUTHOLE,itmOutHole); - neb::CJsonObject itmOutHoleRatio; - root["Config"].Get(OUTHOLERATIO,itmOutHoleRatio); - - neb::CJsonObject itmUltDetect; - root["Config"].Get(ULTRADETECT,itmUltDetect); - neb::CJsonObject itmBingdingDetect; - root["Config"].Get(BINDINGDETECT,itmBingdingDetect); - neb::CJsonObject itmScanCount; - root["Config"].Get(SCANCOUNT,itmScanCount); - neb::CJsonObject itmDocOrientation; - root["Config"].Get(DOCORIENTATION,itmDocOrientation); - neb::CJsonObject itmBackRotate; - root["Config"].Get(BACKROTATE180,itmBackRotate); - neb::CJsonObject itmScrewDetct; - root["Config"].Get(SCREWDETECT,itmScrewDetct); - neb::CJsonObject itmScrewLevel; - root["Config"].Get(SCREWLEVEL,itmScrewLevel); - - neb::CJsonObject itmCaption; - if (!root["Config"][ITEMCAPTION].IsEmpty()) - { - root["Config"].Get(ITEMCAPTION,itmCaption); - } - neb::CJsonObject itmSavePtah; - if (!root["Config"][SAVEPATH].IsEmpty()) - { - root["Config"].Get(SAVEPATH,itmSavePtah); - } - for (int i=0;i - -using namespace std; - -class JsonConfig -{ -public: - JsonConfig(void); - ~JsonConfig(void); -public: - void WriteToJson(PCONFIGPARAMS pConfigItem,const std::string fileName,bool isConfigItem=true); - //PCONFIGPARAMS ReadJsonFromFile(const char* fileNames); - void WriteJsonData(const std::string fileName); - void WriteJsonArrayToFile(std::vector cfgArray,const std::string filename); - CONFIGPARAMS ReadDefaultConfig(); - bool DeleteJsonFile(std::string path); - std::vector ReadJsonArrayFromFile(const std::string filename); - CONFIGPARAMS GetDefaultConfigParams(); -private: - std::vector parseJsonFromString(const std::string str) ; -}; - diff --git a/huagao/Device/PublicFunc.h b/huagao/Device/PublicFunc.h index 4b2eb14d..90dd770f 100644 --- a/huagao/Device/PublicFunc.h +++ b/huagao/Device/PublicFunc.h @@ -22,6 +22,7 @@ using namespace std; //= 240.0f?1:0; } bool hgConfigClass::ContainspaperTypesKey(PaperStatus key) diff --git a/huagao/GscanJsonConfig.cpp b/huagao/GscanJsonConfig.cpp index 21c2bd3c..9f564494 100644 --- a/huagao/GscanJsonConfig.cpp +++ b/huagao/GscanJsonConfig.cpp @@ -22,6 +22,8 @@ GScanCap GscanJsonConfig::GetDefaultGscancapValue() gcap.pixtype = 2;//Ĭϲɫ gcap.paperAlign = PaperAlign::Rot0; gcap.papertype = 0;//TwSS::NONE + gcap.en_sizecheck = FALSE; + gcap.en_sizecheck = FALSE; gcap.is_autocrop = TRUE;//ĬԶ gcap.is_duplex = TRUE; gcap.is_autodiscradblank_normal = FALSE; @@ -80,6 +82,7 @@ void GscanJsonConfig::SaveGscanCapConfig(const GScanCap & gcap, const std::strin outJson["Config"].Add(PIXTYPE, (int)gcap.pixtype); outJson["Config"].Add(PAPARSIZE, (int)(gcap.papertype)); outJson["Config"].Add(PAPERALIGN, (int)(gcap.paperAlign)); + outJson["Config"].Add(ENSIZECHECK, (bool)(gcap.en_sizecheck), false); outJson["Config"].Add(AUTOCROP, (bool)(gcap.is_autocrop), false); outJson["Config"].Add(RESOLUTION, (int)(gcap.resolution_dst)); outJson["Config"].Add(DUPLEX, (bool)(gcap.is_duplex),false); @@ -136,6 +139,7 @@ void GscanJsonConfig::WriteJsonArrayToFile(std::vector cfgArray, const root["Config"].AddEmptySubArray(PIXTYPE); root["Config"].AddEmptySubArray(PAPARSIZE); root["Config"].AddEmptySubArray(PAPERALIGN); + root["Config"].AddEmptySubArray(ENSIZECHECK); root["Config"].AddEmptySubArray(AUTOCROP); root["Config"].AddEmptySubArray(RESOLUTION); root["Config"].AddEmptySubArray(DUPLEX); @@ -189,6 +193,7 @@ void GscanJsonConfig::WriteJsonArrayToFile(std::vector cfgArray, const root["Config"][PIXTYPE].Add((int)cfgArray[i].pixtype); root["Config"][PAPARSIZE].Add((int)cfgArray[i].papertype); root["Config"][PAPERALIGN].Add((int)cfgArray[i].paperAlign); + root["Config"][ENSIZECHECK].Add(i, (bool)cfgArray[i].en_sizecheck); root["Config"][AUTOCROP].Add(i, (bool)cfgArray[i].is_autocrop); root["Config"][RESOLUTION].Add((int)cfgArray[i].resolution_dst); root["Config"][DUPLEX].Add(i,(bool)cfgArray[i].is_duplex); @@ -323,6 +328,8 @@ std::vector GscanJsonConfig::parseJsonFromString(const std::string str root["Config"].Get(AUTOCROP, itmAutoCrop); neb::CJsonObject itmPaperAlign; root["Config"].Get(PAPERALIGN, itmPaperAlign); + neb::CJsonObject itmSizeCheck; + root["Config"].Get(ENSIZECHECK, itmSizeCheck); neb::CJsonObject itmRes; root["Config"].Get(RESOLUTION, itmRes); neb::CJsonObject itmDulpex; @@ -426,6 +433,8 @@ std::vector GscanJsonConfig::parseJsonFromString(const std::string str cfp.papertype = (byte)i_value; itmPaperAlign.Get(i, i_value); cfp.paperAlign = (PaperAlign)i_value; + itmSizeCheck.Get(i, b_value); + cfp.en_sizecheck = b_value ? 1 : 0; itmAutoCrop.Get(i, b_value); cfp.is_autocrop = b_value ? 1 : 0; itmRes.Get(i, i_value); @@ -533,6 +542,8 @@ std::vector GscanJsonConfig::parseJsonFromString(const std::string str cfp.papertype = index; root["Config"].Get(PAPERALIGN, index); cfp.paperAlign =(PaperAlign) index; + root["Config"].Get(ENSIZECHECK, bvalue); + cfp.en_sizecheck = bvalue ? 1 : 0; root["Config"].Get(AUTOCROP, bvalue); cfp.is_autocrop = bvalue?1:0; root["Config"].Get(RESOLUTION, index); diff --git a/huagao/Scan2411.jpg b/huagao/Scan2411.jpg deleted file mode 100644 index 690eecc0..00000000 Binary files a/huagao/Scan2411.jpg and /dev/null differ diff --git a/huagao/huagaods.cpp b/huagao/huagaods.cpp index aeac6c77..fa38706e 100644 --- a/huagao/huagaods.cpp +++ b/huagao/huagaods.cpp @@ -49,6 +49,7 @@ enum class CapTypeEx : unsigned short { TwEx_CroporDesaskewThreshold=0x8100, TwEx_IDetachNoise = 0x8101, TwEx_IDetachNoiseValue = 0x8102, + TwEx_SizeDetect }; using namespace Twpp; @@ -909,8 +910,11 @@ Result HuagaoDs::identityOpenDs(const Identity&) { } if (contains) { m_scanparam->papertype = (byte)paper; - if (paper == (byte)PaperSize::None|| paper == (byte)PaperSize::UsStatement) + if (paper == (byte)PaperSize::None || paper == (byte)PaperSize::UsStatement) + { m_scanparam->paperAlign = PaperAlign::Rot0; + m_scanparam->en_sizecheck = 0; + } if(paper== (byte)PaperSize::UsStatement) { @@ -923,6 +927,7 @@ Result HuagaoDs::identityOpenDs(const Identity&) { m_autosize = (paper == (byte)PaperSize::None) ? (UInt16)AutoSize::Auto : (UInt16)AutoSize::None; m_autoboarderdetcet = paper == (byte)PaperSize::None; m_scanparam->is_autocrop = paper == (byte)PaperSize::None ? 1 : 0; + } return success(); } @@ -933,6 +938,34 @@ Result HuagaoDs::identityOpenDs(const Identity&) { } }; +#ifdef G200 +#ifndef ISG100 + m_query[(CapType)(CapTypeEx::TwEx_SizeDetect)] = msgSupportGetAllSetReset; + m_caps[(CapType)(CapTypeEx::TwEx_SizeDetect)] = [this](Msg msg, Capability& data)->Result { + switch (msg) { + case Msg::Get: + data = Capability::createEnumeration((CapType)(CapTypeEx::TwEx_SizeDetect), { Bool(),Bool(true) }, Bool(m_scanparam->en_sizecheck), 0); + return success(); + case Msg::Reset: + case Msg::GetDefault: + m_scanparam->en_sizecheck = false; + data = Capability::createOneValue((CapType)(CapTypeEx::TwEx_SizeDetect), Bool(false)); + return success(); + case Msg::GetCurrent: + data = Capability::createOneValue((CapType)(CapTypeEx::TwEx_SizeDetect), m_scanparam->en_sizecheck); + return success(); + case Msg::Set: { + auto mech = data.currentItem(); + m_scanparam->en_sizecheck = mech; + return success(); + } + default: + return capBadOperation(); + } + }; +#endif // !ISG100 +#endif // G200 + m_query[CapType::IOrientation] = msgSupportGetAllSetReset; m_caps[CapType::IOrientation] = [this](Msg msg, Capability& data) -> Result { switch (msg) { diff --git a/huagao/huagaotwds.rc b/huagao/huagaotwds.rc index 0833c2f8..28e55a35 100644 Binary files a/huagao/huagaotwds.rc and b/huagao/huagaotwds.rc differ diff --git a/huagao/resource.h b/huagao/resource.h index 28574377..64a27eec 100644 Binary files a/huagao/resource.h and b/huagao/resource.h differ diff --git a/huagao/stdafx.h b/huagao/stdafx.h index 93eaf021..7877546d 100644 Binary files a/huagao/stdafx.h and b/huagao/stdafx.h differ