#ifndef HXDATABASE_H #define HXDATABASE_H #include #include #include #include #include #include #include #include "MvObjectEventDetect.h" #define BSD_MAX_CHANNEL 6 #define TEMPORARY_LOG_DIRECTORY "log" #define TEMPORARY_RECORD_DIRECTORY "record" class HxDataBase { private: /** * @brief 打开数据库 * @param filepath 数据库文件路径 * @param connectionName 连接名 * @return QSqlDatabase 对象 */ static QSqlDatabase open(QString filepath, QString connectionName); /** * @brief 关闭数据库 * @param connectionName 连接名 */ static void close(QString connectionName); /** * @brief 读取 Setting 表数据 * @param name name字段值 * @return 返回对应参数 */ static QVariant read_setting(QString name); /** * @brief 读取 Setting 表数据(int) * @param name name字段值 * @param defaultValue 默认值(int) * @return 返回对应参数(int) */ static int read_setting(QString name, int defaultValue); /** * @brief 读取 Setting 表数据(bool) * @param name name字段值 * @param defaultValue 默认值(bool) * @return 返回对应参数(bool) */ static bool read_setting(QString name, bool defaultValue); /** * @brief 读取 Setting 表数据(string) * @param name name字段值 * @param defaultValue 默认值(string) * @return 返回对应参数(string) */ static QString read_setting(QString name, QString defaultValue); /** * @brief 写入 Setting 表数据 * @param name name字段值 * @param value 对应参数 */ static void write_setting(QString name, QString value); static void read_warm_param_config(void); static void write_warm_param_config(void); static void read_adas_camera_calibration(void); static void write_adas_camera_calibration(void); public: /** * @brief 初始化 */ static void initialization(); /** * @brief 保存设置 * @return true: 成功; false: 失败; */ static bool save_setting(); /** * @brief 获取BSD报警区域 * @param channel 通道号 * @return 返回 BsdWarnRegion 结构体 */ static BsdWarnRegion get_bsd_warn_region(int channel); private: static QMutex mutex; static QSqlDatabase database; public: /* 设备编号 */ static QString device_id; /* 预录时长 Seconds */ static int recording_prepend_time; /* FTP地址 */ static QString ftp_address; /* FTP用户名 */ static QString ftp_username; /* FTP密码 */ static QString ftp_password; static QString qamqp_address, qamqp_username, qamqp_password; /* 算法类型 */ static int algorithm_type; /* DSM 视频输入源 */ static QString dsm_video_input_source; /* ADAS 视频输入源 */ static QString adas_video_input_source; /* BSD 视频输入源 */ static QStringList bsd_video_input_source; /* BSD 报警区域 */ static QStringList bsd_warn_regions; /* 报警参数配置 */ static EventWarnParamConfig warm_param_config; /* ADAS 相机内外参 */ static CameraCalibration adas_camera_calibration; /* 报警保护时长 */ static QStringList alarm_protect_timestamp; }; #endif // HXDATABASE_H