IVA/app/HxDataBase.h
hehaoyang ff66a2e0d6 V1.02
1. 删除图片存储到本地的方式;
2. 取流方式由Opencv修改为FFmpeg方式;
3. 解码后的数据直接转为RK_FORMAT_YCbCr_422_SP格式发送给算法;
4. 视频裸流数据存储在内存中,保存30s;
5. 报警图片从报警录像视频中获取;
2023-12-08 14:17:14 +08:00

149 lines
3.4 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
#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