BatteryMonitor/mainwindow.h

250 lines
9.9 KiB
C
Raw Normal View History

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