增加获取滚轴寿命接口

This commit is contained in:
gb 2023-06-13 12:28:20 +08:00
parent 543a6307fb
commit dccd579342
12 changed files with 48 additions and 4 deletions

View File

@ -3978,6 +3978,10 @@ int hg_scanner::device_io_control(unsigned long code, void* data, unsigned* len)
} }
return SCANNER_ERR_DEVICE_NOT_SUPPORT; return SCANNER_ERR_DEVICE_NOT_SUPPORT;
} }
int hg_scanner::get_roller_life(void)
{
return 150000;
}
int hg_scanner::discard_all_images(void) int hg_scanner::discard_all_images(void)
{ {
return SCANNER_ERR_DEVICE_NOT_SUPPORT; return SCANNER_ERR_DEVICE_NOT_SUPPORT;

View File

@ -489,6 +489,8 @@ public:
virtual int reset(void); virtual int reset(void);
virtual int device_io_control(unsigned long code, void* data, unsigned* len); virtual int device_io_control(unsigned long code, void* data, unsigned* len);
virtual int discard_all_images(void) = 0; virtual int discard_all_images(void) = 0;
virtual int get_roller_life(void); // 获取滚轴最大寿命
public: public:
hg_scanner(ScannerSerial serial, const char* dev_name, usb_io* io,int pid); hg_scanner(ScannerSerial serial, const char* dev_name, usb_io* io,int pid);
virtual ~hg_scanner(); virtual ~hg_scanner();

View File

@ -130,6 +130,10 @@ int hg_scanner_200::discard_all_images(void)
discard_prev(); discard_prev();
return SCANNER_ERR_OK; return SCANNER_ERR_OK;
} }
int hg_scanner_200::get_roller_life(void)
{
return 450000;
}
void hg_scanner_200::thread_handle_usb_read(void) void hg_scanner_200::thread_handle_usb_read(void)
{ {
int ret = SCANNER_ERR_OK, int ret = SCANNER_ERR_OK,

View File

@ -26,6 +26,8 @@ protected:
virtual void thread_handle_usb_read(void) override; virtual void thread_handle_usb_read(void) override;
virtual int on_scanner_closing(bool force) override; virtual int on_scanner_closing(bool force) override;
virtual int discard_all_images(void) override; virtual int discard_all_images(void) override;
virtual int get_roller_life(void) override;
protected: protected:
virtual int on_color_mode_changed(int& color_mode) override; // COLOR_MODE_xxx 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_changed(int& paper) override; // PAPER_xxx

View File

@ -762,6 +762,10 @@ int hg_scanner_239::discard_all_images(void)
VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO, "prev-connection has left %d interrupt packet(s) && %d image(s).\n", pre_int, pre_img); VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO, "prev-connection has left %d interrupt packet(s) && %d image(s).\n", pre_int, pre_img);
return 0; return 0;
} }
int hg_scanner_239::get_roller_life(void)
{
return 450000;
}
int hg_scanner_239::on_color_mode_changed(int& color_mode) int hg_scanner_239::on_color_mode_changed(int& color_mode)
{ {

View File

@ -83,6 +83,7 @@ public:
virtual int stop(void) override; virtual int stop(void) override;
virtual int reset(void) override; virtual int reset(void) override;
virtual int device_io_control(unsigned long code, void* data, unsigned* len) override; virtual int device_io_control(unsigned long code, void* data, unsigned* len) override;
virtual int get_roller_life(void) override;
public: public:
//////////////固定的硬件信息设置或获取////////////// //////////////固定的硬件信息设置或获取//////////////

View File

@ -299,6 +299,10 @@ int hg_scanner_300::discard_all_images(void)
} }
return SCANNER_ERR_OK; return SCANNER_ERR_OK;
} }
int hg_scanner_300::get_roller_life(void)
{
return pid_ == 300 ? 150000 : 200000;
}
int hg_scanner_300::start(void) int hg_scanner_300::start(void)
{ {
bool handled = false; bool handled = false;

View File

@ -26,6 +26,8 @@ protected:
virtual int on_scanner_closing(bool force) override; virtual int on_scanner_closing(bool force) override;
virtual void thread_handle_usb_read(void) override; virtual void thread_handle_usb_read(void) override;
virtual int discard_all_images(void) override; virtual int discard_all_images(void) override;
virtual int get_roller_life(void) override;
protected: protected:
virtual int on_color_mode_changed(int& color_mode) override; //颜色切换 virtual int on_color_mode_changed(int& color_mode) override; //颜色切换
virtual int on_paper_changed(int& paper) override; //纸张大小设置 virtual int on_paper_changed(int& paper) override; //纸张大小设置

View File

@ -92,7 +92,7 @@ namespace settings302
{200.0f, 1}, {200.0f, 1},
{240.0f, 1}, {240.0f, 1},
{300.0f, 0}, {300.0f, 0},
{600.0f, 1} //临时版本发1 原来发2 {600.0f, 1} //临时版本å<EFBFBD>? 原æ<C5B8>¥å<C2A5>?
}; };
bool is_equal(float l, float r) bool is_equal(float l, float r)
{ {
@ -666,6 +666,10 @@ int hg_scanner_302::discard_all_images(void)
VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO, "prev-connection has left %d interrupt packet(s) && %d image(s).\n", pre_int, pre_img); VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO, "prev-connection has left %d interrupt packet(s) && %d image(s).\n", pre_int, pre_img);
return 0; return 0;
} }
int hg_scanner_302::get_roller_life(void)
{
return pid_ == 302 ? 150000 : 200000;
}
int hg_scanner_302::on_color_mode_changed(int& color_mode) int hg_scanner_302::on_color_mode_changed(int& color_mode)
{ {
@ -753,7 +757,7 @@ int hg_scanner_302::on_paper_check_changed(bool& check)
} }
int hg_scanner_302::on_resolution_changed(int& dpi) int hg_scanner_302::on_resolution_changed(int& dpi)
{ {
dev_conf_.params_3399.dpi = 1; //dpi 华凌cis和敦南cis 默认发1无需改变 dev_conf_.params_3399.dpi = 1; //dpi å<EFBFBD>Žå‡ŒcisåŒæ•¦å<EFBFBD>—cis 默认å<C2A4>?无需改å<C2B9>˜
int ret = writedown_device_configuration(); int ret = writedown_device_configuration();
return ret; return ret;
} }
@ -1267,7 +1271,7 @@ int hg_scanner_302::get_scan_is_sleep(SANE_Bool& type)
{ {
std::lock_guard<std::mutex> lock(io_lock_); std::lock_guard<std::mutex> lock(io_lock_);
int ret = 0, val; int ret = 0, val;
ret = read_register(setting3399::SR_GET_SLEEP_STAUTUS, &val); //0休眠 1唤醒状态 ret = read_register(setting3399::SR_GET_SLEEP_STAUTUS, &val); //0休眠 1唤é†çŠ¶æ€?
if (ret == SCANNER_ERR_OK) if (ret == SCANNER_ERR_OK)
{ {
type = val == 1 ? true : false; type = val == 1 ? true : false;

View File

@ -53,6 +53,8 @@ class hg_scanner_302 : public hg_scanner
int read_one_image_from_usb(SANE_Image_Statu statu = SANE_Image_Statu_OK); int read_one_image_from_usb(SANE_Image_Statu statu = SANE_Image_Statu_OK);
virtual int discard_all_images(); virtual int discard_all_images();
virtual int get_roller_life(void) override;
protected: protected:
virtual void on_device_reconnected(void) override; virtual void on_device_reconnected(void) override;
virtual int on_scanner_closing(bool force) override; virtual int on_scanner_closing(bool force) override;

View File

@ -380,7 +380,7 @@ void hg_scanner_mgr::on_hgscanner_pnp(usb_event ev, libusb_device* device, int v
size_t i = 0; size_t i = 0;
for (; i < online_devices_.size(); ++i) for (; i < online_devices_.size(); ++i)
{ {
if (online_devices_[i].dev == device) // 此处假定同一台设备重新连接后设备对象“device”保持不变如果假设不成立会导致设备重连消息不能正常接收绑定到该设备的scanner对象得不到释放 if (online_devices_[i].dev == device) // 此处å<EFBFBD>‡å®šå<EFBFBD>Œä¸€å<EFBFBD>°è®¾å¤‡é‡<EFBFBD>æ°è¿žæŽ¥å<EFBFBD>Žï¼Œè®¾å¤‡å¯¹è±¡â€œdeviceâ€<EFBFBD>ä¿<EFBFBD>æŒ<EFBFBD>ä¸<EFBFBD>å<EFBFBD>˜ï¼å¦æžœå<EFBFBD>‡è®¾ä¸<EFBFBD>æˆ<EFBFBD>ç«ï¼Œä¼šå¯¼è‡´è®¾å¤‡é‡<EFBFBD>连消æ<EFBFBD>¯ä¸<EFBFBD>能正常接收,ç»å®šåˆ°è¯¥è®¾å¤‡çš„scanner对象得ä¸<EFBFBD>到释æ”?
{ {
online_devices_[i].ind = index; online_devices_[i].ind = index;
add = false; add = false;
@ -895,6 +895,20 @@ scanner_err hg_scanner_mgr::hg_scanner_get_parameter(scanner_handle h, const cha
if (strcmp(SANE_STD_OPT_NAME_LOGIN, name) == 0 || if (strcmp(SANE_STD_OPT_NAME_LOGIN, name) == 0 ||
strcmp(SANE_STD_OPT_NAME_LOGOUT, name) == 0) strcmp(SANE_STD_OPT_NAME_LOGOUT, name) == 0)
return SCANNER_ERR_DEVICE_NOT_SUPPORT; return SCANNER_ERR_DEVICE_NOT_SUPPORT;
if (strcmp(SANE_STD_OPT_NAME_ROLLER_LIFE, name) == 0)
{
if (*len < sizeof(SANE_Int))
{
*len = sizeof(SANE_Int);
return SCANNER_ERR_INSUFFICIENT_MEMORY;
}
*(SANE_Int*)data = SCAN_PTR(h)->get_roller_life();
return SCANNER_ERR_OK;
}
} }
int l = *len, int l = *len,

View File

@ -393,6 +393,7 @@ namespace local_utility
FIX_ID_TO_NAME(FIRMWARE_VERSION, 255); FIX_ID_TO_NAME(FIRMWARE_VERSION, 255);
FIX_ID_TO_NAME(DEVICE_IP_ADDR, 255); FIX_ID_TO_NAME(DEVICE_IP_ADDR, 255);
FIX_ID_TO_NAME(DEVICE_MAC_ADDR, 255); FIX_ID_TO_NAME(DEVICE_MAC_ADDR, 255);
FIX_ID_TO_NAME(ROLLER_LIFE, sizeof(SANE_Int));
FIX_ID_TO_NAME(CUSTOM_GAMMA, sizeof(SANE_Gamma)); FIX_ID_TO_NAME(CUSTOM_GAMMA, sizeof(SANE_Gamma));