diff --git a/huagao/Device/G400ScanConfig.cpp b/huagao/Device/G400ScanConfig.cpp new file mode 100644 index 00000000..ee1dfd7c --- /dev/null +++ b/huagao/Device/G400ScanConfig.cpp @@ -0,0 +1,26 @@ +#include "G400ScanConfig.h" + +G400ScanConfig::G400ScanConfig(GScanCap& gcap) +{ + cfg.params.doubleFeeded = gcap.hardwarecaps.en_doublefeed == 0 ? 0 : 1; + cfg.params.dpi = gcap.resolution_dst <= 200.0f ? G400_DPI::G400_D200 : (gcap.resolution_dst <= 300.0f ? G400_DPI::G400_D300 : G400_DPI::G400_D600); + cfg.params.enableLed = 1; + if (gcap.filter != 3 || gcap.enhance_color) + cfg.params.isColor = 1; + else + cfg.params.isColor = SupPixelTypes[gcap.pixtype]; + cfg.params.enableStable = gcap.hardwarecaps.en_stapledetect==0?0:1; + cfg.params.isCorrect = 1; + PaperStatus ps = { gcap.papertype,gcap.paperAlign }; + cfg.params.pageSize = SupPaperTyps[ps]; + cfg.params.reversed1 = cfg.params.reversed2 = 0; +} + +G400ScanConfig::~G400ScanConfig() +{ +} + +unsigned int G400ScanConfig::GetData() +{ + return cfg.value; +} diff --git a/huagao/Device/G400ScanConfig.h b/huagao/Device/G400ScanConfig.h new file mode 100644 index 00000000..bb19212b --- /dev/null +++ b/huagao/Device/G400ScanConfig.h @@ -0,0 +1,30 @@ +#pragma once +#include "Device/IConfig.h" +#include "Device/PublicFunc.h" +class G400ScanConfig : + public IConfig +{ +public: + union Configuration + { + struct + { + unsigned int pageSize : 5; + unsigned int isColor : 1; + unsigned int dpi : 2; + unsigned int doubleFeeded : 1; + unsigned int enableStable : 1; + unsigned int enableLed : 1; + unsigned int reversed1 : 6; + unsigned int isCorrect : 1; + unsigned int reversed2 : 14; + }params; + unsigned int value; + }; + G400ScanConfig(GScanCap& gcap); + virtual ~G400ScanConfig(); + virtual unsigned int GetData() override; +private: + Configuration cfg; +}; + diff --git a/huagao/Device/IConfig.h b/huagao/Device/IConfig.h index bf96fdbe..386abaf0 100644 --- a/huagao/Device/IConfig.h +++ b/huagao/Device/IConfig.h @@ -6,6 +6,7 @@ #include "PaperSize.h" static std::map SupPaperTyps = { +#ifdef G200 {{TwSS::A3,PaperAlign::Rot0},0}, {{TwSS::A4,PaperAlign::Rot0},1}, {{TwSS::A4,PaperAlign::Rot270},2}, @@ -23,8 +24,27 @@ static std::map SupPaperTyps = { {{TwSS::USLedger,PaperAlign::Rot0},0}, {{TwSS::USLegal,PaperAlign::Rot0},0}, {{TwSS::None,PaperAlign::Rot0},0}, - {{TwSS::USStatement,PaperAlign::Rot0},16}, + {{TwSS::USStatement,PaperAlign::Rot0},16}, {{TwSS::MaxSize,PaperAlign::Rot0},16} +#else + { {TwSS::A3,PaperAlign::Rot0},G400_A3}, + {{TwSS::A4,PaperAlign::Rot0},G400_A4}, + {{TwSS::A4,PaperAlign::Rot270},G400_A4R}, + {{TwSS::A5,PaperAlign::Rot0 },G400_A5}, + {{TwSS::A5,PaperAlign::Rot270},G400_A5R}, + {{TwSS::A6,PaperAlign::Rot0},G400_A6}, + {{TwSS::A6,PaperAlign::Rot270},G400_A6R}, + {{TwSS::B4,PaperAlign::Rot0},G400_B4}, + {{TwSS::B5,PaperAlign::Rot0},G400_B5}, + {{TwSS::B5,PaperAlign::Rot270},G400_B5R}, + {{TwSS::B6,PaperAlign::Rot0},G400_B6}, + {{TwSS::B6,PaperAlign::Rot270},G400_B6R}, + {{TwSS::USLetter,PaperAlign::Rot0},G400_LETTER}, + {{TwSS::USLetter,PaperAlign::Rot270},G400_LETTERR}, + {{TwSS::USLedger,PaperAlign::Rot0},G400_DOUBLELETTER}, + {{TwSS::USLegal,PaperAlign::Rot0},G400_LEGAL}, + {{TwSS::MaxSize,PaperAlign::Rot0},G400_LONGLETTER}, +#endif }; static std::map SupPixelTypes = { @@ -78,8 +98,7 @@ class IConfig public: IConfig(void) {}; virtual ~IConfig(void) {}; - virtual unsigned int GetData() { return m_param.value; } + virtual unsigned int GetData()=0; protected: - ConfigParam m_param; }; #endif