解决计算畸变值失败的问题

This commit is contained in:
yangjiaxuan 2023-12-21 14:54:03 +08:00
parent 6f8ff90ba8
commit cf0adb0d45
3 changed files with 24 additions and 12 deletions

View File

@ -342,14 +342,28 @@ int MainWindow::sane_ex_callback(SANE_Handle hdev, int code, void *data, unsigne
SANE_Device* sane_dev = (SANE_Device*)data;
emit p->sane_dev_remove(sane_dev->name);
}
if (code == SANE_EVENT_IMAGE_OK || code == SANE_EVENT_SCAN_FINISHED || code == SANE_EVENT_ERROR || code == SANE_EVENT_STATUS)
else if (SANE_EVENT_IMAGE_OK == code)
{
if (p->m_loginType != Dialog_logIn::LogInType_Burn)
{
Form_mainInterface* mainInterface = p->FindInterface(hdev);
if (nullptr != mainInterface)
{
if (nullptr != mainInterface->getScanner() && nullptr != mainInterface->getScanner()->cb_)
mainInterface->getScanner()->cb_(hdev, code, data, len, mainInterface->getScanner());
}
}
}
else if (code == SANE_EVENT_SCAN_FINISHED || code == SANE_EVENT_ERROR || code == SANE_EVENT_STATUS)
{
SaneParams *saneParams = new SaneParams;
saneParams->hdev = hdev;
saneParams->code = code;
saneParams->data = data;
saneParams->len = len;
char *content = new char[strlen((char*)data) + 1];
memcpy(content, data, strlen((char*)data) + 1);
saneParams->data = content;
saneParams->len = *len;
emit p->sane_create_interface(saneParams);
}
@ -511,11 +525,12 @@ void MainWindow::on_sane_create_interface(SaneParams *saneParams)
{
if (nullptr != mainInterface->getScanner() && nullptr != mainInterface->getScanner()->cb_)
{
mainInterface->getScanner()->cb_(saneParams->hdev, saneParams->code, saneParams->data, saneParams->len, mainInterface->getScanner());
mainInterface->getScanner()->cb_(saneParams->hdev, saneParams->code, saneParams->data, &saneParams->len, mainInterface->getScanner());
}
}
}
delete[] (char*)saneParams->data;
delete saneParams;
saneParams = nullptr;
}

View File

@ -52,7 +52,7 @@ private:
SANE_Handle hdev;
int code;
void *data;
unsigned int *len;
unsigned int len;
};
signals:

View File

@ -388,16 +388,15 @@ public:
wcscpy(buf, L"平场校正失败, 原因--->");
}
}
else if (wcscmp(set_test_name_.c_str(), HGPDTTOOLDB_NAME_GET_DISTORTION_VAL) == 0 || wcscmp(set_test_name_.c_str(), HGPDTTOOLDB_NAME_CONFIRM_DISTORTION_VAL) == 0)
else if (wcscmp(set_test_name_.c_str(), HGPDTTOOLDB_NAME_GET_DISTORTION_VAL) == 0 || wcscmp(set_test_name_.c_str(), HGPDTTOOLDB_NAME_CONFIRM_DISTORTION_VAL) == 0)
{
if (strcmp((char*)data, STATU_DESC_SCAN_STOPPED) != 0 || strcmp((char*)data, STATU_DESC_SCANNER_ERR_DEVICE_DISTORTION) == 0)
{
type = false;
is_distortion_get_image = false;
is_distortion_get_image_abnormal = true;
wcscpy(buf, L"畸变修正值获取失败,原因--->");
}
}
else
{
is_distortion_get_image = true;
@ -405,8 +404,6 @@ public:
//wcscpy(buf, L"畸变修正值获取完成:");
break;
}
//break;
//ret = h->io_control(IO_CTRL_CODE_GET_DPI_COLOR_CHECK_VAL, &close, &closelen);//结束恢复默认
}
else if (wcscmp(set_test_name_.c_str(), HGPDTTOOLDB_NAME_IMAGE_COLOR_QUALITY) == 0
|| wcscmp(set_test_name_.c_str(), HGPDTTOOLDB_NAME_IMAGE_GRAY_QUALITY) == 0)
@ -526,7 +523,7 @@ public:
{
if (wcscmp(set_test_name_.c_str(), HGPDTTOOLDB_NAME_GET_DISTORTION_VAL) == 0)
{
//is_distortion_get_image = true;
is_distortion_get_image = true;
}
h->test_callback(set_test_name_.c_str(), ui_helper::TEST_EVENT_HAVE_IMAGE, data, true);
}