From 74eb1583395555db8f73ff26ac75cc505de1e8ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cwangbo=E2=80=9D?= <“mailbowang@163.com”> Date: Fri, 11 Oct 2024 10:01:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A0=A1=E5=87=86=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CableTool/common.h | 10 ++-- CableTool/widget.cpp | 107 ++++++++++++++++++++++++++++--------------- CableTool/widget.h | 2 + 3 files changed, 77 insertions(+), 42 deletions(-) diff --git a/CableTool/common.h b/CableTool/common.h index 32076eb..30fa27d 100644 --- a/CableTool/common.h +++ b/CableTool/common.h @@ -428,13 +428,13 @@ typedef struct /* 校准参数信息. */ typedef struct { - uint16_t ADCRatio[DAU_PORT_POWER_CNT]; - uint32_t ADCBase_elec[DAU_PORT_POWER_CNT][DAU_POWER_ADJ_CNT]; - uint16_t ADCAdj[DAU_PORT_POWER_CNT][DAU_POWER_ADJ_CNT]; - float ADCBase[DAU_PORT_POWER_CNT][DAU_POWER_ADJ_CNT]; + uint16_t ADCRatio[DAU_PORT_POWER_CNT]; // 变比 + uint32_t ADCBase_elec[DAU_PORT_POWER_CNT][DAU_POWER_ADJ_CNT]; // 分段点(1A/2A/5A/10A/30A) + uint16_t ADCAdj[DAU_PORT_POWER_CNT][DAU_POWER_ADJ_CNT]; // 斜率(校准系数) + float ADCBase[DAU_PORT_POWER_CNT][DAU_POWER_ADJ_CNT]; // 采样值(对应分段点的1/2/5/10/30) uint16_t vin; uint16_t vin_adj; - uint8_t ADC_turns[DAU_PORT_POWER_CNT]; + uint8_t ADC_turns[DAU_PORT_POWER_CNT]; // 匝数 } dev_adj_t; /* 校准命令信息. */ diff --git a/CableTool/widget.cpp b/CableTool/widget.cpp index c1eb934..e131c65 100644 --- a/CableTool/widget.cpp +++ b/CableTool/widget.cpp @@ -60,8 +60,6 @@ Widget::Widget(QWidget *parent) energyMode[2] = "节能模式"; energyMode[3] = "休眠模式"; - //usartProtocol = new Protocol; - crc32_table_init(); /* 配置校准页面表格 */ @@ -80,34 +78,24 @@ Widget::Widget(QWidget *parent) "padding:4px;" "}" ); - - /* 打开配置文件, 恢复关闭前的状态. */ - QString file = QCoreApplication::applicationDirPath()+"/CableTool.ini"; - settings = new QSettings(file, QSettings::IniFormat, this); -#if 0 - for(int i = 0; i < ui->comboPort->count(); i++) + /* 只可以配置变比. */ + readOnlyDelegate = new ReadOnlyDelegate(this); + for(int i = 0; i < ui->adjustTable->columnCount(); i++) { - if (!QString::compare(ui->comboPort->itemText(i), settings->value("usartBoxName", "COM1").toString(), Qt::CaseSensitive)) + if (0 == i || 2 == i || 3 == i || 4 == i || 7 == i || 10 == i || 13 == i || 16 == i) { - ui->comboPort->setCurrentIndex(i); + continue; } + ui->adjustTable->setItemDelegateForColumn(i, readOnlyDelegate); } -#endif - - ui->comboBaud->setCurrentIndex(settings->value("baudBoxIndex", 6).toInt()); - filePath = settings->value("updateFile", "").toString(); - adjFilePath = settings->value("adjFile", "").toString(); - waveFilePath = settings->value("waveFile", "").toString(); - QFileInfo fileinfo = QFileInfo(filePath); - ui->fileNameEdit->setText(fileinfo.fileName()); - ui->fileNameEdit->setReadOnly(true); - ui->fileTypeBox->setCurrentIndex(settings->value("updateFileType", 0).toInt()); - ui->freChBox->setCurrentIndex(settings->value("freChIndex", 0).toInt()); - - //searchUsablePort(); - - readOnlyDelegate = new ReadOnlyDelegate(this); + for(int i = 0; i < ui->adjustTable->rowCount(); i++) + { + QCheckBox *checkBox = new QCheckBox(); + ui->adjustTable->setCellWidget(i, 0, checkBox); + } + + /* 配置历史数据页面表格 */ //如下代码设置横向表格头的间隔线,有四个方向的间隔线,不需要间隔线的可以设置为0px ui->historyDataTable->horizontalHeader()->setStyleSheet( @@ -138,10 +126,44 @@ Widget::Widget(QWidget *parent) ui->historyDataTable->horizontalHeader()->resizeSection(10, 110); ui->historyDataTable->horizontalHeader()->resizeSection(11, 110); + /* 打开配置文件, 恢复关闭前的状态. */ + QString file = QCoreApplication::applicationDirPath()+"/CableTool.ini"; + settings = new QSettings(file, QSettings::IniFormat, this); +#if 0 + for(int i = 0; i < ui->comboPort->count(); i++) + { + if (!QString::compare(ui->comboPort->itemText(i), settings->value("usartBoxName", "COM1").toString(), Qt::CaseSensitive)) + { + ui->comboPort->setCurrentIndex(i); + } + } +#endif + ui->comboBaud->setCurrentIndex(settings->value("baudBoxIndex", 6).toInt()); + filePath = settings->value("updateFile", "").toString(); + adjFilePath = settings->value("adjFile", "").toString(); + waveFilePath = settings->value("waveFile", "").toString(); + QFileInfo fileinfo = QFileInfo(filePath); + ui->fileNameEdit->setText(fileinfo.fileName()); + ui->fileNameEdit->setReadOnly(true); + ui->fileTypeBox->setCurrentIndex(settings->value("updateFileType", 0).toInt()); + ui->freChBox->setCurrentIndex(settings->value("freChIndex", 0).toInt()); + } Widget::~Widget() { + for(int i = 0; i < ui->frequencyTable->columnCount(); i++) + { + for(int j = 0; j < ui->frequencyTable->rowCount(); j++) + { + delete ui->frequencyTable->item(j, i); + } + } + + for(int i = 0; i < ui->adjustTable->rowCount(); i++) + { + delete ui->adjustTable->cellWidget(i, 0); + } //delete usartProtocol; deinitSerial(); delete settings; @@ -988,6 +1010,8 @@ int Widget::protoHistoryData(char * data) mul_head_t *header = reinterpret_cast(data + sizeof(proto_head_t)); fd_data_t *pHistoryData; uint32_t cnt = 0; + qDebug() << "index:" << header->index << "len:" << header->len << endl; + /* 数据头校验. */ if (header->index != dataIndex || header->len > UPDATE_DATA_SIZE) @@ -2220,26 +2244,26 @@ void Widget::on_ratioSetButton_clicked() if (40 == ratio) { ui->adjustTable->item(i, 4)->setText(QString::number(1000)); - ui->adjustTable->item(i, 7)->setText(QString::number(5000)); - ui->adjustTable->item(i, 10)->setText(QString::number(10000)); - ui->adjustTable->item(i, 13)->setText(QString::number(50000)); - ui->adjustTable->item(i, 16)->setText(QString::number(100000)); + ui->adjustTable->item(i, 7)->setText(QString::number(2000)); + ui->adjustTable->item(i, 10)->setText(QString::number(5000)); + ui->adjustTable->item(i, 13)->setText(QString::number(10000)); + ui->adjustTable->item(i, 16)->setText(QString::number(30000)); } else if(60 == ratio) { ui->adjustTable->item(i, 4)->setText(QString::number(1000)); - ui->adjustTable->item(i, 7)->setText(QString::number(5000)); - ui->adjustTable->item(i, 10)->setText(QString::number(10000)); - ui->adjustTable->item(i, 13)->setText(QString::number(50000)); - ui->adjustTable->item(i, 16)->setText(QString::number(100000)); + ui->adjustTable->item(i, 7)->setText(QString::number(2000)); + ui->adjustTable->item(i, 10)->setText(QString::number(5000)); + ui->adjustTable->item(i, 13)->setText(QString::number(10000)); + ui->adjustTable->item(i, 16)->setText(QString::number(30000)); } else if(200 == ratio) { ui->adjustTable->item(i, 4)->setText(QString::number(1000)); - ui->adjustTable->item(i, 7)->setText(QString::number(10000)); - ui->adjustTable->item(i, 10)->setText(QString::number(50000)); - ui->adjustTable->item(i, 13)->setText(QString::number(100000)); - ui->adjustTable->item(i, 16)->setText(QString::number(200000)); + ui->adjustTable->item(i, 7)->setText(QString::number(3000)); + ui->adjustTable->item(i, 10)->setText(QString::number(10000)); + ui->adjustTable->item(i, 13)->setText(QString::number(30000)); + ui->adjustTable->item(i, 16)->setText(QString::number(100000)); } else if(400 == ratio) { @@ -2302,3 +2326,12 @@ void Widget::on_adjButton_clicked() buttonEnable(false); sendMsgDeviceAdjustMode(DEBUG_PRV_ADJ_AUTO); } + +void Widget::on_tabWidget_tabBarClicked(int index) +{ + qDebug() << "index" << index << endl; + if (index == 6) + { + uiAdjustInfoRefresh(); + } +} diff --git a/CableTool/widget.h b/CableTool/widget.h index dfbc34e..4dd781e 100644 --- a/CableTool/widget.h +++ b/CableTool/widget.h @@ -92,6 +92,8 @@ private slots: void on_adjButton_clicked(); + void on_tabWidget_tabBarClicked(int index); + private: QString toHexadecimal(const QByteArray &byteArray);