Evo 7.12.0-TM26061101
Evo LPR Engine
Loading...
Searching...
No Matches
Engine.hpp
Go to the documentation of this file.
1#ifndef EVO_ENGINE_HPP_
2#define EVO_ENGINE_HPP_
3
4#include "Basic.h"
5
6#include <map>
7#include <mutex>
8#include <memory>
9
10#ifdef __linux__
11# include <linux/limits.h> // for 'PATH_MAX' macro
12#endif
13
14
15#if defined(_WIN64)
16# ifdef EVOENG_EXPORTS
17# define EVOENG_DECLSPEC __declspec(dllexport)
18# else
19# define EVOENG_DECLSPEC __declspec(dllimport)
20# endif
21#else // __linux__
22# define EVOENG_DECLSPEC
23#endif
24
25
29namespace Evo
30{
31
32namespace Utils
33{
34 class FileLock;
35}
36
37namespace Lic
38{
39 using LicInst = Utils::FileLock*;
40}
41
49class DDI
50{
51public:
52 typedef std::shared_ptr<DDI> Ptr;
53
54protected:
55 DDI(void);
56 virtual ~DDI(void);
57
58public:
65 virtual size_t GetNumDev(void) const = 0;
66
74 virtual EvoRC SelectDev(size_t idx) = 0;
75
81 virtual size_t GetSelDev(void) const = 0;
82
88 virtual const char* GetDevID(void) const = 0;
89
105 EVO_DEPRECATED virtual size_t GetNumDMDF(void) const = 0;
106
124 EVO_DEPRECATED virtual const char* GetDMDF(size_t idx) const = 0;
125
131 virtual const char* GetFullName(void) const = 0;
132
133 EVO_RMV_SPECIAL_METHODS(DDI)
134};
135
142class LPI
143{
144public:
145 typedef std::shared_ptr<LPI> Ptr;
146
147protected:
148 LPI(void);
149 virtual ~LPI(void);
150
151public:
157 virtual size_t GetNumLP(void) const = 0;
158
166 virtual EvoRC SelectLP(size_t idx) = 0;
167
173 virtual size_t GetSelLP(void) const = 0;
174
182 virtual void GetType(EvoLPT &type, float &confidence) const = 0;
183
192 virtual EvoRect GetPos(void) const = 0;
193
199 virtual const char* GetStr(void) const = 0;
200
210 virtual void GetCharConf(const float* &conf, size_t &num) const = 0;
211
212 EVO_RMV_SPECIAL_METHODS(LPI)
213};
214
219class Engine
220{
221protected:
222 bool isInit_;
223 Lic::LicInst licInst_;
224
225 mutable std::mutex mtx_;
226
227protected:
228 EVOENG_DECLSPEC Engine(Lic::LicInst licInst);
229 EVOENG_DECLSPEC virtual ~Engine(void);
230
231 virtual const char* GetEngineType(void) const = 0;
232 EVOENG_DECLSPEC EvoRC RegCountry(const char *ccode) const;
233
234 EVOENG_DECLSPEC static Lic::LicInst GetLicInst(const char *engType);
235
236public:
237
245 virtual EvoRC SetParam(EvoParam param, const void *value) = 0;
246
254 virtual EvoRC GetParam(EvoParam param, void *value) const = 0;
255
256 EVO_RMV_SPECIAL_METHODS(Engine)
257};
258
259//*********************************************************
260//
261// Global Functions
262//
263//*********************************************************
264
283EVOENG_DECLSPEC EvoRC Initialize(const char *drmd = NULL,
284 const char *dataDir = NULL,
285 DDI::Ptr *ddi = NULL);
286
287typedef EvoRC (*FP_Initialize)(const char*, const char*, const char*, DDI::Ptr*);
288
298EVOENG_DECLSPEC EvoRC GetLastRC(void);
299
300typedef EvoRC (*FP_GetLastRC)(void);
301
302#ifdef _WIN64
303
314EVOENG_DECLSPEC EvoRC CvtUTF8ToCP(const char *utf8, char *cpBuf, size_t bufLen);
315
316typedef EvoRC (*FP_CvtUTF8ToCP)(const char*, char*, size_t);
317
318#endif
319
320} // Evo namespace
321
322#endif // EVO_ENGINE_HPP_
C/C++ header file common to all type of engines and functionalities.
EvoParam
Engine's Realtime Parameters
Definition Basic.h:199
EvoRC
Return Codes.
Definition Basic.h:59
int EvoLPT
License Plate Type.
Definition Basic.h:598
virtual size_t GetNumDMDF(void) const =0
virtual const char * GetDMDF(size_t idx) const =0
virtual size_t GetNumDev(void) const =0
virtual const char * GetDevID(void) const =0
virtual size_t GetSelDev(void) const =0
virtual EvoRC SelectDev(size_t idx)=0
virtual const char * GetFullName(void) const =0
virtual EvoRC SetParam(EvoParam param, const void *value)=0
virtual EvoRC GetParam(EvoParam param, void *value) const =0
virtual size_t GetSelLP(void) const =0
virtual size_t GetNumLP(void) const =0
virtual void GetType(EvoLPT &type, float &confidence) const =0
virtual EvoRC SelectLP(size_t idx)=0
virtual EvoRect GetPos(void) const =0
virtual void GetCharConf(const float *&conf, size_t &num) const =0
virtual const char * GetStr(void) const =0
Evo Engine's topmost namespace
Definition CamCalib.hpp:27
EvoRC GetLastRC(void)
EvoRC CvtUTF8ToCP(const char *utf8, char *cpBuf, size_t bufLen)
EvoRC Initialize(const char *drmd=NULL, const char *dataDir=NULL, DDI::Ptr *ddi=NULL)
Rectangle Descriptor.
Definition Basic.h:463