code_device/hgdriver/hgdev/hg_scanner_200.h

118 lines
5.9 KiB
C++
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 "hg_scanner.h"
#include "../wrapper/hg_log.h"
//#ifdef OEM_HANWANG
//#define hg_scanner_200 hw_scanner_200
//#elif defined(OEM_LISICHENG)
//#define hg_scanner_200 lsc_scanner_200
//#endif
class hg_scanner_200 : public hg_scanner
{
void discard_prev(void);
protected:
virtual void thread_handle_usb_read(void) override;
virtual int on_scanner_closing(bool force) 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; // 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; //获å<C2B7>分纸强度
virtual int on_set_feedmode(int feedmode) override; //设置分纸强度
virtual int on_pic_type(bool& pic) override; //照片模å¼<C3A5>æˆè€…æ‡æœ¬æ¨¡å¼?
virtual int on_pick_paper(bool autostrength)override; //设置æ<C2AE>“纸使能
virtual int on_pick_paper_threshold(double threshold) override; //设置æ<C2AE>“纸阈å€?
virtual int on_is_auto_paper(bool isautopaper) override; //待纸扫æ<C2AB><C3A6>
virtual int on_cis_get_image(bool isautopaper) override; //获å<C2B7>cis原å¾
virtual int on_process_double_paper(bool type) override; //å<>Œå¼ å¾åƒ<C3A5>校验
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(bool from_user = false)override;
private:
int initdevice();
int writeusb(USBCB &usb);
int readusb(USBCB &usb);
int pop_image();
int get_scanner_status(USBCB &usb);
int get_img_data(unsigned int bytes, SANE_Image_Statu statu = IMG_STATUS_OK);
int writedown_device_configuration(bool type =false,setting_hardware::HGSCANCONF_DSP *d = NULL);
void writedown_image_configuration(void);
void printf_devconfig(setting_hardware::HGSCANCONF_DSP *d = NULL);
setting_hardware::HGSCANCONF_DSP dsp_config_;
int agreement();
public:
//////////////åºå®šçš„硬件信æ<C2A1>¯è®¾ç½®æˆèŽ·å<C2B7>//////////////
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; //设置åº<C3A5>列å<E28094>?
virtual int set_vid_pid(int data) override; //设置vidpid
virtual int get_vid_pid(int& data)override; //获å<C2B7>vidpid
/////////////////æˆ<C3A6>功返åž:SCANNER_ERR_OK /////////////
/////////////////失败返回:IO错误� /////////////
virtual int set_leaflet_scan(void) override; //å<>•å¼ æ‰«æ<C2AB><C3A6>
virtual int set_clear_roller_num(void) override; //清除滚轴计数
virtual int set_clear_history_num(void) override; //清除历å<E280A0>²å¼ æ•°
virtual int get_device_code(void); //获å<C2B7>设备ç¼ç <C3A7> ä¸<C3A4>支æŒ?
virtual int get_scanner_paperon(SANE_Bool& type) override; //获å<C2B7>设备有无纸张 /*/ type : 0无纸 1有纸 */
virtual int get_scan_is_sleep(SANE_Bool& type) override; //获å<C2B7>设备是å<C2AF>¦ä¼çœ å½“中 /*/ type : 0ä¼çœ  1唤é†çŠ¶æ€?/
virtual int get_sleep_time(int& data) override; //获å<C2B7>功耗模å¼<C3A5>(ä¼çœ ï¼? /*/ data > 0*/
virtual int set_sleep_time(int data) override; //设置功耗模å¼<C3A5>(ä¼çœ ï¼? /*/ data > 0*/
virtual int get_history_scan_count(int& data) override; //获å<C2B7>历å<E280A0>²æ‰«æ<C2AB><C3A6>å¼ æ•° /*/ data > 0*/
virtual int get_roller_num(int& data) override; //获å<C2B7>滚轮张数 /*/ data > 0*/
virtual int set_notify_sleep(void) override; //唤醒设备
virtual int get_device_log(string& log) override; //获å<C2B7>设备日志 /*/ log :储存路径*/
virtual int set_devreboot(int data) override; //设置设备é‡<C3A9>å<EFBFBD>¯
virtual int set_devshtudown() override; //设置设备关机
virtual int set_scan_islock(SANE_Bool type) override; //设置设备是å<C2AF>¦é”<C3A9>定 /*/ type:0解é”<C3A9>ï¼?é”<C3A9>定*/
virtual int get_scan_islock(SANE_Bool& type) override; //获å<C2B7>设备是å<C2AF>¦é”<C3A9>定 /*/ type:0解é”<C3A9>ï¼?é”<C3A9>定*/
virtual int set_scan_lock_check_val(string str) override; //获å<C2B7>设备是å<C2AF>¦é”<C3A9>定 /*/ str:校验ç ?/
virtual int set_firmware_upgrade(std::string str) override; //åºä»¶å<C2B6>‡çº§ /*/ str:æ‡ä»¶å<C2B6><C3A5>è·¯å¾?/
virtual int set_clean_paper_road() override; //清ç<E280A6>†çº¸é<C2B8>
virtual int get_dev_islock_file(int& data) override; //获å<C2B7>设备æ‡ä»¶ /*/ data:0 未上é”<C3A9>,1 上é”<C3A9>ã€?1 未å<C2AA>现é»å<E28098><C3A5>å<EFBFBD>•åˆ—表 -2列表没有信æ<C2A1>¯*/
virtual int set_dev_islock_file(int data) override; //设置设备文件 /*/ data:0 未上é”<C3A9>,1 上é”<C3A9>*/
virtual int set_speed_mode(int data) override; //设置速度模å¼<C3A5> /*/ ä¸<C3A4>支æŒ?
virtual int get_speed_mode(int &data) override; //设置速度模å¼<C3A5> /*/ ä¸<C3A4>支æŒ?
virtual int set_devs_distortion_check_val(float data) override; //设置畸å<C2B8>˜çŸ«æ­£
virtual int get_devs_distortion_check_val(float& data) override; //获å<C2B7>设备畸å<C2B8>˜å€?
virtual int set_auto_flat(int data); //设置自动平场校正
// data:0(ALL) 1(200dpiã€<C3A3>gray) 2(200dpiã€<C3A3>color) 3(300dpiã€<C3A3>gray) 4(300dpiã€<C3A3>color) 5(600dpiã€<C3A3>gray) 6(600dpiã€<C3A3>color)
};