457 lines
8.6 KiB
C
457 lines
8.6 KiB
C
#pragma once
|
||
#include <rpcndr.h>
|
||
|
||
|
||
typedef struct tag_USBCB {
|
||
int u32_CMD;
|
||
int u32_Data;
|
||
int u32_Count;
|
||
}USBCB, * PUSBCB;
|
||
|
||
typedef struct tag_USBCBA4
|
||
{
|
||
unsigned int u32_Command; /* command to execute */
|
||
unsigned int u32_Data; /* generic data field */
|
||
unsigned int u32_Count; /* number of bytes to transfer */
|
||
byte buffer[512]; //=new byte[1024];
|
||
}USBCBA4, * PUSBCBA4;
|
||
|
||
//u32_CMD
|
||
enum tagUsbKeyWords :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,
|
||
GET_UV_EXPOSA = 0x100,
|
||
GET_UV_EXPOSB = 0x101,
|
||
SET_UV_EXPOSA = 0x102,
|
||
SET_UV_EXPOSB = 0x103,
|
||
GETSYSINFO_LEN = 0x200,
|
||
GETSYSINFO = 0x201
|
||
};
|
||
|
||
typedef enum tagUsbKeyWords UsbKeyWords, * PUsbKeyWords;
|
||
//u32_Data
|
||
enum tagUsbSupported
|
||
{
|
||
//停止扫描
|
||
SCAN_STOP = -2,
|
||
//异常
|
||
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,
|
||
// 更新完成
|
||
STS_UPDATE_FINISHED = 74,//confilict whit DOG_EAR
|
||
//幅面检测错误
|
||
SIZE_ERROR = 75,
|
||
//取图超时
|
||
AQUIRE_IMAGE_TIMEOUT = 76,
|
||
//获取图片与扫描张数不匹配
|
||
LOSE_IMAGE = 77,
|
||
//usb读取数据错误
|
||
USB_BULK_ERROR = 78,
|
||
//v4l2取图失败
|
||
V4L2_AQULRE_ERROR = 79,
|
||
//扫描仪内部图片丢失
|
||
V4L2_IMAGE_EMPTY = 80,
|
||
//自动校正中
|
||
AUTO_FLATTING = 198,
|
||
//USB 未连接
|
||
USB_DISCONNECTED = 200,
|
||
//用户点击停止
|
||
USER_STOP = 201,
|
||
//自动平场校正完成
|
||
AUTO_FLAT_FINISHED = 202
|
||
};
|
||
|
||
typedef enum tagUsbSupported UsbSupported, * PUsbSupported;
|
||
|
||
enum tagDevState
|
||
{
|
||
DEV_STOP = -1,
|
||
DEV_ISRUNNING,
|
||
DEV_WRONG
|
||
};
|
||
|
||
typedef enum tagDevState DevState, PDevState;
|
||
|
||
enum tagEventIndex
|
||
{
|
||
EVENT_IMAGE,
|
||
EVENT_NUM
|
||
};
|
||
|
||
enum tagDEVMODEL
|
||
{
|
||
G100 = 0,
|
||
G200,
|
||
G300,
|
||
G400,
|
||
G500
|
||
};
|
||
|
||
|
||
|
||
#define USB_REQ_GET_FPGA_REGS 0x40
|
||
#define USB_REQ_SET_FPGA_REGS 0x41
|
||
#define USB_REQ_GET_MOTOR_REGS 0x42
|
||
#define USB_REQ_SET_MOTOR_REGS 0x43
|
||
|
||
#define USB_REQ_GET_DEV_STATUS 0x60
|
||
#define USB_REQ_GET_DEV_CONFIGURATION 0x61
|
||
#define USB_REQ_SET_DEV_CONFIGURATION 0x62
|
||
#define USB_REQ_GET_DEV_REGS 0x63
|
||
#define USB_REQ_SET_DEV_REGS 0x64
|
||
|
||
enum Scanner_Reg_Defs
|
||
{
|
||
SR_CMD,
|
||
SR_STATUS,
|
||
SR_SCAN_COUNT,
|
||
SR_OS,
|
||
SR_SENSORS,
|
||
SR_MOTOR,
|
||
SR_IM_TYPE,
|
||
SR_IM_COUNT,
|
||
SR_IM_TX,
|
||
SR_IM_FRONT_SIZE,
|
||
SR_IM_CLEAR,
|
||
SR_IM_TXING,
|
||
SR_IM_POP,
|
||
SR_IM_ABORT,
|
||
SR_COUNT,
|
||
SR_CONFIG_SCAN_PARAM,
|
||
SR_GET_FWVERSION,
|
||
SR_SET_FWERSION,
|
||
SR_GET_SERIALNUM,
|
||
SR_SET_SERIALNUM,
|
||
SR_CONFIF_IMGPROCPARAM,
|
||
SC_AUTOCORRECT,
|
||
SC_GET_CORRECT_PARAM,
|
||
SC_SET_CORRECT_PARAM,
|
||
SR_GET_H_RATIO,
|
||
SR_SET_H_RATIO,
|
||
SR_GET_V_RATIO,
|
||
SR_SET_V_RATIO,
|
||
SR_GET_SERIAL_LEN,
|
||
SR_GET_GRAY_SP,
|
||
SR_GET_COLOR_SP,
|
||
SR_SET_GRAY_SP,
|
||
SR_SET_COLOR_SP,
|
||
SR_SET_SLEEPTIME,
|
||
SR_GET_SLEEPTIME,
|
||
SR_GET_SLEEP_STAUTUS,
|
||
SR_GET_IMAGEPROCESSDONE,
|
||
SR_GET_KEEP_LAST_PAPER,
|
||
SR_GET_PAPERON,
|
||
SR_SET_SPEEDMODE,
|
||
SR_GET_SPEEDMODE,
|
||
SR_GET_JOSN_SIZE,
|
||
SR_GET_JSON,
|
||
SR_SET_JSON_PATH,
|
||
SR_SET_JSON,
|
||
SR_GET_CUO_ERROR = 0x50,
|
||
SR_GET_DOU_ERROR,
|
||
SR_GET_JAM_ERROR,
|
||
SR_GET_SCANN_NUM,
|
||
SR_CLR_ROLLER_NUM,
|
||
SR_GET_ROLLER_NUM,
|
||
SR_CLR_SCANN_NUM,
|
||
SR_GET_H_200_RATIO,
|
||
SR_SET_H_200_RATIO,
|
||
SR_GET_V_200_RATIO,
|
||
SR_SET_V_200_RATIO,
|
||
SR_GET_H_300_RATIO,
|
||
SR_SET_H_300_RATIO,
|
||
SR_GET_V_300_RATIO,
|
||
SR_SET_V_300_RATIO,
|
||
SR_GET_H_600_RATIO,
|
||
SR_SET_H_600_RATIO,
|
||
SR_GET_V_600_RATIO,
|
||
SR_SET_V_600_RATIO,
|
||
SR_UPDATA_START = 0x100,
|
||
SR_UPDATA_STAUTUS = 0x101,
|
||
SR_UPDATA_MD5_RELUST = 0x102,
|
||
SR_UPDATA_RECOVERY = 0x103,
|
||
SR_UPDATA_REBOOT = 0x104,
|
||
SR_POWEROFF = 0x105,
|
||
SR_REBOOT = 0x106,
|
||
SR_FLAT_CLR_MAX_BRIGHT,
|
||
SR_FLAT_GRAY_MAX_BRIGHT,
|
||
SR_KERNEL_VERSION_INFO_LENGTH,
|
||
SR_GET_KERNEL_VERSION,
|
||
SR_GET_IPADDR_LENGHT = 0x200,
|
||
SR_GET_MACADDR,
|
||
SR_GET_IPADDR,
|
||
SR_GET_MBVERSION_LENGHT,
|
||
SR_GET_MBVERSION,
|
||
SR_GET_USBVIDPID,
|
||
SR_SET_USBVIDPID
|
||
};
|
||
|
||
enum Scanner_Cmd_Defs
|
||
{
|
||
SC_START,
|
||
SC_STOP,
|
||
SC_CLEAR,
|
||
SC_COUNT
|
||
};
|
||
|
||
|
||
enum Updata_Stautus {
|
||
Start_updata,
|
||
Download_file,
|
||
Download_file_error,
|
||
Download_file_finish,
|
||
MD5_Reovery,
|
||
MD5_Rboot,
|
||
MD5_Error,
|
||
Reboot
|
||
};
|
||
|
||
enum HGType
|
||
{
|
||
MtBoard = 1,
|
||
FPGA,
|
||
V4L2,
|
||
IMG,
|
||
AutoCorrect,
|
||
STOPSCAN
|
||
};
|
||
|
||
typedef union HG_ScanConfig
|
||
{
|
||
unsigned int value;
|
||
struct
|
||
{
|
||
unsigned int paper : 5;
|
||
unsigned int color : 1;
|
||
unsigned int dpi : 2;
|
||
unsigned int double_feed_enbale : 1;
|
||
unsigned int stable_enbale : 1;
|
||
unsigned int screw_detect_enable : 1;
|
||
unsigned int screw_detect_level : 3;//第十四位
|
||
unsigned int iscorrect_mode : 1;
|
||
unsigned int unused_one : 5;
|
||
unsigned int pc_correct : 1;
|
||
unsigned int enable_sizecheck : 1;
|
||
unsigned int enabledsp_cache : 1;
|
||
unsigned int sizeerror_errorratio : 9;
|
||
}g200params;
|
||
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 enableSizeDetect : 1;
|
||
unsigned int lutmode : 1;
|
||
unsigned int reversed1 : 4;
|
||
unsigned int isCorrect : 1;
|
||
unsigned int dstHeight : 8;
|
||
unsigned int reversed2 : 6;
|
||
}g400params;
|
||
}HGScanConfig;
|
||
|
||
struct HGEIntInfo
|
||
{
|
||
HGType From;
|
||
unsigned int Code;
|
||
unsigned int Img_Index;
|
||
};
|
||
|
||
enum class ScannerType
|
||
{
|
||
S_G139,
|
||
S_G239,
|
||
S_G300_3288,
|
||
S_G300UV_3288,
|
||
S_G300_3399,
|
||
S_G400_3288,
|
||
S_G400_3399
|
||
};
|
||
|
||
|
||
typedef struct {
|
||
unsigned short VID;
|
||
unsigned short PID;
|
||
ScannerType ScannerType;
|
||
}SupScanner; |