#ifndef SETTINGCONFIG_H #define SETTINGCONFIG_H #include <QVariant> #include <QSettings> #include <QApplication> class SettingConfig : public QObject { public: ~SettingConfig() {} SettingConfig(const SettingConfig&)=delete; SettingConfig& operator=(const SettingConfig&)=delete; static SettingConfig& getInstance() { static SettingConfig instance; return instance; } /** * @brief get * @param nodeName * @param keyName * @return QVariant * @title */ QVariant getProperty(QString nodeName, QString keyName); QVariant getProperty(QString nodeName, QString keyName, QString defaultValue); void setProperty(QString nodeName, QString keyName, QString value); void init(); /******** 以下为需要的各类参数 ********/ // 波特率 qint32 BAUD_RATE; // 屏幕尺寸 qint16 WINDOW_WIDTH; qint16 WINDOW_HEIGHT; // 是否需要kafka相关功能 qint8 NEED_KAFKA; // 是否需要SASL加密 qint8 NEED_SASL; // SASL加密用户名和密码 QString SASL_USERNAME; QString SASL_PASSWORD; // kafka服务节点 QString KAFKA_BROKERS; // 发送: 钟差数据传输消息队列 QString KAFKA_DATA_TOPIC; // 发送: 计数器工作状态消息队列 QString KAFKA_STATUS_TOPIC; // 监听: 设备和通道配置信息消息队列 QString KAFKA_MSG_TOPIC; // 监听: 报警信息消息队列 QString KAFKA_ALARM_TOPIC; // QString CLIENT_ID; QString APP_KEY; // 设备类型 QString DEV_TYPES; // 所属子系统 QString SYSTEM; // 工作模式 模拟数据或真实工作 QString WORK_TYPE; // 主备软件标识 qint8 MASTER; QString MASTER_HOST; quint16 MASTER_PORT; // 显示计数器数量 qint8 DISPLAY_COUNT; // 服务监听端口号 quint16 SERVER_PORT; // 设备报警类型 QStringList DEVICE_ALARM_CODES; // 通道报警类型 QStringList CHANNEL_ALARM_CODES; // 样式表硬编码 QStringList HARD_CODE_QSS; QString BASE_URL; QString BASE_LOG_PATH; private: SettingConfig(); QString filename; QSettings * setting; }; #endif // SETTINGCONFIG_H