2023-10-20 23:36:22 +08:00
|
|
|
#ifndef HXDATABASE_H
|
|
|
|
#define HXDATABASE_H
|
|
|
|
|
|
|
|
#include <QDateTime>
|
|
|
|
#include <QMutex>
|
|
|
|
#include <QSqlQuery>
|
|
|
|
#include <QStorageInfo>
|
|
|
|
#include <QSqlDatabase>
|
|
|
|
#include <QVariant>
|
|
|
|
#include <QString>
|
|
|
|
|
|
|
|
#include "MvObjectEventDetect.h"
|
|
|
|
|
2023-12-08 14:17:14 +08:00
|
|
|
#define BSD_MAX_CHANNEL 6
|
2023-10-20 23:36:22 +08:00
|
|
|
|
2023-12-08 14:17:14 +08:00
|
|
|
#define TEMPORARY_LOG_DIRECTORY "log"
|
|
|
|
#define TEMPORARY_RECORD_DIRECTORY "record"
|
2023-11-27 14:03:29 +08:00
|
|
|
|
2023-11-12 01:13:43 +08:00
|
|
|
class HxDataBase
|
2023-10-20 23:36:22 +08:00
|
|
|
{
|
|
|
|
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);
|
|
|
|
|
2023-11-12 01:13:43 +08:00
|
|
|
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);
|
|
|
|
|
2023-10-20 23:36:22 +08:00
|
|
|
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;
|
|
|
|
|
2023-12-08 14:17:14 +08:00
|
|
|
/* 预录时长 Seconds */
|
|
|
|
static int recording_prepend_time;
|
|
|
|
|
2023-10-20 23:36:22 +08:00
|
|
|
/* FTP地址 */
|
|
|
|
static QString ftp_address;
|
|
|
|
|
|
|
|
/* FTP用户名 */
|
|
|
|
static QString ftp_username;
|
|
|
|
|
|
|
|
/* FTP密码 */
|
|
|
|
static QString ftp_password;
|
|
|
|
|
2023-11-12 01:13:43 +08:00
|
|
|
static QString qamqp_address, qamqp_username, qamqp_password;
|
|
|
|
|
|
|
|
/* 算法类型 */
|
2023-10-20 23:36:22 +08:00
|
|
|
static int algorithm_type;
|
|
|
|
|
2023-11-12 01:13:43 +08:00
|
|
|
/* DSM 视频输入源 */
|
2023-10-20 23:36:22 +08:00
|
|
|
static QString dsm_video_input_source;
|
|
|
|
|
2023-11-12 01:13:43 +08:00
|
|
|
/* ADAS 视频输入源 */
|
2023-10-20 23:36:22 +08:00
|
|
|
static QString adas_video_input_source;
|
|
|
|
|
2023-11-12 01:13:43 +08:00
|
|
|
/* BSD 视频输入源 */
|
2023-10-20 23:36:22 +08:00
|
|
|
static QStringList bsd_video_input_source;
|
|
|
|
|
2023-11-12 01:13:43 +08:00
|
|
|
/* BSD 报警区域 */
|
2023-10-20 23:36:22 +08:00
|
|
|
static QStringList bsd_warn_regions;
|
2023-11-12 01:13:43 +08:00
|
|
|
|
|
|
|
/* 报警参数配置 */
|
|
|
|
static EventWarnParamConfig warm_param_config;
|
|
|
|
|
|
|
|
/* ADAS 相机内外参 */
|
|
|
|
static CameraCalibration adas_camera_calibration;
|
2023-12-08 14:17:14 +08:00
|
|
|
|
|
|
|
/* 报警保护时长 */
|
|
|
|
static QStringList alarm_protect_timestamp;
|
2023-10-20 23:36:22 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // HXDATABASE_H
|