调整除摩尔纹模式

This commit is contained in:
modehua 2023-10-21 02:20:07 -07:00
parent f60edbd565
commit 07548a90f3
4 changed files with 29 additions and 31 deletions

View File

@ -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);

View File

@ -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;
}
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(m_scaninfo.SpeedMode, t_dpi,m_config.params.isColor);
motorZouzhi.speedChange(m_scaninfo.SpeedMode, t_dpi,m_config.params.isColor);
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;

View File

@ -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)
{

View File

@ -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 \