[Add] English version work is done

This commit is contained in:
Carl 2024-11-05 15:44:19 +08:00
parent d4ae45d1dc
commit bfee5f9d49
16 changed files with 16582 additions and 1273 deletions

View File

@ -11,6 +11,7 @@ CONFIG += c++17
SOURCES += \ SOURCES += \
appproto.cpp \ appproto.cpp \
appproto_english.cpp \
batt.cpp \ batt.cpp \
chartpaint.cpp \ chartpaint.cpp \
custom/delegate.cpp \ custom/delegate.cpp \
@ -23,10 +24,12 @@ SOURCES += \
mainwindow.cpp \ mainwindow.cpp \
modbusrtu.cpp \ modbusrtu.cpp \
proto/battery.pb.cc \ proto/battery.pb.cc \
appserial.cpp appserial.cpp \
proto/battery_english.pb.cc
HEADERS += \ HEADERS += \
appproto.h \ appproto.h \
appproto_english.h \
batt.h \ batt.h \
chartpaint.h \ chartpaint.h \
custom/delegate.h \ custom/delegate.h \
@ -42,7 +45,8 @@ HEADERS += \
mainwindow.h \ mainwindow.h \
modbusrtu.h \ modbusrtu.h \
proto/battery.pb.h \ proto/battery.pb.h \
appserial.h appserial.h \
proto/battery_english.pb.h
FORMS += \ FORMS += \
dialoglogin.ui \ dialoglogin.ui \

Binary file not shown.

View File

