2024-11-25 17:15:44 +08:00

77 lines
2.0 KiB
C++

#ifndef READCONFIG_H
#define READCONFIG_H
#include <QObject>
#include "dataformate.h"
#include <QMutex>
#include <QMap>
//饿汉式单例
class ReadConfig
{
private:
ReadConfig();
static QMutex mutex;
static ReadConfig *m_pInstance;
typedef struct ST_AllConfigData
{
QString udpServerIP;
int16_t udpServerPort;
QString udpClientIP;
int16_t udpClientPort;
QString udpGameClientIP;
int16_t udpGameClientPort;
QString udpGameServerIP;
int16_t udpGameServerPort;
QString tcpIP;
int16_t tcpPort;
ST_SerialPortConfig serialConfig;
ST_SerialPortConfig fesASerialConfig;
ST_SerialPortConfig fesBSerialConfig;
ST_DataBaseConfig dataBaseConfig;
int communicateType = -1;
QString videoPath; //视频路径
QMap<int,QString> videoMap; //视频提示管理QMap<视频序号,视频名称>
ST_AllConfigData()
{
udpServerIP.clear();
udpServerPort = 0;
tcpIP.clear();
tcpPort = 0;
}
}ST_AllConfigData;
ST_AllConfigData st_configData;
public:
//获取实例
static ReadConfig* getInstance();
//上下位机通信地址
bool getUdpServerAddress(int16_t &port,QString &IP);
bool getUdpClientAddress(int16_t &port,QString &IP);
//获取TCP地址信息
bool getTcpAddress(int16_t &port,QString &IP);
//获取串口信息
bool getSerialPortConfig(ST_SerialPortConfig &serialConfig);
//获取数据库配置
bool getDataBaseConfig(ST_DataBaseConfig &databaseConfig);
//获取通信方式
int getCommunicateType();
bool readConfigFile();
//获取电刺激设备信息
bool getFesASerialPortConfig(ST_SerialPortConfig &serialConfig);
//与游戏通信地址
bool getGameServerAddress(int16_t &port,QString& IP);
//游戏地址
bool getGameClientAddress(int16_t &port,QString& IP);
};
#endif // READCONFIG_H