#pragma once #include 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 }; 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, //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_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_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 }; 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, 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 reversed1 : 6; unsigned int isCorrect : 1; unsigned int dstHeight : 8; unsigned int reversed2 : 6; }g400params; }HGScanConfig; struct HGEIntInfo { HGType From; unsigned int Code; };