@ -15,38 +15,6 @@ AppProto::~AppProto()
void AppProto::init() void AppProto::init()
{ {
// Battery::BCUList bcus;
// std::ifstream finBetteryData("battery.data", std::ios::binary);
// if(!bcus.ParseFromIstream(&finBetteryData)) {
// qDebug() << "Failed to parse BSU message.";
// // config message
// int bmuNum = 16;
// int cellNum = 26;
// for(int i = 0; i < bmuNum; i++) {
// bcus.add_bmus();
// bcus.mutable_bmus(i)->set_name("BUM" + QString("%1").arg(i+1).toStdString());
// for(int j = 0; j < cellNum; j++) {
// bcus.mutable_bmus(i)->add_cells();
// bcus.mutable_bmus(i)->mutable_cells(j)->set_name("Cell" + QString("%1").arg(j+1).toStdString());
// }
// }
// std::fstream foutBetteryData("battery.data",std::ios::out | std::ios::trunc | std::ios::binary);
// if(!bcus.SerializePartialToOstream(&foutBetteryData)) {
// qDebug() << "filed";
// }
// foutBetteryData.close();
// foutBetteryData.clear();
// }
// else {
// qDebug() << "bum num:" << bcus.bmus_size();
// for(int i = 0; i < bcus.bmus_size(); i++) {
// qDebug() << "bmu name:" << bcus.bmus(i).name().c_str() << "cell num:" << bcus.bmus(i).cells_size();
// for(int j = 0; j < bcus.bmus(i).cells_size(); j++) {
// qDebug() << "cell name:" << bcus.bmus(i).cells(j).name().c_str();
// }
// }
// }
BatteryConfig::Item item; BatteryConfig::Item item;
std::ifstream finBetteryData("battery.data", std::ios::binary); std::ifstream finBetteryData("battery.data", std::ios::binary);
if(!item.ParseFromIstream(&finBetteryData)) { if(!item.ParseFromIstream(&finBetteryData)) {

4943
appproto_english.cpp Normal file

File diff suppressed because it is too large Load Diff

30
appproto_english.h Normal file
View File

@ -0,0 +1,30 @@
#ifndef APPPROTO_ENGLISH_H
#define APPPROTO_ENGLISH_H
#include <QObject>
class Appproto_English : public QObject
{
Q_OBJECT
public:
explicit Appproto_English(QObject *parent = nullptr);
~Appproto_English();
void init();
public:
int itemCount = 0;
int itemCount_balance = 0;
int itemCount_DIDO = 0;
int itemCount_SOX = 0;
int itemCount_other = 0;
int itemCount_alert_value = 0;
int itemCount_alert_delay = 0;
int itemCount_alert_release_value = 0;
int itemCount_alert_release_delay = 0;
int itemCount_alert_dropcurr_rate = 0;
int itemCount_alert_solve_measure = 0;
};
#endif // APPPROTO_ENGLISH_H

View File

@ -10,6 +10,7 @@
#include "appserial.h" #include "appserial.h"
#include "modbusrtu.h" #include "modbusrtu.h"
#include <windef.h> #include <windef.h>
#include <QTranslator>
#include <QThread> #include <QThread>
DialogLogin::DialogLogin(QWidget *parent) DialogLogin::DialogLogin(QWidget *parent)
@ -53,6 +54,9 @@ void DialogLogin::init()
ini = new QSettings("config.ini", QSettings::IniFormat); ini = new QSettings("config.ini", QSettings::IniFormat);
connect(ui->btnConnect, &QPushButton::clicked, this, &DialogLogin::slot_btnConnect_clicked); connect(ui->btnConnect, &QPushButton::clicked, this, &DialogLogin::slot_btnConnect_clicked);
// //将背景设置为白色
// ui->groupBox->setStyleSheet("background-color: #FFFFFF;");
// //传递BCU个数的信号与槽 // //传递BCU个数的信号与槽
// BCUNumbers = ui->comboBoxBCUQuantity->currentText().toInt(); // BCUNumbers = ui->comboBoxBCUQuantity->currentText().toInt();
// qDebug() << "the number of the BCU: " << BCUNumbers; // qDebug() << "the number of the BCU: " << BCUNumbers;
@ -97,6 +101,11 @@ void DialogLogin::init()
m_ModbusRTU->quit(); m_ModbusRTU->quit();
}); });
//主窗口接受语言选择number的信号与槽的连接
connect(this, &DialogLogin::sendLanNumberSignals, m_MainWindow, &MainWindow::getLanNumberSlot);
// QMetaObject::invokeMethod(m_ModbusRTU,"read_regs_slot",Qt::QueuedConnection); // QMetaObject::invokeMethod(m_ModbusRTU,"read_regs_slot",Qt::QueuedConnection);
// connect(m_ModbusRTU, &ModbusRTU::sig_readMoveToThread, m_ModbusRTU, &ModbusRTU::read_regs_slot, Qt::QueuedConnection); // connect(m_ModbusRTU, &ModbusRTU::sig_readMoveToThread, m_ModbusRTU, &ModbusRTU::read_regs_slot, Qt::QueuedConnection);
// thread = new QThread; // thread = new QThread;
@ -117,6 +126,8 @@ void DialogLogin::serialInit()
ui->comboBoxDataBits->setCurrentIndex(3); ui->comboBoxDataBits->setCurrentIndex(3);
ui->comboBoxStopBits->setCurrentIndex(0); ui->comboBoxStopBits->setCurrentIndex(0);
ui->comboBoxParity->setCurrentIndex(0); ui->comboBoxParity->setCurrentIndex(0);
ui->comboBoxLanguage->setCurrentIndex(ini->value("System/Language").toUInt());
// qDebug() << "lan currentIndex false:" << ini->value("System/Language").toUInt();
} }
else { else {
ui->comboBoxSerialPort->addItems(m_Serial->getAvailablePort()); ui->comboBoxSerialPort->addItems(m_Serial->getAvailablePort());
@ -124,6 +135,9 @@ void DialogLogin::serialInit()
ui->comboBoxDataBits->setCurrentIndex(ini->value("Serial/DataBits").toUInt()); ui->comboBoxDataBits->setCurrentIndex(ini->value("Serial/DataBits").toUInt());
ui->comboBoxStopBits->setCurrentIndex(ini->value("Serial/StopBits").toUInt()); ui->comboBoxStopBits->setCurrentIndex(ini->value("Serial/StopBits").toUInt());
ui->comboBoxParity->setCurrentIndex(ini->value("Serial/Parity").toUInt()); ui->comboBoxParity->setCurrentIndex(ini->value("Serial/Parity").toUInt());
ui->comboBoxLanguage->setCurrentIndex(ini->value("System/Language").toUInt());
// ui->comboBoxLanguage->setCurrentIndex(ini->value());
// qDebug() << "lan currentIndex " << ini->value("System/Language").toUInt();
} }
} }
@ -174,6 +188,30 @@ void DialogLogin::slot_btnConnect_clicked()
{ {
BCUNumbers = ui->comboBoxBCUQuantity->currentText().toInt(); BCUNumbers = ui->comboBoxBCUQuantity->currentText().toInt();
QString language = ui->comboBoxLanguage->currentText();
if (language == "English")
{
qDebug() << "ini lanuage index" << ini->value("System/Language");
ini->setValue("System/Language", 1);
ini->sync();
QTranslator trans;
emit sendLanNumberSignals(0);
trans.load(":/Language/BatteryMonitor_ENG.qm");
QApplication::installTranslator(&trans);
m_MainWindow->ui->retranslateUi(m_MainWindow);
}
else if (language == "Chinese")
{
qDebug() << "ini lanuage index" << ini->value("System/Language");
ini->setValue("System/Language", 0);
ini->sync();
emit sendLanNumberSignals(1);
QTranslator trans;
trans.load(":/Language/BatteryMonitor_CHN.qm");
QApplication::installTranslator(&trans);
m_MainWindow->ui->retranslateUi(m_MainWindow);
}
emit sendBCUNumberSignals(BCUNumbers); emit sendBCUNumberSignals(BCUNumbers);
connect(this, &DialogLogin::sendBCUNumberSignals, m_MainWindow, &MainWindow::slot_getBcuNumberFromDialoglogin); connect(this, &DialogLogin::sendBCUNumberSignals, m_MainWindow, &MainWindow::slot_getBcuNumberFromDialoglogin);
ini->setValue("Serial/BaudRate", ui->comboBoxBaudRate->currentIndex()); ini->setValue("Serial/BaudRate", ui->comboBoxBaudRate->currentIndex());
@ -263,6 +301,7 @@ void DialogLogin::slot_btnConnect_clicked()
// m_MainWindow->showMaximized(); // m_MainWindow->showMaximized();
// m_ModbusRTU->start(); // m_ModbusRTU->start();
m_ModbusRTU->start(); m_ModbusRTU->start();
m_MainWindow->showMaximized();
} }
else { else {
if(ini->value("System/Language") == MainWindow::LANGUAGE_ENG) { if(ini->value("System/Language") == MainWindow::LANGUAGE_ENG) {

View File

@ -36,6 +36,7 @@ private:
signals: signals:
void sendBCUNumberSignals(int number); void sendBCUNumberSignals(int number);
void sendLanNumberSignals(int number);
private slots: private slots:
void slot_comChangeStatus(QString name, bool flag); void slot_comChangeStatus(QString name, bool flag);

View File

@ -20,93 +20,33 @@
<string>Dialog</string> <string>Dialog</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="2" column="0" colspan="2">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="4" column="0" colspan="2">
<widget class="QPushButton" name="btnConnect">
<property name="text">
<string>Connect</string>
</property>
</widget>
</item>
<item row="0" column="0" colspan="2"> <item row="0" column="0" colspan="2">
<widget class="QGroupBox" name="groupBox"> <widget class="QGroupBox" name="groupBox">
<property name="title"> <property name="title">
<string>Communication</string> <string>Communication</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout_2"> <layout class="QGridLayout" name="gridLayout_2">
<item row="9" column="3"> <item row="8" column="3">
<widget class="QComboBox" name="comboBoxParity">
<item>
<property name="text">
<string>None</string>
</property>
</item>
<item>
<property name="text">
<string>Odd</string>
</property>
</item>
<item>
<property name="text">
<string>Even</string>
</property>
</item>
</widget>
</item>
<item row="2" column="3">
<widget class="QComboBox" name="comboBoxSerialPort"/>
</item>
<item row="5" column="2">
<widget class="QLabel" name="labelBaudRate">
<property name="text">
<string>Baud Rate</string>
</property>
</widget>
</item>
<item row="5" column="3">
<widget class="QComboBox" name="comboBoxBaudRate">
<item>
<property name="text">
<string>1200</string>
</property>
</item>
<item>
<property name="text">
<string>2400</string>
</property>
</item>
<item>
<property name="text">
<string>4800</string>
</property>
</item>
<item>
<property name="text">
<string>9600</string>
</property>
</item>
<item>
<property name="text">
<string>19200</string>
</property>
</item>
<item>
<property name="text">
<string>38400</string>
</property>
</item>
<item>
<property name="text">
<string>57600</string>
</property>
</item>
<item>
<property name="text">
<string>115200</string>
</property>
</item>
</widget>
</item>
<item row="2" column="2">
<widget class="QLabel" name="labelSerialPort">
<property name="text">
<string>Serial Port</string>
</property>
</widget>
</item>
<item row="6" column="3">
<widget class="QComboBox" name="comboBoxDataBits"> <widget class="QComboBox" name="comboBoxDataBits">
<item> <item>
<property name="text"> <property name="text">
@ -130,21 +70,10 @@
</item> </item>
</widget> </widget>
</item> </item>
<item row="8" column="2"> <item row="4" column="3">
<widget class="QLabel" name="labelStopBits"> <widget class="QComboBox" name="comboBoxSerialPort"/>
<property name="text">
<string>Stop Bits</string>
</property>
</widget>
</item> </item>
<item row="9" column="2"> <item row="10" column="3">
<widget class="QLabel" name="labelParity">
<property name="text">
<string>Parity</string>
</property>
</widget>
</item>
<item row="8" column="3">
<widget class="QComboBox" name="comboBoxStopBits"> <widget class="QComboBox" name="comboBoxStopBits">
<item> <item>
<property name="text"> <property name="text">
@ -158,14 +87,7 @@
</item> </item>
</widget> </widget>
</item> </item>
<item row="6" column="2"> <item row="2" column="3">
<widget class="QLabel" name="labelDataBits">
<property name="text">
<string>Data Bits</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QComboBox" name="comboBoxBCUQuantity"> <widget class="QComboBox" name="comboBoxBCUQuantity">
<item> <item>
<property name="text"> <property name="text">
@ -249,36 +171,135 @@
</item> </item>
</widget> </widget>
</item> </item>
<item row="0" column="2"> <item row="7" column="3">
<widget class="QComboBox" name="comboBoxBaudRate">
<item>
<property name="text">
<string>1200</string>
</property>
</item>
<item>
<property name="text">
<string>2400</string>
</property>
</item>
<item>
<property name="text">
<string>4800</string>
</property>
</item>
<item>
<property name="text">
<string>9600</string>
</property>
</item>
<item>
<property name="text">
<string>19200</string>
</property>
</item>
<item>
<property name="text">
<string>38400</string>
</property>
</item>
<item>
<property name="text">
<string>57600</string>
</property>
</item>
<item>
<property name="text">
<string>115200</string>
</property>
</item>
</widget>
</item>
<item row="7" column="2">
<widget class="QLabel" name="labelBaudRate">
<property name="text">
<string>Baud Rate</string>
</property>
</widget>
</item>
<item row="10" column="2">
<widget class="QLabel" name="labelStopBits">
<property name="text">
<string>Stop Bits</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QLabel" name="labelBCUQuantity"> <widget class="QLabel" name="labelBCUQuantity">
<property name="text"> <property name="text">
<string>BCU Quantity</string> <string>BCU Quantity</string>
</property> </property>
</widget> </widget>
</item> </item>
</layout> <item row="4" column="2">
<widget class="QLabel" name="labelSerialPort">
<property name="text">
<string>Serial Port</string>
</property>
</widget> </widget>
</item> </item>
<item row="2" column="0" colspan="2"> <item row="11" column="2">
<spacer name="verticalSpacer"> <widget class="QLabel" name="labelParity">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="4" column="0" colspan="2">
<widget class="QPushButton" name="btnConnect">
<property name="text"> <property name="text">
<string>Connect</string> <string>Parity</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="8" column="2">
<widget class="QLabel" name="labelDataBits">
<property name="text">
<string>Data Bits</string>
</property>
</widget>
</item>
<item row="11" column="3">
<widget class="QComboBox" name="comboBoxParity">
<item>
<property name="text">
<string>None</string>
</property>
</item>
<item>
<property name="text">
<string>Odd</string>
</property>
</item>
<item>
<property name="text">
<string>Even</string>
</property>
</item>
</widget>
</item>
<item row="1" column="2">
<widget class="QLabel" name="labelBCUQuantity_2">
<property name="text">
<string>Language</string>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QComboBox" name="comboBoxLanguage">
<item>
<property name="text">
<string>Chinese</string>
</property>
</item>
<item>
<property name="text">
<string>English</string>
</property>
</item>
</widget>
</item>
</layout>
</widget>
</item>
</layout> </layout>
</widget> </widget>
<resources/> <resources/>

View File

@ -2,6 +2,7 @@
#include "modbus-private.h" #include "modbus-private.h"
#include "ui_mainwindow.h" #include "ui_mainwindow.h"
#include "appproto.h" #include "appproto.h"
#include "appproto_english.h"
#include "delegate.h" #include "delegate.h"
#include <QApplication> #include <QApplication>
#include <QTranslator> #include <QTranslator>
@ -16,6 +17,7 @@
#include <QStandardItem> #include <QStandardItem>
#include <QStandardItemModel> #include <QStandardItemModel>
#include "proto/battery.pb.h" #include "proto/battery.pb.h"
#include "proto/battery_english.pb.h"
#include "chartpaint.h" #include "chartpaint.h"
#include <fstream> #include <fstream>
#include <QToolTip> #include <QToolTip>
@ -32,26 +34,11 @@ MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent) : QMainWindow(parent)
, ui(new Ui::MainWindow) , ui(new Ui::MainWindow)
{ {
qDebug() << "mainwindow:进入线程:" << QThread::currentThread();
// QMetaObject::invokeMethod(this, "write_regs_slot", Qt::QueuedConnection);
// QMetaObject::invokeMethod(this, "read_regs_slot", Qt::QueuedConnection);
ui->setupUi(this); ui->setupUi(this);
this->init(); this->init();
this->setMenuStyle(); this->setMenuStyle();
m_AppProto = new AppProto; m_AppProto = new AppProto;
pageBatteryInit(); m_AppProto_English = new Appproto_English;
pageParaSetInit();
pageParaSetInit_alert_value();
pageParaSetInit_alert_delay();
pageParaSetInit_alert_release_value();
pageParaSetInit_alert_release_delay();
pageParaSetInit_alert_dropcurr_rate();
pageParaSetInit_alert_solve_measure();
pageParaSetInit_DIDO_setting();
pageParaSetInit_balance_setting();
pageParaSetInit_SOX_setting();
pageParaSetInit_other_setting();
connect(ui->tabWidget_paraset, SIGNAL(currentChanged(int)), this, SLOT(on_tabChanged(int))); connect(ui->tabWidget_paraset, SIGNAL(currentChanged(int)), this, SLOT(on_tabChanged(int)));
} }
@ -66,7 +53,7 @@ void MainWindow::init()
setWindowTitle("Battery Monitor"); setWindowTitle("Battery Monitor");
/* 设置Logo */ /* 设置Logo */
setWindowIcon(QIcon(":/Image/icon.png")); setWindowIcon(QIcon(":/Image/icon.png"));
// this->showMaximized();
/* 读取配置文件 */ /* 读取配置文件 */
ini = new QSettings("config.ini", QSettings::IniFormat); ini = new QSettings("config.ini", QSettings::IniFormat);
if(QFile::exists("config.ini")) { if(QFile::exists("config.ini")) {
@ -89,34 +76,36 @@ void MainWindow::init()
/* 设置初始界面语言 */ /* 设置初始界面语言 */
if(ini->value("System/Language") == LANGUAGE_ENG) { if(ini->value("System/Language") == LANGUAGE_ENG) {
QTranslator trans; QTranslator trans;
qDebug() << "ini in the mainwindow :" << ini->value("System/Language");
trans.load(":/Language/BatteryMonitor_ENG.qm"); trans.load(":/Language/BatteryMonitor_ENG.qm");
QApplication::installTranslator(&trans); QApplication::installTranslator(&trans);
ui->retranslateUi(this); ui->retranslateUi(this);
} }
else if(ini->value("System/Language") == LANGUAGE_CHN) { else if(ini->value("System/Language") == LANGUAGE_CHN) {
qDebug() << "ini in the mainwindow :" << ini->value("System/Language");
QTranslator trans; QTranslator trans;
trans.load(":/Language/BatteryMonitor_CHN.qm"); trans.load(":/Language/BatteryMonitor_CHN.qm");
QApplication::installTranslator(&trans); QApplication::installTranslator(&trans);
ui->retranslateUi(this); ui->retranslateUi(this);
} }
connect(ui->actionChinese, &QAction::triggered, this, [=]{ // connect(ui->actionChinese, &QAction::triggered, this, [=]{
ini->setValue("System/Language", LANGUAGE_CHN); // ini->setValue("System/Language", LANGUAGE_CHN);
ini->sync(); // ini->sync();
QTranslator trans; // QTranslator trans;
trans.load(":/Language/BatteryMonitor_CHN.qm"); // trans.load(":/Language/BatteryMonitor_CHN.qm");
QApplication::installTranslator(&trans); // QApplication::installTranslator(&trans);
ui->retranslateUi(this); // ui->retranslateUi(this);
}); // });
connect(ui->actionEnglish, &QAction::triggered, this, [=]{ // connect(ui->actionEnglish, &QAction::triggered, this, [=]{
ini->setValue("System/Language", LANGUAGE_ENG); // ini->setValue("System/Language", LANGUAGE_ENG);
ini->sync(); // ini->sync();
QTranslator trans; // QTranslator trans;
trans.load(":/Language/BatteryMonitor_ENG.qm"); // trans.load(":/Language/BatteryMonitor_ENG.qm");
QApplication::installTranslator(&trans); // QApplication::installTranslator(&trans);
ui->retranslateUi(this); // ui->retranslateUi(this);
}); // });
/* 状态栏设置 */ /* 状态栏设置 */
statusBarConnectedIcon = new QLabel(); statusBarConnectedIcon = new QLabel();
@ -202,8 +191,8 @@ void MainWindow::init()
// ui->tab_charts->setLayout(hBoxLayout); // ui->tab_charts->setLayout(hBoxLayout);
//绘制单体表格 //绘制单体表格
sglChartInit(7); // sglChartInit(7);
ui->groupBox_color_sgl->setStyleSheet("QGroupBox { border: none; }"); // ui->groupBox_color_sgl->setStyleSheet("QGroupBox { border: none; }");
// ui->scrollArea_sgl_charts->setFrameShape(QFrame::NoFrame); // ui->scrollArea_sgl_charts->setFrameShape(QFrame::NoFrame);
ui->scrollAreaChart->setFrameShape(QFrame::NoFrame); ui->scrollAreaChart->setFrameShape(QFrame::NoFrame);
@ -264,11 +253,11 @@ void MainWindow::init()
ui->color_trouble_3->setStyleSheet("background-image: url(:/Image/trouble-background-3.png);"); ui->color_trouble_3->setStyleSheet("background-image: url(:/Image/trouble-background-3.png);");
ui->color_trouble_normal->setStyleSheet("background-image: url(:/Image/trouble-background-normal.png);"); ui->color_trouble_normal->setStyleSheet("background-image: url(:/Image/trouble-background-normal.png);");
ui->color_sgl_high->setStyleSheet("background-color: rgb(255, 0, 0);"); // ui->color_sgl_high->setStyleSheet("background-color: rgb(255, 0, 0);");
ui->color_sgl_low->setStyleSheet("background-color: rgb(0, 255, 0);"); // ui->color_sgl_low->setStyleSheet("background-color: rgb(0, 255, 0);");
ui->color_equilibrium->setStyleSheet("background-color: rgb(0, 0, 200);"); // ui->color_equilibrium->setStyleSheet("background-color: rgb(0, 0, 200);");
ui->color_short_circuit->setStyleSheet("background-color: rgb(255, 165, 0);"); // ui->color_short_circuit->setStyleSheet("background-color: rgb(255, 165, 0);");
ui->groupBox_color_sgl->setStyleSheet("QGroupBox { border: none; }"); // ui->groupBox_color_sgl->setStyleSheet("QGroupBox { border: none; }");
ui->label_all_overVol->setStyleSheet("QLabel{" ui->label_all_overVol->setStyleSheet("QLabel{"
"background-image: url(:/Image/trouble-background-default.png);" "background-image: url(:/Image/trouble-background-default.png);"
@ -537,7 +526,7 @@ void MainWindow::init()
void MainWindow::sglChartInit(int bat_count) void MainWindow::sglChartInit(int bat_count)
{ {
ui->tabWidget_sgl_info->setCurrentWidget(ui->tab_vol); // ui->tabWidget_sgl_info->setCurrentWidget(ui->tab_vol);
QStringList labels = { QStringList labels = {
"Bmu", "C1", "C2", "Bmu", "C1", "C2",
"C3", "C4", "C5", "C6", "C7", "C3", "C4", "C5", "C6", "C7",
@ -617,8 +606,8 @@ void MainWindow::sglChartInit(int bat_count)
hBoxLayout_vol->addWidget(page_paraset_sys_sgl_vol); hBoxLayout_vol->addWidget(page_paraset_sys_sgl_vol);
hBoxLayout_tempt->addWidget(page_paraset_sys_sgl_temp); hBoxLayout_tempt->addWidget(page_paraset_sys_sgl_temp);
ui->tab_vol->setLayout(hBoxLayout_vol); // ui->tab_vol->setLayout(hBoxLayout_vol);
ui->tab_tempt->setLayout(hBoxLayout_tempt); // ui->tab_tempt->setLayout(hBoxLayout_tempt);
} }
void MainWindow::setMenuStyle() void MainWindow::setMenuStyle()
@ -1487,7 +1476,7 @@ void MainWindow::slot_pageHomeBaseInfo47_49_51_53_55(QList<int> byteArray, int d
void MainWindow::sgl_info_process(QList<int> sgl_info, QList<QLabel*> labelList) void MainWindow::sgl_info_process(QList<int> sgl_info, QList<QLabel*> labelList)
{ {
ui->tabWidget_sgl_info->update(); // ui->tabWidget_sgl_info->update();
int MaxIndex = findMaxIndex(sgl_info); int MaxIndex = findMaxIndex(sgl_info);
int MinIndex = findMinIndex(sgl_info); int MinIndex = findMinIndex(sgl_info);
@ -1549,6 +1538,24 @@ int MainWindow::findMinIndex(QList<int> sgl_info)
return minIndex; return minIndex;
} }
void MainWindow::getLanNumberSlot(int number)
{
lan = number;
qDebug() << "lan:" << lan;
pageBatteryInit();
pageParaSetInit();
pageParaSetInit_alert_value();
pageParaSetInit_alert_delay();
pageParaSetInit_alert_release_value();
pageParaSetInit_alert_release_delay();
pageParaSetInit_alert_dropcurr_rate();
pageParaSetInit_alert_solve_measure();
pageParaSetInit_DIDO_setting();
pageParaSetInit_balance_setting();
pageParaSetInit_SOX_setting();
pageParaSetInit_other_setting();
}
void MainWindow::pageBatteryInit() void MainWindow::pageBatteryInit()
{ {
@ -1610,7 +1617,7 @@ void MainWindow::pageParaSetInit()
QStringList columnNames; QStringList columnNames;
QList<int> columnWidths; QList<int> columnWidths;
columnNames << "check" << "name" << "value" << "introduce"; columnNames << "check" << "name" << "value" << "introduce";
columnWidths << 60 << 240 << 120 << 120; columnWidths << 60 << 420 << 120 << 120;
model = new QStandardItemModel; model = new QStandardItemModel;
model->setHorizontalHeaderLabels(columnNames); model->setHorizontalHeaderLabels(columnNames);
@ -1638,6 +1645,37 @@ void MainWindow::pageParaSetInit()
lineEidtDelegate2->setDelegateType("QLineEdit"); lineEidtDelegate2->setDelegateType("QLineEdit");
ui->tableView_paraset_sys->setItemDelegateForColumn(3,lineEidtDelegate2); ui->tableView_paraset_sys->setItemDelegateForColumn(3,lineEidtDelegate2);
if(lan == 0)
{
BatteryConfig_English::Item item;
std::ifstream finBetteryData("battery_english.data", std::ios::binary);
if(!item.ParseFromIstream(&finBetteryData)) {
qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed";
finBetteryData.close();
finBetteryData.clear();
}
else {
qDebug() << "english_item size: 11111111111111" << item.itemattr_size();
for(int i = 0; i < item.itemattr_size(); i++)
{
for(int j = 0; j < 4; j++) {
if(j == 1) {
model->setItem(i, j, new QStandardItem(item.itemattr(i).name().c_str()));
}
else if(j == 2) {
model->setItem(i, j, new QStandardItem(QString::number(item.itemattr(i).value())));
}
else if(j == 3) {
model->setItem(i, j, new QStandardItem(item.itemattr(i).introduce().c_str()));
}
}
}
finBetteryData.close();
finBetteryData.clear();
}
}
else if(lan == 1)
{
BatteryConfig::Item item; BatteryConfig::Item item;
std::ifstream finBetteryData("battery.data", std::ios::binary); std::ifstream finBetteryData("battery.data", std::ios::binary);
if(!item.ParseFromIstream(&finBetteryData)) { if(!item.ParseFromIstream(&finBetteryData)) {
@ -1646,8 +1684,6 @@ void MainWindow::pageParaSetInit()
finBetteryData.clear(); finBetteryData.clear();
} }
else { else {
qDebug() << "item size: 11111111111111" << item.itemattr_size(); qDebug() << "item size: 11111111111111" << item.itemattr_size();
for(int i = 0; i < item.itemattr_size(); i++) for(int i = 0; i < item.itemattr_size(); i++)
@ -1664,28 +1700,12 @@ void MainWindow::pageParaSetInit()
} }
} }
} }
// qDebug() << "item name:11111111111111" << item.itemattr(41).name().c_str() << "item value:" << item.itemattr(157).value() << "item introduce:" <<
// item.itemattr(157).introduce().c_str() << "item scale" << item.itemattr(157).scale();
// qDebug() << "item name:11111111111111" << item.itemattr(42).name().c_str() << "item value:" << item.itemattr(161).value() << "item introduce:" <<
// item.itemattr(161).introduce().c_str() << "item scale" << item.itemattr(161).scale();
// qDebug() << "item name:11111111111111" << item.itemattr(68).name().c_str() << "item value:" << item.itemattr(157).value() << "item introduce:" <<
// item.itemattr(157).introduce().c_str() << "item scale" << item.itemattr(157).scale();
// qDebug() << "item name:11111111111111" << item.itemattr(75).name().c_str() << "item value:" << item.itemattr(161).value() << "item introduce:" <<
// item.itemattr(161).introduce().c_str() << "item scale" << item.itemattr(161).scale();
// qDebug() << "item name:11111111111111" << item.itemattr(78).name().c_str() << "item value:" << item.itemattr(157).value() << "item introduce:" <<
// item.itemattr(157).introduce().c_str() << "item scale" << item.itemattr(157).scale();
// qDebug() << "item name:11111111111111" << item.itemattr(85).name().c_str() << "item value:" << item.itemattr(161).value() << "item introduce:" <<
// item.itemattr(161).introduce().c_str() << "item scale" << item.itemattr(161).scale();
finBetteryData.close(); finBetteryData.close();
finBetteryData.clear(); finBetteryData.clear();
} }
}
} }
void MainWindow::pageParaSetInit_alert_value() void MainWindow::pageParaSetInit_alert_value()
@ -1743,7 +1763,7 @@ void MainWindow::pageParaSetInit_alert_value()
QStringList columnNames; QStringList columnNames;
QList<int> columnWidths; QList<int> columnWidths;
columnNames << "check" << "name" << "value" << "introduce"; columnNames << "check" << "name" << "value" << "introduce";
columnWidths << 60 << 240 << 120 << 120; columnWidths << 60 << 420 << 120 << 120;
model = new QStandardItemModel; model = new QStandardItemModel;
model->setHorizontalHeaderLabels(columnNames); model->setHorizontalHeaderLabels(columnNames);
@ -1771,18 +1791,16 @@ void MainWindow::pageParaSetInit_alert_value()
lineEidtDelegate2->setDelegateType("QLineEdit"); lineEidtDelegate2->setDelegateType("QLineEdit");
ui->tableView_paraset_alert_value->setItemDelegateForColumn(3,lineEidtDelegate2); ui->tableView_paraset_alert_value->setItemDelegateForColumn(3,lineEidtDelegate2);
BatteryConfig::Item item; if(lan == 0)
std::ifstream finBetteryData("battery.data", std::ios::binary); {
BatteryConfig_English::Item item;
std::ifstream finBetteryData("battery_english.data", std::ios::binary);
if(!item.ParseFromIstream(&finBetteryData)) { if(!item.ParseFromIstream(&finBetteryData)) {
qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed"; qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed";
finBetteryData.close(); finBetteryData.close();
finBetteryData.clear(); finBetteryData.clear();
} }
else { else {
// qDebug() << "item name:" << item.itemattr(0).name().c_str() << "item value:" << item.itemattr(0).value() << "item introduce:" <<
// item.itemattr(0).introduce().c_str() << "item scale" << item.itemattr(0).scale();
// qDebug() << "item size:" << item.itemattr_size();
for(int i = 0; i < item.itemattr_alert_value_size(); i++) { for(int i = 0; i < item.itemattr_alert_value_size(); i++) {
for(int j = 0; j < 4; j++) { for(int j = 0; j < 4; j++) {
if(j == 1) { if(j == 1) {
@ -1800,6 +1818,35 @@ void MainWindow::pageParaSetInit_alert_value()
finBetteryData.close(); finBetteryData.close();
finBetteryData.clear(); finBetteryData.clear();
} }
}
else if(lan == 1)
{
BatteryConfig::Item item;
std::ifstream finBetteryData("battery.data", std::ios::binary);
if(!item.ParseFromIstream(&finBetteryData)) {
qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed";
finBetteryData.close();
finBetteryData.clear();
}
else {
for(int i = 0; i < item.itemattr_alert_value_size(); i++) {
for(int j = 0; j < 4; j++) {
if(j == 1) {
model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_value(i)->name().c_str()));
}
else if(j == 2) {
model->setItem(i, j, new QStandardItem(QString::number(item.mutable_itemattr_alert_value(i)->value())));
}
else if(j == 3) {
model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_value(i)->introduce().c_str()));
}
}
}
finBetteryData.close();
finBetteryData.clear();
}
}
} }
void MainWindow::pageParaSetInit_alert_delay() void MainWindow::pageParaSetInit_alert_delay()
@ -1857,7 +1904,7 @@ void MainWindow::pageParaSetInit_alert_delay()
QStringList columnNames; QStringList columnNames;
QList<int> columnWidths; QList<int> columnWidths;
columnNames << "check" << "name" << "value" << "introduce"; columnNames << "check" << "name" << "value" << "introduce";
columnWidths << 60 << 240 << 120 << 120; columnWidths << 60 << 420 << 120 << 120;
model = new QStandardItemModel; model = new QStandardItemModel;
model->setHorizontalHeaderLabels(columnNames); model->setHorizontalHeaderLabels(columnNames);
@ -1885,6 +1932,37 @@ void MainWindow::pageParaSetInit_alert_delay()
lineEidtDelegate2->setDelegateType("QLineEdit"); lineEidtDelegate2->setDelegateType("QLineEdit");
ui->tableView_paraset_alert_delay->setItemDelegateForColumn(3,lineEidtDelegate2); ui->tableView_paraset_alert_delay->setItemDelegateForColumn(3,lineEidtDelegate2);
if(lan == 0)
{
BatteryConfig_English::Item item;
std::ifstream finBetteryData("battery_english.data", std::ios::binary);
if(!item.ParseFromIstream(&finBetteryData)) {
qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed";
finBetteryData.close();
finBetteryData.clear();
}
else {
for(int i = 0; i < item.itemattr_alert_delay_size(); i++)
{
for(int j = 0; j < 4; j++) {
if(j == 1) {
model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_delay(i)->name().c_str()));
}
else if(j == 2) {
model->setItem(i, j, new QStandardItem(QString::number(item.mutable_itemattr_alert_delay(i)->value())));
}
else if(j == 3) {
model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_delay(i)->introduce().c_str()));
}
}
}
finBetteryData.close();
finBetteryData.clear();
}
}
else if(lan == 1)
{
BatteryConfig::Item item; BatteryConfig::Item item;
std::ifstream finBetteryData("battery.data", std::ios::binary); std::ifstream finBetteryData("battery.data", std::ios::binary);
if(!item.ParseFromIstream(&finBetteryData)) { if(!item.ParseFromIstream(&finBetteryData)) {
@ -1906,10 +1984,11 @@ void MainWindow::pageParaSetInit_alert_delay()
} }
} }
} }
finBetteryData.close(); finBetteryData.close();
finBetteryData.clear(); finBetteryData.clear();
} }
}
} }
void MainWindow::pageParaSetInit_alert_release_value() void MainWindow::pageParaSetInit_alert_release_value()
@ -1967,7 +2046,7 @@ void MainWindow::pageParaSetInit_alert_release_value()
QStringList columnNames; QStringList columnNames;
QList<int> columnWidths; QList<int> columnWidths;
columnNames << "check" << "name" << "value" << "introduce"; columnNames << "check" << "name" << "value" << "introduce";
columnWidths << 60 << 240 << 120 << 120; columnWidths << 60 << 420 << 120 << 120;
model = new QStandardItemModel; model = new QStandardItemModel;
model->setHorizontalHeaderLabels(columnNames); model->setHorizontalHeaderLabels(columnNames);
@ -1995,6 +2074,34 @@ void MainWindow::pageParaSetInit_alert_release_value()
lineEidtDelegate2->setDelegateType("QLineEdit"); lineEidtDelegate2->setDelegateType("QLineEdit");
ui->tableView_paraset_alert_release_value->setItemDelegateForColumn(3,lineEidtDelegate2); ui->tableView_paraset_alert_release_value->setItemDelegateForColumn(3,lineEidtDelegate2);
if(lan == 0) {
BatteryConfig_English::Item item;
std::ifstream finBetteryData("battery_english.data", std::ios::binary);
if(!item.ParseFromIstream(&finBetteryData)) {
qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed";
finBetteryData.close();
finBetteryData.clear();
}
else {
for(int i = 0; i < item.itemattr_alert_release_value_size(); i++) {
for(int j = 0; j < 4; j++) {
if(j == 1) {
model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_release_value(i)->name().c_str()));
}
else if(j == 2) {
model->setItem(i, j, new QStandardItem(QString::number(item.mutable_itemattr_alert_release_value(i)->value())));
}
else if(j == 3) {
model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_release_value(i)->introduce().c_str()));
}
}
}
finBetteryData.close();
finBetteryData.clear();
}
}
else if(lan == 1) {
BatteryConfig::Item item; BatteryConfig::Item item;
std::ifstream finBetteryData("battery.data", std::ios::binary); std::ifstream finBetteryData("battery.data", std::ios::binary);
if(!item.ParseFromIstream(&finBetteryData)) { if(!item.ParseFromIstream(&finBetteryData)) {
@ -2020,6 +2127,8 @@ void MainWindow::pageParaSetInit_alert_release_value()
finBetteryData.close(); finBetteryData.close();
finBetteryData.clear(); finBetteryData.clear();
} }
}
} }
void MainWindow::pageParaSetInit_alert_release_delay() void MainWindow::pageParaSetInit_alert_release_delay()
@ -2077,7 +2186,7 @@ void MainWindow::pageParaSetInit_alert_release_delay()
QStringList columnNames; QStringList columnNames;
QList<int> columnWidths; QList<int> columnWidths;
columnNames << "check" << "name" << "value" << "introduce"; columnNames << "check" << "name" << "value" << "introduce";
columnWidths << 60 << 240 << 120 << 120; columnWidths << 60 << 420 << 120 << 120;
model = new QStandardItemModel; model = new QStandardItemModel;
model->setHorizontalHeaderLabels(columnNames); model->setHorizontalHeaderLabels(columnNames);
@ -2105,6 +2214,35 @@ void MainWindow::pageParaSetInit_alert_release_delay()
lineEidtDelegate2->setDelegateType("QLineEdit"); lineEidtDelegate2->setDelegateType("QLineEdit");
ui->tableView_paraset_alert_release_delay->setItemDelegateForColumn(3,lineEidtDelegate2); ui->tableView_paraset_alert_release_delay->setItemDelegateForColumn(3,lineEidtDelegate2);
if(lan == 0)
{
BatteryConfig_English::Item item;
std::ifstream finBetteryData("battery_english.data", std::ios::binary);
if(!item.ParseFromIstream(&finBetteryData)) {
qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed";
finBetteryData.close();
finBetteryData.clear();
}
else {
for(int i = 0; i < item.itemattr_alert_release_delay_size(); i++) {
for(int j = 0; j < 4; j++) {
if(j == 1) {
model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_release_delay(i)->name().c_str()));
}
else if(j == 2) {
model->setItem(i, j, new QStandardItem(QString::number(item.mutable_itemattr_alert_release_delay(i)->value())));
}
else if(j == 3) {
model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_release_delay(i)->introduce().c_str()));
}
}
}
finBetteryData.close();
finBetteryData.clear();
}
}
else if(lan == 1)
{
BatteryConfig::Item item; BatteryConfig::Item item;
std::ifstream finBetteryData("battery.data", std::ios::binary); std::ifstream finBetteryData("battery.data", std::ios::binary);
if(!item.ParseFromIstream(&finBetteryData)) { if(!item.ParseFromIstream(&finBetteryData)) {
@ -2126,10 +2264,10 @@ void MainWindow::pageParaSetInit_alert_release_delay()
} }
} }
} }
finBetteryData.close(); finBetteryData.close();
finBetteryData.clear(); finBetteryData.clear();
} }
}
} }
void MainWindow::pageParaSetInit_alert_dropcurr_rate() void MainWindow::pageParaSetInit_alert_dropcurr_rate()
@ -2187,7 +2325,7 @@ void MainWindow::pageParaSetInit_alert_dropcurr_rate()
QStringList columnNames; QStringList columnNames;
QList<int> columnWidths; QList<int> columnWidths;
columnNames << "check" << "name" << "value" << "introduce"; columnNames << "check" << "name" << "value" << "introduce";
columnWidths << 60 << 240 << 120 << 120; columnWidths << 60 << 420 << 120 << 120;
model = new QStandardItemModel; model = new QStandardItemModel;
model->setHorizontalHeaderLabels(columnNames); model->setHorizontalHeaderLabels(columnNames);
@ -2215,6 +2353,35 @@ void MainWindow::pageParaSetInit_alert_dropcurr_rate()
lineEidtDelegate2->setDelegateType("QLineEdit"); lineEidtDelegate2->setDelegateType("QLineEdit");
ui->tableView_paraset_alert_dropcurr_rate->setItemDelegateForColumn(3,lineEidtDelegate2); ui->tableView_paraset_alert_dropcurr_rate->setItemDelegateForColumn(3,lineEidtDelegate2);
if(lan == 0) {
BatteryConfig_English::Item item;
std::ifstream finBetteryData("battery_english.data", std::ios::binary);
if(!item.ParseFromIstream(&finBetteryData)) {
qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed";
finBetteryData.close();
finBetteryData.clear();
}
else {
for(int i = 0; i < item.itemattr_alert_dropcurr_rate_size(); i++) {
for(int j = 0; j < 4; j++) {
if(j == 1) {
model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_dropcurr_rate(i)->name().c_str()));
}
else if(j == 2) {
model->setItem(i, j, new QStandardItem(QString::number(item.mutable_itemattr_alert_dropcurr_rate(i)->value())));
}
else if(j == 3) {
model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_dropcurr_rate(i)->introduce().c_str()));
}
}
}
finBetteryData.close();
finBetteryData.clear();
}
}
else if(lan == 1)
{
BatteryConfig::Item item; BatteryConfig::Item item;
std::ifstream finBetteryData("battery.data", std::ios::binary); std::ifstream finBetteryData("battery.data", std::ios::binary);
if(!item.ParseFromIstream(&finBetteryData)) { if(!item.ParseFromIstream(&finBetteryData)) {
@ -2240,6 +2407,7 @@ void MainWindow::pageParaSetInit_alert_dropcurr_rate()
finBetteryData.close(); finBetteryData.close();
finBetteryData.clear(); finBetteryData.clear();
} }
}
} }
void MainWindow::pageParaSetInit_alert_solve_measure() void MainWindow::pageParaSetInit_alert_solve_measure()
@ -2297,7 +2465,7 @@ void MainWindow::pageParaSetInit_alert_solve_measure()
QStringList columnNames; QStringList columnNames;
QList<int> columnWidths; QList<int> columnWidths;
columnNames << "check" << "name" << "value" << "introduce"; columnNames << "check" << "name" << "value" << "introduce";
columnWidths << 60 << 240 << 120 << 120; columnWidths << 60 << 420 << 120 << 120;
model = new QStandardItemModel; model = new QStandardItemModel;
model->setHorizontalHeaderLabels(columnNames); model->setHorizontalHeaderLabels(columnNames);
@ -2325,6 +2493,35 @@ void MainWindow::pageParaSetInit_alert_solve_measure()
lineEidtDelegate2->setDelegateType("QLineEdit"); lineEidtDelegate2->setDelegateType("QLineEdit");
ui->tableView_paraset_alert_solve_mease->setItemDelegateForColumn(3,lineEidtDelegate2); ui->tableView_paraset_alert_solve_mease->setItemDelegateForColumn(3,lineEidtDelegate2);
if(lan == 0) {
BatteryConfig_English::Item item;
std::ifstream finBetteryData("battery_english.data", std::ios::binary);
if(!item.ParseFromIstream(&finBetteryData)) {
qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed";
finBetteryData.close();
finBetteryData.clear();
}
else {
for(int i = 0; i < item.itemattr_alert_solve_measure_size(); i++) {
for(int j = 0; j < 4; j++) {
if(j == 1) {
model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_solve_measure(i)->name().c_str()));
}
else if(j == 2) {
model->setItem(i, j, new QStandardItem(QString::number(item.mutable_itemattr_alert_solve_measure(i)->value())));
}
else if(j == 3) {
model->setItem(i, j, new QStandardItem(item.mutable_itemattr_alert_solve_measure(i)->introduce().c_str()));
}
}
}
finBetteryData.close();
finBetteryData.clear();
}
}
else if(lan == 1)
{
BatteryConfig::Item item; BatteryConfig::Item item;
std::ifstream finBetteryData("battery.data", std::ios::binary); std::ifstream finBetteryData("battery.data", std::ios::binary);
if(!item.ParseFromIstream(&finBetteryData)) { if(!item.ParseFromIstream(&finBetteryData)) {
@ -2350,6 +2547,7 @@ void MainWindow::pageParaSetInit_alert_solve_measure()
finBetteryData.close(); finBetteryData.close();
finBetteryData.clear(); finBetteryData.clear();
} }
}
} }
void MainWindow::pageParaSetInit_DIDO_setting() void MainWindow::pageParaSetInit_DIDO_setting()
@ -2407,7 +2605,7 @@ void MainWindow::pageParaSetInit_DIDO_setting()
QStringList columnNames; QStringList columnNames;
QList<int> columnWidths; QList<int> columnWidths;
columnNames << "check" << "name" << "value" << "introduce"; columnNames << "check" << "name" << "value" << "introduce";
columnWidths << 60 << 240 << 120 << 120; columnWidths << 60 << 420 << 120 << 120;
model = new QStandardItemModel; model = new QStandardItemModel;
model->setHorizontalHeaderLabels(columnNames); model->setHorizontalHeaderLabels(columnNames);
@ -2435,6 +2633,36 @@ void MainWindow::pageParaSetInit_DIDO_setting()
lineEidtDelegate2->setDelegateType("QLineEdit"); lineEidtDelegate2->setDelegateType("QLineEdit");
ui->tableView_DIDO_setting->setItemDelegateForColumn(3,lineEidtDelegate2); ui->tableView_DIDO_setting->setItemDelegateForColumn(3,lineEidtDelegate2);
if(lan == 0)
{
BatteryConfig_English::Item item;
std::ifstream finBetteryData("battery_english.data", std::ios::binary);
if(!item.ParseFromIstream(&finBetteryData)) {
qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed";
finBetteryData.close();
finBetteryData.clear();
}
else {
for(int i=0; i < item.itemattr_dido_size(); i++)
{
for(int j = 0; j < 4; j++) {
if(j == 1) {
model->setItem(i, j, new QStandardItem(item.itemattr_dido(i).name().c_str()));
}
else if(j == 2) {
model->setItem(i, j, new QStandardItem(QString::number(item.itemattr_dido(i).value())));
}
else if(j == 3) {
model->setItem(i, j, new QStandardItem(item.itemattr_dido(i).introduce().c_str()));
}
}
}
finBetteryData.close();
finBetteryData.clear();
}
}
else if(lan == 1)
{
BatteryConfig::Item item; BatteryConfig::Item item;
std::ifstream finBetteryData("battery.data", std::ios::binary); std::ifstream finBetteryData("battery.data", std::ios::binary);
if(!item.ParseFromIstream(&finBetteryData)) { if(!item.ParseFromIstream(&finBetteryData)) {
@ -2457,27 +2685,10 @@ void MainWindow::pageParaSetInit_DIDO_setting()
} }
} }
} }
// int model_index = 0;
// for(int i = 105; i <= 144; i++) {
// for(int j = 0; j < 4; j++) {
// if(j == 1) {
// model->setItem(model_index, j, new QStandardItem(item.itemattr(i).name().c_str()));
// }
// else if(j == 2) {
// model->setItem(model_index, j, new QStandardItem(QString::number(item.itemattr(i).value())));
// }
// else if(j == 3) {
// model->setItem(model_index, j, new QStandardItem(item.itemattr(i).introduce().c_str()));
// }
// }
// model_index++;
// }
// model_index = 0;
finBetteryData.close(); finBetteryData.close();
finBetteryData.clear(); finBetteryData.clear();
} }
}
} }
void MainWindow::pageParaSetInit_balance_setting() void MainWindow::pageParaSetInit_balance_setting()
@ -2535,7 +2746,7 @@ void MainWindow::pageParaSetInit_balance_setting()
QStringList columnNames; QStringList columnNames;
QList<int> columnWidths; QList<int> columnWidths;
columnNames << "check" << "name" << "value" << "introduce"; columnNames << "check" << "name" << "value" << "introduce";
columnWidths << 60 << 240 << 120 << 120; columnWidths << 60 << 420 << 120 << 120;
model = new QStandardItemModel; model = new QStandardItemModel;
model->setHorizontalHeaderLabels(columnNames); model->setHorizontalHeaderLabels(columnNames);
@ -2563,6 +2774,36 @@ void MainWindow::pageParaSetInit_balance_setting()
lineEidtDelegate2->setDelegateType("QLineEdit"); lineEidtDelegate2->setDelegateType("QLineEdit");
ui->tableView_balance_setting->setItemDelegateForColumn(3,lineEidtDelegate2); ui->tableView_balance_setting->setItemDelegateForColumn(3,lineEidtDelegate2);
if(lan == 0)
{
BatteryConfig_English::Item item;
std::ifstream finBetteryData("battery_english.data", std::ios::binary);
if(!item.ParseFromIstream(&finBetteryData)) {
qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed";
finBetteryData.close();
finBetteryData.clear();
}
else {
for(int i = 0; i< item.itemattr_balance_size(); i++)
{
for(int j = 0; j < 4; j++) {
if(j == 1) {
model->setItem(i, j, new QStandardItem(item.itemattr_balance(i).name().c_str()));
}
else if(j == 2) {
model->setItem(i, j, new QStandardItem(QString::number(item.itemattr_balance(i).value())));
}
else if(j == 3) {
model->setItem(i, j, new QStandardItem(item.itemattr_balance(i).introduce().c_str()));
}
}
}
finBetteryData.close();
finBetteryData.clear();
}
}
else if(lan == 1)
{
BatteryConfig::Item item; BatteryConfig::Item item;
std::ifstream finBetteryData("battery.data", std::ios::binary); std::ifstream finBetteryData("battery.data", std::ios::binary);
if(!item.ParseFromIstream(&finBetteryData)) { if(!item.ParseFromIstream(&finBetteryData)) {
@ -2585,28 +2826,10 @@ void MainWindow::pageParaSetInit_balance_setting()
} }
} }
} }
// int model_index = 0;
// for(int i = 157; i <= 161; i++) {
// for(int j = 0; j < 4; j++) {
// if(j == 1) {
// model->setItem(model_index, j, new QStandardItem(item.itemattr(i).name().c_str()));
// }
// else if(j == 2) {
// model->setItem(model_index, j, new QStandardItem(QString::number(item.itemattr(i).value())));
// }
// else if(j == 3) {
// model->setItem(model_index, j, new QStandardItem(item.itemattr(i).introduce().c_str()));
// }
// }
// model_index++;
// }
// model_index = 0;
finBetteryData.close(); finBetteryData.close();
finBetteryData.clear(); finBetteryData.clear();
} }
}
} }
void MainWindow::pageParaSetInit_SOX_setting() void MainWindow::pageParaSetInit_SOX_setting()
@ -2664,7 +2887,7 @@ void MainWindow::pageParaSetInit_SOX_setting()
QStringList columnNames; QStringList columnNames;
QList<int> columnWidths; QList<int> columnWidths;
columnNames << "check" << "name" << "value" << "introduce"; columnNames << "check" << "name" << "value" << "introduce";
columnWidths << 60 << 240 << 120 << 120; columnWidths << 60 << 420 << 120 << 120;
model = new QStandardItemModel; model = new QStandardItemModel;
model->setHorizontalHeaderLabels(columnNames); model->setHorizontalHeaderLabels(columnNames);
@ -2692,6 +2915,36 @@ void MainWindow::pageParaSetInit_SOX_setting()
lineEidtDelegate2->setDelegateType("QLineEdit"); lineEidtDelegate2->setDelegateType("QLineEdit");
ui->tableView_SOX_setting->setItemDelegateForColumn(3,lineEidtDelegate2); ui->tableView_SOX_setting->setItemDelegateForColumn(3,lineEidtDelegate2);
if(lan == 0)
{
BatteryConfig_English::Item item;
std::ifstream finBetteryData("battery_english.data", std::ios::binary);
if(!item.ParseFromIstream(&finBetteryData)) {
qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed";
finBetteryData.close();
finBetteryData.clear();
}
else {
for (int i=0; i < item.itemattr_sox_size(); i++)
{
for(int j = 0; j < 4; j++) {
if(j == 1) {
model->setItem(i, j, new QStandardItem(item.itemattr_sox(i).name().c_str()));
}
else if(j == 2) {
model->setItem(i, j, new QStandardItem(QString::number(item.itemattr_sox(i).value())));
}
else if(j == 3) {
model->setItem(i, j, new QStandardItem(item.itemattr_sox(i).introduce().c_str()));
}
}
}
finBetteryData.close();
finBetteryData.clear();
}
}
else if(lan == 1)
{
BatteryConfig::Item item; BatteryConfig::Item item;
std::ifstream finBetteryData("battery.data", std::ios::binary); std::ifstream finBetteryData("battery.data", std::ios::binary);
if(!item.ParseFromIstream(&finBetteryData)) { if(!item.ParseFromIstream(&finBetteryData)) {
@ -2714,10 +2967,10 @@ void MainWindow::pageParaSetInit_SOX_setting()
} }
} }
} }
finBetteryData.close(); finBetteryData.close();
finBetteryData.clear(); finBetteryData.clear();
} }
}
} }
void MainWindow::pageParaSetInit_other_setting() void MainWindow::pageParaSetInit_other_setting()
@ -2775,7 +3028,7 @@ void MainWindow::pageParaSetInit_other_setting()
QStringList columnNames; QStringList columnNames;
QList<int> columnWidths; QList<int> columnWidths;
columnNames << "check" << "name" << "value" << "introduce"; columnNames << "check" << "name" << "value" << "introduce";
columnWidths << 60 << 240 << 120 << 120; columnWidths << 60 << 420 << 120 << 120;
model = new QStandardItemModel; model = new QStandardItemModel;
model->setHorizontalHeaderLabels(columnNames); model->setHorizontalHeaderLabels(columnNames);
@ -2803,6 +3056,35 @@ void MainWindow::pageParaSetInit_other_setting()
lineEidtDelegate2->setDelegateType("QLineEdit"); lineEidtDelegate2->setDelegateType("QLineEdit");
ui->tableView_other_setting->setItemDelegateForColumn(3,lineEidtDelegate2); ui->tableView_other_setting->setItemDelegateForColumn(3,lineEidtDelegate2);
if(lan == 0)
{
BatteryConfig_English::Item item;
std::ifstream finBetteryData("battery_english.data", std::ios::binary);
if(!item.ParseFromIstream(&finBetteryData)) {
qDebug() << __FUNCTION__ << __LINE__ << "proto parse failed";
finBetteryData.close();
finBetteryData.clear();
}
else {
for(int i = 0; i < item.itemattr_other_size(); i++) {
for(int j = 0; j < 4; j++) {
if(j == 1) {
model->setItem(i, j, new QStandardItem(item.itemattr_other(i).name().c_str()));
}
else if(j == 2) {
model->setItem(i, j, new QStandardItem(QString::number(item.itemattr_other(i).value())));
}
else if(j == 3) {
model->setItem(i, j, new QStandardItem(item.itemattr_other(i).introduce().c_str()));
}
}
}
finBetteryData.close();
finBetteryData.clear();
}
}
else if(lan == 1)
{
BatteryConfig::Item item; BatteryConfig::Item item;
std::ifstream finBetteryData("battery.data", std::ios::binary); std::ifstream finBetteryData("battery.data", std::ios::binary);
if(!item.ParseFromIstream(&finBetteryData)) { if(!item.ParseFromIstream(&finBetteryData)) {
@ -2824,11 +3106,10 @@ void MainWindow::pageParaSetInit_other_setting()
} }
} }
} }
finBetteryData.close(); finBetteryData.close();
finBetteryData.clear(); finBetteryData.clear();
} }
}
} }
// void MainWindow::setNum(QString value) // void MainWindow::setNum(QString value)

