emsApplication/applications/EmsShower/mainwindow.h

107 lines
2.4 KiB
C
Raw Normal View History

2025-03-04 11:27:16 +08:00
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QSettings>
2025-03-04 17:19:03 +08:00
#include <QVector>
#include <QLabel>
2025-03-07 16:16:57 +08:00
#include <QTimer>
2025-03-04 11:27:16 +08:00
#include "libmodbus/modbus.h"
#include "slave_define.h"
2025-03-07 16:16:57 +08:00
#include "openjson.h"
class CustomDisplayPanel;
2025-03-04 11:27:16 +08:00
QT_BEGIN_NAMESPACE
namespace Ui
{
class MainWindow;
}
QT_END_NAMESPACE
typedef enum _tagModbusMode : int
{
modeRtu = 0,
modeTcp = 1,
} ModbusMode;
//处理主界面
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
protected:
void getConfiguration(QString iniFilePath);
void ReadConfiguration(QString jsonFilePath);
2025-03-04 11:27:16 +08:00
bool InitializeUI();
bool InitializeModbus();
bool InitializeRtu();
bool InitializeTcp();
bool readRegister();
2025-03-04 11:27:16 +08:00
private:
Ui::MainWindow *ui;
protected:
modbus_t *m_pModbus;
SlaveData m_SlaveData;
2025-03-07 16:16:57 +08:00
QTimer *m_pTimer;
2025-03-04 11:27:16 +08:00
protected:
QString m_version;
int m_modbus_type;
QString m_modbus_ip;
int m_modbus_port;
QString m_modbus_com;
int m_modbus_baund;
int m_modbus_data;
int m_modbus_parity;
int m_modbus_stop;
int m_modbus_slave_id;
QSettings* m_pSettings;
2025-03-07 16:16:57 +08:00
bool m_bInitializeModbus;
int m_timer_interval;
2025-03-04 11:27:16 +08:00
SlaveItems m_total_slave_items;
2025-03-04 11:27:16 +08:00
protected:
private slots:
2025-03-04 17:19:03 +08:00
void ReadSerialPortData();
2025-03-05 13:37:23 +08:00
void SettingSerialPort();
2025-03-07 16:16:57 +08:00
void onTimeout();
private:
CustomDisplayPanel* m_pTemperaturePanel; //温湿度显示
CustomDisplayPanel* m_pBatteryPanel; //电池显示
CustomDisplayPanel* m_pPowerPanel; //电源显示
CustomDisplayPanel* m_pACPanel; //空调显示
CustomDisplayPanel* m_pHomePanel; //主柜子信息
CustomDisplayPanel* m_pAlarmPanel; //告警
CustomDisplayPanel* m_pInverterPanel; //逆变器
CustomDisplayPanel* m_pPVPanel; //太阳能
std::map<int,CustomDisplayPanel*> m_Panels;
2025-03-07 16:16:57 +08:00
private:
bool CreateJson2(DeviceData* pData,OpenJson& json);
void DecodeSync(const QVector<uint16_t>& array,const slaveAddress& sa,DeviceData* pData); //同步解码
2025-03-04 11:27:16 +08:00
signals:
// 处理进度信号
void progress(int index);
// 完成处理信号
void finished();
signals:
2025-03-04 17:19:03 +08:00
void startProcessing(const QVector<uint16_t>& array, int slave_id, int start_addr, int quantity, DeviceData* pData);
void startProcessing2(const QVector<uint16_t>& array,const slaveAddress& sa,DeviceData* pData);
2025-03-04 11:27:16 +08:00
};
#endif // MAINWINDOW_H