解决配置文件生成工具bug,平场校正默认改为全校正

This commit is contained in:
yangjiaxuan 2024-07-03 10:52:54 +08:00
parent 8ffcffbddd
commit ffe045c9b2
7 changed files with 58 additions and 28 deletions

View File

@ -38,7 +38,8 @@ std::vector<AnalysisJson::json_node> AnalysisJson::GetNode()
obj[key].toObject()["man"].toBool(),
obj[key].toObject()["desc"].toString(),
obj[key].toObject()["station"].toString(),
obj[key].toObject()["resolution"].toInt()
obj[key].toObject()["resolution"].toInt(),
obj[key].toObject()["dynamic-correct-data"].toString()
});
}
return nodes;

View File

@ -15,6 +15,7 @@ public:
QString desc;
QString station;
int resolution;
QString correctData;
};
struct json_global

View File

@ -52,13 +52,16 @@ void MainWindow::initDeviceInfo()
void MainWindow::initTableWidgetUi()
{
ui->tableWidget->resizeRowsToContents();
ui->tableWidget->setColumnCount(6);
ui->tableWidget->horizontalHeader()->setDefaultSectionSize(200);
ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
ui->tableWidget->setColumnCount(8);
ui->tableWidget->horizontalHeader()->setDefaultSectionSize(250);
ui->tableWidget->setColumnWidth(5, 200);
ui->tableWidget->setColumnWidth(6, 100);
ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
//ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
ui->tableWidget->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
QStringList header;
header << tr("selected") << tr("Test ID") << tr("Test items") << tr("Test station") << tr("Test type") << tr("Test content");
header << tr("selected") << tr("Test ID") << tr("Test items") << tr("Test station") << tr("Test type") << tr("Test content") << tr("resolution") << tr("correct date");
ui->tableWidget->setHorizontalHeaderLabels(header);
QFont font = ui->tableWidget->horizontalHeader()->font();
@ -130,10 +133,34 @@ bool MainWindow::loadDefaultItems(DeviceType deviceType)
ui->tableWidget->setItem(i, 5, new QTableWidgetItem(node.desc));
ui->tableWidget->item(i, 5)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
if (node.resolution > 0)
{
ui->tableWidget->setItem(i, 6, new QTableWidgetItem(QString::number(node.resolution)));
ui->tableWidget->item(i, 6)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
}
else
{
ui->tableWidget->setItem(i, 6, new QTableWidgetItem(QString("")));
ui->tableWidget->item(i, 6)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
}
node.correctData = node.correctData.trimmed().remove(QChar(0));
if (!node.correctData.isEmpty())
{
ui->tableWidget->setItem(i, 7, new QTableWidgetItem(node.correctData));
ui->tableWidget->item(i, 7)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
}
else
{
ui->tableWidget->setItem(i, 7, new QTableWidgetItem(QString("")));
ui->tableWidget->item(i, 7)->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
}
QTableWidgetItem *item = ui->tableWidget->item(i, 2);
QVariant var = QVariant::fromValue(node.name);
item->setData(Qt::UserRole, var);
}
ui->checkBox_selectAll->setChecked(false);
ui->checkBox_selectAll->setChecked(true);
ui->tableWidget->selectRow(0);
@ -349,10 +376,21 @@ void MainWindow::on_pushButton_generate_clicked()
QString name = ui->tableWidget->item(i, 2)->data(Qt::UserRole).value<QString>();
testItemObject.insert("name", name);
if (!ui->tableWidget->item(i, 6)->text().isEmpty())
{
testItemObject.insert("resolution", ui->tableWidget->item(i, 6)->text().toInt());
}
if (!ui->tableWidget->item(i, 7)->text().isEmpty())
{
testItemObject.insert("dynamic-correct-data", ui->tableWidget->item(i, 7)->text());
}
testItemObject.insert("title", ui->tableWidget->item(i, 2)->text());
testItemObject.insert("station", ui->tableWidget->item(i, 3)->text());
testItemObject.insert("man", ui->tableWidget->item(i, 4)->text() == tr("automatic testing") ? false : true);
testItemObject.insert("desc", ui->tableWidget->item(i, 5)->text());
json.insert(QString::number(i + 1), QJsonValue(testItemObject));
}

View File

@ -40,8 +40,7 @@ std::vector<AnalysisJson::json_node> AnalysisJson::GetNode()
obj[key].toObject()["desc"].toString(),
obj[key].toObject()["station"].toString(),
obj[key].toObject()["dynamic-correct-data"].toString(),
obj[key].toObject()["resolution"].toInt(),
obj[key].toObject()["correct-value"].toInt()});
obj[key].toObject()["resolution"].toInt()});
}
return nodes;
}

View File

@ -16,7 +16,6 @@ public:
QString station;
QString dynamic_correct_data;
int resolution;
int correct_value;
};
struct json_global{

View File

@ -866,20 +866,12 @@ void Form_mainInterface::on_pbtn_start_clicked()
else if (title == "扫描图像彩色质量确认_600dpi" || title == "扫描图像灰度质量确认_600dpi" || title == "计算畸变修正值_600dpi" || title == "设置畸变修正值_600dpi")
dpi = 600;
int correct_value = -1;
if (name == "AUTO_FLAT_FIELD")
correct_value = 0;
wchar_t buf[128] = {0};
if (dpi > 0)
{
m_curDpi = dpi;
swprintf(buf, L"%d", dpi);
}
else if (correct_value > -1 && correct_value < 7)
{
swprintf(buf, L"%d", correct_value);
}
std::string correctData = m_map_title_name.value(title).dynamic_correct_data.toStdString();
if (!correctData.empty())
@ -895,7 +887,7 @@ void Form_mainInterface::on_pbtn_start_clicked()
m_mainwnd->addTestingRef();
int ret = 0;
if (buf != nullptr || (dpi > 0 || (correct_value > -1 && correct_value < 7)))
if (buf != nullptr || (dpi > 0))
{
ret = func_test_go(name.toStdWString().c_str(), (const wchar_t*)buf, m_hg);
}

View File

@ -965,17 +965,17 @@ public:
dpi_type = 0;
unsigned int llen = sizeof(int);
size_t strl = 0;
ret = wchar_to_char(str, p, &strl);
if (ret == ERROR_INSUFFICIENT_BUFFER)
{
str.resize(strl);
ret = wchar_to_char(str, p, &strl);
if (str.empty())
{
return SCANNER_ERR_DATA_DAMAGED;
}
dpi_type = atoi(str.c_str());
}
//ret = wchar_to_char(str, p, &strl);
//if (ret == ERROR_INSUFFICIENT_BUFFER)
//{
// str.resize(strl);
// ret = wchar_to_char(str, p, &strl);
// if (str.empty())
// {
// return SCANNER_ERR_DATA_DAMAGED;
// }
// dpi_type = atoi(str.c_str());
//}
return helper_->io_control(IO_CTRL_CODE_SET_AUTO_FALT, &dpi_type, &len);;
}
/* 重启设备 */