hehaoyang
ff66a2e0d6
1. 删除图片存储到本地的方式; 2. 取流方式由Opencv修改为FFmpeg方式; 3. 解码后的数据直接转为RK_FORMAT_YCbCr_422_SP格式发送给算法; 4. 视频裸流数据存储在内存中,保存30s; 5. 报警图片从报警录像视频中获取;
107 lines
2.7 KiB
C++
107 lines
2.7 KiB
C++
#ifndef HXTASKDISPATCH_H
|
|
#define HXTASKDISPATCH_H
|
|
|
|
#include <QThread>
|
|
|
|
#include "HxUtils.h"
|
|
#include "MvObjectEventDetect.h"
|
|
|
|
#include <opencv2/opencv.hpp>
|
|
#include <opencv2/freetype.hpp>
|
|
|
|
#define ALGORITHM_TYPE_ADAS 0
|
|
#define ALGORITHM_TYPE_BSD 1
|
|
#define ALGORITHM_TYPE_DSM 2
|
|
|
|
class HxTaskDispatch : public QThread
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
/**
|
|
* @brief 初始化
|
|
*/
|
|
static void initialization(void);
|
|
|
|
/**
|
|
* @brief 初始化DebugTool监听程序
|
|
* @param port 端口
|
|
*/
|
|
static void listern(uint16_t port);
|
|
|
|
/**
|
|
* @brief 连接上位机
|
|
* @param address 地址
|
|
*/
|
|
static void connect_to_host(QString address, int port);
|
|
|
|
/**
|
|
* @brief alarm_upload_event
|
|
* @param type
|
|
* @param timestamp
|
|
* @param channel
|
|
* @param event_type
|
|
* @param danger_level
|
|
* @param object_info
|
|
* @param object_number
|
|
* @param face_land_marks
|
|
* @param face_land_marks_number
|
|
* @param left_line_type
|
|
* @param right_line_type
|
|
*/
|
|
static void alarm_upload_event(int type, QDateTime timestamp, int channel, int event_type, int danger_level, ObjectPara *object_info, int object_number, CalibrationPoint *face_land_marks, int face_land_marks_number, LaneType left_line_type, LaneType right_line_type);
|
|
|
|
/**
|
|
* @brief get_car_info
|
|
* @return
|
|
*/
|
|
static CarInfoInput* get_car_info(void);
|
|
|
|
/**
|
|
* @brief enqueue_upload_file
|
|
* @param filename
|
|
*/
|
|
static void enqueue_upload_file(QString filename);
|
|
|
|
protected:
|
|
void run() override;
|
|
|
|
private:
|
|
void update_heartbeat(void);
|
|
void updata_vehiclue_status(QJsonObject object);
|
|
void parsing_vehiclue_status(void);
|
|
void recording_upload_task(void);
|
|
void upload_file_queue_check(void);
|
|
void debug_tool_response_event(int type, std::initializer_list<QPair<QString, QJsonValue>> args);
|
|
void get_warn_param_config(int type);
|
|
void set_warn_param_config(int type, QJsonObject object);
|
|
void get_adas_camera_calibration(int type);
|
|
void set_adas_camera_calibration(int type, QJsonObject object);
|
|
|
|
signals:
|
|
void data_write_event(QByteArray data);
|
|
|
|
public slots:
|
|
void data_receive_event(QByteArray data);
|
|
|
|
private:
|
|
/* 事件检测配置信息*/
|
|
ObjectEventDetectConfig event_detect_config;
|
|
|
|
/* 心跳发送时间戳 */
|
|
QDateTime heartbeat_timestamp;
|
|
|
|
/* 车辆状态更新时间 */
|
|
QDateTime vehicle_status_update_time;
|
|
|
|
/* 边缘云 Socket (客户端) */
|
|
HxSocket* platform;
|
|
|
|
/* DebugTool Socket (服务端) */
|
|
HxSocket* debug_tool;
|
|
|
|
/* 车辆状态信息 */
|
|
CarInfoInput car_info;
|
|
};
|
|
|
|
#endif // HXTASKDISPATCH_H
|