View File

@ -13,6 +13,7 @@ class QSettings;
class QLabel; class QLabel;
class QFile; class QFile;
class AppProto; class AppProto;
class Appproto_English;
class ChartPaint; class ChartPaint;
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
@ -36,6 +37,7 @@ public:
QStandardItemModel *model; QStandardItemModel *model;
ComLogin *m_ComLogin; ComLogin *m_ComLogin;
AppProto *m_AppProto; AppProto *m_AppProto;
Appproto_English *m_AppProto_English;
QSettings *ini; QSettings *ini;
QFile *logFile; QFile *logFile;
QLabel *statusBarConnectedIcon; QLabel *statusBarConnectedIcon;
@ -58,6 +60,7 @@ public:
QList<int> base_info83_106; QList<int> base_info83_106;
int battery_count; int battery_count;
ModbusRTU *m_modbusrtu_main; ModbusRTU *m_modbusrtu_main;
int lan;
int tabWidget_paraset_index = 0; int tabWidget_paraset_index = 0;
@ -113,6 +116,7 @@ private:
public slots: public slots:
// void setNum(QString value); // void setNum(QString value);
void getLanNumberSlot(int number);
signals: signals:
void showLogin(); void showLogin();

File diff suppressed because it is too large Load Diff

View File

@ -42,6 +42,7 @@ void ModbusRTU::run()
QList<int> base_list_47_49_51_53_55; QList<int> base_list_47_49_51_53_55;
uint16_t sgl_vol[112]; // Buffer to store the registers uint16_t sgl_vol[112]; // Buffer to store the registers
uint16_t sgl_tempt[112]; uint16_t sgl_tempt[112];
// uint16_t alarm[];
label: int ret_base1_45 = modbus_read_input_registers(m_ModbusRTUDevice, 1, 45, base1_45); label: int ret_base1_45 = modbus_read_input_registers(m_ModbusRTUDevice, 1, 45, base1_45);
if(MODBUS_ERR == ret_base1_45) if(MODBUS_ERR == ret_base1_45)
@ -100,7 +101,7 @@ void ModbusRTU::run()
if(MODBUS_ERR == ret_base57_78) if(MODBUS_ERR == ret_base57_78)
{ {
// qDebug() << "modbus no message"; // qDebug() << "modbus no message";
return; goto label;
} }
else else
{ {
@ -130,38 +131,38 @@ void ModbusRTU::run()
free(m_ModbusRTUDevice->recvMsg); free(m_ModbusRTUDevice->recvMsg);
} }
int ret_vol = modbus_read_input_registers(m_ModbusRTUDevice, 1001, 112, sgl_vol); // int ret_vol = modbus_read_input_registers(m_ModbusRTUDevice, 1001, 112, sgl_vol);
if(MODBUS_ERR == ret_vol) // if(MODBUS_ERR == ret_vol)
{ // {
// qDebug() << "modbus no message"; // // qDebug() << "modbus no message";
goto label; // goto label;
} // }
else // else
{ // {
QByteArray sendArray = QByteArray::fromRawData(reinterpret_cast<char *>(m_ModbusRTUDevice->sendMsg), m_ModbusRTUDevice->sendMsgLen); // QByteArray sendArray = QByteArray::fromRawData(reinterpret_cast<char *>(m_ModbusRTUDevice->sendMsg), m_ModbusRTUDevice->sendMsgLen);
emit sig_showModbusData(sendArray, TypeSendData); // emit sig_showModbusData(sendArray, TypeSendData);
free(m_ModbusRTUDevice->sendMsg); // free(m_ModbusRTUDevice->sendMsg);
QByteArray recvArray = QByteArray::fromRawData(reinterpret_cast<char *>(m_ModbusRTUDevice->recvMsg), m_ModbusRTUDevice->recvMsgLen); // QByteArray recvArray = QByteArray::fromRawData(reinterpret_cast<char *>(m_ModbusRTUDevice->recvMsg), m_ModbusRTUDevice->recvMsgLen);
emit sig_showModbusData(recvArray, TypeRecvData); // emit sig_showModbusData(recvArray, TypeRecvData);
free(m_ModbusRTUDevice->recvMsg); // free(m_ModbusRTUDevice->recvMsg);
} // }
int ret_tempt = modbus_read_input_registers(m_ModbusRTUDevice, 1601, 112, sgl_tempt); // int ret_tempt = modbus_read_input_registers(m_ModbusRTUDevice, 1601, 112, sgl_tempt);
if(MODBUS_ERR == ret_tempt) // if(MODBUS_ERR == ret_tempt)
{ // {
// qDebug() << "modbus no message"; // // qDebug() << "modbus no message";
goto label; // goto label;
} // }
else // else
{ // {
QByteArray sendArray = QByteArray::fromRawData(reinterpret_cast<char *>(m_ModbusRTUDevice->sendMsg), m_ModbusRTUDevice->sendMsgLen); // QByteArray sendArray = QByteArray::fromRawData(reinterpret_cast<char *>(m_ModbusRTUDevice->sendMsg), m_ModbusRTUDevice->sendMsgLen);
emit sig_showModbusData_sgl_tempt(sendArray, TypeSendData); // emit sig_showModbusData_sgl_tempt(sendArray, TypeSendData);
free(m_ModbusRTUDevice->sendMsg); // free(m_ModbusRTUDevice->sendMsg);
QByteArray recvArray = QByteArray::fromRawData(reinterpret_cast<char *>(m_ModbusRTUDevice->recvMsg), m_ModbusRTUDevice->recvMsgLen); // QByteArray recvArray = QByteArray::fromRawData(reinterpret_cast<char *>(m_ModbusRTUDevice->recvMsg), m_ModbusRTUDevice->recvMsgLen);
emit sig_showModbusData_sgl_tempt(recvArray, TypeRecvData); // emit sig_showModbusData_sgl_tempt(recvArray, TypeRecvData);
free(m_ModbusRTUDevice->recvMsg); // free(m_ModbusRTUDevice->recvMsg);
} // }
} }

