Data Structures | Macros | Enumerations | Functions
gtrack.h File Reference

This is the header file for the GTRACK Algorithm. More...

#include <stdint.h>
#include <stddef.h>
#include "include/gtrack_2d.h"

Data Structures

struct  GTRACK_boundaryBox
 GTRACK Box Structure. More...
 
struct  GTRACK_gateLimits
 GTRACK Gate Limits. More...
 
struct  GTRACK_varParams
 GTRACK Update Function Parameters. More...
 
struct  GTRACK_sceneryParams
 GTRACK Scene Parameters. More...
 
struct  GTRACK_gatingParams
 GTRACK Gating Function Parameters. More...
 
struct  GTRACK_stateParams
 GTRACK Tracking Management Function Parameters. More...
 
struct  GTRACK_allocationParams
 GTRACK Allocation Function Parameters. More...
 
struct  GTRACK_unrollingParams
 GTRACK Unrolling Parameters. More...
 
struct  GTRACK_advancedParameters
 GTRACK Advanced Parameters. More...
 
struct  GTRACK_moduleConfig
 GTRACK Configuration. More...
 
struct  GTRACK_measurementPoint
 GTRACK Measurement point. More...
 
struct  GTRACK_targetDesc
 GTRACK target descriptor. More...
 

Macros

#define GTRACK_ERRNO_BASE   (-8000)
 Base error code for GTRACK algorithm.
 
#define GTRACK_EOK   (0)
 Error code: No errors.
 
#define GTRACK_EINVAL   (GTRACK_ERRNO_BASE-1)
 Error Code: Invalid argument.
 
#define GTRACK_EINUSE   (GTRACK_ERRNO_BASE-2)
 Error Code: Operation cannot be implemented because a previous operation is still not complete.
 
#define GTRACK_ENOTIMPL   (GTRACK_ERRNO_BASE-3)
 Error Code: Operation is not implemented.
 
#define GTRACK_ENOMEM   (GTRACK_ERRNO_BASE-4)
 Error Code: Out of memory.
 
Maximum supported configurations
#define GTRACK_NUM_POINTS_MAX   (1000U)
 Defines maximum possible number of measurments point the algorithm will accept at configuration time.
 
#define GTRACK_NUM_TRACKS_MAX   (250U)
 Defines maximum possible number of tracking target the algorithm will accept at configuration time.
 
Target ID definitions

Target IDs are uint8_t, with valid IDs ranging from 0 to 249. Values 250 to 252 are reserved for future use, other values as defined below

#define GTRACK_ID_POINT_TOO_WEAK   (253U)
 Point is not associated, is too weak.
 
#define GTRACK_ID_POINT_BEHIND_THE_WALL   (254U)
 Point is not associated, is behind the wall.
 
#define GTRACK_ID_POINT_NOT_ASSOCIATED   (255U)
 Point is not associated, noise.
 
Benchmarking results

During runtime execution, tracking step function can optionally return cycle counts for the sub-functions defined below Each count is 32bit unsigned integer value representing a timestamp of free runing clock

#define GTRACK_BENCHMARK_SETUP   (0U)
 Cycle count at step setup.
 
#define GTRACK_BENCHMARK_PREDICT   (1U)
 Cycle count after predict function.
 
#define GTRACK_BENCHMARK_ASSOCIATE   (2U)
 Cycle count after associate function.
 
#define GTRACK_BENCHMARK_ALLOCATE   (3U)
 Cycle count after allocate function.
 
#define GTRACK_BENCHMARK_UPDATE   (4U)
 Cycle count after update function.
 
#define GTRACK_BENCHMARK_REPORT   (5U)
 Cycle count after report function.
 
#define GTRACK_BENCHMARK_SIZE   (GTRACK_BENCHMARK_REPORT)
 Size of benchmarking array.
 
Boundary boxes

Application can configure tracker with scene boundries. Boundaries are defined as a boxes.

#define GTRACK_MAX_BOUNDARY_BOXES   (2U)
 Maximum number of boundary boxes. Points outside of boundary boxes are ignored.
 
#define GTRACK_MAX_STATIC_BOXES   (2U)
 Maximum number of static boxes. Targets inside the static box can persist longer.
 

Enumerations

Functions

void * gtrack_create (GTRACK_moduleConfig *config, int32_t *errCode)
 
void gtrack_step (void *handle, GTRACK_measurementPoint *point, GTRACK_measurement_vector *var, uint16_t mNum, GTRACK_targetDesc *t, uint16_t *tNum, uint8_t *mIndex, uint32_t *bench)
 
void gtrack_delete (void *handle)
 
void * gtrack_alloc (uint32_t numElements, uint32_t sizeInBytes)
 GTRACK calls this function to allocate memory. Expects the void pointer if allocation is sucessful, and NULL otherwise. More...
 
void gtrack_free (void *pFree, uint32_t sizeInBytes)
 GTRACK calls this function to free memory. More...
 
void gtrack_log (GTRACK_VERBOSE_TYPE level, const char *format,...)
 GTRACK calls this function to log the events. More...
 

Detailed Description

This is the header file for the GTRACK Algorithm.

NOTE: (C) Copyright 2017 Texas Instruments, Inc.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

Neither the name of Texas Instruments Incorporated nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


Copyright 2018, Texas Instruments Incorporated