新增设置序列号 ,vid pid
This commit is contained in:
parent
b50cb0ab36
commit
243c01e53c
|
@ -3163,7 +3163,7 @@ int hg_scanner::device_io_control(unsigned long code, void* data, unsigned* len)
|
|||
|
||||
return SCANNER_ERR_OK;
|
||||
}
|
||||
else if (code == IO_CTRL_CODE_GET_HARDWARE_VERSION)
|
||||
else if (code == IO_CTRL_CODE_GET_IP)
|
||||
{
|
||||
std::string ip = get_ip();
|
||||
if (*len < ip.size() + 1)
|
||||
|
@ -3207,7 +3207,7 @@ int hg_scanner::device_io_control(unsigned long code, void* data, unsigned* len)
|
|||
{
|
||||
case SLEEP_TIME_0MIN:
|
||||
if (pid_ == 0x300 || pid_ == 0x400)
|
||||
val = 999999; //3288不休眠
|
||||
val = INT_MAX; //3288不休眠
|
||||
else
|
||||
val = -1; //不休眠 -1 3399
|
||||
break;
|
||||
|
@ -3239,7 +3239,7 @@ int hg_scanner::device_io_control(unsigned long code, void* data, unsigned* len)
|
|||
}
|
||||
|
||||
sleeptime = val;
|
||||
if (val != -1 && val != 999999)
|
||||
if (val != -1 && val != INT_MAX)
|
||||
{
|
||||
sleeptime = val * 60;
|
||||
}
|
||||
|
@ -3416,6 +3416,18 @@ int hg_scanner::device_io_control(unsigned long code, void* data, unsigned* len)
|
|||
{
|
||||
return setting_resolution(data);
|
||||
}
|
||||
else if (code == IO_CTRL_CODE_SET_VIDPID)
|
||||
{
|
||||
return set_vid_pid(*((int *)data));
|
||||
}
|
||||
else if (code == IO_CTRL_CODE_SET_SERIAL)
|
||||
{
|
||||
return set_serial_num((char*)data);
|
||||
}
|
||||
else if (code == IO_CTRL_CODE_GET_VIDPID)
|
||||
{
|
||||
return get_vid_pid(*((int*)data));
|
||||
}
|
||||
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
||||
}
|
||||
std::string hg_scanner::get_firmware_version(void)
|
||||
|
@ -3517,6 +3529,15 @@ int hg_scanner::set_serial_num(string str)
|
|||
{
|
||||
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
||||
}
|
||||
int hg_scanner::set_vid_pid(int data)
|
||||
{
|
||||
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
||||
}
|
||||
int hg_scanner::get_vid_pid(int& data)
|
||||
{
|
||||
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
int hg_scanner::set_leaflet_scan(void)
|
||||
{
|
||||
|
|
|
@ -433,12 +433,18 @@ public:
|
|||
static std::string temporary_file(char* tail = NULL, char* head = NULL);
|
||||
static int save_2_tempory_file(std::shared_ptr<std::vector<char>> data, std::string* path_file, unsigned int index = 0);
|
||||
public:
|
||||
|
||||
//////////////固定的硬件信息设置或获取//////////////
|
||||
virtual std::string get_firmware_version(void);
|
||||
virtual std::string get_serial_num(void);
|
||||
virtual std::string get_ip(void);
|
||||
|
||||
/////////////////成功返回:SCANNER_ERR_OK /////////////
|
||||
/////////////////失败返回:IO错误码 /////////////
|
||||
virtual int set_serial_num(string str) = 0; //设置序列号
|
||||
virtual int set_vid_pid(int data) = 0; //设置vidpid
|
||||
virtual int get_vid_pid(int& data) = 0; //获取vidpid
|
||||
|
||||
/////////////成功返回:SCANNER_ERR_OK /////////////
|
||||
/////////////失败返回:IO错误码 /////////////
|
||||
virtual int set_leaflet_scan(void) = 0; //单张扫描
|
||||
virtual int get_abuot_info(void); //获取软件关于信息 (基类实现)
|
||||
virtual int restore_default_setting(void); //恢复默认设置 (基类实现)
|
||||
|
@ -474,10 +480,12 @@ public:
|
|||
virtual int get_scan_mode(bool& type) ; //获取设备是否计数模式 /*/ type:false计数模式 true非计数模式
|
||||
virtual int set_speed_mode(int data) = 0; //设置速度模式 /*/ 设备不同值不同,详情见子类注释
|
||||
virtual int get_speed_mode(int &data) = 0; //获取速度模式 /*/ 设备不同值不同,详情见子类注释
|
||||
|
||||
virtual int set_dpi_color_check(bool type); //获取畸变矫正 /*/ 基类处理
|
||||
|
||||
virtual int set_dpi_color_check_val(void) = 0; //设置畸变矫正值
|
||||
virtual int set_auto_flat(void) = 0; //设置自动平场校正
|
||||
virtual int set_serial_num(string str); //设置序列号
|
||||
|
||||
};
|
||||
|
||||
#ifdef UOS
|
||||
|
|
|
@ -737,6 +737,42 @@ std::string hg_scanner_200::get_ip(void)
|
|||
{
|
||||
return "";
|
||||
}
|
||||
int hg_scanner_200::set_serial_num(string str)
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(io_lock_);
|
||||
|
||||
USBCB usbcb = { setting3288dsp::SEND_SERIAL,0,14 };
|
||||
int len = sizeof(usbcb),
|
||||
ret = SCANNER_ERR_OK;
|
||||
ret = io_->write_bulk(&usbcb, &len);
|
||||
if (ret == SCANNER_ERR_OK)
|
||||
{
|
||||
len = str.size();
|
||||
|
||||
ret = io_->write_bulk(&str, &len);
|
||||
}
|
||||
return ret;
|
||||
|
||||
}
|
||||
int hg_scanner_200::set_vid_pid(int data)
|
||||
{
|
||||
USBCB usbcb = { setting3288dsp::SET_USB_INFOR_VIDPID,0,0 };
|
||||
int len = sizeof(usbcb);
|
||||
return io_->write_bulk(&usbcb, &len);
|
||||
}
|
||||
int hg_scanner_200::get_vid_pid(int& data)
|
||||
{
|
||||
USBCB usbcb = { setting3288dsp::GET_USB_INFOR_VIDPID,0,0 };
|
||||
int ret = SCANNER_ERR_OK,
|
||||
len = sizeof(usbcb);
|
||||
|
||||
io_->read_bulk(&usbcb, &len);
|
||||
if (ret == SCANNER_ERR_OK)
|
||||
{
|
||||
data = usbcb.u32_Data;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
int hg_scanner_200::agreement()
|
||||
{
|
||||
int ret = SCANNER_ERR_OK;
|
||||
|
|
|
@ -64,9 +64,14 @@ private:
|
|||
int agreement();
|
||||
|
||||
public:
|
||||
virtual std::string get_firmware_version(void);
|
||||
virtual std::string get_serial_num(void);
|
||||
virtual std::string get_ip(void);
|
||||
//////////////固定的硬件信息设置或获取//////////////
|
||||
virtual std::string get_firmware_version(void)override;
|
||||
virtual std::string get_serial_num(void)override;
|
||||
virtual std::string get_ip(void)override;
|
||||
|
||||
virtual int set_serial_num(string str) override; //设置序列号
|
||||
virtual int set_vid_pid(int data) override; //设置vidpid
|
||||
virtual int get_vid_pid(int& data)override; //获取vidpid
|
||||
|
||||
/////////////////成功返回:SCANNER_ERR_OK /////////////
|
||||
/////////////////失败返回:IO错误码 /////////////
|
||||
|
|
|
@ -1305,6 +1305,24 @@ std::string hg_scanner_239::get_ip(void)
|
|||
{
|
||||
return control_fetch(setting3399::SR_GET_IPADDR, 0, 40);
|
||||
}
|
||||
int hg_scanner_239::set_serial_num(string str)
|
||||
{
|
||||
int len = str.size(),
|
||||
ret = write_register(setting3399::SR_SET_SERIALNUM, len);
|
||||
if (ret == SCANNER_ERR_OK)
|
||||
{
|
||||
ret = io_->write_bulk(&str[0],&len);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
int hg_scanner_239::set_vid_pid(int data)
|
||||
{
|
||||
return write_register(setting3399::SR_SET_USBVIDPID, data);
|
||||
}
|
||||
int hg_scanner_239::get_vid_pid(int& data)
|
||||
{
|
||||
return read_register(setting3399::SR_GET_USBVIDPID, &data);
|
||||
}
|
||||
int hg_scanner_239::get_history_scan_count(int &val)
|
||||
{
|
||||
int ret = read_register(setting3399::SR_GET_SCANN_NUM, &val);
|
||||
|
|
|
@ -80,9 +80,14 @@ public:
|
|||
virtual int device_io_control(unsigned long code, void* data, unsigned* len) override;
|
||||
|
||||
public:
|
||||
virtual std::string get_firmware_version(void);
|
||||
virtual std::string get_serial_num(void);
|
||||
virtual std::string get_ip(void);
|
||||
//////////////固定的硬件信息设置或获取//////////////
|
||||
virtual std::string get_firmware_version(void)override;
|
||||
virtual std::string get_serial_num(void)override;
|
||||
virtual std::string get_ip(void)override;
|
||||
|
||||
virtual int set_serial_num(string str) override; //设置序列号
|
||||
virtual int set_vid_pid(int data) override; //设置vidpid
|
||||
virtual int get_vid_pid(int& data)override; //获取vidpid
|
||||
|
||||
/////////////////成功返回:SCANNER_ERR_OK /////////////
|
||||
/////////////////失败返回:IO错误码 or SCANNER_ERR_DEVICE_NOT_SUPPORT /////////////
|
||||
|
|
|
@ -887,6 +887,25 @@ int hg_scanner_300::set_serial_num(string str)
|
|||
return ret;
|
||||
|
||||
}
|
||||
int hg_scanner_300::set_vid_pid(int data)
|
||||
{
|
||||
USBCB usbcb = { setting3288dsp::SET_USB_INFOR_VIDPID,0,0 };
|
||||
int len = sizeof(usbcb);
|
||||
return io_->write_bulk(&usbcb, &len);
|
||||
}
|
||||
int hg_scanner_300::get_vid_pid(int& data)
|
||||
{
|
||||
USBCB usbcb = { setting3288dsp::GET_USB_INFOR_VIDPID,0,0 };
|
||||
int ret = SCANNER_ERR_OK,
|
||||
len = sizeof(usbcb);
|
||||
|
||||
io_->read_bulk(&usbcb, &len);
|
||||
if (ret == SCANNER_ERR_OK)
|
||||
{
|
||||
data = usbcb.u32_Data;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
int hg_scanner_300::set_notify_sleep()
|
||||
{
|
||||
return SCANNER_ERR_DEVICE_NOT_SUPPORT;
|
||||
|
|
|
@ -65,30 +65,34 @@ private:
|
|||
setting_hardware::HGSCANCONF_3288 dsp_config;
|
||||
Device::PaperSize papersize;
|
||||
public:
|
||||
//////////////固定的硬件信息设置或获取//////////////
|
||||
virtual std::string get_firmware_version(void)override;
|
||||
virtual std::string get_serial_num(void)override;
|
||||
virtual std::string get_ip(void)override;
|
||||
|
||||
virtual int set_serial_num(string str) override; //设置序列号
|
||||
virtual int set_vid_pid(int data) override; //设置vidpid
|
||||
virtual int get_vid_pid(int& data)override; //获取vidpid
|
||||
|
||||
/////////////////成功返回:SCANNER_ERR_OK /////////////
|
||||
/////////////////失败返回:IO错误码 /////////////
|
||||
virtual int set_leaflet_scan(void) override; //单张扫描
|
||||
virtual int set_leaflet_scan(void) override; //单张扫描
|
||||
|
||||
|
||||
virtual int set_clear_roller_num(void) override; //清除滚轴计数
|
||||
virtual int set_clear_roller_num(void) override; //清除滚轴计数
|
||||
|
||||
virtual int get_device_code(void); //获取设备编码 不支持
|
||||
virtual int get_device_code(void); //获取设备编码 不支持
|
||||
|
||||
virtual int get_scanner_paperon(SANE_Bool& type) override; //获取设备有无纸张 /*/ type : 0无纸 1有纸 */
|
||||
virtual int get_scanner_paperon(SANE_Bool& type) override; //获取设备有无纸张 /*/ type : 0无纸 1有纸 */
|
||||
|
||||
virtual int get_scan_is_sleep(SANE_Bool& type) override; //获取设备是否休眠当中 /*/ type : 0休眠 1唤醒状态*/
|
||||
virtual int get_sleep_time(int& data) override; //获取功耗模式(休眠) /*/ data > 0*/
|
||||
virtual int set_sleep_time(int data) override; //设置功耗模式(休眠) /*/ data > 0*/
|
||||
virtual int get_history_scan_count(int& data) override; //获取历史扫描张数 /*/ data > 0*/
|
||||
virtual int get_history_scan_count(int& data) override; //获取历史扫描张数 /*/ data > 0*/
|
||||
virtual int get_roller_num(int& data) override; //获取滚轮张数 /*/ data > 0*/
|
||||
virtual int set_notify_sleep(void) override; //唤醒设备
|
||||
virtual int get_device_log(string& log) override; //获取设备日志 /*/ log :储存路径*/
|
||||
virtual int set_devreboot(int data) override; //设置设备重启
|
||||
virtual int set_devreboot(int data) override; //设置设备重启
|
||||
virtual int set_devshtudown() override; //设置设备关机
|
||||
virtual int set_scan_islock(SANE_Bool type) override; //设置设备是否锁定 /*/ type:0解锁,1锁定*/
|
||||
virtual int get_scan_islock(SANE_Bool& type) override; //获取设备是否锁定 /*/ type:0解锁,1锁定*/
|
||||
|
@ -101,5 +105,5 @@ public:
|
|||
virtual int get_speed_mode(int& data)override; //获取速度模式 /*/ data:40,50,60,70
|
||||
virtual int set_dpi_color_check_val(void) override; //设置畸变矫正
|
||||
virtual int set_auto_flat(void)override; //设置自动平场校正
|
||||
virtual int set_serial_num(string str); //设置序列号
|
||||
|
||||
};
|
||||
|
|
|
@ -1139,6 +1139,24 @@ int hg_scanner_302::set_clear_roller_num(void)
|
|||
|
||||
return ret;
|
||||
}
|
||||
int hg_scanner_302::set_serial_num(string str)
|
||||
{
|
||||
int len = str.size(),
|
||||
ret = write_register(setting3399::SR_SET_SERIALNUM, len);
|
||||
if (ret == SCANNER_ERR_OK)
|
||||
{
|
||||
ret = io_->write_bulk(&str[0], &len);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
int hg_scanner_302::set_vid_pid(int data)
|
||||
{
|
||||
return write_register(setting3399::SR_SET_USBVIDPID, data);
|
||||
}
|
||||
int hg_scanner_302::get_vid_pid(int& data)
|
||||
{
|
||||
return read_register(setting3399::SR_GET_USBVIDPID, &data);
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
int hg_scanner_302::set_leaflet_scan(void)
|
||||
{
|
||||
|
|
|
@ -88,10 +88,15 @@ public:
|
|||
virtual int device_io_control(unsigned long code, void* data, unsigned* len) override;
|
||||
|
||||
public:
|
||||
//////////////固定的硬件信息设置或获取//////////////
|
||||
virtual std::string get_firmware_version(void)override;
|
||||
virtual std::string get_serial_num(void)override;
|
||||
virtual std::string get_ip(void)override;
|
||||
|
||||
virtual int set_serial_num(string str) override; //设置序列号
|
||||
virtual int set_vid_pid(int data) override; //设置vidpid
|
||||
virtual int get_vid_pid(int& data)override; //获取vidpid
|
||||
|
||||
/////////////////成功返回:SCANNER_ERR_OK /////////////
|
||||
/////////////////失败返回:IO错误码 /////////////
|
||||
virtual int set_leaflet_scan(void) override; //单张扫描
|
||||
|
|
|
@ -635,6 +635,42 @@ std::string hg_scanner_400::get_firmware_version()
|
|||
{
|
||||
return "";
|
||||
}
|
||||
int hg_scanner_400::set_serial_num(string str)
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(io_lock_);
|
||||
|
||||
USBCB usbcb = { setting3288dsp::SEND_SERIAL,0,14 };
|
||||
int len = sizeof(usbcb),
|
||||
ret = SCANNER_ERR_OK;
|
||||
ret = io_->write_bulk(&usbcb, &len);
|
||||
if (ret == SCANNER_ERR_OK)
|
||||
{
|
||||
len = str.size();
|
||||
|
||||
ret = io_->write_bulk(&str, &len);
|
||||
}
|
||||
return ret;
|
||||
|
||||
}
|
||||
int hg_scanner_400::set_vid_pid(int data)
|
||||
{
|
||||
USBCB usbcb = { setting3288dsp::SET_USB_INFOR_VIDPID,0,0 };
|
||||
int len = sizeof(usbcb);
|
||||
return io_->write_bulk(&usbcb, &len);
|
||||
}
|
||||
int hg_scanner_400::get_vid_pid(int& data)
|
||||
{
|
||||
USBCB usbcb = { setting3288dsp::GET_USB_INFOR_VIDPID,0,0 };
|
||||
int ret = SCANNER_ERR_OK,
|
||||
len = sizeof(usbcb);
|
||||
|
||||
io_->read_bulk(&usbcb, &len);
|
||||
if (ret == SCANNER_ERR_OK)
|
||||
{
|
||||
data = usbcb.u32_Data;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
int hg_scanner_400::set_leaflet_scan(void)
|
||||
{
|
||||
|
|
|
@ -68,10 +68,15 @@ private:
|
|||
Device::PaperSize papersize;
|
||||
|
||||
public:
|
||||
//////////////固定的硬件信息设置或获取//////////////
|
||||
virtual std::string get_firmware_version(void)override;
|
||||
virtual std::string get_serial_num(void)override;
|
||||
virtual std::string get_ip(void)override;
|
||||
|
||||
virtual int set_serial_num(string str) override; //设置序列号
|
||||
virtual int set_vid_pid(int data) override; //设置vidpid
|
||||
virtual int get_vid_pid(int& data)override; //获取vidpid
|
||||
|
||||
|
||||
/////////////////成功返回:SCANNER_ERR_OK /////////////
|
||||
/////////////////失败返回:IO错误码 /////////////
|
||||
|
|
|
@ -1099,6 +1099,24 @@ int hg_scanner_402::set_clear_roller_num(void)
|
|||
|
||||
return ret;
|
||||
}
|
||||
int hg_scanner_402::set_serial_num(string str)
|
||||
{
|
||||
int len = str.size(),
|
||||
ret = write_register(setting3399::SR_SET_SERIALNUM, len);
|
||||
if (ret == SCANNER_ERR_OK)
|
||||
{
|
||||
ret = io_->write_bulk(&str[0], &len);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
int hg_scanner_402::set_vid_pid(int data)
|
||||
{
|
||||
return write_register(setting3399::SR_SET_USBVIDPID, data);
|
||||
}
|
||||
int hg_scanner_402::get_vid_pid(int& data)
|
||||
{
|
||||
return read_register(setting3399::SR_GET_USBVIDPID, &data);
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
int hg_scanner_402::set_leaflet_scan(void)
|
||||
{
|
||||
|
|
|
@ -88,10 +88,15 @@ public:
|
|||
virtual int device_io_control(unsigned long code, void* data, unsigned* len) override;
|
||||
|
||||
public:
|
||||
//////////////固定的硬件信息设置或获取//////////////
|
||||
virtual std::string get_firmware_version(void)override;
|
||||
virtual std::string get_serial_num(void)override;
|
||||
virtual std::string get_ip(void)override;
|
||||
|
||||
virtual int set_serial_num(string str) override; //设置序列号
|
||||
virtual int set_vid_pid(int data) override; //设置vidpid
|
||||
virtual int get_vid_pid(int& data)override; //获取vidpid
|
||||
|
||||
/////////////////成功返回:SCANNER_ERR_OK /////////////
|
||||
/////////////////失败返回:IO错误码 /////////////
|
||||
virtual int set_leaflet_scan(void) override; //单张扫描
|
||||
|
|
Loading…
Reference in New Issue