14
proto/auto.bat Normal file
View File

@ -0,0 +1,14 @@
@echo off
set local
:: 设置库路径
SET LIB_PATH=..\library\libprotobuf\lib
:: 设置环境变量
SET PATH=%LIB_PATH%;%PATH%
:: 设置protoc路径
SET PROTOC_PATH=..\library\libprotobuf\bin\protoc.exe
:: 编译proto文件
%PROTOC_PATH% --cpp_out=.\ *.proto
pause
endlocal

4897
proto/battery_english.pb.cc Normal file

File diff suppressed because it is too large Load Diff

4968
proto/battery_english.pb.h Normal file

File diff suppressed because it is too large Load Diff

105
proto/battery_english.proto Normal file
View File

@ -0,0 +1,105 @@
syntax = "proto3";
package BatteryConfig_English;
message Item{
repeated Attributes ItemAttr = 1;
repeated Attributes_balance ItemAttr_balance = 2;
repeated Attributes_DIDO ItemAttr_DIDO = 3;
repeated Attributes_SOX ItemAttr_SOX = 4;
repeated Attributes_other ItemAttr_other = 5;
repeated Attributes_alert_value ItemAttr_alert_value = 6;
repeated Attributes_alert_delay ItemAttr_alert_delay = 7;
repeated Attributes_alert_release_value ItemAttr_alert_release_value = 8;
repeated Attributes_alert_release_delay ItemAttr_alert_release_delay = 9;
repeated Attributes_alert_dropcurr_rate ItemAttr_alert_dropcurr_rate = 10;
repeated Attributes_alert_solve_measure ItemAttr_alert_solve_measure = 11;
}
message Attributes{
string name = 1;
int32 addr = 2;
int32 value = 3;
float scale = 4;
string introduce = 5;
}
message Attributes_balance{
string name = 1;
int32 addr = 2;
int32 value = 3;
float scale = 4;
string introduce = 5;
}
message Attributes_DIDO{
string name = 1;
int32 addr = 2;
int32 value = 3;
float scale = 4;
string introduce = 5;
}
message Attributes_SOX{
string name = 1;
int32 addr = 2;
int32 value = 3;
float scale = 4;
string introduce = 5;
}
message Attributes_other{
string name = 1;
int32 addr = 2;
int32 value = 3;
float scale = 4;
string introduce = 5;
}
message Attributes_alert_value{
string name = 1;
int32 addr = 2;
int32 value = 3;
float scale = 4;
string introduce = 5;
}
message Attributes_alert_delay{
string name = 1;
int32 addr = 2;
int32 value = 3;
float scale = 4;
string introduce = 5;
}
message Attributes_alert_release_value{
string name = 1;
int32 addr = 2;
int32 value = 3;
float scale = 4;
string introduce = 5;
}
message Attributes_alert_release_delay{
string name = 1;
int32 addr = 2;
int32 value = 3;
float scale = 4;
string introduce = 5;
}
message Attributes_alert_dropcurr_rate{
string name = 1;
int32 addr = 2;
int32 value = 3;
float scale = 4;
string introduce = 5;
}
message Attributes_alert_solve_measure{
string name = 1;
int32 addr = 2;
int32 value = 3;
float scale = 4;
string introduce = 5;
}