2022-05-03 03:56:07 +00:00
|
|
|
|
#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"
|
2022-05-30 03:04:26 +00:00
|
|
|
|
#include "../wrapper/hg_log.h"
|
2022-05-03 03:56:07 +00:00
|
|
|
|
|
2022-11-16 10:20:10 +00:00
|
|
|
|
//#ifdef OEM_HANWANG
|
|
|
|
|
//#define hg_scanner_200 hw_scanner_200
|
|
|
|
|
//#elif defined(OEM_LISICHENG)
|
|
|
|
|
//#define hg_scanner_200 lsc_scanner_200
|
|
|
|
|
//#endif
|
2022-05-17 07:04:55 +00:00
|
|
|
|
|
2022-05-03 03:56:07 +00:00
|
|
|
|
|
|
|
|
|
class hg_scanner_200 : public hg_scanner
|
|
|
|
|
{
|
|
|
|
|
void discard_prev(void);
|
|
|
|
|
protected:
|
|
|
|
|
virtual void thread_handle_usb_read(void) override;
|
2022-12-28 01:56:54 +00:00
|
|
|
|
virtual int on_scanner_closing(bool force) override;
|
|
|
|
|
protected:
|
|
|
|
|
virtual int on_color_mode_changed(int& color_mode) override; // COLOR_MODE_xxx
|
|
|
|
|
virtual int on_paper_changed(int& paper) override; // PAPER_xxx
|
|
|
|
|
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原图
|
2022-05-03 03:56:07 +00:00
|
|
|
|
public:
|
|
|
|
|
hg_scanner_200(const char* dev_name,int vid, usb_io* io);
|
|
|
|
|
~hg_scanner_200();
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
virtual int start(void)override;
|
|
|
|
|
virtual int stop(void)override;
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
int initdevice();
|
|
|
|
|
int writeusb(USBCB &usb);
|
2022-05-06 07:15:18 +00:00
|
|
|
|
int readusb(USBCB &usb);
|
2022-05-03 03:56:07 +00:00
|
|
|
|
int pop_image();
|
2022-05-06 07:15:18 +00:00
|
|
|
|
int get_scanner_status(USBCB &usb);
|
2022-07-23 05:42:34 +00:00
|
|
|
|
int get_img_data(unsigned int bytes, SANE_Image_Statu statu = SANE_Image_Statu_OK);
|
2022-10-18 08:23:22 +00:00
|
|
|
|
int writedown_device_configuration(bool type =false,setting_hardware::HGSCANCONF_DSP *d = NULL);
|
2022-05-03 03:56:07 +00:00
|
|
|
|
void writedown_image_configuration(void);
|
2022-10-18 08:23:22 +00:00
|
|
|
|
void printf_devconfig(setting_hardware::HGSCANCONF_DSP *d = NULL);
|
2022-12-22 10:37:53 +00:00
|
|
|
|
|
2022-10-18 08:23:22 +00:00
|
|
|
|
setting_hardware::HGSCANCONF_DSP dsp_config_;
|
2022-05-03 03:56:07 +00:00
|
|
|
|
int agreement();
|
|
|
|
|
|
|
|
|
|
public:
|
2022-12-22 10:37:53 +00:00
|
|
|
|
virtual std::string get_firmware_version(void);
|
|
|
|
|
virtual std::string get_serial_num(void);
|
|
|
|
|
virtual std::string get_ip(void);
|
2022-05-13 08:39:21 +00:00
|
|
|
|
|
2022-12-22 10:37:53 +00:00
|
|
|
|
/////////////////成功返回:SCANNER_ERR_OK /////////////
|
|
|
|
|
/////////////////失败返回:IO错误码 /////////////
|
|
|
|
|
virtual int set_leaflet_scan(void) override; //单张扫描
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
virtual int set_clear_roller_num(void) override; //清除滚轴计数
|
|
|
|
|
|
|
|
|
|
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*/
|
2022-12-29 10:05:59 +00:00
|
|
|
|
virtual int get_history_scan_count(int& data) override; //获取历史扫描张数 /*/ data > 0*/
|
2022-12-22 10:37:53 +00:00
|
|
|
|
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 :储存路径*/
|
2022-12-28 01:56:54 +00:00
|
|
|
|
virtual int set_devreboot(int data) override; //设置设备重启
|
2022-12-22 10:37:53 +00:00
|
|
|
|
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 上锁*/
|
2022-12-28 01:56:54 +00:00
|
|
|
|
virtual int set_speed_mode(int data) override; //设置速度模式 /*/ 不支持
|
2022-12-29 10:05:59 +00:00
|
|
|
|
virtual int get_speed_mode(int &data) override; //设置速度模式 /*/ 不支持
|
2022-12-28 01:56:54 +00:00
|
|
|
|
virtual int set_dpi_color_check_val(void) override; //设置畸变矫正
|
2022-05-03 03:56:07 +00:00
|
|
|
|
};
|