MediaInfAiDataFlameSmokeDetection.hpp
1 //
2 // Created by tangfahong on 2024/07/20.
3 //
4 
5 #ifndef EMX_MediaInfAiDataFlameSmokeDetection_HPP
6 #define EMX_MediaInfAiDataFlameSmokeDetection_HPP
7 
8 #include "MediaInfAiData.hpp"
9 #include "MediaRegion.hpp"
10 #include <cstring>
11 
12 namespace Emx {
18  public:
20 
22  public:
23  enum TypeE {
24  Flame = 0,
25  Smoke = 1,
26  Butt
27  };
28  struct DataMsg {
31  };
32  void Alloc(int n) {
33  Free();
34  array = (DataMsg *) EP_MALLOC(n * (int) sizeof(DataMsg));
35  if (array) { memset((void *) array, 0, n * sizeof(DataMsg)); }
36  }
37 
38  void Free() {
39  if (array) {
40  free(array);
41  array = nullptr;
42  }
43  }
44 
45  int GetSerializeSize() override { return (int) sizeof(num) + num * (int) sizeof(DataMsg); }
46 
47  void Serialize(uint8_t *buffer) override {
48  int off = 0;
49  memcpy(buffer + off, &num, sizeof(num));
50  off += sizeof(num);
51  memcpy(buffer + off, array, num * (int) sizeof(DataMsg));
52  }
53 
54  void Parse(const uint8_t *buffer, int size) override {
55  int off = 0;
56  memcpy(&num, buffer + off, sizeof(num));
57  off += sizeof(num);
58  if (num && num * (int) sizeof(DataMsg) + off == size) {
59  Alloc(num);
60  memcpy(array, buffer + off, num * (int) sizeof(DataMsg));
61  }
62  }
63 
64  public:
65  int num;
67  };
69 }// namespace Emx
70 
71 #endif//EMX_MediaInfAiDataFlameSmokeDetection_HPP
Definition: MediaInfAiDataFlameSmokeDetection.hpp:17
void Alloc(int n)
Definition: MediaInfAiDataFlameSmokeDetection.hpp:32
TypeE
Definition: MediaInfAiDataFlameSmokeDetection.hpp:23
@ Flame
火焰
Definition: MediaInfAiDataFlameSmokeDetection.hpp:24
@ Smoke
烟雾
Definition: MediaInfAiDataFlameSmokeDetection.hpp:25
@ Butt
Definition: MediaInfAiDataFlameSmokeDetection.hpp:26
int num
Definition: MediaInfAiDataFlameSmokeDetection.hpp:65
MediaInfAiDataFlameSmokeDetection()
Definition: MediaInfAiDataFlameSmokeDetection.hpp:19
void Serialize(uint8_t *buffer) override
Definition: MediaInfAiDataFlameSmokeDetection.hpp:47
void Free()
Definition: MediaInfAiDataFlameSmokeDetection.hpp:38
void Parse(const uint8_t *buffer, int size) override
Definition: MediaInfAiDataFlameSmokeDetection.hpp:54
int GetSerializeSize() override
Definition: MediaInfAiDataFlameSmokeDetection.hpp:45
DataMsg * array
Definition: MediaInfAiDataFlameSmokeDetection.hpp:66
virtual ~MediaInfAiDataFlameSmokeDetection()
Definition: MediaInfAiDataFlameSmokeDetection.hpp:21
Definition: MediaInfAiData.hpp:29
TypeE
AI数据类型
Definition: MediaInfAiData.hpp:43
Definition: EmxGpio.hpp:10
Definition: MediaInfAiDataFlameSmokeDetection.hpp:28
TypeE type
Definition: MediaInfAiDataFlameSmokeDetection.hpp:29
Rect rect
当前目标位置信息
Definition: MediaInfAiDataFlameSmokeDetection.hpp:30
矩形框
Definition: MediaRegion.hpp:35