hlp:荆州版本

This commit is contained in:
kite_lucs
2026-10-19 17:03:47 +08:00
parent e533ea8e0b
commit 065b146998
438 changed files with 163143 additions and 185387 deletions
+348 -348
View File
@@ -1,348 +1,348 @@
#include "DlgVolteParaNo73.h"
#include "DevOp.h"
#include <QFile>
DlgVolteParaNo73::DlgVolteParaNo73(DevOp *devOp, QWidget *parent)
: QDialog(parent)
, m_devOp(devOp)
{
memset(editContinuous, 0, sizeof(editContinuous));
memset(editFull, 0, sizeof(editFull));
memset(editFullRowDelay, 0, sizeof(editFullRowDelay));
memset(editRowDelay, 0, sizeof(editRowDelay));
memset(editHead1RowDelay, 0, sizeof(editHead1RowDelay));
memset(edit1Dot, 0, sizeof(edit1Dot));
memset(editOtherAdjust, 0, sizeof(editOtherAdjust));
memset(edit2Dots, 0, sizeof(edit2Dots));
memset(edit3Dots, 0, sizeof(edit3Dots));
memset(edit4Dots, 0, sizeof(edit4Dots));
memset(edit5Dots, 0, sizeof(edit5Dots));
memset(editGap3Dot, 0, sizeof(editGap3Dot));
memset(editGap, 0, sizeof(editGap));
memset(editBigDot, 0, sizeof(editBigDot));
memset(editGeneralPara, 0, sizeof(editGeneralPara));
setupUI();
}
DlgVolteParaNo73::~DlgVolteParaNo73()
{
}
// 创建4列网格布局的tab页(竖排)
QWidget* DlgVolteParaNo73::createGridTab(int count, QLineEdit* edits[])
{
QWidget *page = new QWidget(this);
QGridLayout *grid = new QGridLayout(page);
grid->setSpacing(2);
grid->setContentsMargins(4, 4, 4, 4);
int numCols = 4;
int rowsPerCol = (count + numCols - 1) / numCols;
for (int i = 0; i < count; i++) {
int col = i / rowsPerCol;
int row = i % rowsPerCol;
QLabel *label = new QLabel(QString("v%1").arg(i), page);
label->setFixedWidth(28);
label->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
QLineEdit *edit = new QLineEdit("0", page);
edit->setAlignment(Qt::AlignCenter);
edits[i] = edit;
grid->addWidget(label, row, col * 2);
grid->addWidget(edit, row, col * 2 + 1);
}
for (int c = 0; c < numCols; c++) {
grid->setColumnStretch(c * 2, 0);
grid->setColumnStretch(c * 2 + 1, 1);
}
return page;
}
void DlgVolteParaNo73::setupUI()
{
setWindowTitle(QString("No73充电参数编辑"));
QVBoxLayout *mainLayout = new QVBoxLayout(this);
mainLayout->setContentsMargins(4, 4, 4, 4);
mainLayout->setSpacing(4);
tabWidget = new QTabWidget(this);
tabWidget->addTab(createGridTab(48, editContinuous), QString("连续电压"));
tabWidget->addTab(createGridTab(48, editFullRowDelay), QString("满电延迟"));
tabWidget->addTab(createGridTab(48, editRowDelay), QString("点延迟"));
tabWidget->addTab(createGridTab(48, editHead1RowDelay), QString("首1点延迟"));
tabWidget->addTab(createGridTab(48, editOtherAdjust), QString("其他调整"));
tabWidget->addTab(createGridTab(48, editFull), QString("满电"));
tabWidget->addTab(createGridTab(48, edit1Dot), QString("单点"));
tabWidget->addTab(createGridTab(48, edit2Dots), QString("两点"));
tabWidget->addTab(createGridTab(48, edit3Dots), QString("三点"));
tabWidget->addTab(createGridTab(48, edit4Dots), QString("四点"));
tabWidget->addTab(createGridTab(48, edit5Dots), QString("五点"));
tabWidget->addTab(createGridTab(48, editGap3Dot), QString("3_空点"));
tabWidget->addTab(createGridTab(48, editGap), QString("空点"));
tabWidget->addTab(createGridTab(8, editBigDot), QString("巨点"));
tabWidget->addTab(createGridTab(80, editGeneralPara), QString("通用参数"));
mainLayout->addWidget(tabWidget);
// 底部按钮栏
QHBoxLayout *btnLayout = new QHBoxLayout();
btnLoad = new QPushButton(QString("读取当前值"), this);
btnSave = new QPushButton(QString("保存并推送FPGA"), this);
btnLoad->setMinimumHeight(40);
btnSave->setMinimumHeight(40);
btnLayout->addWidget(btnLoad);
btnLayout->addStretch();
btnLayout->addWidget(btnSave);
mainLayout->addLayout(btnLayout);
connect(btnLoad, SIGNAL(clicked()), this, SLOT(onBtnLoadClicked()));
connect(btnSave, SIGNAL(clicked()), this, SLOT(onBtnSaveClicked()));
}
// ========== 数据加载:结构体 → UI ==========
void DlgVolteParaNo73::loadDataToUI()
{
if (!sysPara) return;
voltePara_t_No73 &data = sysPara->voltePara_No73;
// 连续电压
for (int i = 0; i < 48; i++)
editContinuous[i]->setText(QString::number(data.pixel_continous_table[i]));
// 满电延迟
for (int i = 0; i < 48; i++)
editFullRowDelay[i]->setText(QString::number(data.full_row_delay_table[i]));
// 点延迟
for (int i = 0; i < 48; i++)
editRowDelay[i]->setText(QString::number(data.row_delay_table[i]));
// 首1点延迟
for (int i = 0; i < 48; i++)
editHead1RowDelay[i]->setText(QString::number(data.head1_row_delay_table[i]));
// 其他调整:steal,head2,head3,tail2 四个值逗号分隔
for (int i = 0; i < 48; i++) {
editOtherAdjust[i]->setText(QString("%1,%2,%3,%4")
.arg(data.pixel_steal_table[i])
.arg(data.pixel_head2_table[i])
.arg(data.pixel_head3_table[i])
.arg(data.pixel_tail2_table[i]));
}
// 满电
for (int i = 0; i < 48; i++)
editFull[i]->setText(QString::number(data.pixel_full_table[i]));
// 单点
for (int i = 0; i < 48; i++)
edit1Dot[i]->setText(QString::number(data.pixel_1_table[i]));
// 两点(2值逗号分隔)
for (int i = 0; i < 48; i++) {
edit2Dots[i]->setText(QString("%1,%2")
.arg(data.pixel_2_table[i][0])
.arg(data.pixel_2_table[i][1]));
}
// 三点(3值逗号分隔)
for (int i = 0; i < 48; i++) {
edit3Dots[i]->setText(QString("%1,%2,%3")
.arg(data.pixel_3_table[i][0])
.arg(data.pixel_3_table[i][1])
.arg(data.pixel_3_table[i][2]));
}
// 四点(4值逗号分隔)
for (int i = 0; i < 48; i++) {
edit4Dots[i]->setText(QString("%1,%2,%3,%4")
.arg(data.pixel_4_table[i][0])
.arg(data.pixel_4_table[i][1])
.arg(data.pixel_4_table[i][2])
.arg(data.pixel_4_table[i][3]));
}
// 五点(5值逗号分隔)
for (int i = 0; i < 48; i++) {
edit5Dots[i]->setText(QString("%1,%2,%3,%4,%5")
.arg(data.pixel_5_table[i][0])
.arg(data.pixel_5_table[i][1])
.arg(data.pixel_5_table[i][2])
.arg(data.pixel_5_table[i][3])
.arg(data.pixel_5_table[i][4]));
}
// 3_空点(5值逗号分隔)
for (int i = 0; i < 48; i++) {
editGap3Dot[i]->setText(QString("%1,%2,%3,%4,%5")
.arg(data.pixel_gap_post_3dot_table[i][0])
.arg(data.pixel_gap_post_3dot_table[i][1])
.arg(data.pixel_gap_post_3dot_table[i][2])
.arg(data.pixel_gap_post_3dot_table[i][3])
.arg(data.pixel_gap_post_3dot_table[i][4]));
}
// 空点(5值逗号分隔)
for (int i = 0; i < 48; i++) {
editGap[i]->setText(QString("%1,%2,%3,%4,%5")
.arg(data.pixel_gap_table[i][0])
.arg(data.pixel_gap_table[i][1])
.arg(data.pixel_gap_table[i][2])
.arg(data.pixel_gap_table[i][3])
.arg(data.pixel_gap_table[i][4]));
}
// 巨点 pixel_big_table[8][8],每行8个逗号分隔值
for (int i = 0; i < 8; i++) {
QString str;
for (int j = 0; j < 8; j++) {
if (j > 0) str += ",";
str += QString::number((qint8)data.pixel_big_table[i][j]);
}
editBigDot[i]->setText(str);
}
// 通用参数:前16项为pixel_para_table,后64项为pixel_general_dac_parameter
for (int i = 0; i < 16; i++)
editGeneralPara[i]->setText(QString::number(data.pixel_para_table[i]));
for (int i = 0; i < 64; i++)
editGeneralPara[16 + i]->setText(QString::number(data.pixel_general_dac_parameter[i]));
}
// ========== 数据保存:UI → 结构体 ==========
void DlgVolteParaNo73::saveDataFromUI()
{
if (!sysPara) return;
voltePara_t_No73 &data = sysPara->voltePara_No73;
// 连续电压
for (int i = 0; i < 48; i++)
data.pixel_continous_table[i] = (qint16)editContinuous[i]->text().toInt();
// 满电延迟
for (int i = 0; i < 48; i++)
data.full_row_delay_table[i] = (qint16)editFullRowDelay[i]->text().toInt();
// 点延迟
for (int i = 0; i < 48; i++)
data.row_delay_table[i] = (qint16)editRowDelay[i]->text().toInt();
// 首1点延迟
for (int i = 0; i < 48; i++)
data.head1_row_delay_table[i] = (qint16)editHead1RowDelay[i]->text().toInt();
// 其他调整:steal,head2,head3,tail2
for (int i = 0; i < 48; i++) {
QStringList parts = editOtherAdjust[i]->text().split(",");
data.pixel_steal_table[i] = parts.size() > 0 ? (qint16)parts[0].toInt() : 0;
data.pixel_head2_table[i] = parts.size() > 1 ? (qint16)parts[1].toInt() : 0;
data.pixel_head3_table[i] = parts.size() > 2 ? (qint16)parts[2].toInt() : 0;
data.pixel_tail2_table[i] = parts.size() > 3 ? (qint16)parts[3].toInt() : 0;
}
// 满电
for (int i = 0; i < 48; i++)
data.pixel_full_table[i] = (qint16)editFull[i]->text().toInt();
// 单点
for (int i = 0; i < 48; i++)
data.pixel_1_table[i] = (qint16)edit1Dot[i]->text().toInt();
// 两点
for (int i = 0; i < 48; i++) {
QStringList parts = edit2Dots[i]->text().split(",");
for (int j = 0; j < 2; j++)
data.pixel_2_table[i][j] = parts.size() > j ? (qint16)parts[j].toInt() : 0;
}
// 三点
for (int i = 0; i < 48; i++) {
QStringList parts = edit3Dots[i]->text().split(",");
for (int j = 0; j < 3; j++)
data.pixel_3_table[i][j] = parts.size() > j ? (qint16)parts[j].toInt() : 0;
}
// 四点
for (int i = 0; i < 48; i++) {
QStringList parts = edit4Dots[i]->text().split(",");
for (int j = 0; j < 4; j++)
data.pixel_4_table[i][j] = parts.size() > j ? (qint16)parts[j].toInt() : 0;
}
// 五点
for (int i = 0; i < 48; i++) {
QStringList parts = edit5Dots[i]->text().split(",");
for (int j = 0; j < 5; j++)
data.pixel_5_table[i][j] = parts.size() > j ? (qint16)parts[j].toInt() : 0;
}
// 3_空点
for (int i = 0; i < 48; i++) {
QStringList parts = editGap3Dot[i]->text().split(",");
for (int j = 0; j < 5; j++)
data.pixel_gap_post_3dot_table[i][j] = parts.size() > j ? (qint16)parts[j].toInt() : 0;
}
// 空点
for (int i = 0; i < 48; i++) {
QStringList parts = editGap[i]->text().split(",");
for (int j = 0; j < 5; j++)
data.pixel_gap_table[i][j] = parts.size() > j ? (qint16)parts[j].toInt() : 0;
}
// 巨点
for (int i = 0; i < 8; i++) {
QStringList parts = editBigDot[i]->text().split(",");
for (int j = 0; j < 8; j++)
data.pixel_big_table[i][j] = parts.size() > j ? (qint8)parts[j].toInt() : 0;
}
// 通用参数
for (int i = 0; i < 16; i++)
data.pixel_para_table[i] = (qint16)editGeneralPara[i]->text().toInt();
for (int i = 0; i < 64; i++)
data.pixel_general_dac_parameter[i] = (qint16)editGeneralPara[16 + i]->text().toInt();
}
// ========== 按钮槽函数 ==========
void DlgVolteParaNo73::onBtnLoadClicked()
{
loadDataToUI();
}
void DlgVolteParaNo73::onBtnSaveClicked()
{
saveDataFromUI();
QFile file(DOC_ROOT_DIR"voltePara_No73.bin");
if(!file.open(QIODevice::WriteOnly)) {
QMessageBox::information(this, QString("注意"), QString("充电数据已经写入FPGA, 但是没有保存到文件。"));
return;
}
int written = file.write((const char*)&(sysPara->voltePara_No73), sizeof(voltePara_t_No73));
file.close();
if(written != sizeof(voltePara_t_No73)) {
QMessageBox::information(this, QString("注意"), QString("写入文件voltePara_No73.bin失败"));
}
if (m_devOp) {
m_devOp->writeDacValue2Fpga_No73();
}
QMessageBox::information(this, QString("完成"), QString("充电参数已保存并推送至FPGA。"));
}
#include "DlgVolteParaNo73.h"
#include "DevOp.h"
#include <QFile>
DlgVolteParaNo73::DlgVolteParaNo73(DevOp *devOp, QWidget *parent)
: QDialog(parent)
, m_devOp(devOp)
{
memset(editContinuous, 0, sizeof(editContinuous));
memset(editFull, 0, sizeof(editFull));
memset(editFullRowDelay, 0, sizeof(editFullRowDelay));
memset(editRowDelay, 0, sizeof(editRowDelay));
memset(editHead1RowDelay, 0, sizeof(editHead1RowDelay));
memset(edit1Dot, 0, sizeof(edit1Dot));
memset(editOtherAdjust, 0, sizeof(editOtherAdjust));
memset(edit2Dots, 0, sizeof(edit2Dots));
memset(edit3Dots, 0, sizeof(edit3Dots));
memset(edit4Dots, 0, sizeof(edit4Dots));
memset(edit5Dots, 0, sizeof(edit5Dots));
memset(editGap3Dot, 0, sizeof(editGap3Dot));
memset(editGap, 0, sizeof(editGap));
memset(editBigDot, 0, sizeof(editBigDot));
memset(editGeneralPara, 0, sizeof(editGeneralPara));
setupUI();
}
DlgVolteParaNo73::~DlgVolteParaNo73()
{
}
// 创建4列网格布局的tab页(竖排)
QWidget* DlgVolteParaNo73::createGridTab(int count, QLineEdit* edits[])
{
QWidget *page = new QWidget(this);
QGridLayout *grid = new QGridLayout(page);
grid->setSpacing(2);
grid->setContentsMargins(4, 4, 4, 4);
int numCols = 4;
int rowsPerCol = (count + numCols - 1) / numCols;
for (int i = 0; i < count; i++) {
int col = i / rowsPerCol;
int row = i % rowsPerCol;
QLabel *label = new QLabel(QString("v%1").arg(i), page);
label->setFixedWidth(28);
label->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
QLineEdit *edit = new QLineEdit("0", page);
edit->setAlignment(Qt::AlignCenter);
edits[i] = edit;
grid->addWidget(label, row, col * 2);
grid->addWidget(edit, row, col * 2 + 1);
}
for (int c = 0; c < numCols; c++) {
grid->setColumnStretch(c * 2, 0);
grid->setColumnStretch(c * 2 + 1, 1);
}
return page;
}
void DlgVolteParaNo73::setupUI()
{
setWindowTitle(QString("No73充电参数编辑"));
QVBoxLayout *mainLayout = new QVBoxLayout(this);
mainLayout->setContentsMargins(4, 4, 4, 4);
mainLayout->setSpacing(4);
tabWidget = new QTabWidget(this);
tabWidget->addTab(createGridTab(48, editContinuous), QString("连续电压"));
tabWidget->addTab(createGridTab(48, editFullRowDelay), QString("满电延迟"));
tabWidget->addTab(createGridTab(48, editRowDelay), QString("点延迟"));
tabWidget->addTab(createGridTab(48, editHead1RowDelay), QString("首1点延迟"));
tabWidget->addTab(createGridTab(48, editOtherAdjust), QString("其他调整"));
tabWidget->addTab(createGridTab(48, editFull), QString("满电"));
tabWidget->addTab(createGridTab(48, edit1Dot), QString("单点"));
tabWidget->addTab(createGridTab(48, edit2Dots), QString("两点"));
tabWidget->addTab(createGridTab(48, edit3Dots), QString("三点"));
tabWidget->addTab(createGridTab(48, edit4Dots), QString("四点"));
tabWidget->addTab(createGridTab(48, edit5Dots), QString("五点"));
tabWidget->addTab(createGridTab(48, editGap3Dot), QString("3_空点"));
tabWidget->addTab(createGridTab(48, editGap), QString("空点"));
tabWidget->addTab(createGridTab(8, editBigDot), QString("巨点"));
tabWidget->addTab(createGridTab(80, editGeneralPara), QString("通用参数"));
mainLayout->addWidget(tabWidget);
// 底部按钮栏
QHBoxLayout *btnLayout = new QHBoxLayout();
btnLoad = new QPushButton(QString("读取当前值"), this);
btnSave = new QPushButton(QString("保存并推送FPGA"), this);
btnLoad->setMinimumHeight(40);
btnSave->setMinimumHeight(40);
btnLayout->addWidget(btnLoad);
btnLayout->addStretch();
btnLayout->addWidget(btnSave);
mainLayout->addLayout(btnLayout);
connect(btnLoad, SIGNAL(clicked()), this, SLOT(onBtnLoadClicked()));
connect(btnSave, SIGNAL(clicked()), this, SLOT(onBtnSaveClicked()));
}
// ========== 数据加载:结构体 → UI ==========
void DlgVolteParaNo73::loadDataToUI()
{
if (!sysPara) return;
voltePara_t_No73 &data = sysPara->voltePara_No73;
// 连续电压
for (int i = 0; i < 48; i++)
editContinuous[i]->setText(QString::number(data.pixel_continous_table[i]));
// 满电延迟
for (int i = 0; i < 48; i++)
editFullRowDelay[i]->setText(QString::number(data.full_row_delay_table[i]));
// 点延迟
for (int i = 0; i < 48; i++)
editRowDelay[i]->setText(QString::number(data.row_delay_table[i]));
// 首1点延迟
for (int i = 0; i < 48; i++)
editHead1RowDelay[i]->setText(QString::number(data.head1_row_delay_table[i]));
// 其他调整:steal,head2,head3,tail2 四个值逗号分隔
for (int i = 0; i < 48; i++) {
editOtherAdjust[i]->setText(QString("%1,%2,%3,%4")
.arg(data.pixel_steal_table[i])
.arg(data.pixel_head2_table[i])
.arg(data.pixel_head3_table[i])
.arg(data.pixel_tail2_table[i]));
}
// 满电
for (int i = 0; i < 48; i++)
editFull[i]->setText(QString::number(data.pixel_full_table[i]));
// 单点
for (int i = 0; i < 48; i++)
edit1Dot[i]->setText(QString::number(data.pixel_1_table[i]));
// 两点(2值逗号分隔)
for (int i = 0; i < 48; i++) {
edit2Dots[i]->setText(QString("%1,%2")
.arg(data.pixel_2_table[i][0])
.arg(data.pixel_2_table[i][1]));
}
// 三点(3值逗号分隔)
for (int i = 0; i < 48; i++) {
edit3Dots[i]->setText(QString("%1,%2,%3")
.arg(data.pixel_3_table[i][0])
.arg(data.pixel_3_table[i][1])
.arg(data.pixel_3_table[i][2]));
}
// 四点(4值逗号分隔)
for (int i = 0; i < 48; i++) {
edit4Dots[i]->setText(QString("%1,%2,%3,%4")
.arg(data.pixel_4_table[i][0])
.arg(data.pixel_4_table[i][1])
.arg(data.pixel_4_table[i][2])
.arg(data.pixel_4_table[i][3]));
}
// 五点(5值逗号分隔)
for (int i = 0; i < 48; i++) {
edit5Dots[i]->setText(QString("%1,%2,%3,%4,%5")
.arg(data.pixel_5_table[i][0])
.arg(data.pixel_5_table[i][1])
.arg(data.pixel_5_table[i][2])
.arg(data.pixel_5_table[i][3])
.arg(data.pixel_5_table[i][4]));
}
// 3_空点(5值逗号分隔)
for (int i = 0; i < 48; i++) {
editGap3Dot[i]->setText(QString("%1,%2,%3,%4,%5")
.arg(data.pixel_gap_post_3dot_table[i][0])
.arg(data.pixel_gap_post_3dot_table[i][1])
.arg(data.pixel_gap_post_3dot_table[i][2])
.arg(data.pixel_gap_post_3dot_table[i][3])
.arg(data.pixel_gap_post_3dot_table[i][4]));
}
// 空点(5值逗号分隔)
for (int i = 0; i < 48; i++) {
editGap[i]->setText(QString("%1,%2,%3,%4,%5")
.arg(data.pixel_gap_table[i][0])
.arg(data.pixel_gap_table[i][1])
.arg(data.pixel_gap_table[i][2])
.arg(data.pixel_gap_table[i][3])
.arg(data.pixel_gap_table[i][4]));
}
// 巨点 pixel_big_table[8][8],每行8个逗号分隔值
for (int i = 0; i < 8; i++) {
QString str;
for (int j = 0; j < 8; j++) {
if (j > 0) str += ",";
str += QString::number((qint8)data.pixel_big_table[i][j]);
}
editBigDot[i]->setText(str);
}
// 通用参数:前16项为pixel_para_table,后64项为pixel_general_dac_parameter
for (int i = 0; i < 16; i++)
editGeneralPara[i]->setText(QString::number(data.pixel_para_table[i]));
for (int i = 0; i < 64; i++)
editGeneralPara[16 + i]->setText(QString::number(data.pixel_general_dac_parameter[i]));
}
// ========== 数据保存:UI → 结构体 ==========
void DlgVolteParaNo73::saveDataFromUI()
{
if (!sysPara) return;
voltePara_t_No73 &data = sysPara->voltePara_No73;
// 连续电压
for (int i = 0; i < 48; i++)
data.pixel_continous_table[i] = (qint16)editContinuous[i]->text().toInt();
// 满电延迟
for (int i = 0; i < 48; i++)
data.full_row_delay_table[i] = (qint16)editFullRowDelay[i]->text().toInt();
// 点延迟
for (int i = 0; i < 48; i++)
data.row_delay_table[i] = (qint16)editRowDelay[i]->text().toInt();
// 首1点延迟
for (int i = 0; i < 48; i++)
data.head1_row_delay_table[i] = (qint16)editHead1RowDelay[i]->text().toInt();
// 其他调整:steal,head2,head3,tail2
for (int i = 0; i < 48; i++) {
QStringList parts = editOtherAdjust[i]->text().split(",");
data.pixel_steal_table[i] = parts.size() > 0 ? (qint16)parts[0].toInt() : 0;
data.pixel_head2_table[i] = parts.size() > 1 ? (qint16)parts[1].toInt() : 0;
data.pixel_head3_table[i] = parts.size() > 2 ? (qint16)parts[2].toInt() : 0;
data.pixel_tail2_table[i] = parts.size() > 3 ? (qint16)parts[3].toInt() : 0;
}
// 满电
for (int i = 0; i < 48; i++)
data.pixel_full_table[i] = (qint16)editFull[i]->text().toInt();
// 单点
for (int i = 0; i < 48; i++)
data.pixel_1_table[i] = (qint16)edit1Dot[i]->text().toInt();
// 两点
for (int i = 0; i < 48; i++) {
QStringList parts = edit2Dots[i]->text().split(",");
for (int j = 0; j < 2; j++)
data.pixel_2_table[i][j] = parts.size() > j ? (qint16)parts[j].toInt() : 0;
}
// 三点
for (int i = 0; i < 48; i++) {
QStringList parts = edit3Dots[i]->text().split(",");
for (int j = 0; j < 3; j++)
data.pixel_3_table[i][j] = parts.size() > j ? (qint16)parts[j].toInt() : 0;
}
// 四点
for (int i = 0; i < 48; i++) {
QStringList parts = edit4Dots[i]->text().split(",");
for (int j = 0; j < 4; j++)
data.pixel_4_table[i][j] = parts.size() > j ? (qint16)parts[j].toInt() : 0;
}
// 五点
for (int i = 0; i < 48; i++) {
QStringList parts = edit5Dots[i]->text().split(",");
for (int j = 0; j < 5; j++)
data.pixel_5_table[i][j] = parts.size() > j ? (qint16)parts[j].toInt() : 0;
}
// 3_空点
for (int i = 0; i < 48; i++) {
QStringList parts = editGap3Dot[i]->text().split(",");
for (int j = 0; j < 5; j++)
data.pixel_gap_post_3dot_table[i][j] = parts.size() > j ? (qint16)parts[j].toInt() : 0;
}
// 空点
for (int i = 0; i < 48; i++) {
QStringList parts = editGap[i]->text().split(",");
for (int j = 0; j < 5; j++)
data.pixel_gap_table[i][j] = parts.size() > j ? (qint16)parts[j].toInt() : 0;
}
// 巨点
for (int i = 0; i < 8; i++) {
QStringList parts = editBigDot[i]->text().split(",");
for (int j = 0; j < 8; j++)
data.pixel_big_table[i][j] = parts.size() > j ? (qint8)parts[j].toInt() : 0;
}
// 通用参数
for (int i = 0; i < 16; i++)
data.pixel_para_table[i] = (qint16)editGeneralPara[i]->text().toInt();
for (int i = 0; i < 64; i++)
data.pixel_general_dac_parameter[i] = (qint16)editGeneralPara[16 + i]->text().toInt();
}
// ========== 按钮槽函数 ==========
void DlgVolteParaNo73::onBtnLoadClicked()
{
loadDataToUI();
}
void DlgVolteParaNo73::onBtnSaveClicked()
{
saveDataFromUI();
QFile file(DOC_ROOT_DIR"voltePara_No73.bin");
if(!file.open(QIODevice::WriteOnly)) {
QMessageBox::information(this, QString("注意"), QString("充电数据已经写入FPGA, 但是没有保存到文件。"));
return;
}
int written = file.write((const char*)&(sysPara->voltePara_No73), sizeof(voltePara_t_No73));
file.close();
if(written != sizeof(voltePara_t_No73)) {
QMessageBox::information(this, QString("注意"), QString("写入文件voltePara_No73.bin失败"));
}
if (m_devOp) {
m_devOp->writeDacValue2Fpga_No73();
}
QMessageBox::information(this, QString("完成"), QString("充电参数已保存并推送至FPGA。"));
}