user_app.h 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. /******************************************************************************
  2. 版权所有 (C), 2019-2029, SDC OS 开源软件小组所有
  3. ******************************************************************************
  4. 文 件 名 : user_app.h
  5. 版 本 号 : 初稿
  6. 作 者 : athina
  7. 生成日期 : 2019年6月8日
  8. 最近修改 :
  9. 功能描述 : 创建用户自定义APP对象
  10. 函数列表 :
  11. 修改历史 :
  12. 1.日 期 : 2020年7月4日
  13. 作 者 : jelly
  14. 修改内容 : 创建文件
  15. ******************************************************************************/
  16. #ifndef __USER_APP_H__
  17. #define __USER_APP_H__
  18. #include <memory>
  19. #include "yolov3_app.h"
  20. #include <iostream>
  21. #include <vector>
  22. #include "device/deviceGas.h"
  23. #include "dataType/NettyClientCommandEnum.h"
  24. #include "dataType/NettyClientResultMsg.h"
  25. #include "dataType/NettyServerCommandEnum.h"
  26. #include "dataType/NettyServerResultMsg.h"
  27. #include "dataType/RecDeviceCommand.h"
  28. #include "dataType/RecDeviceInfo.h"
  29. #include "dataType/SendLogin.h"
  30. #include "dataType/SendHeartBeat.h"
  31. #include "dataType/SendDevice.h"
  32. #include "dataType/SendBird.h"
  33. namespace HWYolov3App
  34. {
  35. enum class AppType
  36. {
  37. APP_TYPE_RESIZABLE,
  38. APP_TYPE_LETTERBOX,
  39. };
  40. // 创建APP对象
  41. std::shared_ptr<Yolov3App> CreateYolov3App(AppType type);
  42. class ResizableApp : public Yolov3App
  43. {
  44. public:
  45. ResizableApp(void);
  46. virtual ~ResizableApp(void);
  47. protected:
  48. virtual void PreProcessYuvData(sdc_yuv_frame_s &frame, uint8_t *&yuv);
  49. virtual void PretreatObjectData(SDC_SSD_OBJECT_INFO_S &data);
  50. virtual void ClassifyTargets(uint32_t uclass, uint8_t target[20]);
  51. virtual void PrintObjectInfo(const SDC_SSD_OBJECT_INFO_S &info) const;
  52. virtual void SendObjectsToWeb(const SDC_SSD_RESULT_S &stResult, sdc_yuv_frame_s &yuvFrame);
  53. virtual void SendOjbectsToMediaServer(const SDC_SSD_RESULT_S &stResult);
  54. };
  55. class LetterboxApp : public Yolov3App
  56. {
  57. public:
  58. LetterboxApp(void);
  59. virtual ~LetterboxApp(void);
  60. protected:
  61. virtual void PreProcessYuvData(sdc_yuv_frame_s &frame, uint8_t *&yuv);
  62. virtual void PretreatObjectData(SDC_SSD_OBJECT_INFO_S &data);
  63. virtual void ClassifyTargets(uint32_t uclass, uint8_t target[20]);
  64. virtual void PrintObjectInfo(const SDC_SSD_OBJECT_INFO_S &info) const;
  65. virtual void SendObjectsToWeb(const SDC_SSD_RESULT_S &stResult, sdc_yuv_frame_s &yuvFrame);
  66. virtual void SendOjbectsToMediaServer(const SDC_SSD_RESULT_S &stResult);
  67. private:
  68. float m_mapRatio;
  69. };
  70. }
  71. #endif /* __USER_APP_H__ */