code_device/hgdriver/hgdev/hg_scanner_239.h

116 lines
5.2 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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 <stdio.h>
#include "hg_scanner.h"
//#ifdef OEM_HANWANG
//#define hg_scanner_239 hw_scanner_239
//#elif defined(OEM_LISICHENG)
//#define hg_scanner_239 lsc_scanner_239
//#endif
class hg_scanner_239 : public hg_scanner
{
//BlockingQueue<std::shared_ptr<std::vector<unsigned char>>> final_imgs_; // JPG ...
// image_data final_imgs_; // JPG ..
setting_hardware::HGSCANCONF_3399 dev_conf_;
bool rewrite_conf_;
bool reset_;
bool is_start_status;
std::string control_fetch(int addr, int val, int size);
std::string get_fpga(void);
int get_scan_mode(int &v);
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(bool type = false, setting_hardware::HGSCANCONF_3399* dev_conf = NULL);//false 在start再把type置为true,其他做设置时不发
int writedown_image_configuration(void);
int pop_first_image(void);
int read_one_image_from_usb(SANE_Image_Statu statu = SANE_Image_Statu_OK);
bool is_dev_image_process_done(void);
bool is_dev_image_keep_last_paper(void);
void discard_all_images(void);
void init_version(void
);
protected:
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);//待纸扫描
virtual void on_device_reconnected(void) override;
virtual int on_scanner_closing(bool force) override;
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;
virtual int start(void) override;
virtual int stop(void) override;
virtual int reset(void) override;
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 int set_leaflet_scan(void); //单张扫描
virtual int get_abuot_info(void); //获取软件关于信息 (基类实现)
virtual int restore_default_setting(void); //恢复默认设置 (基类实现)
virtual int set_final_image_format(SANE_FinalImgFormat* fmt); // 设置图像处理最终输出final())的图像数据格式 (基类实现) ***
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); //设置折角检测最小距离阈值
virtual int get_scanner_paperon(SANE_Bool* paperon);//获取设备有无纸张
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(); //设置设备关机
virtual int set_scan_islock(SANE_Bool set_islock);
virtual int get_scan_islock(SANE_Bool& islock);
virtual int set_scan_lock_check_val(string check_str);
virtual int firmware_upgrade(std::string filename);
virtual int clean_paper_road(); //清理纸道
};