Version 8.9.0
 
Loading...
Searching...
No Matches
IRCalibrationManager.h
1/******************************************************************************
2 * Copyright (c) 2012-2017 All Rights Reserved, http://www.evocortex.com *
3 * Evocortex GmbH *
4 * Emilienstr. 1 *
5 * 90489 Nuremberg *
6 * Germany *
7 * *
8 * Contributors: *
9 * Initial version for Linux 64-Bit platform supported by Fraunhofer IPA, *
10 * http://www.ipa.fraunhofer.de *
11 *****************************************************************************/
12
13#ifndef IRCALIBRATIONMANAGER_H
14#define IRCALIBRATIONMANAGER_H
15
16#include <fstream>
17#include <string>
18#include "unicode.h"
19#include "IRArray.h"
20#include "irdirectsdk_defs.h"
21
22class ConfigCali;
23
24namespace evo
25{
26
28{
29 int tMin;
30 int tMax;
31};
32
34{
35 IROptics(std::size_t countTempRanges = 0) :
36 tempRanges(countTempRanges),
37 text(1, GEN_L("\0"))
38 {
39 }
40
41 int fov;
42 IRArray<IRTempRange> tempRanges;
43 IRArray<Tchar> text;
44 double radialDistortion;
45};
46
47#if _WIN32 && !IRDIRECTSDK_STATIC
48EXPIMP_TEMPLATE template class __IRDIRECTSDK_API__ IRArray<IROptics>;
49#endif
50
57class __IRDIRECTSDK_API__ IRCalibrationManager
58{
59
60public:
61
65 IRCalibrationManager(const Tchar* pathCali = nullptr, const Tchar* pathFormats = nullptr, const Tchar* dirDeadPixels = nullptr);
66
71
77
81 static void releaseInstance();
82
83 //Disable copy, as no deep copy is implemented and destructor would delete the memory for all objects
84 IRCalibrationManager& operator=(const IRCalibrationManager&) = delete;
86
91 void setCalibrationDir(const Tchar* dir);
92
97 void setFormatsDir(const Tchar* dir);
98
99
104 void setDeadPixelDir(const Tchar* dir);
105
106
111 const Tchar* getCalibrationDir();
112
117 const Tchar* getFormatsDir();
118
123 const Tchar* getDeadPixelDir();
124
130 Tchar* checkCalibration(unsigned long serial);
131
137 const IRArray<IROptics>* getAvailableOptics(unsigned long serial);
138
147 static bool createConfigFilepath(Tchar* path, const Tchar* directory, short maxLen, const Tchar* fileName, const Tchar* extension);
148
155
161
166 bool downloadCalibration(unsigned long serial);
167
174 bool copyCalibrationFromLocalRepo(unsigned long serial, const char* srcDir);
175
182 static bool findSerial(unsigned long &query, unsigned int skipNResults = 0);
183
184private:
185
186
187 void init(const Tchar* caliPathDefault, const Tchar* formatsPathDefault);
188
189 static bool downloadTarget(Tchar* listOfMissingFiles, unsigned long serial, const Tchar* targetDir);
190
191 bool checkCaliFiles(const Tchar* CaliDirectory, int SerialNumber, Tchar* ListOfMissingFiles, int* Maxlen, const Tchar* configPattern, const Tchar* caliPattern, const Tchar* kennliniePattern, const Tchar* separator);
192
193 Tchar* _pathCali;
194
195 Tchar* _pathFormats;
196
197 Tchar* _pathDeadPixels;
198
199 Tchar* _framerateText;
200
201 IRArray<IROptics> _optics;
202};
203
204}
205
206#endif // IRCALIBRATIONMANAGER_H
C-Array wrapper for handle size, copy and memory.
Definition: IRArray.h:23
Class for checking and downloading calibration files for IRImager devices.
Definition: IRCalibrationManager.h:58
IRCalibrationManager(const Tchar *pathCali=nullptr, const Tchar *pathFormats=nullptr, const Tchar *dirDeadPixels=nullptr)
Constructor.
void setDeadPixelDir(const Tchar *dir)
Set dead pixel directory.
bool copyCalibrationFromLocalRepo(unsigned long serial, const char *srcDir)
ONLY LINUX: Copy calibration files from local device, e.g., USB stick.
const Tchar * getCalibrationDir()
Get calibration directory.
Tchar * checkCalibration(unsigned long serial)
Check existence of calibration file set.
IRArray< Tchar > generateConfiguration(unsigned long serial)
Generate XML configuration for a specific device.
const Tchar * getFormatsDir()
Get formats directory.
static IRCalibrationManager * getInstance()
Static singleton instance accessor.
static bool findSerial(unsigned long &query, unsigned int skipNResults=0)
Determine serial number of attached device(s)
const IRArray< IROptics > * getAvailableOptics(unsigned long serial)
Check available optics for a specific device.
static bool isOnlineCalibrationRepoAccessible()
Check for Internet access to calibration files.
bool downloadCalibration(unsigned long serial)
Download calibration files for a specific serial number.
void setFormatsDir(const Tchar *dir)
Set formats directory.
const Tchar * getDeadPixelDir()
Get dead pixel directory.
static void releaseInstance()
Static release function, new with T#2251.
~IRCalibrationManager()
Destructor.
void setCalibrationDir(const Tchar *dir)
Set calibration directory.
static bool createConfigFilepath(Tchar *path, const Tchar *directory, short maxLen, const Tchar *fileName, const Tchar *extension)
Get (concat) path and name of configuration file.
Definition: IRCalibrationManager.h:34
Definition: IRCalibrationManager.h:28