| MikroCAD SDK Library

- Home
- All Types
- Files

All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
MeasProgram.h
Go to the documentation of this file.
1 /**
2 * @file MeasProgram.h
3 * @brief Measurement programs
4 *
5 * @author LMI Technologies
6 */
7
8 #ifndef _MeasProgram_h
9 #define _MeasProgram_h
10
11 #include "Windows.h"
12 #include "DataFilter.h"
13 #include "MeasurementDefs.h"
14 #include "IniFiles.h"
15 #include "FileFunc.h"
16 #include <string>
17 #include <vector>
18
19 using namespace std;
20
21 /**
22 Maximum measurement program name
23 */
24 #define MEAS_PROG_NAME_LENGTH 255
25
26 /**
27 Abstract base struct
28 */
29 struct TMeasurementParameter
30 {
31 MeasurementMode m_MeasurementMode; /**< Measurement mode */
32 unsigned long m_dwVersion; /**< Version number */
33
34 TMeasurementParameter()
35 {
36 m_MeasurementMode = MeasurementMode_None;
37 m_dwVersion = 0;
38 };
39
40 virtual void Assign(TMeasurementParameter* pParameter) = 0;
41
42 virtual bool FromBuffer(PBYTE& pbyBuffer, DWORD& dwCurrBufferSize) = 0;
43
44 virtual bool ToBuffer(PBYTE& pbyBuffer, DWORD& dwCurrBufferSize) = 0;
45
46 virtual unsigned long GetBufferSize() = 0;
47
48 virtual bool FromIniFile(CIniFile *pIniFile, int nIndex = -1) = 0;
49
50 virtual bool ToIniFile(CIniFile *pIniFile, int nIndex = -1) = 0;
51
52 virtual bool IsEqual(TMeasurementParameter *pMeasurementParameter)
53 {
54 return pMeasurementParameter != NULL && m_MeasurementMode == pMeasurementParameter->m_MeasurementMode;
55 };
56 };
57
58 /**
59 Phase shift parameter
60 */
61 struct TMeasurementParameterPhaseShiftItem
62 {
63 long m_lPhaseShiftNumImg; /**< Phase shift - number of images */
64 long m_lPhaseShiftStripesWidth; /**< Phase shift - stripes width */
65
66 TMeasurementParameterPhaseShiftItem()
67 {
68 m_lPhaseShiftNumImg = m_lPhaseShiftStripesWidth = 0;
69 };
70
71 bool FromBuffer(PBYTE& pbyBuffer, DWORD& dwCurrBufferSize);
72
73 bool ToBuffer(PBYTE& pbyBuffer, DWORD& dwCurrBufferSize);
74
75 static unsigned long GetBufferSize()
76 {
77 return 2 * sizeof(long);
78 };
79
80 bool FromIniFile(CIniFile *pIniFile, int nPhaseShiftIndex, int nIndex = -1);
81
82 bool ToIniFile(CIniFile *pIniFile, int nPhaseShiftIndex, int nIndex = -1);
83
84 TMeasurementParameterPhaseShiftItem& operator =(const TMeasurementParameterPhaseShiftItem& Item)
85 {
86 if (&Item == this)
87 return *this;
88
89 m_lPhaseShiftNumImg = Item.m_lPhaseShiftNumImg;
90 m_lPhaseShiftStripesWidth = Item.m_lPhaseShiftStripesWidth;
91
92 return *this;
93 };
94
95 bool operator ==(const TMeasurementParameterPhaseShiftItem& Item)
96 {
97 return m_lPhaseShiftNumImg == Item.m_lPhaseShiftNumImg && m_lPhaseShiftStripesWidth
98 == Item.m_lPhaseShiftStripesWidth;
99 };
100 };
101
102
103 /**
104 Measurement program with Gray code + phase shift
105 */
106 struct TMeasurementParameterGrayCodePhaseShift : public TMeasurementParameter
107 {
108 long m_lGrayCodeStart; /**< Gray code stripes width start */
109 long m_lGrayCodeNumPlanes; /**< Gray code number of planes */
110 vector<TMeasurementParameterPhaseShiftItem> m_PhaseShiftList; /**< Phase shift list */
111
112 TMeasurementParameterGrayCodePhaseShift() : TMeasurementParameter()
113 {
114 m_MeasurementMode = MeasurementMode_GrayCodePhaseShift;
115 m_lGrayCodeStart = m_lGrayCodeNumPlanes = 0;
116 };
117
118 virtual void Assign(TMeasurementParameter* pParameter);
119
120 virtual bool FromBuffer(PBYTE& pbyBuffer, DWORD& dwCurrBufferSize);
121
122 virtual bool ToBuffer(PBYTE& pbyBuffer, DWORD& dwCurrBufferSize);
123
124 virtual unsigned long GetBufferSize();
125
126 virtual bool FromIniFile(CIniFile *pIniFile, int nIndex = -1);
127
128 virtual bool ToIniFile(CIniFile *pIniFile, int nIndex = -1);
129
130 virtual bool IsEqual(TMeasurementParameter *pMeasurementParameter);
131
132 private:
133
134 TMeasurementParameterPhaseShiftItem m_PhaseShiftItem;
135 };
136
137 /**
138 Measurement program with phase shift only
139 */
140 struct TMeasurementParameterPhaseShift : public TMeasurementParameter
141 {
142 vector<TMeasurementParameterPhaseShiftItem> m_PhaseShiftList; /**< Phase shift list */
143
144 TMeasurementParameterPhaseShift() : TMeasurementParameter()
145 {
146 m_MeasurementMode = MeasurementMode_PhaseShift;
147 };
148
149 virtual void Assign(TMeasurementParameter* pParameter);
150
151 virtual bool FromBuffer(PBYTE& pbyBuffer, DWORD& dwCurrBufferSize);
152
153 virtual bool ToBuffer(PBYTE& pbyBuffer, DWORD& dwCurrBufferSize);
154
155 virtual unsigned long GetBufferSize();
156
157 virtual bool FromIniFile(CIniFile *pIniFile, int nIndex = -1);
158
159 virtual bool ToIniFile(CIniFile *pIniFile, int nIndex = -1);
160
161 virtual bool IsEqual(TMeasurementParameter *pMeasurementParameter);
162
163 private:
164
165 TMeasurementParameterPhaseShiftItem m_PhaseShiftItem;
166 };
167
168 /**
169 Measurement parameter phase code
170 */
171 struct TMeasurementParameterPhaseCode : public TMeasurementParameter
172 {
173 TMeasurementParameterPhaseCode()
174 {
175 };
176 };
177
178 /**
179 Measurement parameter set
180 */
181 struct TMeasurementParameterSet
182 {
183 TMeasurementParameter *m_pParameter;
184
185 TMeasurementParameterSet()
186 {
187 m_pParameter = NULL;
188 };
189 TMeasurementParameterSet(MeasurementMode Mode)
190 {
191 m_pParameter = NULL;
192 CreateParameter(Mode);
193 };
194
195 virtual ~TMeasurementParameterSet()
196 {
197 if (m_pParameter)
198 delete m_pParameter;
199 };
200
201 void Assign(TMeasurementParameter* pParameter);
202
203 bool CreateParameter(MeasurementMode Mode);
204
205 bool FromBuffer(PBYTE& pbyBuffer, DWORD& dwCurrBufferSize);
206
207 bool ToBuffer(PBYTE& pbyBuffer, DWORD& dwCurrBufferSize);
208
209 unsigned long GetBufferSize();
210
211 bool FromIniFile(CIniFile *pIniFile, int nIndex = -1);
212
213 bool ToIniFile(CIniFile *pIniFile, int nIndex = -1);
214
215 bool IsEqual(TMeasurementParameterSet* pSet);
216 };
217
218 /**
219 Measurement program class
220 */
221 class CMeasProgram
222 {
223 public:
224
225 /**
226 Constructor
227 */
228 CMeasProgram()
229 {
230 m_dwThesholdPowerSpectrum = 10;
231 };
232
233 /**
234 Destructor
235 */
236 virtual ~CMeasProgram() {};
237
238 /**
239 Sets the measurement parameter
240
241 @param MeasMode Measurement mode
242 @param pParameter Pointer to measurement parameter (typ depends on measurement mode)
243 @return Error code
244 */
245 long SetMeasurementParameter(MeasurementMode MeasMode, void* pParameter);
246
247 /**
248 Adds a prefilter parameter set to the list
249
250 @param FilterType Filter type
251 @param pParameter Pointer to prefilter parameter (type depends on filter type)
252 @param bClear Delete list
253 @return Error code
254 */
255 long AddPreFilterParameter(MeasurementPreFilterType FilterType, void* pParameter, bool bClear = false);
256
257 /**
258 Read from buffer
259
260 @param pbyBuffer Pointer to buffer (Pointer will incremented)
261 @param dwCurrBufferSize Current buffer size (will decremented)
262 @return Success
263 */
264 bool FromBuffer(PBYTE& pbyBuffer, DWORD& dwCurrBufferSize);
265
266 /**
267 Write to buffer
268
269 @param pbyBuffer Pointer to buffer (Pointer will incremented)
270 @param dwCurrBufferSize Current buffer size (will decremented)
271 @return Success
272 */
273 bool ToBuffer(PBYTE& pbyBuffer, DWORD& dwCurrBufferSize);
274
275 /**
276 Returns the buffer size in bytes
277 */
278 unsigned long GetBufferSize();
279
280 /**
281 Returns a pointer to measurement parameter
282 */
283 TMeasurementParameterSet* GetMeasurementParameter()
284 {
285 return &m_MeasParameter;
286 };
287
288 /**
289 Returns a pointer to prefilter parameter
290 */
291 TDataAcquPreFilterSetData* GetPreFilterParameter()
292 {
293 return &m_PreFilter;
294 };
295
296 /**
297 Sets threshold for power spectrum
298
299 @param dwThres Threshold (1...200)
300 */
301 void SetThesholdPowerSpectrum(unsigned long dwThres)
302 {
303 if (dwThres < 1)
304 dwThres = 1;
305 if (dwThres > 200)
306 dwThres = 200;
307 m_dwThesholdPowerSpectrum = dwThres;
308 };
309
310 /**
311 Returns threshold for power spectrum
312 */
313 unsigned long GetThesholdPowerSpectrum()
314 {
315 return m_dwThesholdPowerSpectrum;
316 };
317
318 /**
319 Assign from an other measurement program
320 */
321 void Assign(CMeasProgram* pMeasProg);
322
323 /**
324 Sets the default parameters
325 */
326 void SetDefaults();
327
328 /**
329 Read settings from INI file
330
331 @param pIniFile Pointer to INI file structure
332 @param nIndex Index in measurement program list, < 0 default measprogram
333 @return Success
334 */
335 bool FromIniFile(CIniFile* pIniFile, int nIndex = -1);
336
337 /**
338 Write settings to INI file
339
340 @param pIniFile Pointer to INI file structure
341 @param nIndex Index in measurement program list, < 0 default measprogram
342 @return: Success - true
343 */
344 bool ToIniFile(CIniFile* pIniFile, int nIndex = -1);
345
346 /**
347 Test equality
348
349 @param pMeasProg Pointer to an other data set
350 @return: Equality
351 */
352 bool IsEqual(CMeasProgram* pMeasProg);
353
354 private:
355
356 TMeasurementParameterSet m_MeasParameter;
357 TDataAcquPreFilterSetData m_PreFilter;
358 unsigned long m_dwThesholdPowerSpectrum;
359 };
360
361 /**
362 Measurement program list item
363 */
364 struct TMeasProgListItem
365 {
366 CMeasProgram *m_pMeasProgram; /**< Pointer to measurement program */
367 string m_stMeasProgramName; /**< Measurement program name */
368
369 TMeasProgListItem()
370 {
371 m_pMeasProgram = new CMeasProgram;
372 m_stMeasProgramName = "";
373 };
374 TMeasProgListItem(string stMeasProgramName);
375 TMeasProgListItem(string stMeasProgramName, CMeasProgram *pMeasProgram);
376
377 virtual ~TMeasProgListItem();
378
379 void Assign(TMeasProgListItem* pMeasProg);
380 };
381
382 typedef vector<TMeasProgListItem*> TMeasProgList;
383
384 /**
385 Measurement program set class
386 */
387 class CMeasProgramSet
388 {
389 public:
390
391 /**
392 Constructor
393 */
394 CMeasProgramSet()
395 {
396 m_lCurrMeasProgIndex = -1;
397 m_DefMeasProg.SetDefaults();
398 m_dwVersion = 0;
399 m_byOnSensor = 1;
400 };
401
402 /**
403 Destructor
404 */
405 virtual ~CMeasProgramSet()
406 {
407 Clear();
408 };
409
410 /**
411 Deletes all measurement programs
412 */
413 void Clear();
414
415 /**
416 Adds a new measurement programs
417
418 @param stMeasProgName Measurement program name (not case sensitive)
419 @return Error code
420 */
421 long AddMeasurementProgram(string stMeasProgName);
422
423 /**
424 Selects the current measurement program
425
426 @param stMeasProgName Measurement program name (not case sensitive) - "" - default program
427 @return Error code
428 */
429 long SelectCurrentMeasurementProgram(string stMeasProgName = "");
430
431 /**
432 Get current measurement program index (< 0 - Default measurement program)
433 */
434 long GetCurrentMeasurementProgramIndex()
435 {
436 return m_lCurrMeasProgIndex;
437 };
438
439 /**
440 Get current measurement program ("" - Default measurement program)
441 */
442 string GetCurrentMeasurementProgram()
443 {
444 return m_lCurrMeasProgIndex >= 0 ? GetParameterSetName((unsigned long)m_lCurrMeasProgIndex) : "";
445 };
446
447 /**
448 Deletes a new measurement programs
449
450 @param stMeasProgName Measurement program name (not case sensitive)
451 */
452 void DeleteMeasurementProgram(string stMeasProgName);
453
454 /**
455 Sets the measurement parameter
456
457 @param stMeasProgName Measurement program name (not case sensitive)
458 @param MeasMode Measurement mode
459 @param pParameter Pointer to measurement parameter (typ depends on measurement mode)
460 @return Error code
461 */
462 long SetMeasurementParameter(string stMeasProgName, MeasurementMode MeasMode, void* pParameter);
463
464 /**
465 Sets the measurement parameter for the default set
466
467 @param MeasMode Measurement mode
468 @param pParameter Pointer to measurement parameter (typ depends on measurement mode)
469 @return Error code
470 */
471 long SetMeasurementParameterDef(MeasurementMode MeasMode, void* pParameter);
472
473 /**
474 Adds a prefilter parameter set to the list
475
476 @param stMeasProgName Measurement program name (not case sensitive)
477 @param FilterType Filter type
478 @param pParameter Pointer to prefilter parameter (typ depends on filter type)
479 @param bClear Delete list?
480 @return Error code
481 */
482 long AddPreFilterParameter(string stMeasProgName, MeasurementPreFilterType FilterType, void* pParameter,
483 bool bClear = false);
484
485 /**
486 Adds a prefilter parameter set to the default set list
487
488 @param FilterType Filter type
489 @param pParameter Pointer to prefilter parameter (typ depends on filter type)
490 @param bClear Delete list?
491 @return Error code
492 */
493 long AddPreFilterParameterDef(MeasurementPreFilterType FilterType, void* pParameter, bool bClear = false);
494
495 /**
496 Read from buffer
497 pbyBuffer - Pointer to buffer (Pointer will incremented !!!)
498 dwCurrBufferSize - Current buffer size (will decremented)
499 @return Success - true
500 */
501 bool FromBuffer(PBYTE& pbyBuffer, DWORD& dwCurrBufferSize);
502
503 /**
504 Write to buffer
505
506 @param pbyBuffer Pointer to buffer (Pointer will incremented)
507 @param dwCurrBufferSize Current buffer size (will decremented)
508 @return Success - true
509 */
510 bool ToBuffer(PBYTE& pbyBuffer, DWORD& dwCurrBufferSize);
511
512 /**
513 Returns the buffer size in byte
514 */
515 unsigned long GetBufferSize();
516
517 /**
518 Returns the number of measurement parameter sets
519 */
520 unsigned long GetNumParameterSets();
521
522 /**
523 Returns the name of the measurement parameter set on index
524 */
525 string GetParameterSetName(unsigned long dwIndex);
526
527 /**
528 Returns a pointer to measurement parameter
529 stMeasProgName - Measurement program name (not case sensitive) - "" - selected program
530 */
531 TMeasurementParameterSet* GetMeasurementParameter(string stMeasProgName = "");
532
533 /**
534 Returns a pointer to prefilter parameter
535
536 @param stMeasProgName Measurement program name (not case sensitive) - "" - selected program
537 */
538 TDataAcquPreFilterSetData* GetPreFilterParameter(string stMeasProgName = "");
539
540 /**
541 Sets threshold for power spectrum
542 @param dwThres Threshold (1...200)
543 @param stMeasProgName Measurement program name (not case sensitive) - "" - selected program
544 */
545 void SetThesholdPowerSpectrum(unsigned long dwThres, string stMeasProgName = "");
546
547 /**
548 Returns threshold for power spectrum
549 @param stMeasProgName Measurement program name (not case sensitive) - "" - selected program
550 */
551 unsigned long GetThesholdPowerSpectrum(string stMeasProgName = "");
552
553 /**
554 Which measuring program is identical to the default measuring program
555
556 @return Measurement program name or -1, if no measurement program is identical
557 */
558 string GetDefaultMeasProgramName();
559
560 /**
561 Height image calculation on sensor or sensor DLL if possible. Always true for normal cases, false for development or tests
562
563 @return True if height image calculation is done on the sensor, otherwise false
564 */
565 bool GetOnSensorFlag()
566 {
567 return m_byOnSensor != 0;
568 };
569
570 /**
571 Set height image calculation on sensor or sensor DLL if possible. For development or tests.
572
573 @param bOnSenor True if height image calculation is done on the sensor, otherwise false
574 */
575 void SetOnSensorFlag(bool bOnSenor)
576 {
577 m_byOnSensor = bOnSenor ? 1 : 0;
578 };
579
580 /**
581 Read settings from INI file, filename is default ini file name
582
583 @return Success
584 */
585 bool FromIniFile();
586
587 /**
588 Read settings from INI file, filename is default ini file name
589
590 @param stIniFileName Ini file name (with path)
591 @return Success
592 */
593 bool FromIniFile(string stIniFileName);
594
595 /**
596 Write settings to INI file, filename is default ini file name
597
598 @return Success
599 */
600 bool ToIniFile();
601
602 /**
603 Write settings to INI file, filename is default ini file name
604
605 @param stIniFileName - Ini file name (with path)
606 @return Success
607 */
608 bool ToIniFile(string stIniFileName);
609
610 /**
611 Load from binary file
612 @param pFile Pointer to file
613 @return Error code
614 */
615 long LoadFromBinaryFile(CDataFile* pFile);
616
617 /**
618 Save to binary file
619
620 @param pFile Pointer to file
621 @return Error code
622 */
623 long SaveToBinaryFile(CDataFile* pFile);
624
625 /**
626 Assign from an other measurement program set
627 */
628 void Assign(CMeasProgramSet* pMeasProgset);
629
630 /**
631 Returns the current version
632 */
633 static unsigned long GetCurrentVersion();
634
635 private:
636
637 string GetIniFileName();
638
639 private:
640
641 long m_lCurrMeasProgIndex;
642 TMeasProgList m_pMeasProgList;
643 CMeasProgram m_DefMeasProg;
644 unsigned long m_dwVersion;
645 unsigned char m_byOnSensor;
646 };
647
648 #endif
TMeasurementParameterGrayCodePhaseShift::m_lGrayCodeNumPlanes
long m_lGrayCodeNumPlanes
Gray code number of planes.
Definition: MeasProgram.h:109
CMeasProgramSet::GetCurrentMeasurementProgramIndex
long GetCurrentMeasurementProgramIndex()
Get current measurement program index (< 0 - Default measurement program)
Definition: MeasProgram.h:434
TMeasurementParameterPhaseShift
Measurement program with phase shift only.
Definition: MeasProgram.h:140
TMeasurementParameterSet
Measurement parameter set.
Definition: MeasProgram.h:181
CMeasProgramSet::GetOnSensorFlag
bool GetOnSensorFlag()
Height image calculation on sensor or sensor DLL if possible.
Definition: MeasProgram.h:565
MeasurementPreFilterType
MeasurementPreFilterType
Prefilter type.
Definition: MeasurementDefs.h:242
CMeasProgram::CMeasProgram
CMeasProgram()
Constructor.
Definition: MeasProgram.h:228
TMeasurementParameterPhaseShift::m_PhaseShiftList
vector< TMeasurementParameterPhaseShiftItem > m_PhaseShiftList
Phase shift list.
Definition: MeasProgram.h:142
TDataAcquPreFilterSetData
Data structure for prefilter set for data acquisition.
Definition: DataFilter.h:139
TMeasurementParameter::m_dwVersion
unsigned long m_dwVersion
Version number.
Definition: MeasProgram.h:32
CMeasProgram::GetThesholdPowerSpectrum
unsigned long GetThesholdPowerSpectrum()
Returns threshold for power spectrum.
Definition: MeasProgram.h:313
TMeasurementParameterGrayCodePhaseShift::m_PhaseShiftList
vector< TMeasurementParameterPhaseShiftItem > m_PhaseShiftList
Phase shift list.
Definition: MeasProgram.h:110
TMeasurementParameterGrayCodePhaseShift::m_lGrayCodeStart
long m_lGrayCodeStart
Gray code stripes width start.
Definition: MeasProgram.h:108
std
CDataFile
Class for file operations.
Definition: FileFunc.h:108
IniFiles.h
Ini File functions.
TMeasurementParameterPhaseCode
Measurement parameter phase code.
Definition: MeasProgram.h:171
TMeasurementParameter
Abstract base struct.
Definition: MeasProgram.h:29
TMeasProgListItem
Measurement program list item.
Definition: MeasProgram.h:364
MeasurementDefs.h
Defines for measurement module for sensors with 1 projector and 1 camera.
CMeasProgramSet::CMeasProgramSet
CMeasProgramSet()
Constructor.
Definition: MeasProgram.h:394
CIniFile
Ini file class.
Definition: IniFiles.h:20
CMeasProgramSet::~CMeasProgramSet
virtual ~CMeasProgramSet()
Destructor.
Definition: MeasProgram.h:405
CMeasProgram::SetThesholdPowerSpectrum
void SetThesholdPowerSpectrum(unsigned long dwThres)
Sets threshold for power spectrum.
Definition: MeasProgram.h:301
TMeasurementParameterGrayCodePhaseShift
Measurement program with Gray code + phase shift.
Definition: MeasProgram.h:106
CMeasProgram::~CMeasProgram
virtual ~CMeasProgram()
Destructor.
Definition: MeasProgram.h:236
MeasurementMode_GrayCodePhaseShift
Gray code + phase shift.
Definition: MeasurementDefs.h:234
FileFunc.h
File functions.
TMeasurementParameterPhaseShiftItem::m_lPhaseShiftStripesWidth
long m_lPhaseShiftStripesWidth
Phase shift - stripes width.
Definition: MeasProgram.h:64
TMeasurementParameterPhaseShiftItem::m_lPhaseShiftNumImg
long m_lPhaseShiftNumImg
Phase shift - number of images.
Definition: MeasProgram.h:63
TMeasurementParameter::m_MeasurementMode
MeasurementMode m_MeasurementMode
Measurement mode.
Definition: MeasProgram.h:31
CMeasProgramSet
Measurement program set class.
Definition: MeasProgram.h:387
MeasurementMode_None
No measurement mode.
Definition: MeasurementDefs.h:233
CMeasProgram::GetMeasurementParameter
TMeasurementParameterSet * GetMeasurementParameter()
Returns a pointer to measurement parameter.
Definition: MeasProgram.h:283
MeasurementMode_PhaseShift
Phase shift only.
Definition: MeasurementDefs.h:235
DataFilter.h
Filter definitions.
CMeasProgramSet::SetOnSensorFlag
void SetOnSensorFlag(bool bOnSenor)
Set height image calculation on sensor or sensor DLL if possible.
Definition: MeasProgram.h:575
TMeasProgListItem::m_stMeasProgramName
string m_stMeasProgramName
Measurement program name.
Definition: MeasProgram.h:367
CMeasProgram::GetPreFilterParameter
TDataAcquPreFilterSetData * GetPreFilterParameter()
Returns a pointer to prefilter parameter.
Definition: MeasProgram.h:291
CMeasProgram
Measurement program class.
Definition: MeasProgram.h:221
MeasurementMode
MeasurementMode
Measurement mode.
Definition: MeasurementDefs.h:231
TMeasurementParameterPhaseShiftItem
Phase shift parameter.
Definition: MeasProgram.h:61
CMeasProgramSet::GetCurrentMeasurementProgram
string GetCurrentMeasurementProgram()
Get current measurement program ("" - Default measurement program)
Definition: MeasProgram.h:442
TMeasProgListItem::m_pMeasProgram
CMeasProgram * m_pMeasProgram
Pointer to measurement program.
Definition: MeasProgram.h:366