diff --git a/zynq_7010_code/MultiFrameCapture.cpp b/zynq_7010_code/MultiFrameCapture.cpp index 88cce70..6b22c1d 100644 --- a/zynq_7010_code/MultiFrameCapture.cpp +++ b/zynq_7010_code/MultiFrameCapture.cpp @@ -214,17 +214,18 @@ void MultiFrameCapture::UpdateScanParam(HG_ScanConfiguration config) { video->HtCamSetSpTime2(fpgaparam.Sp * 3); } - video->HtCamSetStSp(fpgaparam.MaxBright); - + video->HtCamSetStSp(172);//172 是根据实际测试出来的图像质量得来 + configFPGAParam(config_color, config_dpi); { int val = config.params.dpi == 3 ? 600 :(config.params.dpi == 2?300:200); - printf("val = %d\r\n",val); + //除摩尔纹模式 if(config.params.slow_moire && config.params.dpi != 3) { - int sp = fpgaparam.Sp - 538; + int sp = fpgaparam.Sp + 232; //258 摩尔纹是400dpi 4677的高度 + val = 400; video->HtCamSetSpTime(sp,49); // 2344 灰色 //2023-8-10 最新2650 if (color_mode_) @@ -1047,7 +1048,7 @@ void MultiFrameCapture::openDevice(int dpi, int mode) video->HtCamSetSpTime2(fpgaparam.Sp * 3); } - video->HtCamSetStSp(fpgaparam.MaxBright); + video->HtCamSetStSp(172); configFPGAParam(config_color, config_dpi); printf(" -----------------------resolution = %d config_color = %d config_dpi:%d------------------\r\n",resolution_, config_color,config_dpi); diff --git a/zynq_7010_code/Scanner.cpp b/zynq_7010_code/Scanner.cpp index 141c7f6..d2fb2b4 100644 --- a/zynq_7010_code/Scanner.cpp +++ b/zynq_7010_code/Scanner.cpp @@ -97,24 +97,22 @@ Scanner::~Scanner() } -void Scanner::updateSpeedMode(int speed) +void Scanner::updateSpeedMode() { m_scaninfo = GetScanInfoFromJson(); - if(m_scaninfo.SpeedMode==0) - m_scaninfo.SpeedMode=3; + int sp = m_scaninfo.SpeedMode; + if(sp == 0) + sp = 3; unsigned int t_dpi = m_config.params.dpi; - if(typeid(*capturer)==typeid(MultiFrameCapture)) - if(m_config.params.pageSize == 17 || m_config.params.pageSize == 19 ) //长文稿采用600dpi模式扫描 - t_dpi = 3; - if (m_config.params.slow_moire) //摩尔纹使用300dpi进行采集 - { - t_dpi = 2; - } - - motorCuozhi.speedChange(m_scaninfo.SpeedMode, t_dpi,m_config.params.isColor); - motorZouzhi.speedChange(m_scaninfo.SpeedMode, t_dpi,m_config.params.isColor); + if(m_config.params.pageSize == 17 || m_config.params.pageSize == 19 ) //长文稿采用600dpi模式扫描 + t_dpi = 3; + if (m_config.params.slow_moire) //摩尔纹特殊处理 + t_dpi = sp = 16; + + motorCuozhi.speedChange(sp, t_dpi,m_config.params.isColor); + motorZouzhi.speedChange(sp, t_dpi,m_config.params.isColor); } void Scanner::startScan() @@ -123,7 +121,7 @@ void Scanner::startScan() threadRunScan.join(); stop_countdown(); this_thread::sleep_for(std::chrono::milliseconds(200)); - updateSpeedMode(4); + updateSpeedMode(); // //开始进行扫描 threadRunScan = std::thread(&Scanner::runScan, this); } @@ -261,13 +259,13 @@ void Scanner::runScan() int max = 7; if(m_config.params.pageSize >= (int)PaperSize::G400_LONGLETTER) - max = m_scaninfo.SpeedMode>3?10:25; + max = m_scaninfo.SpeedMode > 3 ? 10 : 25; else - max = m_scaninfo.SpeedMode>3?5:8; + max = m_scaninfo.SpeedMode > 3 ? 5 : 8; max = m_config.params.dpi > 2 ? 30 : max * m_config.params.dpi; - if(m_config.params.pageSize == 17 || m_config.params.pageSize == 19) + if(m_config.params.pageSize == 17 || m_config.params.pageSize == 19 || m_config.params.slow_moire) { max = 200; } @@ -330,7 +328,7 @@ void Scanner::runScan() } if(b_autosize) { - int de = (5 - m_scaninfo.SpeedMode)*10*m_config.params.dpi; + int de = (5 - m_scaninfo.SpeedMode) * 10 * m_config.params.dpi; if (de == 3) { de = 0; diff --git a/zynq_7010_code/Scanner.h b/zynq_7010_code/Scanner.h index f3b4b01..e33e9c4 100644 --- a/zynq_7010_code/Scanner.h +++ b/zynq_7010_code/Scanner.h @@ -179,7 +179,7 @@ public: } } printf(" UpdateScanInfo speed mode = %d \n",m_scaninfo.SpeedMode); - updateSpeedMode(m_scaninfo.SpeedMode); + updateSpeedMode(); } CaptureParams GetCaptureParams() { @@ -192,7 +192,7 @@ public: { return m_scaninfo; } - void updateSpeedMode(int speed); + void updateSpeedMode(); void ResetCorrectflags() { m_correctting = false; } void StopScan(int Evt) { diff --git a/zynq_7010_code/UsbScanner.cpp b/zynq_7010_code/UsbScanner.cpp index f95d046..c76b46a 100644 --- a/zynq_7010_code/UsbScanner.cpp +++ b/zynq_7010_code/UsbScanner.cpp @@ -404,19 +404,18 @@ void UsbScanner::UpdateScanInfo(int type, void *data) return; case USBCommand::SET_SPEED_MODE: if (*(unsigned int *)(data) > SPEED_MODE_MAX) - { info.SpeedMode = 3; - } else - { info.SpeedMode = *(unsigned int *)(data); - } + LOG("UsbScanner SET SpeedMode == %d------ \n", info.SpeedMode); + iter = mapFradme_SP.find(info.SpeedMode); if (iter != mapFradme_SP.end()) info.FWVersion = iter->second.FWVERSIO; + SaveScaninfo(info); - m_hgScanner->updateSpeedMode(info.SpeedMode); + m_hgScanner->updateSpeedMode(); LOG("UsbScanner SET SpeedMode == %d-------info.FWVersion = %s \n", info.SpeedMode, info.FWVersion.c_str()); break; default: @@ -501,7 +500,7 @@ void UsbScanner::mount_usb_device() mkdir functions/ffs.camtp\n \ mkdir strings/0x409\n \ mkdir configs/c.1/strings/0x409\n \ - echo 0x0300 > idProduct\n \ + echo 0x0306 > idProduct\n \ echo 0x3072 > idVendor\n \ echo \"01234567AABBCCDDEE\" > strings/0x409/serialnumber\n \ echo \"Holdtecs Technologies\" > strings/0x409/manufacturer\n \