修改文件换行符,修正轮班图元长度计算问题

This commit is contained in:
2026-08-19 11:55:10 +08:00
parent 176b53b654
commit a274b75705
116 changed files with 68711 additions and 68660 deletions
+423 -423
View File
@@ -1,423 +1,423 @@
#include "DlgVoltePara25Dots.h"
#include "DevOp.h"
#include <QHeaderView>
#include <QIntValidator>
#include <QLineEdit>
#include <QScrollArea>
DlgVoltePara25Dots::DlgVoltePara25Dots(DevOp *devOp, QWidget *parent)
: QDialog(parent)
, m_devOp(devOp)
, tableSingleDot1(nullptr)
, tableSingleDotFirst1(nullptr)
, table2Dots(nullptr)
, table3Dots(nullptr)
, table4Dots(nullptr)
, table5Dots(nullptr)
, tableContinuous(nullptr)
, tableDiffVoltage(nullptr)
, tableExtraLine(nullptr)
, tableFirstOnePointExtra(nullptr)
, tableAdjustPara(nullptr)
, tableGiantPoint(nullptr)
{
setupUI();
}
DlgVoltePara25Dots::~DlgVoltePara25Dots()
{
}
// 创建通用表格
QTableWidget* DlgVoltePara25Dots::createTable(int rows, int cols, int minVal, int maxVal)
{
QTableWidget *table = new QTableWidget(rows, cols, this);
table->setMinimumHeight(200);
// 设置行头(通道编号)
QStringList rowHeaders;
for (int i = 0; i < rows; i++) {
rowHeaders << QString::number(i);
}
table->setVerticalHeaderLabels(rowHeaders);
// 设置列头(点序号)
QStringList colHeaders;
for (int i = 0; i < cols; i++) {
if (cols == 1)
colHeaders << QString("值");
else
colHeaders << QString("点%1").arg(i + 1);
}
table->setHorizontalHeaderLabels(colHeaders);
// 初始化所有单元格为 0
for (int r = 0; r < rows; r++) {
for (int c = 0; c < cols; c++) {
QTableWidgetItem *item = new QTableWidgetItem("0");
item->setTextAlignment(Qt::AlignCenter);
table->setItem(r, c, item);
}
}
// 设置行高适配触屏
table->verticalHeader()->setDefaultSectionSize(30);
table->horizontalHeader()->setDefaultSectionSize(60);
Q_UNUSED(minVal);
Q_UNUSED(maxVal);
return table;
}
void DlgVoltePara25Dots::setupUI()
{
setWindowTitle(QString("25点阵充电参数编辑"));
resize(800, 600);
QVBoxLayout *mainLayout = new QVBoxLayout(this);
mainLayout->setContentsMargins(4, 4, 4, 4);
mainLayout->setSpacing(4);
// 选项卡
tabWidget = new QTabWidget(this);
tabWidget->addTab(createTab_SingleDot(), QString("单点"));
tabWidget->addTab(createTab_2Dots(), QString("2点连续"));
tabWidget->addTab(createTab_3Dots(), QString("3点连续"));
tabWidget->addTab(createTab_4Dots(), QString("4点连续"));
tabWidget->addTab(createTab_5Dots(), QString("5点连续"));
tabWidget->addTab(createTab_Continuous(), QString("连续点"));
tabWidget->addTab(createTab_DiffVoltage(), QString("差分补偿"));
tabWidget->addTab(createTab_ExtraLine(), QString("行补偿"));
tabWidget->addTab(createTab_GiantPoint(), 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()));
}
// ========== 选项卡创建 ==========
QWidget* DlgVoltePara25Dots::createTab_SingleDot()
{
QWidget *page = new QWidget(this);
QVBoxLayout *layout = new QVBoxLayout(page);
QLabel *label1 = new QLabel(QString("单点 DAC (matchTotalTableDACArray1)"), page);
tableSingleDot1 = createTable(64, 1, 0, 65535);
layout->addWidget(label1);
layout->addWidget(tableSingleDot1);
QLabel *label2 = new QLabel(QString("首单点 DAC (matchTotalTableDACArrayFirst1)"), page);
tableSingleDotFirst1 = createTable(64, 1, 0, 65535);
layout->addWidget(label2);
layout->addWidget(tableSingleDotFirst1);
return page;
}
QWidget* DlgVoltePara25Dots::createTab_2Dots()
{
QWidget *page = new QWidget(this);
QVBoxLayout *layout = new QVBoxLayout(page);
table2Dots = createTable(64, 2, 0, 65535);
layout->addWidget(table2Dots);
return page;
}
QWidget* DlgVoltePara25Dots::createTab_3Dots()
{
QWidget *page = new QWidget(this);
QVBoxLayout *layout = new QVBoxLayout(page);
table3Dots = createTable(64, 3, 0, 65535);
layout->addWidget(table3Dots);
return page;
}
QWidget* DlgVoltePara25Dots::createTab_4Dots()
{
QWidget *page = new QWidget(this);
QVBoxLayout *layout = new QVBoxLayout(page);
table4Dots = createTable(64, 4, 0, 65535);
layout->addWidget(table4Dots);
return page;
}
QWidget* DlgVoltePara25Dots::createTab_5Dots()
{
QWidget *page = new QWidget(this);
QVBoxLayout *layout = new QVBoxLayout(page);
table5Dots = createTable(64, 5, 0, 65535);
layout->addWidget(table5Dots);
return page;
}
QWidget* DlgVoltePara25Dots::createTab_Continuous()
{
QWidget *page = new QWidget(this);
QVBoxLayout *layout = new QVBoxLayout(page);
QLabel *label = new QLabel(QString("连续点 DAC (matchContinousDACArray)"), page);
tableContinuous = createTable(64, 1, 0, 65535);
layout->addWidget(label);
layout->addWidget(tableContinuous);
return page;
}
QWidget* DlgVoltePara25Dots::createTab_DiffVoltage()
{
QWidget *page = new QWidget(this);
QVBoxLayout *layout = new QVBoxLayout(page);
QLabel *label = new QLabel(QString("差分电压补偿 (matchTotalDiffVoltageValue) [50×64]"), page);
tableDiffVoltage = createTable(50, 64, -128, 127);
layout->addWidget(label);
layout->addWidget(tableDiffVoltage);
return page;
}
QWidget* DlgVoltePara25Dots::createTab_ExtraLine()
{
QWidget *page = new QWidget(this);
QVBoxLayout *layout = new QVBoxLayout(page);
QLabel *label1 = new QLabel(QString("额外行补偿 (matchExtraLineDACArray)"), page);
tableExtraLine = createTable(64, 1, 0, 255);
layout->addWidget(label1);
layout->addWidget(tableExtraLine);
QLabel *label2 = new QLabel(QString("首单点行补偿 (matchFirstOnePointExtraLineDACArray)"), page);
tableFirstOnePointExtra = createTable(64, 1, -128, 127);
layout->addWidget(label2);
layout->addWidget(tableFirstOnePointExtra);
return page;
}
QWidget* DlgVoltePara25Dots::createTab_GiantPoint()
{
QWidget *page = new QWidget(this);
QVBoxLayout *layout = new QVBoxLayout(page);
QLabel *label1 = new QLabel(QString("巨点调整参数 (matchAdjustParaDACArray) [8]"), page);
tableAdjustPara = createTable(8, 1, -128, 127);
layout->addWidget(label1);
layout->addWidget(tableAdjustPara);
QLabel *label2 = new QLabel(QString("巨点电压补偿 (matchGiantPointVoltageValue) [16×64]"), page);
tableGiantPoint = createTable(16, 64, -128, 127);
layout->addWidget(label2);
layout->addWidget(tableGiantPoint);
return page;
}
// ========== 数据加载:结构体 → UI ==========
void DlgVoltePara25Dots::loadDataToUI()
{
if (!sysPara) return;
voltePara_t_25Dots &data = sysPara->voltePara_25Dots;
// matchTotalTableDACArray1[64]
for (int i = 0; i < 64; i++) {
tableSingleDot1->item(i, 0)->setText(QString::number(data.matchTotalTableDACArray1[i]));
}
// matchTotalTableDACArrayFirst1[64]
for (int i = 0; i < 64; i++) {
tableSingleDotFirst1->item(i, 0)->setText(QString::number(data.matchTotalTableDACArrayFirst1[i]));
}
// matchTotalTableDACArray2[64][2]
for (int i = 0; i < 64; i++) {
for (int j = 0; j < 2; j++) {
table2Dots->item(i, j)->setText(QString::number(data.matchTotalTableDACArray2[i][j]));
}
}
// matchTotalTableDACArray3[64][3]
for (int i = 0; i < 64; i++) {
for (int j = 0; j < 3; j++) {
table3Dots->item(i, j)->setText(QString::number(data.matchTotalTableDACArray3[i][j]));
}
}
// matchTotalTableDACArray4[64][4]
for (int i = 0; i < 64; i++) {
for (int j = 0; j < 4; j++) {
table4Dots->item(i, j)->setText(QString::number(data.matchTotalTableDACArray4[i][j]));
}
}
// matchTotalTableDACArray5[64][5]
for (int i = 0; i < 64; i++) {
for (int j = 0; j < 5; j++) {
table5Dots->item(i, j)->setText(QString::number(data.matchTotalTableDACArray5[i][j]));
}
}
// matchContinousDACArray[64]
for (int i = 0; i < 64; i++) {
tableContinuous->item(i, 0)->setText(QString::number(data.matchContinousDACArray[i]));
}
// matchTotalDiffVoltageValue[50][64]
for (int i = 0; i < 50; i++) {
for (int j = 0; j < 64; j++) {
tableDiffVoltage->item(i, j)->setText(QString::number((qint8)data.matchTotalDiffVoltageValue[i][j]));
}
}
// matchExtraLineDACArray[64]
for (int i = 0; i < 64; i++) {
tableExtraLine->item(i, 0)->setText(QString::number(data.matchExtraLineDACArray[i]));
}
// matchFirstOnePointExtraLineDACArray[64]
for (int i = 0; i < 64; i++) {
tableFirstOnePointExtra->item(i, 0)->setText(QString::number((qint8)data.matchFirstOnePointExtraLineDACArray[i]));
}
// matchAdjustParaDACArray[8]
for (int i = 0; i < 8; i++) {
tableAdjustPara->item(i, 0)->setText(QString::number((qint8)data.matchAdjustParaDACArray[i]));
}
// matchGiantPointVoltageValue[16][64]
for (int i = 0; i < 16; i++) {
for (int j = 0; j < 64; j++) {
tableGiantPoint->item(i, j)->setText(QString::number((qint8)data.matchGiantPointVoltageValue[i][j]));
}
}
}
// ========== 数据保存:UI → 结构体 ==========
void DlgVoltePara25Dots::saveDataFromUI()
{
if (!sysPara) return;
voltePara_t_25Dots &data = sysPara->voltePara_25Dots;
// matchTotalTableDACArray1[64]
for (int i = 0; i < 64; i++) {
data.matchTotalTableDACArray1[i] = (quint16)tableSingleDot1->item(i, 0)->text().toUInt();
}
// matchTotalTableDACArrayFirst1[64]
for (int i = 0; i < 64; i++) {
data.matchTotalTableDACArrayFirst1[i] = (quint16)tableSingleDotFirst1->item(i, 0)->text().toUInt();
}
// matchTotalTableDACArray2[64][2]
for (int i = 0; i < 64; i++) {
for (int j = 0; j < 2; j++) {
data.matchTotalTableDACArray2[i][j] = (quint16)table2Dots->item(i, j)->text().toUInt();
}
}
// matchTotalTableDACArray3[64][3]
for (int i = 0; i < 64; i++) {
for (int j = 0; j < 3; j++) {
data.matchTotalTableDACArray3[i][j] = (quint16)table3Dots->item(i, j)->text().toUInt();
}
}
// matchTotalTableDACArray4[64][4]
for (int i = 0; i < 64; i++) {
for (int j = 0; j < 4; j++) {
data.matchTotalTableDACArray4[i][j] = (quint16)table4Dots->item(i, j)->text().toUInt();
}
}
// matchTotalTableDACArray5[64][5]
for (int i = 0; i < 64; i++) {
for (int j = 0; j < 5; j++) {
data.matchTotalTableDACArray5[i][j] = (quint16)table5Dots->item(i, j)->text().toUInt();
}
}
// matchContinousDACArray[64]
for (int i = 0; i < 64; i++) {
data.matchContinousDACArray[i] = (quint16)tableContinuous->item(i, 0)->text().toUInt();
}
// matchTotalDiffVoltageValue[50][64]
for (int i = 0; i < 50; i++) {
for (int j = 0; j < 64; j++) {
data.matchTotalDiffVoltageValue[i][j] = (qint8)tableDiffVoltage->item(i, j)->text().toInt();
}
}
// matchExtraLineDACArray[64]
for (int i = 0; i < 64; i++) {
data.matchExtraLineDACArray[i] = (quint8)tableExtraLine->item(i, 0)->text().toUInt();
}
// matchFirstOnePointExtraLineDACArray[64]
for (int i = 0; i < 64; i++) {
data.matchFirstOnePointExtraLineDACArray[i] = (qint8)tableFirstOnePointExtra->item(i, 0)->text().toInt();
}
// matchAdjustParaDACArray[8]
for (int i = 0; i < 8; i++) {
data.matchAdjustParaDACArray[i] = (qint8)tableAdjustPara->item(i, 0)->text().toInt();
}
// matchGiantPointVoltageValue[16][64]
for (int i = 0; i < 16; i++) {
for (int j = 0; j < 64; j++) {
data.matchGiantPointVoltageValue[i][j] = (qint8)tableGiantPoint->item(i, j)->text().toInt();
}
}
}
// ========== 按钮槽函数 ==========
void DlgVoltePara25Dots::onBtnLoadClicked()
{
loadDataToUI();
}
void DlgVoltePara25Dots::onBtnSaveClicked()
{
int ret = QMessageBox::question(this,
QString("确认"),
QString("确定要将修改后的充电参数写入FPGA吗?"),
QMessageBox::Yes | QMessageBox::No,
QMessageBox::No);
if (ret != QMessageBox::Yes)
return;
saveDataFromUI();
if (m_devOp) {
m_devOp->writeDacValue2Fpga_No72NewVoltData();
}
QMessageBox::information(this, QString("完成"), QString("充电参数已保存并推送至FPGA。"));
}
#include "DlgVoltePara25Dots.h"
#include "DevOp.h"
#include <QHeaderView>
#include <QIntValidator>
#include <QLineEdit>
#include <QScrollArea>
DlgVoltePara25Dots::DlgVoltePara25Dots(DevOp *devOp, QWidget *parent)
: QDialog(parent)
, m_devOp(devOp)
, tableSingleDot1(nullptr)
, tableSingleDotFirst1(nullptr)
, table2Dots(nullptr)
, table3Dots(nullptr)
, table4Dots(nullptr)
, table5Dots(nullptr)
, tableContinuous(nullptr)
, tableDiffVoltage(nullptr)
, tableExtraLine(nullptr)
, tableFirstOnePointExtra(nullptr)
, tableAdjustPara(nullptr)
, tableGiantPoint(nullptr)
{
setupUI();
}
DlgVoltePara25Dots::~DlgVoltePara25Dots()
{
}
// 创建通用表格
QTableWidget* DlgVoltePara25Dots::createTable(int rows, int cols, int minVal, int maxVal)
{
QTableWidget *table = new QTableWidget(rows, cols, this);
table->setMinimumHeight(200);
// 设置行头(通道编号)
QStringList rowHeaders;
for (int i = 0; i < rows; i++) {
rowHeaders << QString::number(i);
}
table->setVerticalHeaderLabels(rowHeaders);
// 设置列头(点序号)
QStringList colHeaders;
for (int i = 0; i < cols; i++) {
if (cols == 1)
colHeaders << QString("值");
else
colHeaders << QString("点%1").arg(i + 1);
}
table->setHorizontalHeaderLabels(colHeaders);
// 初始化所有单元格为 0
for (int r = 0; r < rows; r++) {
for (int c = 0; c < cols; c++) {
QTableWidgetItem *item = new QTableWidgetItem("0");
item->setTextAlignment(Qt::AlignCenter);
table->setItem(r, c, item);
}
}
// 设置行高适配触屏
table->verticalHeader()->setDefaultSectionSize(30);
table->horizontalHeader()->setDefaultSectionSize(60);
Q_UNUSED(minVal);
Q_UNUSED(maxVal);
return table;
}
void DlgVoltePara25Dots::setupUI()
{
setWindowTitle(QString("25点阵充电参数编辑"));
resize(800, 600);
QVBoxLayout *mainLayout = new QVBoxLayout(this);
mainLayout->setContentsMargins(4, 4, 4, 4);
mainLayout->setSpacing(4);
// 选项卡
tabWidget = new QTabWidget(this);
tabWidget->addTab(createTab_SingleDot(), QString("单点"));
tabWidget->addTab(createTab_2Dots(), QString("2点连续"));
tabWidget->addTab(createTab_3Dots(), QString("3点连续"));
tabWidget->addTab(createTab_4Dots(), QString("4点连续"));
tabWidget->addTab(createTab_5Dots(), QString("5点连续"));
tabWidget->addTab(createTab_Continuous(), QString("连续点"));
tabWidget->addTab(createTab_DiffVoltage(), QString("差分补偿"));
tabWidget->addTab(createTab_ExtraLine(), QString("行补偿"));
tabWidget->addTab(createTab_GiantPoint(), 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()));
}
// ========== 选项卡创建 ==========
QWidget* DlgVoltePara25Dots::createTab_SingleDot()
{
QWidget *page = new QWidget(this);
QVBoxLayout *layout = new QVBoxLayout(page);
QLabel *label1 = new QLabel(QString("单点 DAC (matchTotalTableDACArray1)"), page);
tableSingleDot1 = createTable(64, 1, 0, 65535);
layout->addWidget(label1);
layout->addWidget(tableSingleDot1);
QLabel *label2 = new QLabel(QString("首单点 DAC (matchTotalTableDACArrayFirst1)"), page);
tableSingleDotFirst1 = createTable(64, 1, 0, 65535);
layout->addWidget(label2);
layout->addWidget(tableSingleDotFirst1);
return page;
}
QWidget* DlgVoltePara25Dots::createTab_2Dots()
{
QWidget *page = new QWidget(this);
QVBoxLayout *layout = new QVBoxLayout(page);
table2Dots = createTable(64, 2, 0, 65535);
layout->addWidget(table2Dots);
return page;
}
QWidget* DlgVoltePara25Dots::createTab_3Dots()
{
QWidget *page = new QWidget(this);
QVBoxLayout *layout = new QVBoxLayout(page);
table3Dots = createTable(64, 3, 0, 65535);
layout->addWidget(table3Dots);
return page;
}
QWidget* DlgVoltePara25Dots::createTab_4Dots()
{
QWidget *page = new QWidget(this);
QVBoxLayout *layout = new QVBoxLayout(page);
table4Dots = createTable(64, 4, 0, 65535);
layout->addWidget(table4Dots);
return page;
}
QWidget* DlgVoltePara25Dots::createTab_5Dots()
{
QWidget *page = new QWidget(this);
QVBoxLayout *layout = new QVBoxLayout(page);
table5Dots = createTable(64, 5, 0, 65535);
layout->addWidget(table5Dots);
return page;
}
QWidget* DlgVoltePara25Dots::createTab_Continuous()
{
QWidget *page = new QWidget(this);
QVBoxLayout *layout = new QVBoxLayout(page);
QLabel *label = new QLabel(QString("连续点 DAC (matchContinousDACArray)"), page);
tableContinuous = createTable(64, 1, 0, 65535);
layout->addWidget(label);
layout->addWidget(tableContinuous);
return page;
}
QWidget* DlgVoltePara25Dots::createTab_DiffVoltage()
{
QWidget *page = new QWidget(this);
QVBoxLayout *layout = new QVBoxLayout(page);
QLabel *label = new QLabel(QString("差分电压补偿 (matchTotalDiffVoltageValue) [50×64]"), page);
tableDiffVoltage = createTable(50, 64, -128, 127);
layout->addWidget(label);
layout->addWidget(tableDiffVoltage);
return page;
}
QWidget* DlgVoltePara25Dots::createTab_ExtraLine()
{
QWidget *page = new QWidget(this);
QVBoxLayout *layout = new QVBoxLayout(page);
QLabel *label1 = new QLabel(QString("额外行补偿 (matchExtraLineDACArray)"), page);
tableExtraLine = createTable(64, 1, 0, 255);
layout->addWidget(label1);
layout->addWidget(tableExtraLine);
QLabel *label2 = new QLabel(QString("首单点行补偿 (matchFirstOnePointExtraLineDACArray)"), page);
tableFirstOnePointExtra = createTable(64, 1, -128, 127);
layout->addWidget(label2);
layout->addWidget(tableFirstOnePointExtra);
return page;
}
QWidget* DlgVoltePara25Dots::createTab_GiantPoint()
{
QWidget *page = new QWidget(this);
QVBoxLayout *layout = new QVBoxLayout(page);
QLabel *label1 = new QLabel(QString("巨点调整参数 (matchAdjustParaDACArray) [8]"), page);
tableAdjustPara = createTable(8, 1, -128, 127);
layout->addWidget(label1);
layout->addWidget(tableAdjustPara);
QLabel *label2 = new QLabel(QString("巨点电压补偿 (matchGiantPointVoltageValue) [16×64]"), page);
tableGiantPoint = createTable(16, 64, -128, 127);
layout->addWidget(label2);
layout->addWidget(tableGiantPoint);
return page;
}
// ========== 数据加载:结构体 → UI ==========
void DlgVoltePara25Dots::loadDataToUI()
{
if (!sysPara) return;
voltePara_t_25Dots &data = sysPara->voltePara_25Dots;
// matchTotalTableDACArray1[64]
for (int i = 0; i < 64; i++) {
tableSingleDot1->item(i, 0)->setText(QString::number(data.matchTotalTableDACArray1[i]));
}
// matchTotalTableDACArrayFirst1[64]
for (int i = 0; i < 64; i++) {
tableSingleDotFirst1->item(i, 0)->setText(QString::number(data.matchTotalTableDACArrayFirst1[i]));
}
// matchTotalTableDACArray2[64][2]
for (int i = 0; i < 64; i++) {
for (int j = 0; j < 2; j++) {
table2Dots->item(i, j)->setText(QString::number(data.matchTotalTableDACArray2[i][j]));
}
}
// matchTotalTableDACArray3[64][3]
for (int i = 0; i < 64; i++) {
for (int j = 0; j < 3; j++) {
table3Dots->item(i, j)->setText(QString::number(data.matchTotalTableDACArray3[i][j]));
}
}
// matchTotalTableDACArray4[64][4]
for (int i = 0; i < 64; i++) {
for (int j = 0; j < 4; j++) {
table4Dots->item(i, j)->setText(QString::number(data.matchTotalTableDACArray4[i][j]));
}
}
// matchTotalTableDACArray5[64][5]
for (int i = 0; i < 64; i++) {
for (int j = 0; j < 5; j++) {
table5Dots->item(i, j)->setText(QString::number(data.matchTotalTableDACArray5[i][j]));
}
}
// matchContinousDACArray[64]
for (int i = 0; i < 64; i++) {
tableContinuous->item(i, 0)->setText(QString::number(data.matchContinousDACArray[i]));
}
// matchTotalDiffVoltageValue[50][64]
for (int i = 0; i < 50; i++) {
for (int j = 0; j < 64; j++) {
tableDiffVoltage->item(i, j)->setText(QString::number((qint8)data.matchTotalDiffVoltageValue[i][j]));
}
}
// matchExtraLineDACArray[64]
for (int i = 0; i < 64; i++) {
tableExtraLine->item(i, 0)->setText(QString::number(data.matchExtraLineDACArray[i]));
}
// matchFirstOnePointExtraLineDACArray[64]
for (int i = 0; i < 64; i++) {
tableFirstOnePointExtra->item(i, 0)->setText(QString::number((qint8)data.matchFirstOnePointExtraLineDACArray[i]));
}
// matchAdjustParaDACArray[8]
for (int i = 0; i < 8; i++) {
tableAdjustPara->item(i, 0)->setText(QString::number((qint8)data.matchAdjustParaDACArray[i]));
}
// matchGiantPointVoltageValue[16][64]
for (int i = 0; i < 16; i++) {
for (int j = 0; j < 64; j++) {
tableGiantPoint->item(i, j)->setText(QString::number((qint8)data.matchGiantPointVoltageValue[i][j]));
}
}
}
// ========== 数据保存:UI → 结构体 ==========
void DlgVoltePara25Dots::saveDataFromUI()
{
if (!sysPara) return;
voltePara_t_25Dots &data = sysPara->voltePara_25Dots;
// matchTotalTableDACArray1[64]
for (int i = 0; i < 64; i++) {
data.matchTotalTableDACArray1[i] = (quint16)tableSingleDot1->item(i, 0)->text().toUInt();
}
// matchTotalTableDACArrayFirst1[64]
for (int i = 0; i < 64; i++) {
data.matchTotalTableDACArrayFirst1[i] = (quint16)tableSingleDotFirst1->item(i, 0)->text().toUInt();
}
// matchTotalTableDACArray2[64][2]
for (int i = 0; i < 64; i++) {
for (int j = 0; j < 2; j++) {
data.matchTotalTableDACArray2[i][j] = (quint16)table2Dots->item(i, j)->text().toUInt();
}
}
// matchTotalTableDACArray3[64][3]
for (int i = 0; i < 64; i++) {
for (int j = 0; j < 3; j++) {
data.matchTotalTableDACArray3[i][j] = (quint16)table3Dots->item(i, j)->text().toUInt();
}
}
// matchTotalTableDACArray4[64][4]
for (int i = 0; i < 64; i++) {
for (int j = 0; j < 4; j++) {
data.matchTotalTableDACArray4[i][j] = (quint16)table4Dots->item(i, j)->text().toUInt();
}
}
// matchTotalTableDACArray5[64][5]
for (int i = 0; i < 64; i++) {
for (int j = 0; j < 5; j++) {
data.matchTotalTableDACArray5[i][j] = (quint16)table5Dots->item(i, j)->text().toUInt();
}
}
// matchContinousDACArray[64]
for (int i = 0; i < 64; i++) {
data.matchContinousDACArray[i] = (quint16)tableContinuous->item(i, 0)->text().toUInt();
}
// matchTotalDiffVoltageValue[50][64]
for (int i = 0; i < 50; i++) {
for (int j = 0; j < 64; j++) {
data.matchTotalDiffVoltageValue[i][j] = (qint8)tableDiffVoltage->item(i, j)->text().toInt();
}
}
// matchExtraLineDACArray[64]
for (int i = 0; i < 64; i++) {
data.matchExtraLineDACArray[i] = (quint8)tableExtraLine->item(i, 0)->text().toUInt();
}
// matchFirstOnePointExtraLineDACArray[64]
for (int i = 0; i < 64; i++) {
data.matchFirstOnePointExtraLineDACArray[i] = (qint8)tableFirstOnePointExtra->item(i, 0)->text().toInt();
}
// matchAdjustParaDACArray[8]
for (int i = 0; i < 8; i++) {
data.matchAdjustParaDACArray[i] = (qint8)tableAdjustPara->item(i, 0)->text().toInt();
}
// matchGiantPointVoltageValue[16][64]
for (int i = 0; i < 16; i++) {
for (int j = 0; j < 64; j++) {
data.matchGiantPointVoltageValue[i][j] = (qint8)tableGiantPoint->item(i, j)->text().toInt();
}
}
}
// ========== 按钮槽函数 ==========
void DlgVoltePara25Dots::onBtnLoadClicked()
{
loadDataToUI();
}
void DlgVoltePara25Dots::onBtnSaveClicked()
{
int ret = QMessageBox::question(this,
QString("确认"),
QString("确定要将修改后的充电参数写入FPGA吗?"),
QMessageBox::Yes | QMessageBox::No,
QMessageBox::No);
if (ret != QMessageBox::Yes)
return;
saveDataFromUI();
if (m_devOp) {
m_devOp->writeDacValue2Fpga_No72NewVoltData();
}
QMessageBox::information(this, QString("完成"), QString("充电参数已保存并推送至FPGA。"));
}