118 lines
5.9 KiB
C++
118 lines
5.9 KiB
C++
#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)
|
||
|
||
};
|