#ifndef HXTASKDISPATCH_H #define HXTASKDISPATCH_H #include #include "HxUtils.h" #include "MvObjectEventDetect.h" #include #include #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> 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