From 7d48f1193524fc8eead0e6762edb79ec5b1747b5 Mon Sep 17 00:00:00 2001 From: 13038267101 Date: Tue, 24 Oct 2023 14:38:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4G300=20=E4=B8=8A=E9=9D=A2?= =?UTF-8?q?=E7=9A=847010=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hgdriver/hgdev/hg_scanner_300.cpp | 155 ++++-------------------------- hgdriver/hgdev/hg_scanner_300.h | 12 +-- hgdriver/hgdev/hg_scanner_306.cpp | 2 +- 3 files changed, 23 insertions(+), 146 deletions(-) diff --git a/hgdriver/hgdev/hg_scanner_300.cpp b/hgdriver/hgdev/hg_scanner_300.cpp index 6b50b0b..25dbcb1 100644 --- a/hgdriver/hgdev/hg_scanner_300.cpp +++ b/hgdriver/hgdev/hg_scanner_300.cpp @@ -81,45 +81,26 @@ hg_scanner_300::hg_scanner_300(const char* dev_name,int pid, usb_io* io) : hg_scanner(G100Serial, dev_name, io,pid) ,papersize(pid) ,is_devs_sleep_(false) - ,index_ (0) - , first_frame_total(0) - , last_frame_total(0) { dsp_config.value = 0; dsp_config.params_3288.enableLed = 1; //默认值 dsp_config.params_3288.isCorrect = 1; - int ret = get_device_type(firmware_sup_device_7010); - if (firmware_sup_device_7010 && ret == SCANNER_ERR_OK) - { - set_kernelsnap_ver(); - get_correction_image(0, 1, 1); - get_correction_image(1, 1, 0); - get_correction_image(2, 2, 1); - get_correction_image(3, 2, 0); - get_correction_image(4, 3, 1); - get_correction_image(5, 3, 0); - firmware_sup_morr_ = true; - } - else - { - initdevice(); + initdevice(); - std::string fv(get_firmware_version()), - sn(get_serial_num()); - if (fv.empty() || sn.empty()) - return; + std::string fv(get_firmware_version()), + sn(get_serial_num()); + if (fv.empty() || sn.empty()) + return; - string dev = fv.substr(0, 2); - string ver = fv.substr(2, 3); - string date = fv.substr(5, 5); - string year = fv.substr(4, 2); - string devType; - string year_date = fv.substr(4, 6); - - firmware_sup_morr_ = year_date.compare("230724") >= 0 ? true : false; - } + string dev = fv.substr(0, 2); + string ver = fv.substr(2, 3); + string date = fv.substr(5, 5); + string year = fv.substr(4, 2); + string devType; + string year_date = fv.substr(4, 6); + firmware_sup_morr_ = year_date.compare("230724") >= 0 ? true : false; #ifndef MAPPING_FUNCTION_IN_BASE init_setting_map(setting_map_, ARRAY_SIZE(setting_map_));//优先初始化 @@ -271,18 +252,6 @@ void hg_scanner_300::thread_handle_usb_read(void) } if (ret == SCANNER_ERR_OK && usb.u32_Count > 0) { - - if (firmware_sup_device_7010) - { - ret = get_img_data_7010(); - sw.reset(); - if (ret != SCANNER_ERR_OK) - { - status_ = ret; - break; - } - continue; - } int totalNum = usb.u32_Count & 0x3fffffff; // 2022-08-04: 兼容Android,默认图片大小均在1GB以内 VLOG_MINI_2(LOG_LEVEL_WARNING, "Get Scaner Image Size:%d bytes,Image Num[%d]\n", totalNum,img_num); img_num++; @@ -516,14 +485,14 @@ int hg_scanner_300::get_scanner_status(USBCB &usb) scanner_err code = settingsdsp_300::device_status_to_hg_err(usb.u32_Data); return code ; } -int hg_scanner_300::get_img_data(std::shared_ptr &imagedata) -{ - int total = imagedata->size(), - ret = SCANNER_ERR_OK, - index = 0, - block = total; - - USBCB usb{ setting3288dsp::GET_IMAGE, 0, total}; +int hg_scanner_300::get_img_data(std::shared_ptr& imagedata) +{ + int total = imagedata->size(), + ret = SCANNER_ERR_OK, + index = 0, + block = total; + + USBCB usb{ setting3288dsp::GET_IMAGE, 0, total }; { std::lock_guard lock(io_lock_); ret = writeusb(usb); @@ -580,75 +549,10 @@ int hg_scanner_300::get_img_data(std::shared_ptr &imagedata) str = str + '-' + STATU_DESC_SCANNER_ERR_DEVICE_STOPPED; notify_ui_working_status(str.c_str(), SANE_EVENT_ERROR, ret); } - + return status_ = ret; } -static int k = 0; -int hg_scanner_300::get_img_data_7010() -{ - int ret = SCANNER_ERR_OK; - USBCB usb{ setting3288dsp::GET_IMAGE, 0, 0 }; - { - std::lock_guard lock(io_lock_); - ret = writeusb(usb); - - io_->set_timeout(800); - setting3288dsp::HG_JpegCompressInfo info; - StopWatch sw; - sw.reset(); - int len = sizeof(int) * 8; - ret = io_->read_bulk(&info, &len); - - int val = info.DataLength; - int width = info.width; - int hegiht = info.height; - - - //cv::Mat mat1 = cv::Mat(hegiht, width, CV_8UC1, jpgdata.data(), cv::Mat::AUTO_STEP); - //static int cnt = 0; - - if (info.first_frame) - { - first_frame_total = info.index_frame; - jpgdata_.clear(); - jpgdata_.resize(width * hegiht * first_frame_total); - - index_ = 0; - } - - ret = io_->read_bulk(&jpgdata_[index_], &val); - index_ += val; - - if (info.last_frame) - { - - //return 0; - last_frame_total = info.index_frame; - - int frame_ind = first_frame_total - last_frame_total; - - mat_width = width; - mat_height = (hegiht * first_frame_total) - (hegiht * frame_ind); - std::shared_ptr image_data_(aquire_memory(mat_width * mat_height)); - - unsigned int size1 = mat_height; - void* l = image_data_->data(0, &size1); - memcpy(l, jpgdata_.data(), mat_width * mat_height); - - //cv::Mat mat = cv::Mat(hegiht * first_frame_total, width, CV_8UC1, jpgdata_.data(), cv::Mat::AUTO_STEP); - //cv::imwrite("C://image//get_img_data_7010" + to_string(k) + ".jpg", mat); - k++; - ret = save_usb_data(image_data_); - index_ = 0; - - std::vector().swap(jpgdata_); //回收空间 clear只能清空元素 - - } - float v = sw.elapsed_ms(); - return ret; - } -} int hg_scanner_300::writedown_device_configuration(bool type,setting_hardware::HGSCANCONF_3288 *d) { if (!type) @@ -931,23 +835,6 @@ void hg_scanner_300::printf_devconfig(setting_hardware::HGSCANCONF_3288 *d) VLOG_MINI_1(LOG_LEVEL_DEBUG_INFO,"dsp_config.params_3288.value:%d\r\n",d->value); } -int hg_scanner_300::get_device_type(bool &type) -{ - int ret = SCANNER_ERR_OK; - - USBCB cmd = { setting3288dsp::DEVICES_7010,0,0, }; - { - std::lock_guard lock(io_lock_); - ret = writeusb(cmd); - if (ret == SCANNER_ERR_OK) - ret = readusb(cmd); - - if (ret) - return ret; - type = cmd.u32_Data; - } - return ret; -} int hg_scanner_300::get_devs_distortion_check_val(float& data, int dpi, int dir) { diff --git a/hgdriver/hgdev/hg_scanner_300.h b/hgdriver/hgdev/hg_scanner_300.h index 5b879a9..621a8a2 100644 --- a/hgdriver/hgdev/hg_scanner_300.h +++ b/hgdriver/hgdev/hg_scanner_300.h @@ -61,14 +61,11 @@ private: int pop_image(void); int get_scanner_status(USBCB &usb); int get_img_data(std::shared_ptr &imagedata); - int get_img_data_7010(); int writedown_device_configuration(bool type =false,setting_hardware::HGSCANCONF_3288 *d = NULL); void writedown_image_configuration(void); void printf_devconfig(setting_hardware::HGSCANCONF_3288 *d = NULL); - int get_device_type(bool &type); int get_devs_distortion_check_val(float& data, int dpi, int dir);//获取设备畸变值 DPI=1、2、3; dir = 0,1; - setting3288dsp::HG_JpegCompressInfo frame_info_; ///////////////////////7010专有协议,获取校正数据////////////////////// //inx:序号// //dpi:1--->200 2--->300 3--->600// @@ -79,14 +76,7 @@ private: setting_hardware::HGSCANCONF_3288 dsp_config; Device::PaperSize papersize; bool is_devs_sleep_; - - - int first_frame_total; //设置的帧数 - int last_frame_total; //实际采集的帧数 - - - std::vector jpgdata_; - int index_; +; public: //////////////固定的硬件信息设置或获取////////////// diff --git a/hgdriver/hgdev/hg_scanner_306.cpp b/hgdriver/hgdev/hg_scanner_306.cpp index 8a3c231..3af4fab 100644 --- a/hgdriver/hgdev/hg_scanner_306.cpp +++ b/hgdriver/hgdev/hg_scanner_306.cpp @@ -103,7 +103,7 @@ hg_scanner_306::hg_scanner_306(const char* dev_name,int pid, usb_io* io) : if (init_settings(pid_)) init_settings((jsontext1 + jsontext2 + jsontext3).c_str()); - set_firmware_upgrade("C:\\Users\\modehua\\Desktop\\updata.zip"); + //set_firmware_upgrade("C:\\Users\\modehua\\Desktop\\updata.zip"); } hg_scanner_306::~hg_scanner_306()