2023-07-17 03:29:37 +00:00
|
|
|
|
#pragma once
|
|
|
|
|
#include <string>
|
|
|
|
|
#include <functional>
|
|
|
|
|
#include <map>
|
2023-07-20 03:48:38 +00:00
|
|
|
|
#include <opencv2/opencv.hpp>
|
2023-07-17 03:29:37 +00:00
|
|
|
|
|
|
|
|
|
using namespace std;
|
|
|
|
|
|
|
|
|
|
/*****************************************
|
|
|
|
|
* 定义编译版本 *
|
|
|
|
|
* G400/G300 *
|
|
|
|
|
******************************************/
|
|
|
|
|
#define G300
|
2023-10-30 07:56:55 +00:00
|
|
|
|
|
|
|
|
|
//#define CIS_6CH
|
|
|
|
|
#define CIS_3CH
|
|
|
|
|
|
|
|
|
|
#ifdef CIS_6CH
|
|
|
|
|
#undef CIS_3CH
|
|
|
|
|
#elif define CIS_3CH
|
|
|
|
|
#undef CIS_6CHC
|
|
|
|
|
#else
|
|
|
|
|
|
|
|
|
|
#endif
|
2023-07-17 03:29:37 +00:00
|
|
|
|
/******************************************
|
|
|
|
|
* SPEEDMODE==3 60PPM *
|
|
|
|
|
* SPEEDMODE==4 70PPM *
|
|
|
|
|
* SPEEDMODE==5 80PPM *
|
|
|
|
|
*******************************************/
|
|
|
|
|
#define SPEEDMODE 5
|
|
|
|
|
#define MT_DEBUG
|
|
|
|
|
#define COLORSENSOR_SUP
|
|
|
|
|
/*支持低功耗模式开关*/
|
|
|
|
|
#define ENABLE_LOWPOWERMODE
|
|
|
|
|
|
|
|
|
|
/*支持写入系统syslog 功能开关*/
|
|
|
|
|
#define ENLOG_SYSLOG
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define IMAGE_COLOR 1
|
|
|
|
|
#define IMAGE_GRAY 0
|
|
|
|
|
|
|
|
|
|
#ifdef _LOG
|
|
|
|
|
#define LOG printf
|
|
|
|
|
#else
|
2023-08-31 08:37:05 +00:00
|
|
|
|
#define LOG //printf
|
2023-07-17 03:29:37 +00:00
|
|
|
|
#endif
|
|
|
|
|
|
2023-09-19 01:24:12 +00:00
|
|
|
|
#define FWVERSION "G345230918"
|
2023-07-17 03:29:37 +00:00
|
|
|
|
#define SERIALNUM "HS6010A38001P1"
|
2023-09-19 02:40:47 +00:00
|
|
|
|
|
2023-07-17 03:29:37 +00:00
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
int s_FRAME_COLOR_SP;
|
|
|
|
|
int s_FRAME_GRAY_SP;
|
|
|
|
|
string FWVERSIO;
|
|
|
|
|
}sp_COLOR_or_GRAY;
|
|
|
|
|
|
|
|
|
|
#define STR(X) #X
|
|
|
|
|
#define CON(a,b) STR(a##b)
|
|
|
|
|
|
2023-11-18 03:48:39 +00:00
|
|
|
|
typedef void (*image_callback)(int element);
|
2023-07-17 03:29:37 +00:00
|
|
|
|
static std::map<int , sp_COLOR_or_GRAY>mapFradme_SP={
|
2023-10-30 07:56:55 +00:00
|
|
|
|
{1,{0x08ED1003,0x1ACC1002,CON(G34D,231027)}},//40 ppm
|
2023-11-18 09:06:42 +00:00
|
|
|
|
{2,{0x06DB1003,0x14A01002,CON(G3ZY,231118)}},//50 ppm
|
2023-10-30 07:56:55 +00:00
|
|
|
|
{3,{0x05591003,0x100E1002,CON(G36D,231027)}},//60 ppm
|
|
|
|
|
{4,{0x04421003,0x0CD11002,CON(G37D,231027)}},//70 ppm
|
|
|
|
|
{5,{0x036c1003,0x0A421002,CON(G38D,231027)}},//80 ppm
|
2023-07-17 03:29:37 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum class LedStatus
|
|
|
|
|
{
|
|
|
|
|
Ready,
|
|
|
|
|
Scanning,
|
|
|
|
|
Abnormal,
|
|
|
|
|
NoPaper,
|
|
|
|
|
StopScan,
|
|
|
|
|
CoverOpen,
|
|
|
|
|
Updating,
|
|
|
|
|
UpdateDone
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct HG_JpegCompressInfo
|
|
|
|
|
{
|
2023-11-14 10:02:27 +00:00
|
|
|
|
unsigned int error_code;
|
2023-07-20 05:50:35 +00:00
|
|
|
|
unsigned int first_frame;
|
|
|
|
|
unsigned int last_frame;
|
|
|
|
|
unsigned int index_frame;
|
2023-08-09 07:31:27 +00:00
|
|
|
|
unsigned int DataLength;
|
|
|
|
|
unsigned int width;
|
|
|
|
|
unsigned int height;
|
2023-09-15 06:05:42 +00:00
|
|
|
|
unsigned int dpi;
|
2023-07-20 05:50:35 +00:00
|
|
|
|
unsigned char *pJpegData;
|
2023-08-31 08:37:05 +00:00
|
|
|
|
//cv::Mat mat;
|
2023-07-17 03:29:37 +00:00
|
|
|
|
};
|
2023-08-09 07:31:27 +00:00
|
|
|
|
struct HG_JpegCompressInfo_data
|
|
|
|
|
{
|
|
|
|
|
HG_JpegCompressInfo info;
|
|
|
|
|
|
|
|
|
|
unsigned char *pJpegData[1];
|
|
|
|
|
};
|
2023-07-17 03:29:37 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
struct HG_Msg{
|
|
|
|
|
int code;
|
|
|
|
|
std::string msg;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum class CISVendor
|
|
|
|
|
{
|
|
|
|
|
CIS_UNKNOWUN,
|
|
|
|
|
HUALIN_CIS_V0,
|
|
|
|
|
DUNNAN_CIS_V0,
|
|
|
|
|
DUNNAN_CIS_COLOR_V0
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum class PaperSize
|
|
|
|
|
{
|
|
|
|
|
G400_A3 = 0,
|
|
|
|
|
G400_A4,
|
|
|
|
|
G400_A4R,
|
|
|
|
|
G400_A5,
|
|
|
|
|
G400_A5R,
|
|
|
|
|
G400_A6,
|
|
|
|
|
G400_A6R,
|
|
|
|
|
G400_B4,
|
|
|
|
|
G400_B5,
|
|
|
|
|
G400_B5R,
|
|
|
|
|
G400_B6,
|
|
|
|
|
G400_B6R,
|
|
|
|
|
G400_DOUBLELETTER,
|
|
|
|
|
G400_LEGAL,
|
|
|
|
|
G400_LETTER,
|
|
|
|
|
G400_LETTERR,
|
|
|
|
|
G400_LONGLETTER,
|
|
|
|
|
G400_MAXSIZE,
|
|
|
|
|
G400_AUTO,
|
|
|
|
|
G400_MAXAUTO
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct HGSize
|
|
|
|
|
{
|
|
|
|
|
unsigned int width;
|
|
|
|
|
unsigned int height;
|
|
|
|
|
|
|
|
|
|
bool operator<(HGSize const &right) const
|
|
|
|
|
{
|
|
|
|
|
if (width < right.width && height < right.height)
|
|
|
|
|
return true;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct Paper_Res
|
|
|
|
|
{
|
|
|
|
|
Paper_Res(unsigned int res,PaperSize papertype):Res(res),PaperType(papertype){}
|
|
|
|
|
Paper_Res():Res(0),PaperType(PaperSize::G400_A4){}
|
|
|
|
|
unsigned int Res;
|
|
|
|
|
PaperSize PaperType;
|
|
|
|
|
friend bool operator<(const struct Paper_Res &a,const struct Paper_Res &b)
|
|
|
|
|
{
|
|
|
|
|
if(a.Res<b.Res || (a.Res==b.Res && a.PaperType < b.PaperType)){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}PaperRes;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
union HG_ScanConfiguration
|
|
|
|
|
{
|
2023-10-19 09:29:46 +00:00
|
|
|
|
struct
|
2023-07-17 03:29:37 +00:00
|
|
|
|
{
|
|
|
|
|
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 enableSizeDetect : 1;
|
|
|
|
|
unsigned int lutmode : 1 ;
|
2023-10-19 09:29:46 +00:00
|
|
|
|
unsigned int slow_moire : 1;
|
2023-11-04 01:38:17 +00:00
|
|
|
|
unsigned int reversed1 : 2;
|
2023-07-17 03:29:37 +00:00
|
|
|
|
unsigned int isCorrect : 1;
|
2023-11-04 01:38:17 +00:00
|
|
|
|
unsigned int dc : 7; //0 - 100
|
|
|
|
|
unsigned int reversed2 : 8;
|
2023-07-17 03:29:37 +00:00
|
|
|
|
} params;
|
|
|
|
|
unsigned int value;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
union VIDPID
|
|
|
|
|
{
|
|
|
|
|
struct
|
|
|
|
|
{
|
|
|
|
|
unsigned short VID;
|
|
|
|
|
unsigned short PID;
|
|
|
|
|
};
|
|
|
|
|
unsigned int Value;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct ScannerGlue
|
|
|
|
|
{
|
|
|
|
|
ScannerGlue(const std::function<void(const HG_JpegCompressInfo &imginfo)> &imageready, const std::function<void(const int eventID,std::string)> &deviceevent) : m_imageready(imageready), m_deviceevent(deviceevent) {}
|
|
|
|
|
|
|
|
|
|
std::function<void(const HG_JpegCompressInfo &)> m_imageready;
|
|
|
|
|
std::function<void(const int,std::string)> m_deviceevent;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
struct V4L2_DATAINFO
|
|
|
|
|
{
|
2023-08-09 07:31:27 +00:00
|
|
|
|
cv::Mat mat;
|
2023-09-19 01:24:12 +00:00
|
|
|
|
unsigned char *data;
|
2023-07-17 03:29:37 +00:00
|
|
|
|
int width;
|
|
|
|
|
int height;
|
|
|
|
|
int pixtype;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct V4L2_DATAINFO_Ex:V4L2_DATAINFO
|
|
|
|
|
{
|
2023-09-04 03:28:08 +00:00
|
|
|
|
unsigned int frame_index; //总帧数
|
2023-08-09 07:31:27 +00:00
|
|
|
|
unsigned int dpi; //dpi
|
2023-07-17 03:29:37 +00:00
|
|
|
|
unsigned int error_code;
|
2023-08-09 07:31:27 +00:00
|
|
|
|
unsigned int first_frame; //第一帧
|
|
|
|
|
unsigned int lost_frame; //丢失帧
|
|
|
|
|
unsigned int last_frame; //最后一帧
|
|
|
|
|
unsigned int snap_end; //采集结束
|
2023-07-17 03:29:37 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
typedef struct CaptureParams
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
int correctColorExposure[2][3];
|
|
|
|
|
int correctColorGain[2][6];
|
|
|
|
|
int correctColorOffset[2][6];
|
|
|
|
|
|
|
|
|
|
int correctGrayExposure[2][3];
|
|
|
|
|
int correctGrayGain[2][6];
|
|
|
|
|
int correctGrayOffset[2][6];
|
|
|
|
|
|
|
|
|
|
int colorExposure[2][3];
|
|
|
|
|
int colorGain[2][6];
|
|
|
|
|
int colorOffset[2][6];
|
|
|
|
|
|
|
|
|
|
int grayExposure[2][3];
|
|
|
|
|
int grayGain[2][6];
|
|
|
|
|
int grayOffset[2][6];
|
|
|
|
|
|
|
|
|
|
int uvCorrectColorExposure[2];
|
|
|
|
|
int uvCorrectGrayExposure[2];
|
|
|
|
|
int uvColorExposure[2];
|
|
|
|
|
int uvGrayExposure[2];
|
|
|
|
|
} CaptureParams;
|
|
|
|
|
|
|
|
|
|
struct ScannerScanInfo
|
|
|
|
|
{
|
|
|
|
|
unsigned int TotalScanned; //扫描总页数
|
|
|
|
|
unsigned int RollerNum;
|
|
|
|
|
unsigned int CuoNum; //搓纸总数
|
|
|
|
|
unsigned int JamInNum; //搓纸失败次数
|
|
|
|
|
unsigned int JamOutNum; //卡纸次数
|
|
|
|
|
unsigned int DoubleNum; //双张次数
|
|
|
|
|
unsigned int ErrorNum; //其他异常次数
|
|
|
|
|
unsigned int HRatio; //横向校正系数
|
|
|
|
|
unsigned int VRatio; //纵向校正系数
|
|
|
|
|
unsigned int SleepTime; //休眠时间 单位s
|
|
|
|
|
unsigned int SpeedMode; //速率模式
|
|
|
|
|
unsigned int VID; //vid
|
|
|
|
|
unsigned short PID; //pid
|
|
|
|
|
std::string SerialNum; //序列号
|
|
|
|
|
std::string FWVersion; //固件版本号
|
|
|
|
|
std::string Token; //token 令牌
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
constexpr char BULK_CTL_PATH[] = "/dev/usb-ffs/mtp/ep0";
|
|
|
|
|
constexpr char BULK_OUT_PATH[] = "/dev/usb-ffs/mtp/ep2";
|
|
|
|
|
constexpr char BULK_IN_PATH[] = "/dev/usb-ffs/mtp/ep1";
|
|
|
|
|
constexpr char BULK_INT_PATH[] = "/dev/usb-ffs/mtp/ep3";
|
|
|
|
|
constexpr char STATE_PATH[] = "/sys/class/android_usb/android0/state";
|
2023-09-04 07:43:43 +00:00
|
|
|
|
|
|
|
|
|
union FLAT_INFO
|
|
|
|
|
{
|
|
|
|
|
struct
|
|
|
|
|
{
|
|
|
|
|
unsigned int dpi:5;
|
|
|
|
|
unsigned int colormode:1;
|
|
|
|
|
unsigned int is_whiteimage:1;
|
|
|
|
|
unsigned int status:8;
|
|
|
|
|
unsigned int reversed:1;
|
|
|
|
|
unsigned int datalen:16;
|
|
|
|
|
}params;
|
|
|
|
|
unsigned int value;
|
|
|
|
|
};
|
2023-10-19 09:29:46 +00:00
|
|
|
|
|
|
|
|
|
#define SLEEP_STATUS_PATH "/mnt/flash-disk/sleep_status.txt"
|
|
|
|
|
#define UPDATE_STATUS_PATH "/mnt/flash-disk/update_status.txt"
|
|
|
|
|
enum scanner_err
|
|
|
|
|
{
|
|
|
|
|
SCANNER_ERR_OK = 0, //设备正常状态
|
|
|
|
|
SCANNER_ERR_SLEEP, //设备处于休眠当中
|
|
|
|
|
SCANNER_ERR_UPDATE_OK, //设备更新:成功
|
|
|
|
|
SCANNER_ERR_UPDATE_UPDATAING, //设备更新:进行中
|
|
|
|
|
SCANNER_ERR_UPDATE_CHECK_VAL_ERROR, //设备更新:校验检测错误
|
|
|
|
|
SCANNER_ERR_UPDATE_CHECK_FILE_LOST, //设备更新:文件丢失
|
|
|
|
|
SCANNER_ERR_UPDATE_UNZIP_FAIL, //设备更新:解压失败
|
2023-11-18 03:48:39 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
enum ScanEvent {
|
|
|
|
|
S_EVT_NORES = 0x0,
|
|
|
|
|
S_EVT_SCAN_FINISHED = 0x2,
|
|
|
|
|
S_EVT_CLEAR_ERR = 0x03,
|
|
|
|
|
S_EVT_PAPER_PULLOUT = 0x05,
|
|
|
|
|
S_EVT_COVER_OPENED = 0x01,
|
|
|
|
|
S_EVT_COVER_CLOSED = 0x102,
|
|
|
|
|
S_EVT_PAPER_AT_SCAN = 0x08,
|
|
|
|
|
S_EVT_PAPER_NOT_AT_SCAN = 0x106,
|
|
|
|
|
S_EVT_DOUBLEPAPER = 0x110,
|
|
|
|
|
S_EVT_NOT_DOUBLEPAPER = 0x111,
|
|
|
|
|
S_EVT_START_SCAN = 0x45,
|
|
|
|
|
S_EVT_STOP_SCAN = 0x46,
|
|
|
|
|
S_EVT_SCAN_STARTED = 0x112,
|
|
|
|
|
S_EVT_SCAN_STOPPED = 0x113,
|
|
|
|
|
S_EVT_JAM_IN = 0x114,
|
|
|
|
|
S_EVT_JAM_OUT = 0x115,
|
|
|
|
|
S_EVT_SAMPLE_ERR = 0x116,
|
|
|
|
|
S_EVT_COVER_IN_OPEN = 0x117,
|
|
|
|
|
S_EVT_ERROR_PICKING = 0x4,
|
|
|
|
|
S_EVT_ERROR_JAM = 0x8,
|
|
|
|
|
S_EVT_ERROR_DOUBLEPAPER = 0x10,
|
|
|
|
|
S_EVT_ERROR_STAPLE = 0x20,
|
|
|
|
|
S_EVT_ERROR_FPGA = 0x44,
|
|
|
|
|
S_EVT_HAVING_IMAGE = 0x47,
|
|
|
|
|
S_EVT_ONE_PAPER_END = 0x59,
|
|
|
|
|
S_EVT_PAPER_NOT_STANDBY = 0,//?
|
|
|
|
|
S_EVT_PAPER_STANDBY = 0 //?
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
int Command;
|
|
|
|
|
int Data;
|
|
|
|
|
int Length;
|
|
|
|
|
} USBCB;
|
|
|
|
|
|
|
|
|
|
enum class USBCommand : unsigned int
|
|
|
|
|
{
|
|
|
|
|
//无命令
|
|
|
|
|
NO_COMMAND = 0,
|
|
|
|
|
//获取dsp 状态
|
|
|
|
|
GET_DSP_STATUS = 1,
|
|
|
|
|
//取图
|
|
|
|
|
GET_IMAGE = 2,
|
|
|
|
|
//销毁DSP中驻存的图
|
|
|
|
|
POP_IMAGE = 3,
|
|
|
|
|
//开始扫描命令
|
|
|
|
|
START_COMMAND = 4,
|
|
|
|
|
//停止扫描命令
|
|
|
|
|
STOP = 5,
|
|
|
|
|
//获取扫描仪扫描模式
|
|
|
|
|
GET_SCAN_MODE = 6,
|
|
|
|
|
//获取固件版本号
|
|
|
|
|
GET_FW_VERSION = 7,
|
|
|
|
|
//返回PC端的状态
|
|
|
|
|
SEND_STATUS_PC = 8,
|
|
|
|
|
//下发扫描配置参数
|
|
|
|
|
CONFIGURED_DATA = 9,
|
|
|
|
|
//下发固件信息
|
|
|
|
|
SEND_FW = 10,
|
|
|
|
|
//获取扫描参数
|
|
|
|
|
GET_CONFIG_DATA = 11,
|
|
|
|
|
//获取扫描总张数
|
|
|
|
|
GET_SCANN_NUM = 12,
|
|
|
|
|
//获取有无纸的状态
|
|
|
|
|
GET_PAPERFEEDER_STATUS = 13,
|
|
|
|
|
//DSP初始化
|
|
|
|
|
INIT_HARDWARE_SYS = 14,
|
|
|
|
|
//下发元器件配置参数(灰度,LED R曝光时间)
|
|
|
|
|
SEND_COMPONENTS_GR = 15,
|
|
|
|
|
//下发元器件配置参数(LED G/B曝光时间)
|
|
|
|
|
SEND_COMPONENTS_GB = 16,
|
|
|
|
|
//下发扫描模式
|
|
|
|
|
SEND_SCAN_MODE = 17,
|
|
|
|
|
//开始进行平场矫正
|
|
|
|
|
START_FLAT = 18,
|
|
|
|
|
//停止平场矫正
|
|
|
|
|
STOP_FLAT = 19,
|
|
|
|
|
//下发200dpi彩色平场矫正参数
|
|
|
|
|
SEND_200_COLOR_FLAT_DATA = 20,
|
|
|
|
|
//下发300dpi彩色平场矫正参数
|
|
|
|
|
SEND_300_COLOR_FLAT_DATA = 21,
|
|
|
|
|
//获取200dpi彩色平场矫正参数
|
|
|
|
|
GET_200_COLOR_FLAT_DATA = 22,
|
|
|
|
|
//获取300dpi彩色平场矫正参数
|
|
|
|
|
GET_300_COLOR_FLAT_DATA = 23,
|
|
|
|
|
//下发200dpi灰度平场校正参数
|
|
|
|
|
SEND_200_GRAY_FLAT_DATA = 24,
|
|
|
|
|
//下发300dpi灰度平场校正参数
|
|
|
|
|
SEND_300_GRAY_FLAT_DATA = 25,
|
|
|
|
|
//获取200DPI灰度平场校正参数
|
|
|
|
|
GET_200_GRAY_FLAT_DATA = 26,
|
|
|
|
|
//获取300DPI灰度平场校正参数
|
|
|
|
|
GET_300_GRAY_FLAT_DATA = 27,
|
|
|
|
|
//下发序列号命令
|
|
|
|
|
SEND_SERIAL = 28,
|
|
|
|
|
//获取序列号命令
|
|
|
|
|
GET_SERIAL = 29,
|
|
|
|
|
//获取滚轴数
|
|
|
|
|
GET_ROLLER_NUM = 0x1e,
|
|
|
|
|
//清零滚轴数
|
|
|
|
|
CLR_ROLLER_NUM = 0x1f,
|
|
|
|
|
//清除扫描总张数
|
|
|
|
|
CLR_SCAN_NUM = 0x20,
|
|
|
|
|
//准备更新固件
|
|
|
|
|
PRE_UPGRADE = 0X21,
|
|
|
|
|
//开始更新固件
|
|
|
|
|
START_UPGRADE = 0x22,
|
|
|
|
|
//彩色的AD参数
|
|
|
|
|
RGB_ADI_PARA = 0x23,
|
|
|
|
|
//灰度的AD参数
|
|
|
|
|
ADI_PARA = 0x24,
|
|
|
|
|
//获取CIS参数(曝光时间,ad参数)
|
|
|
|
|
GET_CIS_PARA = 0x25,
|
|
|
|
|
//扫描张数
|
|
|
|
|
START_COMMAND_COUNT = 0x26,
|
|
|
|
|
//下发休眠时间
|
|
|
|
|
SET_SLEEP_TIME = 0x27,
|
|
|
|
|
//获取休眠时间
|
|
|
|
|
GET_SLEEP_TIME = 0x28,
|
|
|
|
|
//清除缓存
|
|
|
|
|
CLR_CACHE = 0x29,
|
|
|
|
|
//下发速度模式
|
|
|
|
|
SET_SPEED_MODE = 0x2a,
|
|
|
|
|
//获取扫描速度模式
|
|
|
|
|
GET_SPEED_MODE = 0X2b,
|
|
|
|
|
//设置固件版本一共8个字节
|
|
|
|
|
SET_FW_VERSION = 0X2c,
|
|
|
|
|
//获取DSP版本
|
|
|
|
|
GET_DSP_VERSION = 0X2d,
|
|
|
|
|
//采集板FPGA固件版本
|
|
|
|
|
GET_SCANFPGA_VERSION = 0x2e,
|
|
|
|
|
//电机板FPGA固件版本
|
|
|
|
|
GET_MOTORFPGA_VERSION = 0X2f,
|
|
|
|
|
//设置制造商信息
|
|
|
|
|
SET_USB_INFOR_MANUFACTURE = 0X30,
|
|
|
|
|
//获取制造商信息
|
|
|
|
|
GET_USB_INFOR_MANUFACTURE = 0X31,
|
|
|
|
|
//设置产品型号信息
|
|
|
|
|
SET_USB_INFOR_MODEL_NAME = 0X32,
|
|
|
|
|
//获取产品型号信息
|
|
|
|
|
GET_USB_INFOR_MODEL_NAME = 0X33,
|
|
|
|
|
//设置USB PID / VID信息
|
|
|
|
|
SET_USB_INFOR_VIDPID = 0X34,
|
|
|
|
|
GET_USB_INFOR_VIDPID = 0X35,
|
|
|
|
|
//设置卡纸急停检测灵敏度
|
|
|
|
|
SET_JAM_DETECT_SENSITIVE = 0X36,
|
|
|
|
|
//获取卡纸急停检测灵敏度
|
|
|
|
|
GET_JAM_DETECT_SENSITIVE = 0X37,
|
|
|
|
|
//设置横向畸变系数
|
|
|
|
|
SET_JUST_COF_H = 0x38,
|
|
|
|
|
//读取横向畸变系数
|
|
|
|
|
GET_JUST_COF_H = 0x39,
|
|
|
|
|
//G400 清除硬件异常
|
|
|
|
|
CLEAR_HWERROR = 0x40,
|
|
|
|
|
//设置纵向畸变系数
|
|
|
|
|
SET_JUST_COF_V = 0x41,
|
|
|
|
|
//读取纵向畸变系数
|
|
|
|
|
GET_JUST_COF_V = 0x42,
|
|
|
|
|
//设置彩色校正参数
|
|
|
|
|
SEND_COLOR_FLAT = 0x43,
|
|
|
|
|
//设置彩色平场校正参数
|
|
|
|
|
SEND_COLORCORRECT_FLAT = 0x44,
|
|
|
|
|
//设置灰度校正参数
|
|
|
|
|
SEND_GRAY_FLAT = 0x45,
|
|
|
|
|
//设置灰度平场校正参数
|
|
|
|
|
SEND_GRAYCORRECT_FLAT = 0x46,
|
|
|
|
|
//设置平场校正参数
|
|
|
|
|
GET_FLAT_DATA =0x47,
|
|
|
|
|
//更新完成
|
|
|
|
|
UPDATE_FINISHED = 0x48,
|
|
|
|
|
//重启
|
|
|
|
|
REBOOT = 0x49,
|
|
|
|
|
//获取日志
|
|
|
|
|
GET_LOG_FILES_INFO = 0x50,
|
|
|
|
|
//发送log文件完成
|
|
|
|
|
GET_UPDATE_RESULT=0x51,
|
|
|
|
|
//清空日志
|
|
|
|
|
CLEAR_LOG_FILES = 0x52,
|
|
|
|
|
//获取搓纸失败
|
|
|
|
|
GET_CUO_ERROR,
|
|
|
|
|
//获取双张失败次数
|
|
|
|
|
GET_DOU_ERROR,
|
|
|
|
|
//获取卡纸次数
|
|
|
|
|
GET_JAM_ERROR,
|
|
|
|
|
ACTIVE_SCANNER=0x100,
|
|
|
|
|
//图像处理参数下发
|
|
|
|
|
GETSYSINFO_LEN =0x200,
|
|
|
|
|
GETSYSINFO =0x201,
|
|
|
|
|
GETMOTORPARAM = 0x202,
|
|
|
|
|
GETMOTORPARMLEN=0x203,
|
|
|
|
|
SETMOTORPARAM = 0x204,
|
|
|
|
|
SETMOTORPARAMLEN = 0x205,
|
|
|
|
|
DEVICES_7010 = 0x7010
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum class HG_ScannerStatus
|
|
|
|
|
{
|
|
|
|
|
//异常
|
|
|
|
|
HAVE_ERROR = -1,
|
|
|
|
|
//正常状态
|
|
|
|
|
NORMAL = 0,
|
|
|
|
|
//开盖
|
|
|
|
|
OPEN_COVER = 1,
|
|
|
|
|
// 无纸
|
|
|
|
|
NO_FEED = 2,
|
|
|
|
|
// 搓纸失败
|
|
|
|
|
FEED_IN_ERROR = 4,
|
|
|
|
|
// 卡纸
|
|
|
|
|
PAPER_JAM = 8,
|
|
|
|
|
// 检测到双张
|
|
|
|
|
DETECT_DOUBLE_FEED = 16,
|
|
|
|
|
// 检测到订书钉
|
|
|
|
|
DETECT_STAPLE = 32,
|
|
|
|
|
// 纸张倾斜
|
|
|
|
|
PAPER_SKEW = 64,
|
|
|
|
|
// 自动模式
|
|
|
|
|
AUTO_SCAN_MODE = 65,
|
|
|
|
|
// 手动模式
|
|
|
|
|
MANAUL_SCAN_MODE = 66,
|
|
|
|
|
// 计数模式
|
|
|
|
|
COUNT_MODE = 67,
|
|
|
|
|
// 硬件错误
|
|
|
|
|
HARDWARE_ERROR = 68,
|
|
|
|
|
// FPGA崩溃
|
|
|
|
|
FPGA_ERROR = 68,
|
|
|
|
|
// 开始
|
|
|
|
|
START_SCAN = 69,
|
|
|
|
|
//停止
|
|
|
|
|
STOP_SCAN = 70,
|
|
|
|
|
//有图
|
|
|
|
|
HAVE_IMAGE = 71,
|
|
|
|
|
// 更新扫描参数
|
|
|
|
|
UPDATE_SCAN_PARAMETER = 72,
|
|
|
|
|
// PC繁忙或出错
|
|
|
|
|
PC_SCAN_BUSY_or_ERROR = 73,
|
|
|
|
|
// 更新完成
|
|
|
|
|
UPDATE_FINISHED = 74,
|
|
|
|
|
//尺寸检测错误
|
|
|
|
|
SIZE_ERROR=75,
|
|
|
|
|
//纸张有孔
|
|
|
|
|
PAPER_HOLE = 84,
|
|
|
|
|
//自动校正中
|
|
|
|
|
AUTO_FLATTING=198,
|
|
|
|
|
//USB 未连接
|
|
|
|
|
USB_DISCONNECTED = 200,
|
|
|
|
|
//用户点击停止
|
|
|
|
|
USER_STOP = 201,
|
|
|
|
|
//自动平场校正完成
|
|
|
|
|
AUTO_FLAT_FINISHED = 202,
|
|
|
|
|
SCANNER_ACTIVED=0x10
|
|
|
|
|
};
|