2024-10-31 16:48:38 +08:00
|
|
|
|
#ifndef MAINWINDOW_H
|
|
|
|
|
#define MAINWINDOW_H
|
|
|
|
|
|
|
|
|
|
#include <QMainWindow>
|
|
|
|
|
#include <QStandardItem>
|
|
|
|
|
#include <QStandardItemModel>
|
|
|
|
|
#include <QGridLayout>
|
|
|
|
|
#include <batt.h>
|
|
|
|
|
#include <modbusrtu.h>
|
|
|
|
|
|
|
|
|
|
class ComLogin;
|
|
|
|
|
class QSettings;
|
|
|
|
|
class QLabel;
|
|
|
|
|
class QFile;
|
|
|
|
|
class AppProto;
|
2024-11-05 15:44:19 +08:00
|
|
|
|
class Appproto_English;
|
2024-10-31 16:48:38 +08:00
|
|
|
|
class ChartPaint;
|
|
|
|
|
|
|
|
|
|
QT_BEGIN_NAMESPACE
|
|
|
|
|
namespace Ui {
|
|
|
|
|
class MainWindow;
|
|
|
|
|
}
|
|
|
|
|
QT_END_NAMESPACE
|
|
|
|
|
|
|
|
|
|
class MainWindow : public QMainWindow
|
|
|
|
|
{
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
MainWindow(QWidget *parent = nullptr);
|
|
|
|
|
~MainWindow();
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
Ui::MainWindow *ui;
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
QStandardItemModel *model;
|
|
|
|
|
ComLogin *m_ComLogin;
|
|
|
|
|
AppProto *m_AppProto;
|
2024-11-05 15:44:19 +08:00
|
|
|
|
Appproto_English *m_AppProto_English;
|
2024-10-31 16:48:38 +08:00
|
|
|
|
QSettings *ini;
|
|
|
|
|
QFile *logFile;
|
|
|
|
|
QLabel *statusBarConnectedIcon;
|
|
|
|
|
QLabel *statusBarConnectedType;
|
|
|
|
|
QLabel *statusBarCompany;
|
|
|
|
|
ChartPaint *chartPat;
|
|
|
|
|
int BCUNumbers;
|
|
|
|
|
// QGridLayout *gridLayout;
|
|
|
|
|
// QHBoxLayout *hBoxLayout;
|
|
|
|
|
|
|
|
|
|
batt *bat;
|
|
|
|
|
bool pageDebugLogFlag = false;
|
|
|
|
|
QList<QLabel*> labelListVol;
|
|
|
|
|
QList<QLabel*> labelListTempt;
|
|
|
|
|
QList<int> sgl_vol_info;
|
|
|
|
|
QList<int> sgl_tempt_info;
|
|
|
|
|
QList<int> base_info1_45;
|
|
|
|
|
QList<int> base_info47_49_51_53_55;
|
|
|
|
|
QList<int> base_info57_78;
|
|
|
|
|
QList<int> base_info83_106;
|
|
|
|
|
int battery_count;
|
|
|
|
|
ModbusRTU *m_modbusrtu_main;
|
2024-11-05 15:44:19 +08:00
|
|
|
|
int lan;
|
2024-10-31 16:48:38 +08:00
|
|
|
|
|
|
|
|
|
int tabWidget_paraset_index = 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
enum DataType{
|
|
|
|
|
TypeRecvData,
|
|
|
|
|
TypeSendData
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
/* 默认选择语言枚举 */
|
|
|
|
|
enum DEFAULT_LANG{
|
|
|
|
|
LANGUAGE_ENG,
|
|
|
|
|
LANGUAGE_CHN
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/* 显示状态栏 */
|
|
|
|
|
bool showStatusBar;
|
|
|
|
|
|
|
|
|
|
enum PAGE{
|
|
|
|
|
PAGE_HOME,
|
|
|
|
|
PAGE_BATTERY,
|
|
|
|
|
PAGE_PARASET,
|
|
|
|
|
PAGE_DEBUG,
|
|
|
|
|
PAGE_FLASH,
|
|
|
|
|
PAGE_SETUP,
|
|
|
|
|
PAGE_RECORD
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
void init();
|
|
|
|
|
void setMenuStyle();
|
|
|
|
|
void pageBatteryInit();
|
|
|
|
|
void pageParaSetInit();
|
|
|
|
|
void pageParaSetInit_alert_value();
|
|
|
|
|
void pageParaSetInit_alert_delay();
|
|
|
|
|
void pageParaSetInit_alert_release_value();
|
|
|
|
|
void pageParaSetInit_alert_release_delay();
|
|
|
|
|
void pageParaSetInit_alert_dropcurr_rate();
|
|
|
|
|
void pageParaSetInit_alert_solve_measure();
|
|
|
|
|
void pageParaSetInit_DIDO_setting();
|
|
|
|
|
void pageParaSetInit_balance_setting();
|
|
|
|
|
void pageParaSetInit_SOX_setting();
|
|
|
|
|
void pageParaSetInit_other_setting();
|
|
|
|
|
|
|
|
|
|
void sglChartInit(int bat_count);
|
|
|
|
|
void sgl_info_process(QList<int> sgl_info, QList<QLabel*> labelList);
|
|
|
|
|
int findMaxIndex(const QList<int> sgl_info);
|
|
|
|
|
int findMinIndex(const QList<int> sgl_info);
|
|
|
|
|
|
|
|
|
|
public slots:
|
|
|
|
|
// void setNum(QString value);
|
2024-11-05 15:44:19 +08:00
|
|
|
|
void getLanNumberSlot(int number);
|
2024-10-31 16:48:38 +08:00
|
|
|
|
|
|
|
|
|
signals:
|
|
|
|
|
void showLogin();
|
|
|
|
|
void closeLogin();
|
|
|
|
|
void write_regs_signals(int addr, const uint16_t data);
|
|
|
|
|
void read_regs_signals(int addr, int nb, uint16_t *data, int row);
|
2024-11-04 18:07:54 +08:00
|
|
|
|
void closeThread();
|
2024-10-31 16:48:38 +08:00
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
void slot_getBcuNumberFromDialoglogin(int number);
|
|
|
|
|
void slot_pageDebugDisplayMessage(QByteArray byteArray, int dataType);
|
|
|
|
|
void slot_pageHomeSglDataMessage(QByteArray byteArray, int dataType);
|
|
|
|
|
void slot_pageHomeSglTempt(QByteArray byteArray, int dataType);
|
|
|
|
|
void slot_pageHomeBaseInfo1_45(QByteArray byteArray, int dataType);
|
|
|
|
|
void slot_pageHomeBaseInfo57_78(QByteArray byteArray, int dataType);
|
|
|
|
|
void slot_pageHomeBaseInfo83_106(QByteArray byteArray, int dataType);
|
|
|
|
|
void slot_pageHomeBaseInfo47_49_51_53_55(QList<int> byteArray, int dataType);
|
|
|
|
|
void slot_pageParaSetShow(QByteArray byteArray, int dataType, int row, int nb);
|
|
|
|
|
|
2024-11-04 18:07:54 +08:00
|
|
|
|
protected:
|
|
|
|
|
void closeEvent(QCloseEvent *e) override;
|
|
|
|
|
|
2024-10-31 16:48:38 +08:00
|
|
|
|
private slots:
|
|
|
|
|
void on_pageParaSetCheck_stateChanged(int arg1);
|
|
|
|
|
void on_pageParaSetRead_clicked();
|
|
|
|
|
void on_pageParaSetWrite_clicked();
|
|
|
|
|
void on_tabChanged(int index);
|
|
|
|
|
// void on_horizontalSlider_valueChanged(int value);
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
struct Battery_data {
|
|
|
|
|
uint16_t pack_total_voltage; // 电池组总压
|
|
|
|
|
uint16_t pack_total_current; // 电池组总电流
|
|
|
|
|
uint16_t soc; // SOC
|
|
|
|
|
uint16_t soh; // SOH
|
|
|
|
|
uint16_t soe; // SOE
|
|
|
|
|
uint16_t rated_total_voltage; // 额定总压
|
|
|
|
|
uint16_t rated_capacity; // 额定容量
|
|
|
|
|
uint16_t remaining_capacity; // 剩余容量
|
|
|
|
|
uint16_t rated_energy; // 额定电量
|
|
|
|
|
uint16_t remaining_energy; // 剩余电量
|
|
|
|
|
uint16_t slave_total_num_bmu; // 从机总数(BMU)
|
|
|
|
|
uint16_t online_slave_num_bmu; // 在线从机总数(BMU)
|
|
|
|
|
uint16_t total_battery_num; // 电池总数
|
|
|
|
|
uint16_t online_battery_num; // 在线电池总数
|
|
|
|
|
uint16_t total_temperature_sensor_num; // 温感总数
|
|
|
|
|
uint16_t online_temperature_sensor_num; // 在线温感总数
|
|
|
|
|
uint16_t max_allowed_discharge_current; // 最大允许放电电流
|
|
|
|
|
uint16_t max_allowed_discharge_power; // 最大允许放电功率
|
|
|
|
|
uint16_t max_allowed_charge_current; // 最大允许充电电流
|
|
|
|
|
uint16_t max_allowed_charge_power; // 最大允许充电功率
|
|
|
|
|
uint16_t positive_insulation_resistance; // 正极绝缘阻值
|
|
|
|
|
uint16_t negative_insulation_resistance; // 负极绝缘阻值
|
|
|
|
|
uint16_t average_cell_voltage; // 单体平均电压
|
|
|
|
|
uint16_t max_cell_voltage_difference; // 单体最大压差
|
|
|
|
|
uint16_t highest_cell_voltage; // 最高单体电压
|
|
|
|
|
uint16_t highest_cell_voltage_slave_num; // 最高单体电压从机号
|
|
|
|
|
uint16_t highest_cell_voltage_cell_num; // 最高单体电压编号
|
|
|
|
|
uint16_t lowest_cell_voltage; // 最低单体电压
|
|
|
|
|
uint16_t lowest_cell_voltage_slave_num; // 最低单体电压从机号
|
|
|
|
|
uint16_t lowest_cell_voltage_cell_num; // 最低单体电压编号
|
|
|
|
|
uint16_t average_cell_temperature; // 单体平均温度
|
|
|
|
|
uint16_t max_temperature_difference; // 最大温差
|
|
|
|
|
uint16_t highest_cell_temperature; // 最高单体温度
|
|
|
|
|
uint16_t highest_cell_temperature_slave_num; // 最高单体温度从机号
|
|
|
|
|
uint16_t highest_cell_temperature_cell_num; // 最高单体温度编号
|
|
|
|
|
uint16_t lowest_cell_temperature; // 最低单体温度
|
|
|
|
|
uint16_t lowest_cell_temperature_slave_num; // 最低单体温度从机号
|
|
|
|
|
uint16_t lowest_cell_temperature_cell_num; // 最低单体温度编号
|
|
|
|
|
uint16_t daily_charge_capacity; // 日充电容量
|
|
|
|
|
uint16_t daily_charge_energy; // 日充电电量
|
|
|
|
|
uint16_t daily_discharge_capacity; // 日放电容量
|
|
|
|
|
uint16_t daily_discharge_energy; // 日放电电量
|
|
|
|
|
uint16_t daily_charge_time; // 日充电时间
|
|
|
|
|
uint16_t daily_discharge_time; // 日放电时间
|
|
|
|
|
uint16_t cumulative_charge_capacity; // 累计充电容量
|
|
|
|
|
uint16_t cumulative_charge_energy; // 累计充电电量
|
|
|
|
|
uint16_t cumulative_discharge_capacity; // 累计放电容量
|
|
|
|
|
uint16_t cumulative_discharge_energy; // 累计放电电量
|
|
|
|
|
uint16_t cumulative_charge_time; // 累计充电时间
|
|
|
|
|
uint16_t cumulative_discharge_time; // 累计放电时间
|
|
|
|
|
uint16_t bcu_working_status; // BCU工作状态
|
|
|
|
|
uint16_t total_negative_relay_status; // 总负继电器状态
|
|
|
|
|
uint16_t total_positive_relay_status; // 总正继电器状态
|
|
|
|
|
uint16_t discharge_relay_status; // 放电继电器状态
|
|
|
|
|
uint16_t charge_relay_status; // 充电继电器状态
|
|
|
|
|
uint16_t precharge_relay_status; // 预充继电器状态
|
|
|
|
|
uint16_t relay_status; // 继电器状态
|
|
|
|
|
uint16_t switch_status; // 开关量状态
|
|
|
|
|
uint16_t fault_status; // 故障状态
|
|
|
|
|
uint16_t fault_level_1_to_8; // 故障1~8的故障等级
|
|
|
|
|
uint16_t fault_level_9_to_16; // 故障9~16的故障等级
|
|
|
|
|
uint16_t fault_level_17_to_24; // 故障17~24的故障等级
|
|
|
|
|
uint16_t fault_level_25_to_32; // 故障25~32的故障等级
|
|
|
|
|
uint16_t fault_level_33_to_40; // 故障33~40的故障等级
|
|
|
|
|
uint16_t fault_level_41_to_48; // 故障41~48的故障等级
|
|
|
|
|
uint16_t fault_level_49_to_56; // 故障49~56的故障等级
|
|
|
|
|
uint16_t fault_level_57_to_64; // 故障57~64的故障等级
|
|
|
|
|
uint16_t battery_system_cycle_count; // 电池系统循环次数
|
|
|
|
|
uint16_t max_allowed_charge_cell_voltage; // 最大允许充电单体电压
|
|
|
|
|
uint16_t min_allowed_discharge_cell_voltage; // 最小允许放电单体电压
|
|
|
|
|
uint16_t max_allowed_charge_total_voltage; // 最大允许充电总压
|
|
|
|
|
uint16_t min_allowed_discharge_total_voltage; // 最小允许放电总压
|
|
|
|
|
uint16_t sampled_total_voltage; // 采样总压
|
|
|
|
|
uint16_t first_level_fault_1_to_16; // 一级故障(故障位1~16)
|
|
|
|
|
uint16_t first_level_fault_17_to_32; // 一级故障(故障位17~32)
|
|
|
|
|
uint16_t first_level_fault_33_to_48; // 一级故障(故障位33~48)
|
|
|
|
|
uint16_t first_level_fault_49_to_64; // 一级故障(故障位49~64)
|
|
|
|
|
uint16_t second_level_fault_1_to_16; // 二级故障(故障位1~16)
|
|
|
|
|
uint16_t second_level_fault_17_to_32; // 二级故障(故障位17~32)
|
|
|
|
|
uint16_t second_level_fault_33_to_48; // 二级故障(故障位33~48)
|
|
|
|
|
uint16_t second_level_fault_49_to_64; // 二级故障(故障位49~64)
|
|
|
|
|
uint16_t third_level_fault_1_to_16; // 三级故障(故障位1~16)
|
|
|
|
|
uint16_t third_level_fault_17_to_32; // 三级故障(故障位17~32)
|
|
|
|
|
uint16_t third_level_fault_33_to_48; // 三级故障(故障位33~48)
|
|
|
|
|
uint16_t third_level_fault_49_to_64; // 三级故障(故障位49~64)
|
|
|
|
|
uint16_t bcu_state_machine; // BCU状态机
|
|
|
|
|
uint16_t charging_status; // 充电状态
|
|
|
|
|
uint16_t discharging_status; // 放电状态
|
|
|
|
|
uint16_t high_voltage_closed_status; // 高压闭合状态
|
|
|
|
|
uint16_t fan_status; // 风扇状态
|
|
|
|
|
uint16_t total_alarm; // 总告警
|
|
|
|
|
uint16_t total_fault; // 总故障
|
|
|
|
|
uint16_t bcu_address; // BCU地址
|
|
|
|
|
uint16_t bcu_main_loop_status; // BCU主回路状态
|
|
|
|
|
uint16_t bcu_loop_closed_command; // BCU回路闭合指令
|
|
|
|
|
uint16_t bcu_allowed_to_close_main_loop; // BCU是否允许闭合主回路
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
#endif // MAINWINDOW_H
|