hlp:荆州版本
This commit is contained in:
+348
-348
@@ -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。"));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user