// sane option names && fixed-id definitions // // Date: 2024-01-31 #pragma once #define SANE_OPT_NAME(name) SANE_STD_OPT_NAME_##name #define SANE_OPT_FIXED_ID(id) SANE_OPT_ID_##id #define MAX_OPT_NAME_LEN 64 #define JSON_SANE_TYPE_BOOL "bool" #define JSON_SANE_TYPE_INT "int" #define JSON_SANE_TYPE_FIXED "float" #define JSON_SANE_TYPE_STRING "string" #define JSON_SANE_TYPE_GROUP "group" #define JSON_SANE_TYPE_BUTTON "button" //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Names ... // // PART I: 参数类型与华高一致,可直接通过改name字段为标准值实现 #define SANE_STD_OPT_NAME_RESTORE "restore" // OPTION_TITLE_HFMRSZ #define SANE_STD_OPT_NAME_HELP "help" // OPTION_TITLE_BZ #define SANE_STD_OPT_NAME_IS_MULTI_OUT "is-multiout" // OPTION_TITLE_DLSC #define SANE_STD_OPT_NAME_MULTI_OUT_TYPE "multiout-type" // OPTION_TITLE_DLSCLX #define SANE_STD_OPT_NAME_COLOR_MODE "mode" // OPTION_TITLE_YSMS #define SANE_STD_OPT_NAME_BINARY_THRESHOLD "binary-threshold" // OPTION_TITLE_HBTXYZ #define SANE_STD_OPT_NAME_REVERSE_01 "reverse-bw" // OPTION_TITLE_HBTXFSSC #define SANE_STD_OPT_NAME_FILTER "filter" // OPTION_TITLE_HDHHBTX_CSYZQ #define SANE_STD_OPT_NAME_RID_MULTIOUT_RED "is-rid-multiout-red" // OPTION_TITLE_24WCSTX_DLSCCH #define SANE_STD_OPT_NAME_RID_ANSWER_SHEET_RED "is-rid-answer-sheet-red" // OPTION_TITLE_24WCSTX_DTKCH #define SANE_STD_OPT_NAME_ERASE_BACKGROUND "is-erase-bkg" // OPTION_TITLE_BJYC #define SANE_STD_OPT_NAME_BKG_COLOR_RANGE "bkg-color-range" // OPTION_TITLE_BJSCFDFW #define SANE_STD_OPT_NAME_SHARPEN "sharpen" // OPTION_TITLE_RHYMH #define SANE_STD_OPT_NAME_RID_MORR "is-rid-morr" // OPTION_TITLE_QCMW #define SANE_STD_OPT_NAME_RID_GRID "is-rid-grid" // OPTION_TITLE_CWW #define SANE_STD_OPT_NAME_ERROR_EXTENSION "is-err-extension" // OPTION_TITLE_CWKS #define SANE_STD_OPT_NAME_NOISE_OPTIMIZE "is-noise-optimize" // OPTION_TITLE_HBTXZDYH #define SANE_STD_OPT_NAME_NOISE_SIZE "noise-size" // OPTION_TITLE_ZDYHCC #define SANE_STD_OPT_NAME_PAPER "paper" // OPTION_TITLE_ZZCC #define SANE_STD_OPT_NAME_PAPER_W "paper-w" // 纸张宽度 #define SANE_STD_OPT_NAME_PAPER_H "paper-h" // 纸张高度 #define SANE_STD_OPT_NAME_LATERAL "lateral" // 纸张横向标志 #define SANE_STD_OPT_NAME_CUSTOM_AREA "is-custom-area" // OPTION_TITLE_ZDYSMQY #define SANE_STD_OPT_NAME_CUSTOM_AREA_LEFT "tl-x" // OPTION_TITLE_SMQYZCmm #define SANE_STD_OPT_NAME_CUSTOM_AREA_RIGHT "br-x" // OPTION_TITLE_SMQYYCmm #define SANE_STD_OPT_NAME_CUSTOM_AREA_TOP "tl-y" // OPTION_TITLE_SMQYSCmm #define SANE_STD_OPT_NAME_CUSTOM_AREA_BOTTOM "br-y" // OPTION_TITLE_SMQYXCmm #define SANE_STD_OPT_NAME_SIZE_CHECK "is-size-check" // OPTION_TITLE_CCJC #define SANE_STD_OPT_NAME_PAGE "page" // OPTION_TITLE_SMYM #define SANE_STD_OPT_NAME_DISCARD_BLANK_SENS "blank-sensitivity" // OPTION_TITLE_TGKBYLMD #define SANE_STD_OPT_NAME_RESOLUTION "resolution" // OPTION_TITLE_FBL #define SANE_STD_OPT_NAME_TIME_TO_SLEEP "time-to-sleep" // OPTION_TITLE_XMSJ #define SANE_STD_OPT_NAME_IMAGE_QUALITY "image-quality" // OPTION_TITLE_HZ #define SANE_STD_OPT_NAME_EXCHANGE "is-exchange" // OPTION_TITLE_JHZFM #define SANE_STD_OPT_NAME_SPLIT "is-split" // OPTION_TITLE_TXCF #define SANE_STD_OPT_NAME_ANTI_SKEW "is-anti-skew" // OPTION_TITLE_ZDJP #define SANE_STD_OPT_NAME_IS_CUSTOM_GAMMA "is-custom-gamma" // OPTION_TITLE_QYSDQX #define SANE_STD_OPT_NAME_GAMMA "gamma" // OPTION_TITLE_JMZ #define SANE_STD_OPT_NAME_CUSTOM_GAMMA "custom-gamma" // OPTION_TITLE_CUSTOM_JMZ; data - SANE_Gamma* #define SANE_STD_OPT_NAME_GRAY_GAMMA "gray-gamma-table" #define SANE_STD_OPT_NAME_COLOR_GAMMA "color-gamma-table" #define SANE_STD_OPT_NAME_RED_GAMMA "red-gamma-table" #define SANE_STD_OPT_NAME_GREEN_GAMMA "green-gamma-table" #define SANE_STD_OPT_NAME_BLUE_GAMMA "blue-gamma-table" #define SANE_STD_OPT_NAME_BRIGHTNESS "brightness" // OPTION_TITLE_LDZ #define SANE_STD_OPT_NAME_CONTRAST "contrast" // OPTION_TITLE_DBD #define SANE_STD_OPT_NAME_IS_PHOTO_MODE "is-photo-mode" // OPTION_TITLE_ZPMS #define SANE_STD_OPT_NAME_ERASE_BLACK_FRAME "is-erase-black-frame" // OPTION_TITLE_XCHK #define SANE_STD_OPT_NAME_DARK_SAMPLE "is-dark-sample" // OPTION_TITLE_SSYZ #define SANE_STD_OPT_NAME_THRESHOLD "threshold" // OPTION_TITLE_YZ #define SANE_STD_OPT_NAME_ANTI_NOISE_LEVEL "anti-noise-level" // OPTION_TITLE_BJKZDJ #define SANE_STD_OPT_NAME_MARGIN "margin" // OPTION_TITLE_BYSJ #define SANE_STD_OPT_NAME_FILL_BKG_MODE "bkg-fill-mode" // OPTION_TITLE_BJTCFS #define SANE_STD_OPT_NAME_IS_ANTI_PERMEATE "is-anti-permeate" // OPTION_TITLE_FZST #define SANE_STD_OPT_NAME_ANTI_PERMEATE_LEVEL "permeate-level" // OPTION_TITLE_FZSTDJ #define SANE_STD_OPT_NAME_RID_HOLE "is-rid-hole" // OPTION_TITLE_CKYC #define SANE_STD_OPT_NAME_HOLE_THRESHOLD "hole-threshold" // #define SANE_STD_OPT_NAME_SEARCH_HOLE_RANGE "search-hole-range" // OPTION_TITLE_CKSSFWZFMBL #define SANE_STD_OPT_NAME_RID_HOLE_L "is-rid-hole-l" // OPTION_TITLE_CKYCZC #define SANE_STD_OPT_NAME_SEARCH_HOLE_RANGE_L "search-hole-range-l" // OPTION_TITLE_ZCCKSSFWZFMBL #define SANE_STD_OPT_NAME_RID_HOLE_R "is-rid-hole-r" // OPTION_TITLE_CKYCYC #define SANE_STD_OPT_NAME_SEARCH_HOLE_RANGE_R "search-hole-range-r" // OPTION_TITLE_YCCKSSFWZFMBL #define SANE_STD_OPT_NAME_RID_HOLE_T "is-rid-hole-t" // OPTION_TITLE_CKYCSC #define SANE_STD_OPT_NAME_SEARCH_HOLE_RANGE_T "search-hole-range-t" // OPTION_TITLE_SCCKSSFWZFMBL #define SANE_STD_OPT_NAME_RID_HOLE_B "is-rid-hole-b" // OPTION_TITLE_CKYCXC #define SANE_STD_OPT_NAME_SEARCH_HOLE_RANGE_B "search-hole-range-b" // OPTION_TITLE_XCCKSSFWZFMBL #define SANE_STD_OPT_NAME_IS_FILL_COLOR "is-fill-color" // OPTION_TITLE_SCTC #define SANE_STD_OPT_NAME_IS_ULTROSONIC_CHECK "is-ultrosonic" // OPTION_TITLE_CSBJC #define SANE_STD_OPT_NAME_DOUBLE_CHECK "double-chk" #define SANE_STD_OPT_NAME_DOUBLE_FEED_HANDLE "double-feed" // OPTION_TITLE_SZTPCL #define SANE_STD_OPT_NAME_IS_CHECK_STAPLE "is-staple" // OPTION_TITLE_ZDJC #define SANE_STD_OPT_NAME_SCAN_MODE "scan-mode" // OPTION_TITLE_SMZS #define SANE_STD_OPT_NAME_SCAN_COUNT "scan-count" // OPTION_TITLE_SMSL #define SANE_STD_OPT_NAME_TEXT_DIRECTION "direction" // OPTION_TITLE_WGFX #define SANE_STD_OPT_NAME_IS_ROTATE_BKG_180 "is-rotate-bkg-180" // OPTION_TITLE_BMXZ180 #define SANE_STD_OPT_NAME_IS_CHECK_DOG_EAR "is-check-dog-ear" // OPTION_TITLE_ZJJC #define SANE_STD_OPT_NAME_DOG_EAR_SIZE "dog-ear-size" // OPTION_TITLE_ZJDX #define SANE_STD_OPT_NAME_IS_CHECK_ASKEW "is-check-askew" // OPTION_TITLE_WXJC #define SANE_STD_OPT_NAME_ASKEW_RANGE "askew-range" // OPTION_TITLE_WXRRD #define SANE_STD_OPT_NAME_FEED_STRENGTH "feed-strength" // OPTION_TITLE_FZQD #define SANE_STD_OPT_NAME_IS_AUTO_FEED_STRENGTH "is-auto-strength" // OPTION_TITLE_ZDFZQD #define SANE_STD_OPT_NAME_FEED_STRENGTH_VALUE "feed-strength-value" // OPTION_TITLE_JZSBL #define SANE_STD_OPT_NAME_WAIT_TO_SCAN "is-wait-scan" // OPTION_TITLE_DZSM #define SANE_STD_OPT_NAME_FOLD_TYPE "fold-type" // OPTION_TITLE_DZMS #define SANE_STD_OPT_NAME_COLOR_CORRECTION "color-correction" // OPTION_TITLE_SPJZ #define SANE_STD_OPT_NAME_WAIT_SCAN_EXIT "wait-scan-exit" // OPTION_TITLE_DZSMTCSJ #define SANE_STD_OPT_NAME_DISCARDBLANK "discardblank" // OPTION_TITLE_TGKBY #define SANE_STD_OPT_NAME_DEVICE_NAME "dev-name" // 设备名称 #define SANE_STD_OPT_NAME_DEVICE_VID "dev-vid" // 设备VID #define SANE_STD_OPT_NAME_DEVICE_PID "dev-pid" // 设备PID #define SANE_STD_OPT_NAME_DEVICE_MODEL "dev-model" // 设备系列 #define SANE_STD_OPT_NAME_DEV_NAME SANE_STD_OPT_NAME_DEVICE_NAME #define SANE_STD_OPT_NAME_VID SANE_STD_OPT_NAME_DEVICE_VID #define SANE_STD_OPT_NAME_PID SANE_STD_OPT_NAME_DEVICE_PID #define SANE_STD_OPT_NAME_DEV_FAMILY SANE_STD_OPT_NAME_DEVICE_MODEL #define SANE_STD_OPT_NAME_DEVICE_TYPE "dev-type" // 设备型号 #define SANE_STD_OPT_NAME_DEVICE_SERIAL_NO "dev-sn" // 设备序列号 #define SANE_STD_OPT_NAME_FIRMWARE_VERSION "fmw-ver" // 固件版本 #define SANE_STD_OPT_NAME_DEVICE_IP_ADDR "ip-addr" // 设备IP地址 #define SANE_STD_OPT_NAME_DEVICE_MAC_ADDR "mac-addr" // 设备MAC地址 #define SANE_STD_OPT_NAME_ROLLER_COUNT "roll-cnt" // 滚轴张数 #define SANE_STD_OPT_NAME_TOTAL_COUNT "total-cnt" // 历史总张数 #define SANE_STD_OPT_NAME_HISTORY_COUNT SANE_STD_OPT_NAME_TOTAL_COUNT #define SANE_STD_OPT_NAME_GET_DEVS_L0G "devs-log" // 获取设备日志 #define SANE_STD_OPT_NAME_DRIVER_VERSION "drv-ver" // 设备VID #define SANE_STD_OPT_NAME_MANUFACTURER "company" // 公司名称 #define SANE_STD_OPT_NAME_COPYRIGHT "copyright" // 版权 #define SANE_STD_OPT_NAME_CO_URL "co-url" // 公司网址 #define SANE_STD_OPT_NAME_CO_TEL "co-tel" // 公司电话 #define SANE_STD_OPT_NAME_CO_ADDR "co-addr" // 公司地址 #define SANE_STD_OPT_NAME_CO_GPS "co-gps" // 公司地图定位 #define SANE_STD_OPT_NAME_USER_NAME "user-name" // 登录账号 #define SANE_STD_OPT_NAME_USER_PASSWORD "user-pwd" // 登录密码 #define SANE_STD_OPT_NAME_LOGIN "login" // 登录 #define SANE_STD_OPT_NAME_LOGOUT "logout" // 登出 #define SANE_STD_OPT_NAME_DRIVER_LOG "drv-log" // 驱动日志 #define SANE_STD_OPT_NAME_DEVICE_LOG SANE_STD_OPT_NAME_GET_DEVS_L0G #define SANE_STD_OPT_NAME_ROLLER_LIFE "roller-life" // 滚轴最大寿命(过纸张数) #define SANE_STD_OPT_NAME_LANGUAGE "language" // 语言 #define SANE_STD_OPT_NAME_MOTOR_VER "motor-ver" // 电机固件版本, data = char* #define SANE_STD_OPT_NAME_FPGA_VER "fpga-ver" // CIS控制器(FPGA)版本, data = char* #define SANE_STD_OPT_NAME_TRANSFORM_IMAGE_FORMAT "trans-img-fmt" // 图像格式转换, data - SANE_ImageFormatConvert*, dst.data 调用SANE_STD_OPT_NAME_FREE_BUFFER释放 #define SANE_STD_OPT_NAME_FREE_BUFFER "free-buf" // 释放由驱动返回的内存, data - (void**)&buf #define SANE_STD_OPT_NAME_PAPER_ON "paper-on" // check whether paper is on #define SANE_STD_OPT_NAME_INITIAL_BOOT_TIME "initial-boot-time" // 设备的初始开机时间 #define SANE_STD_OPT_NAME_DUMP_IMG "dump-img" // 是否输出算法各阶段中间图像 #define SANE_STD_OPT_NAME_DUMP_IMG_PATH "dump-path" // 中间图像输出路径 #define SANE_STD_OPT_NAME_CIS_LENGTH "cis-len" // CIS 长度(采集图像的最大宽度) #define SANE_STD_OPT_NAME_CIS_REBUILD "rebuild" // 复原从CIS出来的数据流为原始图像 // PART II: 参数类型与华高不一致,需要通过“hgsane”组件在中间转换 #define SANE_STD_OPT_NAME_PAGE_W "page-width" // OPTION_TITLE_ZZCC #define SANE_STD_OPT_NAME_PAGE_H "page-height" // OPTION_TITLE_ZZCC #define SANE_STD_OPT_NAME_DUPLEX "duplex" // OPTION_TITLE_SMYM // END for sane-standard-option-name defined by third-app // // PART III: inner option on device #define SANE_STD_OPT_NAME_CIS_MODE "cis-mode" #define SANE_STD_OPT_NAME_CIS_DPI "cis-dpi" #define SANE_STD_OPT_NAME_Y_DPI "y-dpi" #define SANE_STD_OPT_NAME_CIS_BAUD "baud" #define SANE_STD_OPT_NAME_CIS_DELAY "act-after" #define SANE_STD_OPT_NAME_CIS_FRAME_H "frame-h" #define SANE_STD_OPT_NAME_CIS_SAMPLE "sample" #define SANE_STD_OPT_NAME_CIS_SP "cis-sp" #define SANE_STD_OPT_NAME_CIS_LED "cis-led" #define SANE_STD_OPT_NAME_CIS_REBUILD "cis-rebuild" #define SANE_STD_OPT_NAME_CIS_STRETCH "stretch" #define SANE_STD_OPT_NAME_CIS_EXPO_FB "expo-fb" #define SANE_STD_OPT_NAME_CIS_EXPO_FG "expo-fg" #define SANE_STD_OPT_NAME_CIS_EXPO_FR "expo-fr" #define SANE_STD_OPT_NAME_CIS_EXPO_BB "expo-bb" #define SANE_STD_OPT_NAME_CIS_EXPO_BG "expo-bg" #define SANE_STD_OPT_NAME_CIS_EXPO_BR "expo-br" #define SANE_STD_OPT_NAME_CIS_GAIN_FRONT "gain-f" #define SANE_STD_OPT_NAME_CIS_GAIN_BACK "gain-b" #define SANE_STD_OPT_NAME_CIS_OFFSET_FRONT "off-f" #define SANE_STD_OPT_NAME_CIS_OFFSET_BACK "off-b" #define SANE_STD_OPT_NAME_CIS_STRETCH_H "stretch-h" #define SANE_STD_OPT_NAME_CIS_STRETCH_V "stretch-v" #define SANE_STD_OPT_NAME_MOTOR_SPEED "motor-speed" #define SANE_STD_OPT_NAME_COLOR_CORRECT "clr-correct" #define SANE_STD_OPT_NAME_LUT_FILE "lut-file" #define SANE_STD_OPT_NAME_PHASE_FRONT "phase-f" #define SANE_STD_OPT_NAME_PHASE_BACK "phase-b" //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // fixed-ids ... // // 借鉴TWAIN协议固定ID的做法,定义SANE属性的固定ID - 这里与TWAIN中的ID保持一致,以方便TWAIN的调用 enum sane_option_id { SANE_OPT_ID_BASE = 0x8800, SANE_OPT_ID_IS_MULTI_OUT = 0x8801, SANE_OPT_ID_MULTI_OUT_TYPE = 0x8802, SANE_OPT_ID_COLOR_MODE = 0x8803, SANE_OPT_ID_FILTER = 0x8804, SANE_OPT_ID_RID_MULTIOUT_RED = 0x8805, SANE_OPT_ID_RID_ANSWER_SHEET_RED = 0x8806, SANE_OPT_ID_ERASE_BACKGROUND = 0x8807, SANE_OPT_ID_BKG_COLOR_RANGE = 0x8808, SANE_OPT_ID_SHARPEN = 0x8809, SANE_OPT_ID_RID_MORR = 0x880A, SANE_OPT_ID_RID_GRID = 0x880B, SANE_OPT_ID_ERROR_EXTENSION = 0x880C, SANE_OPT_ID_NOISE_OPTIMIZE = 0x880D, SANE_OPT_ID_NOISE_SIZE = 0x880E, SANE_OPT_ID_PAPER = 0x880F, SANE_OPT_ID_CUSTOM_AREA = 0x8810, SANE_OPT_ID_CUSTOM_AREA_LEFT = 0x8811, SANE_OPT_ID_CUSTOM_AREA_RIGHT = 0x8812, SANE_OPT_ID_CUSTOM_AREA_TOP = 0x8813, SANE_OPT_ID_CUSTOM_AREA_BOTTOM = 0x8814, SANE_OPT_ID_SIZE_CHECK = 0x8815, SANE_OPT_ID_PAGE = 0x8816, SANE_OPT_ID_DISCARD_BLANK_SENS = 0x8817, SANE_OPT_ID_RESOLUTION = 0x8818, SANE_OPT_ID_IMAGE_QUALITY = 0x8819, SANE_OPT_ID_EXCHANGE = 0x881A, SANE_OPT_ID_SPLIT = 0x881B, SANE_OPT_ID_ANTI_SKEW = 0x881C, SANE_OPT_ID_IS_CUSTOM_GAMMA = 0x881D, SANE_OPT_ID_BRIGHTNESS = 0x881E, SANE_OPT_ID_CONTRAST = 0x881F, SANE_OPT_ID_GAMMA = 0x8820, SANE_OPT_ID_ERASE_BLACK_FRAME = 0x8821, SANE_OPT_ID_DARK_SAMPLE = 0x8822, SANE_OPT_ID_THRESHOLD = 0x8823, SANE_OPT_ID_ANTI_NOISE_LEVEL = 0x8824, SANE_OPT_ID_MARGIN = 0x8825, SANE_OPT_ID_FILL_BKG_MODE = 0x8826, SANE_OPT_ID_IS_ANTI_PERMEATE = 0x8827, SANE_OPT_ID_ANTI_PERMEATE_LEVEL = 0x8828, SANE_OPT_ID_RID_HOLE = 0x8829, SANE_OPT_ID_SEARCH_HOLE_RANGE = 0x882A, SANE_OPT_ID_IS_FILL_COLOR = 0x882B, SANE_OPT_ID_IS_ULTROSONIC_CHECK = 0x882C, SANE_OPT_ID_IS_CHECK_STAPLE = 0x882D, SANE_OPT_ID_SCAN_MODE = 0x882E, SANE_OPT_ID_SCAN_COUNT = 0x882F, SANE_OPT_ID_TEXT_DIRECTION = 0x8830, SANE_OPT_ID_IS_ROTATE_BKG_180 = 0x8831, SANE_OPT_ID_IS_CHECK_DOG_EAR = 0x8832, SANE_OPT_ID_DOG_EAR_SIZE = 0x8833, SANE_OPT_ID_IS_CHECK_ASKEW = 0x8834, SANE_OPT_ID_ASKEW_RANGE = 0x8835, SANE_OPT_ID_BINARY_THRESHOLD = 0x8836, SANE_OPT_ID_IS_PHOTO_MODE = 0x8837, SANE_OPT_ID_DOUBLE_FEED_HANDLE = 0x8838, SANE_OPT_ID_WAIT_TO_SCAN = 0x8839, SANE_OPT_ID_FEED_STRENGTH = 0x883A, SANE_OPT_ID_TIME_TO_SLEEP = 0x883B, SANE_OPT_ID_IS_AUTO_FEED_STRENGTH = 0x883C, SANE_OPT_ID_FEED_STRENGTH_VALUE = 0x883D, SANE_OPT_ID_REVERSE_01 = 0x883E, SANE_OPT_ID_RID_HOLE_L = 0x883F, SANE_OPT_ID_SEARCH_HOLE_RANGE_L = 0x8840, SANE_OPT_ID_RID_HOLE_R = 0x8841, SANE_OPT_ID_SEARCH_HOLE_RANGE_R = 0x8842, SANE_OPT_ID_RID_HOLE_T = 0x8843, SANE_OPT_ID_SEARCH_HOLE_RANGE_T = 0x8844, SANE_OPT_ID_RID_HOLE_B = 0x8845, SANE_OPT_ID_SEARCH_HOLE_RANGE_B = 0x8846, SANE_OPT_ID_FOLD_TYPE = 0x8847, SANE_OPT_ID_COLOR_CORRECTION = 0x8848, SANE_OPT_ID_HISTORY_COUNT = 0x8849, SANE_OPT_ID_DRIVER_VERSION = 0x884A, SANE_OPT_ID_MANUFACTURER = 0x884B, SANE_OPT_ID_COPYRIGHT = 0x884C, SANE_OPT_ID_CO_URL = 0x884D, SANE_OPT_ID_CO_TEL = 0x884E, SANE_OPT_ID_CO_ADDR = 0x884F, SANE_OPT_ID_CO_GPS = 0x8850, SANE_OPT_ID_HELP = 0x8851, SANE_OPT_ID_VID = 0x8852, SANE_OPT_ID_PID = 0x8853, SANE_OPT_ID_DEV_NAME = 0x8854, SANE_OPT_ID_DEV_FAMILY = 0x8855, SANE_OPT_ID_DEVICE_SERIAL_NO = 0x8856, SANE_OPT_ID_FIRMWARE_VERSION = 0x8857, SANE_OPT_ID_DEVICE_IP_ADDR = 0x8858, SANE_OPT_ID_DEVICE_MAC_ADDR = 0x8859, SANE_OPT_ID_CUSTOM_GAMMA = 0x885A, // data: SANE_Gamma* SANE_OPT_ID_ROLLER_LIFE = 0x885B, // data: uint32_t* SANE_OPT_ID_LANGUAGE = 0x885C, // data: char* SANE_OPT_ID_MOTOR_VER = 0x885D, // 电机固件版本, data - char* SANE_OPT_ID_TRANSFORM_IMAGE_FORMAT = 0x885E,// 图像格式转换, data - SANE_ImageFormatConvert*, dst.data 调用SANE_STD_OPT_NAME_FREE_BUFFER释放 SANE_OPT_ID_FREE_BUFFER = 0x885F, // 释放由驱动返回的内存, data - (void**)&buf SANE_OPT_ID_PAPER_ON = 0x8860, // 是否有纸张, data - SANE_Bool* SANE_OPT_ID_GRAY_GAMMA = 0x8861, // gray-gamma-table SANE_OPT_ID_COLOR_GAMMA = 0x8862, // color-gamma-table SANE_OPT_ID_RED_GAMMA = 0x8863, // red-gamma-table SANE_OPT_ID_GREEN_GAMMA = 0x8864, // green-gamma-table SANE_OPT_ID_BLUE_GAMMA = 0x8865, // blue-gamma-table SANE_OPT_ID_INITIAL_BOOT_TIME = 0x8866, SANE_OPT_ID_DISCARDBLANK = 0x8867, SANE_OPT_ID_WAIT_SCAN_EXIT = 0x8868, SANE_OPT_ID_RESTORE = 0x8869, SANE_OPT_ID_PAPER_W = 0x886A, // 纸张宽度,单位为mm SANE_OPT_ID_PAPER_H = 0x886B, // 纸张高度,单位为mm SANE_OPT_ID_LATERAL = 0x886C, // 纸张横向标志,bool SANE_OPT_ID_LOGIN = 0x9900, SANE_OPT_ID_LOGOUT = 0x9901, SANE_OPT_ID_ROLLER_COUNT = 0x9902, SANE_OPT_ID_DRIVER_LOG = 0x9903, SANE_OPT_ID_DEVICE_LOG = 0x9904, SANE_OPT_ID_USER_NAME = 0x9905, SANE_OPT_ID_USER_PASSWORD = 0x9906, };