From 61f4917aee42c206919d78fada313453fa91bb9e Mon Sep 17 00:00:00 2001 From: lovelyyoung <1002639516@qq.com> Date: Tue, 29 Jun 2021 11:10:22 +0800 Subject: [PATCH] =?UTF-8?q?1.=E7=A7=BB=E9=99=A4=E8=B7=B3=E8=BF=87=E7=A9=BA?= =?UTF-8?q?=E7=99=BD=E9=A1=B5=E6=97=A0=E7=94=A8=E5=8D=8F=E8=AE=AE=20=20TwE?= =?UTF-8?q?x=5FDBAreaNum=20=3D=200x8027=20TwEx=5FDBDevnMax=202.=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E8=B7=B3=E8=BF=87=E7=A9=BA=E7=99=BD=E9=A1=B5=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E5=A4=B1=E8=B4=A5bug=203.=E4=BF=AE=E6=94=B9=E8=B7=B3?= =?UTF-8?q?=E8=BF=87=E7=A9=BA=E7=99=BD=E9=A1=B5=E5=8F=91=E7=A5=A8Get?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E6=98=A0=E5=B0=84=E7=BB=93=E6=9E=84=E4=BD=93?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98=204.=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=A3=81=E5=88=87=E7=AE=97=E6=B3=95=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=8F=82=E6=95=B0=E5=8D=8F=E8=AE=AE=E4=BB=A5=E5=8F=8A?= =?UTF-8?q?=E5=A4=96=E5=8D=8F=E6=A3=80=E6=B5=8B=E7=AD=89=E7=BA=A7=E3=80=81?= =?UTF-8?q?=E4=BD=8E=E5=8A=9F=E8=80=97=E5=80=BC=E7=B1=BB=E5=9E=8B=EF=BC=88?= =?UTF-8?q?Int32=EF=BC=89=205.=E4=BF=AE=E6=94=B9=E9=A2=9C=E8=89=B2?= =?UTF-8?q?=E5=A2=9E=E5=BC=BA=E5=8D=8F=E8=AE=AESET=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E4=B8=AD=E9=80=BB=E8=BE=91=E5=BC=82=E5=B8=B8=E9=97=AE=E9=A2=98?= =?UTF-8?q?=206.=E4=BF=AE=E6=94=B9=E6=AD=AA=E6=96=9C=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E5=8D=8F=E8=AE=AE=E5=AE=9E=E7=8E=B0=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- huagao/Device/PublicFunc.h | 2 +- huagao/huagaods.cpp | 60 ++++++++++++++++++++++---------------- 2 files changed, 36 insertions(+), 26 deletions(-) diff --git a/huagao/Device/PublicFunc.h b/huagao/Device/PublicFunc.h index 901c1470..c9ca89ff 100644 --- a/huagao/Device/PublicFunc.h +++ b/huagao/Device/PublicFunc.h @@ -149,7 +149,7 @@ typedef struct tagDetachNoise }DetachNoise; -enum LowPowerMode :byte { +enum LowPowerMode :unsigned int { Min_None = 0, Min_5, Min_10, diff --git a/huagao/huagaods.cpp b/huagao/huagaods.cpp index 34e9e272..7bea23e5 100644 --- a/huagao/huagaods.cpp +++ b/huagao/huagaods.cpp @@ -43,8 +43,6 @@ enum class CapTypeEx : unsigned short { TwEx_ScrewDetectEnable = 0x8006, TwEx_ScrewLevel = 0x8021, TwEx_Sharpen = 0x8022, - TwEx_DBAreaNum = 0x8027, - TwEx_DBDevnMax = 0x8028, TwEx_EnFold = 0x8037, TwEx_StableDetectEnable = 0x8090, TwEx_UVModel = 0x8093, @@ -1397,15 +1395,22 @@ Result HuagaoDs::identityOpenDs(const Identity&) { m_caps[CapType::IAutoDiscardBlankPages] = [this](Msg msg, Capability& data)->Result { if (Msg::Set == msg) { auto mech = data.currentItem(); - if ((mech != DiscardBlankPages::Auto) || (mech != DiscardBlankPages::Disabled)) - return badValue(); - m_scanparam->is_autodiscradblank_normal = (Int32)mech == (Int32)DiscardBlankPages::Auto; - if (mech == DiscardBlankPages::Auto) { - m_scanparam->is_duplex = 1; - m_scanparam->en_fold = 0; - m_scanparam->is_autodiscradblank_vince = 0; + if ((mech == DiscardBlankPages::Auto) || (mech == DiscardBlankPages::Disabled)||((int)mech == 65535)) + { + if ((int)mech == 65535 || mech == DiscardBlankPages::Auto) + { + m_scanparam->is_autodiscradblank_normal = 1; + m_scanparam->is_duplex = 1; + m_scanparam->en_fold = 0; + m_scanparam->is_autodiscradblank_vince = 0; + } + else + { + m_scanparam->is_autodiscradblank_normal = 0; + } + return success(); } - return success(); + return badValue(); } DiscardBlankPages autodiscradblank; if (Msg::GetDefault == msg || (Msg::Reset == msg)) { @@ -1430,7 +1435,8 @@ Result HuagaoDs::identityOpenDs(const Identity&) { m_scanparam->is_autodiscradblank_normal = 0; return success(); } - return CapSupGetAllResetEx(msg, data, { FALSE,TRUE }, m_scanparam->is_autodiscradblank_normal, Bool(false), m_scanparam->is_autodiscradblank_normal ? 1 : 0, 0); + //return CapSupGetAllResetEx(msg, data, { FALSE,TRUE }, m_scanparam->is_autodiscradblank_vince, Bool(false), m_scanparam->is_autodiscradblank_vince ? 1 : 0, 0); + return oneValGet(msg, data, Bool(m_scanparam->is_autodiscradblank_vince)); }; m_query[(CapType)(CapTypeEx::TwEx_IBackRotate180)] = msgSupportGetAllSetReset; @@ -1459,38 +1465,38 @@ Result HuagaoDs::identityOpenDs(const Identity&) { m_query[(CapType)(CapTypeEx::TwEx_CroporDesaskewIndent)] = msgSupportGetAllSetReset; m_caps[(CapType)(CapTypeEx::TwEx_CroporDesaskewIndent)] = [this](Msg msg, Capability& data)->Result { if (Msg::Set == msg) { - auto mech = data.currentItem(); + auto mech = data.currentItem(); if ((mech > 30 || mech < 5) && ((bool)m_scanparam->is_autocrop == true)) return badValue(); m_scanparam->indent = mech; return success(); } - return CapSupGetAllResetEx(msg, data, m_scanparam->indent, 5); + return CapSupGetAllResetEx(msg, data, m_scanparam->indent, 5); }; //自动裁剪降噪像素 m_query[(CapType)(CapTypeEx::TwEx_CropNoise)] = msgSupportGetAllSetReset; m_caps[(CapType)(CapTypeEx::TwEx_CropNoise)] = [this](Msg msg, Capability& data)->Result { if (Msg::Set == msg) { - auto mech = data.currentItem(); - if ((mech > 50 || mech < 30) && ((bool)m_scanparam->is_autocrop == true)) + auto mech = data.currentItem(); + if ((mech > 50 || mech < 0) && ((bool)m_scanparam->is_autocrop == true)) return badValue(); m_scanparam->noise = mech; return success(); } - return CapSupGetAllResetEx(msg, data, m_scanparam->noise, 8); + return CapSupGetAllResetEx(msg, data, m_scanparam->noise, 8); }; //自动裁切和纠偏的二值化阀值 m_query[(CapType)(CapTypeEx::TwEx_CroporDesaskewThreshold)] = msgSupportGetAllSetReset; m_caps[(CapType)(CapTypeEx::TwEx_CroporDesaskewThreshold)] = [this](Msg msg, Capability& data)->Result { if (Msg::Set == msg) { - auto mech = data.currentItem(); + auto mech = data.currentItem(); if ((mech > 50 || mech < 30) && ((bool)m_scanparam->is_autocrop == true)) return badValue(); m_scanparam->AutoCrop_threshold = mech; return success(); } - return CapSupGetAllResetEx(msg, data, m_scanparam->AutoCrop_threshold, 40); + return CapSupGetAllResetEx(msg, data, m_scanparam->AutoCrop_threshold, 40); }; //黑框填充方式 m_query[(CapType)(CapTypeEx::TwEx_FillBackgroundMode)] = msgSupportGetAllSetReset; @@ -1599,7 +1605,7 @@ Result HuagaoDs::identityOpenDs(const Identity&) { { m_scanparam->enhance_color = (BYTE)Enchace_Color::Enhance_None; m_scanparam->filter = (BYTE)Filter::None; - return badValue(); + return badValue(); } else { @@ -1776,20 +1782,23 @@ Result HuagaoDs::identityOpenDs(const Identity&) { m_scanparam->hardwarecaps.en_skrewdetect = mech; return success(); } - return CapSupGetAllResetEx(msg, data, { FALSE,TRUE }, m_scanparam->sharpen, TRUE, m_scanparam->hardwarecaps.en_skrewdetect ? 1 : 0, 1); + Bool en = m_scanparam->hardwarecaps.en_skrewdetect == 0 ? Bool(false) : Bool(true); + //return CapSupGetAllReset(msg, data,en , Bool(true)); + return CapSupGetAllResetEx(msg, data, { FALSE ,TRUE }, m_scanparam->hardwarecaps.en_skrewdetect, TRUE, m_scanparam->hardwarecaps.en_skrewdetect ? 1 : 0, 1); }; m_query[(CapType)(CapTypeEx::TwEx_ScrewLevel)] = msgSupportGetAllSetReset; m_caps[(CapType)(CapTypeEx::TwEx_ScrewLevel)] = [this](Msg msg, Capability& data)->Result { if (Msg::Set == msg) { - auto mech = data.currentItem(); + auto mech = data.currentItem(); if (mech >= 1 && mech <= 5) { m_scanparam->hardwarecaps.skrewdetectlevel = mech; return success(); } return badValue(); } - return CapSupGetAllResetEx(msg, data, m_scanparam->hardwarecaps.skrewdetectlevel, 3); + return CapSupGetAllResetEx(msg, data, m_scanparam->hardwarecaps.skrewdetectlevel, (UInt32)3); + //return oneValGetSet(msg,data,m_scanparam->hardwarecaps.skrewdetectlevel,3); }; //装订检测 m_query[(CapType)(CapTypeEx::TwEx_StableDetectEnable)] = msgSupportGetAllSetReset; @@ -1797,9 +1806,10 @@ Result HuagaoDs::identityOpenDs(const Identity&) { if (Msg::Set == msg) { auto mech = data.currentItem(); m_scanparam->hardwarecaps.en_stapledetect = mech; + return success(); } - return CapSupGetAllResetEx(msg, data, { FALSE,TRUE }, m_scanparam->hardwarecaps.en_stapledetect, FALSE, m_scanparam->hardwarecaps.en_stapledetect ? 1 : 0, 0); + return CapSupGetAllResetEx(msg, data, { FALSE,TRUE }, m_scanparam->hardwarecaps.en_stapledetect, FALSE, m_scanparam->hardwarecaps.en_stapledetect==0 ? 0 : 1, 0); }; m_query[(CapType)(CapTypeEx::TwEx_DogEarDelection)] = msgSupportGetAllSetReset; @@ -1848,11 +1858,11 @@ Result HuagaoDs::identityOpenDs(const Identity&) { m_query[(CapType)(CapTypeEx::TwEx_LowPowerMode)] = msgSupportGetAllSetReset; m_caps[(CapType)(CapTypeEx::TwEx_LowPowerMode)] = [this](Msg msg, Capability& data)->Result { if (Msg::Set == msg) { - auto mech = data.currentItem(); + auto mech = data.currentItem(); m_scanparam->hardwarecaps.lowpowermode = (LowPowerMode)mech; return success(); } - return CapSupGetAllResetEx(msg, data, + return CapSupGetAllResetEx(msg, data, { LowPowerMode::Min_None,LowPowerMode::Min_5,LowPowerMode::Min_10,LowPowerMode::Min_20, LowPowerMode::Min_30, LowPowerMode::Min_60, LowPowerMode::Min_120, LowPowerMode::Min_240 }, m_scanparam->hardwarecaps.lowpowermode, LowPowerMode::Min_30, (BYTE)m_scanparam->hardwarecaps.lowpowermode, 4); };