2022-08-09 07:59:01 +00:00
|
|
|
|
#pragma once
|
2022-05-03 03:56:07 +00:00
|
|
|
|
|
|
|
|
|
// hg_scanner is the base class of kinds of scanners
|
|
|
|
|
//
|
|
|
|
|
// created on 2022-01-30
|
|
|
|
|
//
|
|
|
|
|
#include <memory>
|
|
|
|
|
#include <string>
|
|
|
|
|
#include <vector>
|
|
|
|
|
#include <algorithm>
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
|
|
#include "hg_scanner.h"
|
|
|
|
|
|
2022-11-16 10:20:10 +00:00
|
|
|
|
//#ifdef OEM_HANWANG
|
|
|
|
|
//#define hg_scanner_239 hw_scanner_239
|
|
|
|
|
//#elif defined(OEM_LISICHENG)
|
|
|
|
|
//#define hg_scanner_239 lsc_scanner_239
|
|
|
|
|
//#endif
|
2022-05-17 07:04:55 +00:00
|
|
|
|
|
2022-05-03 03:56:07 +00:00
|
|
|
|
class hg_scanner_239 : public hg_scanner
|
|
|
|
|
{
|
|
|
|
|
//BlockingQueue<std::shared_ptr<std::vector<unsigned char>>> final_imgs_; // JPG ...
|
|
|
|
|
// image_data final_imgs_; // JPG ..
|
2022-07-06 08:19:14 +00:00
|
|
|
|
|
2022-10-18 08:23:22 +00:00
|
|
|
|
setting_hardware::HGSCANCONF_3399 dev_conf_;
|
2022-05-03 03:56:07 +00:00
|
|
|
|
bool rewrite_conf_;
|
|
|
|
|
bool reset_;
|
2022-08-11 09:19:24 +00:00
|
|
|
|
bool is_start_status;
|
2022-05-03 03:56:07 +00:00
|
|
|
|
|
|
|
|
|
std::string control_fetch(int addr, int val, int size);
|
|
|
|
|
std::string get_fpga(void);
|
2022-11-11 09:59:08 +00:00
|
|
|
|
int get_scan_mode(void);
|
|
|
|
|
int get_status(void);
|
|
|
|
|
int get_image_count(void);
|
|
|
|
|
int get_front_data_size(void);
|
|
|
|
|
int read_register(int addr, int* val);
|
|
|
|
|
int write_register(int addr, int val);
|
|
|
|
|
int write_command(int cmd);
|
|
|
|
|
int writedown_device_configuration(setting_hardware::HGSCANCONF_3399* dev_conf = NULL);
|
|
|
|
|
int writedown_image_configuration(void);
|
|
|
|
|
int pop_first_image(void);
|
|
|
|
|
int read_one_image_from_usb(SANE_Image_Statu statu = SANE_Image_Statu_OK);
|
2022-05-03 03:56:07 +00:00
|
|
|
|
bool is_dev_image_process_done(void);
|
|
|
|
|
bool is_dev_image_keep_last_paper(void);
|
|
|
|
|
void discard_all_images(void);
|
2022-11-11 09:59:08 +00:00
|
|
|
|
void init_version(void
|
|
|
|
|
);
|
2022-05-03 03:56:07 +00:00
|
|
|
|
protected:
|
2022-11-11 09:59:08 +00:00
|
|
|
|
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);//照片模式或者文本模式
|
|
|
|
|
virtual int on_pick_paper(bool autostrength);
|
|
|
|
|
virtual int on_pick_paper_threshold(double threshold);
|
|
|
|
|
virtual int on_is_auto_paper(bool isautopaper);//待纸扫描
|
2022-05-03 03:56:07 +00:00
|
|
|
|
virtual void on_device_reconnected(void) override;
|
2022-10-31 06:37:44 +00:00
|
|
|
|
virtual int on_scanner_closing(bool force) override;
|
2022-05-03 03:56:07 +00:00
|
|
|
|
virtual void thread_handle_usb_read(void) override;
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
hg_scanner_239(const char* dev_name, int pid,usb_io* io);
|
|
|
|
|
~hg_scanner_239();
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
//virtual int get_image_info(IMG_PARAM* ii) override;
|
|
|
|
|
//virtual int read_image_data(unsigned char* buf, int* len) override;
|
2022-11-11 09:59:08 +00:00
|
|
|
|
virtual int start(void) override;
|
2022-05-03 03:56:07 +00:00
|
|
|
|
virtual int stop(void) override;
|
|
|
|
|
virtual int reset(void) override;
|
|
|
|
|
virtual int device_io_control(unsigned long code, void* data, unsigned* len) override;
|
2022-06-28 09:16:03 +00:00
|
|
|
|
|
2022-05-03 03:56:07 +00:00
|
|
|
|
public:
|
2022-11-11 09:59:08 +00:00
|
|
|
|
virtual std::string get_firmware_version(void);
|
|
|
|
|
virtual std::string get_serial_num(void);
|
|
|
|
|
virtual std::string get_ip(void);
|
|
|
|
|
virtual int set_leaflet_scan(void); //单张扫描
|
|
|
|
|
virtual int get_abuot_info(void); //获取软件关于信息 (基类实现)
|
|
|
|
|
virtual int restore_default_setting(void); //恢复默认设置 (基类实现)
|
2022-05-03 03:56:07 +00:00
|
|
|
|
virtual int set_final_image_format(SANE_FinalImgFormat* fmt); // 设置图像处理最终输出(final())的图像数据格式 (基类实现) ***
|
2022-11-11 09:59:08 +00:00
|
|
|
|
virtual int get_compression_format(void); //获取支持的压缩格式
|
|
|
|
|
virtual int get_roller_num(int &val); //获取滚轮张数
|
|
|
|
|
virtual int clear_roller_num(void); //清除滚轴计数
|
|
|
|
|
virtual int set_compression_format(void); //设置图像数据最终输出的压缩格式 ***功能不支持
|
|
|
|
|
virtual int set_auto_color_type(void); //设置自动匹配颜色模式 (基类实现) ***完成
|
|
|
|
|
virtual int get_device_code(void); //获取设备编码
|
|
|
|
|
virtual int get_sleep_time(int& getime); //获取功耗模式(休眠)
|
|
|
|
|
virtual int set_sleep_time(int setsleepime); //设置功耗模式(休眠)
|
|
|
|
|
virtual int get_dogear_distance(void); //获取折角检测最小距离阈值
|
|
|
|
|
virtual int set_dogear_distance(void); //设置折角检测最小距离阈值
|
2022-05-03 03:56:07 +00:00
|
|
|
|
virtual int get_scanner_paperon(SANE_Bool* paperon = NULL);//获取设备有无纸张
|
2022-11-11 09:59:08 +00:00
|
|
|
|
virtual int set_scan_when_paper_on(void); //获取是否为检测到进纸盘上有纸即开始扫描
|
|
|
|
|
virtual int get_scan_when_paper_on(void); //设置是否为检测到进纸盘上有纸即开始扫描
|
|
|
|
|
virtual int get_scan_with_hole(void); //获取是否为带孔扫描
|
|
|
|
|
virtual int set_scan_with_hole(void); //设置是否为带孔扫描
|
|
|
|
|
virtual int get_scan_is_sleep(int &status); //获取设备是否休眠当中
|
|
|
|
|
virtual int notify_sleep(void); //唤醒设备
|
|
|
|
|
virtual int get_history_roller_count(int &num); //获取历史扫描张数
|
|
|
|
|
virtual int get_device_log(string &get_device_log); //获取设备日志
|
|
|
|
|
virtual int set_devreboot(); //设置设备重启
|
|
|
|
|
virtual int set_devshtudown(); //设置设备关机
|
2022-10-28 03:01:01 +00:00
|
|
|
|
virtual int set_scan_islock(SANE_Bool set_islock);
|
2022-11-11 09:59:08 +00:00
|
|
|
|
virtual int get_scan_islock(SANE_Bool& islock);
|
2022-10-28 03:01:01 +00:00
|
|
|
|
virtual int set_scan_lock_check_val(string check_str);
|
2022-11-03 10:09:32 +00:00
|
|
|
|
virtual int firmware_upgrade(std::string filename);
|
2022-11-11 09:59:08 +00:00
|
|
|
|
virtual int clean_paper_road(); //清理纸道
|
2022-05-03 03:56:07 +00:00
|
|
|
|
};
|
2022-07-06 08:19:14 +00:00
|
|
|
|
|