xWRL6432 MMWAVE-L-SDK  05.04.00.01
mpdproc.h
Go to the documentation of this file.
1 #ifndef PRESENCE_DETECTION_H_
2 #define PRESENCE_DETECTION_H_
3 
4 #define _USE_MATH_DEFINES
5 #include <stdint.h>
6 #include <stdlib.h>
7 #include <limits.h>
8 #include <stdbool.h>
9 //#include<gtrack.h>
10 //#include<gtrack_int.h>
11 #include <math.h>
12 #include "define.h"
13 #include <datapath/dpif/dp_error.h>
14 #include <datapath/dpif/dpif_pointcloud.h>
15 #include <kernel/dpl/SystemP.h>
16 #include <kernel/dpl/HeapP.h>
17 #include <alg/gtrack/gtrack.h>
18 #include <alg/gtrack/common/gtrack_int.h>
19 
20 
29 #define DPU_MPDPROC_EINVAL (DP_ERRNO_MPD_PROC_BASE-1)
30 
34 #define DPU_MPDPROC_ENOMEM (DP_ERRNO_MPD_PROC_BASE-2)
35 
39 #define DPU_MPDPROC_EINTERNAL (DP_ERRNO_MPD_PROC_BASE-3)
40 
61 typedef struct mpdProc_SceneryParams_t
62 {
64  GTRACK_sensorPosition sensorPosition;
66  GTRACK_sensorOrientation sensorOrientation;
70  GTRACK_boundaryBox boundaryBox[MAX_ZONES];
72 
73 typedef struct mpdProc_ClusterParamCfg_t
74 {
81  uint16_t enabled;
82 
86  float maxDistance;
87 
91  uint16_t minPoints;
92 
94 
95 typedef struct mpdProc_MotionModeStateParamCfg_t
96 {
101  uint16_t pointThre1;
102 
107  uint16_t pointThre2;
108 
113  float snrThre2;
114 
119  uint16_t pointHistThre1;
120 
125  uint16_t pointHistThre2;
126 
132 
136  uint16_t histBufferSize;
137 
141  uint16_t stateExitThre;
142 
144 
145 typedef struct mpdProc_Histbuffer_t
146 {
147  float buffer[MAX_HISTORY_BUFFER_SIZE];
148  float sum;
149  int latest;
150  int oldest;
153 
154 typedef struct mpdProc_MotionTracker_t
155 {
156  int state;
159 
162 
165 
167 
177 typedef struct DPU_MpdProc_OutParams_t
178 {
180  uint8_t *mpdZoneState;
181 
184 
186 
196 typedef struct DPU_MpdProc_StaticConfig_t
197 {
199  uint8_t motionMode;
209 
221 typedef struct DPU_MpdProc_HW_Resources_t
222 {
223 
225  uint16_t *numDetMajor;
226 
228  uint16_t *numDetMinor;
229 
231  DPIF_PointCloudCartesianExt *detObjMajor;
232 
234  DPIF_PointCloudCartesianExt *detObjMinor;
235 
239 
248 typedef struct DPU_MpdProc_Config_t
249 {
252 
255 
257  /*@TODO: If needed*/
259 
269 typedef struct MPDProcObj_t
270 {
273 
276 }MPDProcObj;
277 
284 typedef void* DPU_MpdProc_Handle ;
285 
286 void gtrack_censor2world(GTRACK_cartesian_position *c_in, GTRACK_worldTransformParams *wt, GTRACK_cartesian_position *c_out);
287 
288 /*================================================================
289  mpdproc DPU exposed APIs
290  ================================================================*/
291 
308 
327 (
328  DPU_MpdProc_Handle handle,
329  DPU_MpdProc_Config *pConfigIn
330 );
331 
350 (
351  DPU_MpdProc_Handle handle,
352  DPU_MpdProc_OutParams *outParams
353 );
354 
372 (
373  DPU_MpdProc_Handle handle
374 );
375 
376 #endif
DPU_MpdProc_OutParams::mpdZoneState
uint8_t * mpdZoneState
2-bit presence detect state for each zone from LSB to MSB. 0th index indicates no of zones
Definition: mpdproc.h:180
mpdProc_Histbuffer::sum
float sum
Definition: mpdproc.h:148
DPU_MpdProc_Config
Motion Presence Detection configuration.
Definition: mpdproc.h:249
gtrack_censor2world
void gtrack_censor2world(GTRACK_cartesian_position *c_in, GTRACK_worldTransformParams *wt, GTRACK_cartesian_position *c_out)
DPU_MpdProc_StaticConfig::majorStateParamCfg
mpdProc_MotionModeStateParamCfg majorStateParamCfg
Application level parameters.
Definition: mpdproc.h:205
DPU_MpdProc_Handle
void * DPU_MpdProc_Handle
mpdProc DPU Handle
Definition: mpdproc.h:284
mpdProc_SceneryParams
GTRACK Scenery Parameters.
Definition: mpdproc.h:62
DPU_MpdProc_deinit
int32_t DPU_MpdProc_deinit(DPU_MpdProc_Handle handle)
HeapP.h
mpdProc_MotionTracker::snrHistBufferMajor
mpdProc_Histbuffer snrHistBufferMajor
Definition: mpdproc.h:161
mpdProc_Histbuffer::latest
int latest
Definition: mpdproc.h:149
DPU_MpdProc_HW_Resources::zones
mpdProc_MotionTracker * zones
state and history buffers for each zone
Definition: mpdproc.h:237
SystemP.h
DPU_MpdProc_Config::staticCfg
DPU_MpdProc_StaticConfig staticCfg
MpdProc static configuration.
Definition: mpdproc.h:251
mpdProc_ClusterParamCfg::maxDistance
float maxDistance
The radius (in meters) of the neighborhood around a point (i.e., epsilon in DBSCAN algorithm).
Definition: mpdproc.h:86
dp_error.h
Base error codes for the data path Modules.
mpdProc_SceneryParams::numBoundaryBoxes
uint8_t numBoundaryBoxes
Number of scene boundary boxes. If defined (numBoundaryBoxes > 0), only points within the boundary bo...
Definition: mpdproc.h:68
mpdProc_MotionTracker::snrHistBufferMinor
mpdProc_Histbuffer snrHistBufferMinor
Definition: mpdproc.h:164
DPU_MpdProc_init
DPU_MpdProc_Handle DPU_MpdProc_init(int32_t *errCode)
DPU_MpdProc_OutParams::minMpdCentroid
float minMpdCentroid
Nearest cluster centroid in presence detected.
Definition: mpdproc.h:183
mpdProc_ClusterParamCfg::minPoints
uint16_t minPoints
Definition: mpdproc.h:91
mpdProc_ClusterParamCfg
Definition: mpdproc.h:74
DPU_MpdProc_config
int32_t DPU_MpdProc_config(DPU_MpdProc_Handle handle, DPU_MpdProc_Config *pConfigIn)
mpdProc_MotionTracker
Definition: mpdproc.h:155
mpdProc_MotionModeStateParamCfg::snrHistThre2
float snrHistThre2
Minimum total SNR (linear) of detected points (in a frame history buffer) in a zone to enter the moti...
Definition: mpdproc.h:131
DPU_MpdProc_StaticConfig::motionMode
uint8_t motionMode
Application level parameters.
Definition: mpdproc.h:199
mpdProc_Histbuffer::bufferSize
int bufferSize
Definition: mpdproc.h:151
DPU_MpdProc_process
int32_t DPU_MpdProc_process(DPU_MpdProc_Handle handle, DPU_MpdProc_OutParams *outParams)
mpdProc_MotionModeStateParamCfg::pointHistThre2
uint16_t pointHistThre2
Number of detected points (in a frame history buffer) needed in a zone to enter the motion/presence s...
Definition: mpdproc.h:125
mpdProc_MotionModeStateParamCfg::snrThre2
float snrThre2
Minimum total SNR (linear) of detected points (in a single frame) in a zone to enter the motion/prese...
Definition: mpdproc.h:113
mpdProc_MotionTracker::pointHistBufferMajor
mpdProc_Histbuffer pointHistBufferMajor
Definition: mpdproc.h:160
mpdProc_Histbuffer::oldest
int oldest
Definition: mpdproc.h:150
mpdProc_MotionModeStateParamCfg::stateExitThre
uint16_t stateExitThre
A motion status is preserved if it recorded at least one motion detection in the last major2minorThre...
Definition: mpdproc.h:141
mpdProc_MotionTracker::state
int state
Definition: mpdproc.h:156
mpdProc_MotionModeStateParamCfg::pointThre2
uint16_t pointThre2
Number of detected points (in a single frame) needed in a zone to enter the motion/presence state....
Definition: mpdproc.h:107
DPU_MpdProc_HW_Resources::detObjMajor
DPIF_PointCloudCartesianExt * detObjMajor
Detected objects input list - major.
Definition: mpdproc.h:231
MAX_HISTORY_BUFFER_SIZE
#define MAX_HISTORY_BUFFER_SIZE
Definition: define.h:7
mpdProc_MotionTracker::major2minorCount
int major2minorCount
Definition: mpdproc.h:157
MPDProcObj::staticCfg
DPU_MpdProc_StaticConfig staticCfg
MpdProc static configuration.
Definition: mpdproc.h:272
mpdProc_MotionModeStateParamCfg::histBufferSize
uint16_t histBufferSize
Size of the frame history buffer size (in frames) used in pointHistThre1, pointHistThre2,...
Definition: mpdproc.h:136
mpdProc_SceneryParams::sensorPosition
GTRACK_sensorPosition sensorPosition
Sensor position, set to (0.f, 0.f) for 2D, set to (0.f, 0.f, H) for 3D. Where H is sensor height,...
Definition: mpdproc.h:64
DPU_MpdProc_HW_Resources
TrackerProc DPU Hardware resources.
Definition: mpdproc.h:222
DPU_MpdProc_StaticConfig::minorStateParamCfg
mpdProc_MotionModeStateParamCfg minorStateParamCfg
Application level parameters.
Definition: mpdproc.h:207
DPU_MpdProc_StaticConfig::clusterParams
mpdProc_ClusterParamCfg clusterParams
Application level parameters.
Definition: mpdproc.h:203
DPU_MpdProc_Config::res
DPU_MpdProc_HW_Resources res
Hardware resources.
Definition: mpdproc.h:254
mpdProc_MotionModeStateParamCfg::pointHistThre1
uint16_t pointHistThre1
Number of detected points (in a frame history buffer) needed in a zone to enter the motion/presence s...
Definition: mpdproc.h:119
define.h
DPU_MpdProc_HW_Resources::numDetMinor
uint16_t * numDetMinor
Number of minor points.
Definition: mpdproc.h:228
mpdProc_MotionTracker::minor2emptyCount
int minor2emptyCount
Definition: mpdproc.h:158
MAX_ZONES
#define MAX_ZONES
Definition: define.h:8
mpdProc_MotionTracker::pointHistBufferMinor
mpdProc_Histbuffer pointHistBufferMinor
Definition: mpdproc.h:163
DPU_MpdProc_StaticConfig
MpdProc static configuration.
Definition: mpdproc.h:197
DPU_MpdProc_StaticConfig::sceneryParams
mpdProc_SceneryParams sceneryParams
Application level parameters.
Definition: mpdproc.h:201
DPU_MpdProc_HW_Resources::detObjMinor
DPIF_PointCloudCartesianExt * detObjMinor
Detected objects input list - minor.
Definition: mpdproc.h:234
MPDProcObj
MpdProc DPU Object.
Definition: mpdproc.h:270
mpdProc_MotionModeStateParamCfg
Definition: mpdproc.h:96
mpdProc_MotionModeStateParamCfg::pointThre1
uint16_t pointThre1
Number of detected points (in a single frame) needed in a zone to enter the motion/presence state....
Definition: mpdproc.h:101
DPU_MpdProc_HW_Resources::numDetMajor
uint16_t * numDetMajor
Number of major points.
Definition: mpdproc.h:225
mpdProc_Histbuffer
Definition: mpdproc.h:146
mpdProc_ClusterParamCfg::enabled
uint16_t enabled
Configure clustering logic. 0 - disabled 1 – enabled.
Definition: mpdproc.h:81
DPU_MpdProc_OutParams
MpdProc output parameter structure.
Definition: mpdproc.h:178
mpdProc_SceneryParams::sensorOrientation
GTRACK_sensorOrientation sensorOrientation
Sensor orientation, set to (0.f, 0.f) for 2D, (AzimTilt, ElevTilt) for 3D. Where AzimTilt and ElevTil...
Definition: mpdproc.h:66
MPDProcObj::res
DPU_MpdProc_HW_Resources res
Hardware resources.
Definition: mpdproc.h:275