调整 因为G306 app导致 取图效率变低

This commit is contained in:
13038267101 2024-01-02 13:48:43 +08:00
parent 0d2c7d79f7
commit e7608d308d
2 changed files with 97 additions and 2 deletions

View File

@ -256,7 +256,7 @@ void hg_scanner_306::thread_handle_usb_read(void)
break;
}
}
this_thread::sleep_for(chrono::milliseconds(10));
//this_thread::sleep_for(chrono::milliseconds(10));
if (SCANNER_ERR_DEVICE_NOT_FOUND == ret)
{
@ -538,6 +538,99 @@ int hg_scanner_306::get_img_data_7010()
return ret;
}
}
int hg_scanner_306::get_img_data_7010_test()
{
int ret = SCANNER_ERR_OK;
USBCB usb{ setting3288dsp::GET_IMAGE, 0, 0 };
{
setting3288dsp::HG_JpegCompressInfo info;
StopWatch sw;
{
std::lock_guard<std::mutex> lock(io_lock_);
ret = writeusb(usb);
io_->set_timeout(1000);
sw.reset();
int len = sizeof(info);
ret = io_->read_bulk(&info, &len);
//if (info.first_frame)
//{
// frame_length_ = info.DataLength;
// frame_width_ = info.width;
// frame_hegiht_ = info.height;
// first_frame_total_ = info.index_frame;
// jpgdata_.clear();
// jpgdata_.resize(frame_width_ * frame_hegiht_ * first_frame_total_);
// index_ = 0;
//}
if (info.last_frame)
{
//return 0;
std::vector<unsigned char> data_;
data_.resize(frame_length_);
ret = io_->read_bulk(&data_[0], &frame_length_);
}
else
{
frame_length_ = info.DataLength;
std::vector<unsigned char> data_;
data_.resize(frame_length_);
ret = io_->read_bulk(&data_[0], &frame_length_);
//i++;
//cv::ImreadModes rmc = cv::IMREAD_GRAYSCALE;
//cv::Mat mat = cv::imdecode(data_, rmc);//color BGR
//JpegDecode_.Put(mat,mat.cols * mat.rows);
//cv::imwrite("C:\\image\\imdecode" + std::to_string(i) + ".jpg", mat);
}
}
if (info.last_frame)
{
//return 0;
if (info.error_code)
{
std::vector<unsigned char>().swap(jpgdata_); //回收空间 clear只能清空元素
return 0;
}
//if (true)
//{
// cv::ImreadModes rmc = cv::IMREAD_GRAYSCALE;
// cv::Mat mat = cv::imdecode(jpgdata_, rmc);//color BGR
// cv::imwrite("C:\\image\\imdecode" + std::to_string(1) + ".jpg", mat);
//}
return 0;
int frame_ind = first_frame_total_ - last_frame_total_;
if (frame_ind < 0)
{
frame_ind = 0;
}
mat_width = frame_width_;
mat_height = (frame_hegiht_ * first_frame_total_) - (frame_hegiht_ * frame_ind);
std::shared_ptr<tiny_buffer> 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);
ret = save_usb_data(image_data_);
index_ = 0;
std::vector<unsigned char>().swap(jpgdata_); //回收空间 clear只能清空元素
}
float v = sw.elapsed_ms();
return ret;
}
}
int hg_scanner_306::writedown_device_configuration(bool type,setting_hardware::HGSCANCONF_7010 *d)
{
if (!type)
@ -576,7 +669,7 @@ int hg_scanner_306::writedown_device_configuration(bool type,setting_hardware::H
VLOG_MINI_1(LOG_LEVEL_WARNING, "writedown_device_configuration is_quality_ is .(%d)\n", is_quality_)
d->params_7010.dpi = 1;
}
if (image_prc_param_.bits.remove_morr && firmware_sup_morr_)
if (image_prc_param_.bits.remove_morr && firmware_sup_morr_ && resolution_ < 600)
{
d->params_7010.moire = true;
}

View File

@ -71,6 +71,8 @@ private:
/* 注意事项3:7010最后一帧主要作用是反馈当前纸张问题状态码 error_code */
/************************************************************************/
int get_img_data_7010();
int get_img_data_7010_test();
/*********************获取校正数据***************/
/* inx:序号 */
/* dpi:1--->200dpi 2--->300dpi 3--->600dpi */