/****************************************************************************** 版权所有 (C), 2019-2029, SDC OS 开源软件小组所有 ****************************************************************************** 文 件 名 : user_app.h 版 本 号 : 初稿 作 者 : athina 生成日期 : 2019年6月8日 最近修改 : 功能描述 : 创建用户自定义APP对象 函数列表 : 修改历史 : 1.日 期 : 2020年7月4日 作 者 : jelly 修改内容 : 创建文件 ******************************************************************************/ #ifndef __USER_APP_H__ #define __USER_APP_H__ #include #include "yolov3_app.h" #include #include #include "device/deviceGas.h" #include "dataType/NettyClientCommandEnum.h" #include "dataType/NettyClientResultMsg.h" #include "dataType/NettyServerCommandEnum.h" #include "dataType/NettyServerResultMsg.h" #include "dataType/RecDeviceCommand.h" #include "dataType/RecDeviceInfo.h" #include "dataType/SendLogin.h" #include "dataType/SendHeartBeat.h" #include "dataType/SendDevice.h" #include "dataType/SendBird.h" namespace HWYolov3App { enum class AppType { APP_TYPE_RESIZABLE, APP_TYPE_LETTERBOX, }; // 创建APP对象 std::shared_ptr CreateYolov3App(AppType type); class ResizableApp : public Yolov3App { public: ResizableApp(void); virtual ~ResizableApp(void); protected: virtual void PreProcessYuvData(sdc_yuv_frame_s &frame, uint8_t *&yuv); virtual void PretreatObjectData(SDC_SSD_OBJECT_INFO_S &data); virtual void ClassifyTargets(uint32_t uclass, uint8_t target[20]); virtual void PrintObjectInfo(const SDC_SSD_OBJECT_INFO_S &info) const; virtual void SendObjectsToWeb(const SDC_SSD_RESULT_S &stResult, sdc_yuv_frame_s &yuvFrame); virtual void SendOjbectsToMediaServer(const SDC_SSD_RESULT_S &stResult); }; class LetterboxApp : public Yolov3App { public: LetterboxApp(void); virtual ~LetterboxApp(void); protected: virtual void PreProcessYuvData(sdc_yuv_frame_s &frame, uint8_t *&yuv); virtual void PretreatObjectData(SDC_SSD_OBJECT_INFO_S &data); virtual void ClassifyTargets(uint32_t uclass, uint8_t target[20]); virtual void PrintObjectInfo(const SDC_SSD_OBJECT_INFO_S &info) const; virtual void SendObjectsToWeb(const SDC_SSD_RESULT_S &stResult, sdc_yuv_frame_s &yuvFrame); virtual void SendOjbectsToMediaServer(const SDC_SSD_RESULT_S &stResult); private: float m_mapRatio; }; } #endif /* __USER_APP_H__ */