IVA/app/HxDataBase.h
2023-10-20 23:36:22 +08:00

134 lines
2.8 KiB
C++

#ifndef HXDATABASE_H
#define HXDATABASE_H
#include <QDateTime>
#include <QMutex>
#include <QSqlQuery>
#include <QStorageInfo>
#include <QSqlDatabase>
#include <QVariant>
#include <QString>
#include "MvObjectEventDetect.h"
#define BSD_MAX_CHANNEL 6
class DataBase
{
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);
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;
/* FTP地址 */
static QString ftp_address;
/* FTP用户名 */
static QString ftp_username;
/* FTP密码 */
static QString ftp_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;
};
#endif // HXDATABASE_H