新增306设备
This commit is contained in:
parent
5aecdef38a
commit
679cb0ffef
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,137 @@
|
|||
#pragma once
|
||||
|
||||
// hg_scanner is the base class of kinds of scanners
|
||||
//
|
||||
// created on 2022-01-30
|
||||
//
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
|
||||
#include "hg_scanner.h"
|
||||
#include "../wrapper/hg_log.h"
|
||||
#include "PaperSize.h"
|
||||
|
||||
//#ifdef OEM_HANWANG
|
||||
//#define hg_scanner_306 hw_scanner_300
|
||||
//#elif defined(OEM_LISICHENG)
|
||||
//#define hg_scanner_306 lsc_scanner_300
|
||||
//#endif
|
||||
|
||||
|
||||
class hg_scanner_306 : public hg_scanner
|
||||
{
|
||||
protected:
|
||||
virtual int on_scanner_closing(bool force) override;
|
||||
virtual void thread_handle_usb_read(void) override;
|
||||
virtual int discard_all_images(void) override;
|
||||
virtual int get_roller_life(void) override;
|
||||
|
||||
protected:
|
||||
virtual int on_color_mode_changed(int& color_mode) override; //颜色切换
|
||||
virtual int on_paper_changed(int& paper) override; //纸张大小设置
|
||||
virtual int on_paper_check_changed(bool& check) override; //尺寸检测
|
||||
virtual int on_resolution_changed(int& dpi) override; //分辨率设置
|
||||
virtual int on_ultrasonic_check_changed(bool& check) override; //设置超声波检测
|
||||
virtual int on_staple_check_changed(bool& check) override; //设置订书针检测
|
||||
virtual int on_skew_check_changed(bool& check) override; //设置歪斜检测
|
||||
virtual int on_skew_check_level_changed(int& check) override; //设置歪斜检测强度
|
||||
virtual int on_get_feedmode(int& feedmode) override; //获取分纸强度
|
||||
virtual int on_set_feedmode(int feedmode) override; //设置分纸强度
|
||||
virtual int on_pic_type(bool& pic)override; //照片模式或者文本模式
|
||||
virtual int on_pick_paper(bool autostrength)override; //自动分纸强度
|
||||
virtual int on_pick_paper_threshold(double threshold)override;
|
||||
virtual int on_is_auto_paper(bool isautopaper)override; //待纸扫描
|
||||
virtual int on_cis_get_image(bool isautopaper) override; //cis 原图获取
|
||||
virtual int on_process_double_paper(bool type) override; //双张图像校验
|
||||
|
||||
public:
|
||||
hg_scanner_306(const char* dev_name,int pid, usb_io* io);
|
||||
~hg_scanner_306();
|
||||
public:
|
||||
virtual int start(void)override;
|
||||
virtual int stop(void)override;
|
||||
private:
|
||||
int set_kernelsnap_ver();
|
||||
int agreement(TwSS tw,int align);
|
||||
int initdevice();
|
||||
int writeusb(USBCB &usb);
|
||||
int readusb(USBCB &usb);
|
||||
int pop_image(void);
|
||||
int get_scanner_status(USBCB &usb);
|
||||
int get_img_data_7010();
|
||||
int writedown_device_configuration(bool type =false,setting_hardware::HGSCANCONF_3288 *d = NULL);
|
||||
void writedown_image_configuration(void);
|
||||
void printf_devconfig(setting_hardware::HGSCANCONF_3288 *d = NULL);
|
||||
int get_device_type(bool &type);
|
||||
int get_devs_distortion_check_val(float& data, int dpi, int dir);//获取设备畸变值 DPI=1、2、3; dir = 0,1;
|
||||
|
||||
setting3288dsp::HG_JpegCompressInfo frame_info_;
|
||||
///////////////////////7010专有协议,获取校正数据//////////////////////
|
||||
//inx:序号//
|
||||
//dpi:1--->200 2--->300 3--->600//
|
||||
//mode:0 灰度 1彩色
|
||||
int get_correction_image(int inx ,int dpi,int mode);
|
||||
private:
|
||||
std::vector<int> savestatus_;
|
||||
setting_hardware::HGSCANCONF_3288 dsp_config;
|
||||
Device::PaperSize papersize;
|
||||
bool is_devs_sleep_;
|
||||
|
||||
|
||||
int first_frame_total; //设置的帧数
|
||||
int last_frame_total; //实际采集的帧数
|
||||
|
||||
|
||||
std::vector<unsigned char> jpgdata_;
|
||||
int index_;
|
||||
|
||||
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_clear_roller_num(void) override; //清除滚轴计数
|
||||
virtual int set_clear_history_num(void) override; //清除历史张数 0303固件版本才支持
|
||||
|
||||
virtual int get_device_code(void); //获取设备编码 不支持
|
||||
|
||||
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_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_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锁定*/
|
||||
virtual int set_scan_lock_check_val(string str) override; //获取设备是否锁定 /*/ str:校验码*/
|
||||
virtual int set_firmware_upgrade(std::string str) override; //固件升级 /*/ str:文件名路径*/
|
||||
virtual int set_clean_paper_road() override; //清理纸道
|
||||
virtual int get_dev_islock_file(int& data) override; //获取设备文件 /*/ data:0 未上锁,1 上锁。-1 未发现黑名单列表 -2列表没有信息*/
|
||||
virtual int set_dev_islock_file(int data) override; //设置设备文件 /*/ data:0 未上锁,1 上锁*
|
||||
virtual int set_speed_mode(int data) override; //设置速度模式 /*/ data:40,50,60,70
|
||||
virtual int get_speed_mode(int& data)override; //获取速度模式 /*/ data:40,50,60,70
|
||||
virtual int set_devs_distortion_check_val(float data) override; //设置畸变矫正
|
||||
virtual int get_devs_distortion_check_val(float& data)override;//获取设备畸变值 float to int;
|
||||
virtual int set_auto_flat(int data)override; //设置自动平场校正
|
||||
// data:0(ALL) 1(200dpi、gray) 2(200dpi、color) 3(300dpi、gray) 4(300dpi、color) 5(600dpi、gray) 6(600dpi、color)
|
||||
virtual int set_updata0303(void)override;
|
||||
virtual int get_devs_cpu(string& cpu); //获取设备内存大小
|
||||
virtual int get_devs_disk(string& disk); //获取设备硬盘容量大小
|
||||
};
|
|
@ -16,6 +16,7 @@
|
|||
#include "hg_scanner_239.h"
|
||||
#include "hg_scanner_300.h"
|
||||
#include "hg_scanner_302.h"
|
||||
#include "hg_scanner_306.h"
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
@ -121,10 +122,11 @@ g_supporting_devices[] = {
|
|||
, {0x3072, PID_AND_NAME(400, SCANNER_NAME_HG_G400), "G400", "", &hg_scanner_mgr::create_scanner_g400}
|
||||
, {0x3072, PID_AND_NAME(402, SCANNER_NAME_HG_G400), "G400", "", &hg_scanner_mgr::create_scanner_g402}
|
||||
, {0x3072, PID_AND_NAME(439, SCANNER_NAME_HG_G400), "G400", "", &hg_scanner_mgr::create_scanner_g439}
|
||||
, {0x3072, PID_AND_NAME(306, SCANNER_NAME_HG_G300), "G300", "", &hg_scanner_mgr::create_scanner_g306}
|
||||
|
||||
, {0x064B, PID_AND_NAME(7823,SCANNER_NAME_HG_G300), "G300", "", &hg_scanner_mgr::create_scanner_g300}
|
||||
, {0x064B, PID_AND_NAME(7823,SCANNER_NAME_HG_G200), "G200", "", &hg_scanner_mgr::create_scanner_g100}
|
||||
, {0x064B, PID_AND_NAME(7823,SCANNER_NAME_HG_G400), "G400", "", &hg_scanner_mgr::create_scanner_g400}
|
||||
, {0x064B, PID_AND_NAME(7823,SCANNER_NAME_HG_G300), "G400", "", &hg_scanner_mgr::create_scanner_g400}
|
||||
#endif
|
||||
};
|
||||
bool islang = false;
|
||||
|
@ -348,6 +350,15 @@ hg_scanner* hg_scanner_mgr::create_scanner_g439(const char* name, usb_io* io, sc
|
|||
|
||||
return dynamic_cast<hg_scanner*>(s);
|
||||
}
|
||||
hg_scanner* hg_scanner_mgr::create_scanner_g306(const char* name, usb_io* io, scanner_handle* h)
|
||||
{
|
||||
hg_scanner_306* s = new hg_scanner_306(name, 0x306, io);
|
||||
|
||||
if (h)
|
||||
*h = s;
|
||||
|
||||
return dynamic_cast<hg_scanner*>(s);
|
||||
}
|
||||
void hg_scanner_mgr::usb_event_handle(usb_event ev, libusb_device* device, int vid, int pid, int usb_ver_h, int usb_ver_l, bool* retry, void* user) // usb_ver_h.usb_ver_l
|
||||
{
|
||||
hg_scanner_mgr* obj = (hg_scanner_mgr*)user;
|
||||
|
|
|
@ -120,6 +120,7 @@ public:
|
|||
static hg_scanner* create_scanner_g400(const char* name, usb_io* io, scanner_handle* h);
|
||||
static hg_scanner* create_scanner_g402(const char* name, usb_io* io, scanner_handle* h);
|
||||
static hg_scanner* create_scanner_g439(const char* name, usb_io* io, scanner_handle* h);
|
||||
static hg_scanner* create_scanner_g306(const char* name, usb_io* io, scanner_handle* h);
|
||||
|
||||
public:
|
||||
scanner_err hg_scanner_enum(ScannerInfo* scanner_list, long* count, bool local_only);
|
||||
|
|
Loading…
Reference in New Issue