增加G300 G400 参数配置类

This commit is contained in:
lovelyyoung 2020-05-16 09:41:26 +08:00
parent 644dd609fd
commit 4375ccfdc3
3 changed files with 78 additions and 3 deletions

View File

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

View File

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

View File

@ -6,6 +6,7 @@
#include "PaperSize.h"
static std::map<PaperStatus, unsigned int> 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<PaperStatus, unsigned int> 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<unsigned short, unsigned int> 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