Operator Console
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | List of all members
CPassFail Class Reference

The class underlying the PassFail dialog. More...

#include <PassFail.h>

Inheritance diagram for CPassFail:
[legend]

Public Types

enum  { IDD = IDD_PASS_FAIL }
 
enum  { IDD = IDD_PASS_FAIL }
 

Public Member Functions

 CPassFail (CWnd *pParent=NULL)
 
 CPassFail (CPassFailSettings &InPassFail, CWnd *pParent=NULL)
 
virtual ~CPassFail ()
 
virtual BOOL OnInitDialog ()
 
afx_msg void OnBnClickedOk ()
 When the OK button is clicked this function updates the entire PFSettings class with the user supplied values. More...
 
 CPassFail (CWnd *pParent=NULL)
 
 CPassFail (CPassFailSettings &InPassFail, CWnd *pParent=NULL)
 
virtual ~CPassFail ()
 
virtual BOOL OnInitDialog ()
 
afx_msg void OnBnClickedOk ()
 

Public Attributes

CStatic c_proplist_location
 The place-holder for CMFCPropertyGridCtrl. More...
 
CButton c_ok
 
CButton c_cancel
 
CMFCPropertyGridCtrl m_wndPropList
 
CPassFailSettings PFSettings
 

Protected Member Functions

virtual void DoDataExchange (CDataExchange *pDX)
 
virtual void DoDataExchange (CDataExchange *pDX)
 

Detailed Description

The class underlying the PassFail dialog.

Member Enumeration Documentation

anonymous enum
Enumerator
IDD 
37 { IDD = IDD_PASS_FAIL };
Definition: PassFail.h:37
#define IDD_PASS_FAIL
Definition: resource.h:40
anonymous enum
Enumerator
IDD 
37 { IDD = IDD_PASS_FAIL };
Definition: PassFail.h:37
#define IDD_PASS_FAIL
Definition: resource.h:40

Constructor & Destructor Documentation

CPassFail::CPassFail ( CWnd *  pParent = NULL)
122  : CDialogEx(CPassFail::IDD, pParent)
123 {
124 
125 }
Definition: PassFail.h:37
CPassFail::CPassFail ( CPassFailSettings InPassFail,
CWnd *  pParent = NULL 
)

References PFSettings.

128  : CDialogEx(CPassFail::IDD, pParent)
129 {
130  PFSettings = InPassFail;
131 
132 }
CPassFailSettings PFSettings
Definition: PassFail.h:49
Definition: PassFail.h:37
CPassFail::~CPassFail ( )
virtual
135 {
136 }
CPassFail::CPassFail ( CWnd *  pParent = NULL)
CPassFail::CPassFail ( CPassFailSettings InPassFail,
CWnd *  pParent = NULL 
)
virtual CPassFail::~CPassFail ( )
virtual

Member Function Documentation

void CPassFail::DoDataExchange ( CDataExchange *  pDX)
protectedvirtual

References c_cancel, c_ok, c_proplist_location, and IDC_PROPLIST_LOCATION.

139 {
140  CDialogEx::DoDataExchange(pDX);
141  DDX_Control(pDX, IDC_PROPLIST_LOCATION, c_proplist_location);
142  DDX_Control(pDX, IDOK, c_ok);
143  DDX_Control(pDX, IDCANCEL, c_cancel);
144 }
#define IDC_PROPLIST_LOCATION
Definition: resource.h:89
CStatic c_proplist_location
The place-holder for CMFCPropertyGridCtrl.
Definition: PassFail.h:44
CButton c_cancel
Definition: PassFail.h:46
CButton c_ok
Definition: PassFail.h:45
virtual void CPassFail::DoDataExchange ( CDataExchange *  pDX)
protectedvirtual
afx_msg void CPassFail::OnBnClickedOk ( )
void CPassFail::OnBnClickedOk ( )

When the OK button is clicked this function updates the entire PFSettings class with the user supplied values.

References SFRplusPassFail::All_Edge_IDs_detected, SFRplusPassFail::Bayer_decode, CPassFailSettings::blemish, BlemishPassFail::Blemish_maximum_count, BlemishPassFail::Blemish_size_pixels, SFRplusPassFail::Chart_mean_pixel_level_bounds, SFRplusPassFail::Chart_radial_pixel_shift_max, SFRplusPassFail::Color_expected_detected, SFRplusPassFail::Convergence_angle_max, BlemishPassFail::Dead_pixel_clusters_max, BlemishPassFail::Dead_pixels_max, BlemishPassFail::Defective_pixels_max_count, OtherPassFail::ent_vec, SFRplusPassFail::FOV_degrees_diagonal_min, minMaxEntry< T >::group_name, vecEntry< T >::group_name, SFRplusPassFail::High_pixel_saturation_fraction_max, SFRplusPassFail::Horizontal_bars_OK_min, BlemishPassFail::Hot_pixel_clusters_max, BlemishPassFail::Hot_pixels_max, OISPassFail::L_MTF50_delta2_gain_summary_all_dB_min, SFRplusPassFail::Low_pixel_saturation_fraction_max, m_wndPropList, minMaxEntry< T >::max_val, minMaxEntry< T >::min_val, SFRplusPassFail::Mirrored_chart, SFRplusPassFail::MTF50P_CP_weighted_mean_min, SFRplusPassFail::MTF50P_ratio_min, entry< T >::name, SFRplusPassFail::name, BlemishPassFail::name, OISPassFail::name, OtherPassFail::name, CPassFailSettings::ois, BlemishPassFail::Optical_center_offset_max, BlemishPassFail::Optical_center_offset_X_max, BlemishPassFail::Optical_center_offset_Y_max, CPassFailSettings::other, SFRplusPassFail::passfail_ini_file_date, PFSettings, OISPassFail::R_improve_ALL_dB_min, OISPassFail::R_improve_H_dB_min, OISPassFail::R_improve_V_dB_min, BlemishPassFail::Relative_illumination_corner_diff_pct_max, BlemishPassFail::Relative_illumination_worst_corner_pct_min, SFRplusPassFail::Rotation_degrees_max, SFRplusPassFail::Secondary_readout_1_center_mean_min, SFRplusPassFail::Secondary_readout_1_outer_mean_min, SFRplusPassFail::Secondary_readout_1_outer_min_min, SFRplusPassFail::Secondary_readout_1_outer_quadrant_delta_max, SFRplusPassFail::Secondary_readout_1_outer_quadrant_mean_min_min, SFRplusPassFail::Secondary_readout_2_center_mean_min, SFRplusPassFail::Secondary_readout_2_outer_mean_min, SFRplusPassFail::Secondary_readout_2_outer_min_min, SFRplusPassFail::Secondary_readout_2_outer_quadrant_delta_max, SFRplusPassFail::Secondary_readout_2_outer_quadrant_mean_min_min, CPassFailSettings::sfrplus, SFRplusPassFail::Stepchart_expected_detected, BlemishPassFail::Uniformity_BoverG_corners_pct_max, BlemishPassFail::Uniformity_RoverG_corners_pct_max, SFRplusPassFail::upside_down, entry< T >::value, and vecEntry< T >::value.

268 {
269 
270  CDialogEx::OnOK();
271  std::size_t numProps = m_wndPropList.GetPropertyCount();
272 
273  for (std::size_t propidx = 0; propidx < numProps; ++propidx)
274  {
275  CMFCPropertyGridProperty* currentProp = m_wndPropList.GetProperty(propidx);
276  CString currentName = currentProp->GetName();
277 
278  // search through and update the appropriate variables given the name of the currently selected property
279 
281  // Update PFSettings.blemish
283 
284  if ( currentName.Compare(PFSettings.blemish.name)==0)
285  {
286  std::size_t subItemsCnt = currentProp->GetSubItemsCount();
287 
288  CMFCPropertyGridProperty* subItemProp;
289  for ( std::size_t subIdx = 0; subIdx < subItemsCnt; ++subIdx)
290  {
291  subItemProp = currentProp->GetSubItem(subIdx); // Get the sub item
292  CString subItemName = subItemProp->GetName();
293 
294  if (subItemName.Compare(PFSettings.blemish.Blemish_maximum_count.group_name)==0) // Blemish_maximum_count
295  {
296  std::size_t subSubItemCnt = subItemProp->GetSubItemsCount();
297  PFSettings.blemish.Blemish_maximum_count.value.resize(subSubItemCnt);
298  for (std::size_t subSubIdx = 0; subSubIdx < subSubItemCnt; ++subSubIdx)
299  {
300  PFSettings.blemish.Blemish_maximum_count.value[subSubIdx] = subItemProp->GetSubItem(subSubIdx)->GetValue().lVal;
301  }
302  }
303  else if( subItemName.Compare(PFSettings.blemish.Blemish_size_pixels.group_name)==0) // Blemish_size_pixels
304  {
305  std::size_t subSubItemCnt = subItemProp->GetSubItemsCount();
306  PFSettings.blemish.Blemish_size_pixels.value.resize(subSubItemCnt);
307  for (std::size_t subSubIdx = 0; subSubIdx < subSubItemCnt; ++subSubIdx)
308  {
309  PFSettings.blemish.Blemish_size_pixels.value[subSubIdx] = subItemProp->GetSubItem(subSubIdx)->GetValue().lVal;
310  }
311  }
312  else if(subItemName.Compare(PFSettings.blemish.Dead_pixels_max.name)==0) // Dead_pixels_max
313  {
314  PFSettings.blemish.Dead_pixels_max.value = subItemProp->GetValue().lVal;
315  }
316  else if(subItemName.Compare(PFSettings.blemish.Dead_pixel_clusters_max.name)==0) // Dead_pixel_clusters_max
317  {
318  PFSettings.blemish.Dead_pixel_clusters_max.value = subItemProp->GetValue().lVal;
319  }
320  else if(subItemName.Compare(PFSettings.blemish.Defective_pixels_max_count.name)==0) // Defective_pixels_max_count
321  {
322  PFSettings.blemish.Defective_pixels_max_count.value = subItemProp->GetValue().lVal;
323  }
324  else if(subItemName.Compare(PFSettings.blemish.Hot_pixel_clusters_max.name)==0) // Hot_pixel_clusters_max
325  {
326  PFSettings.blemish.Hot_pixel_clusters_max.value = subItemProp->GetValue().lVal;
327  }
328  else if(subItemName.Compare(PFSettings.blemish.Hot_pixels_max.name)==0) // Hot_pixels_max
329  {
330  PFSettings.blemish.Hot_pixels_max.value = subItemProp->GetValue().lVal;
331  }
332  else if (subItemName.Compare(PFSettings.blemish.Optical_center_offset_max.name)==0) // Optical_center_offset_max
333  {
334  PFSettings.blemish.Optical_center_offset_max.value = subItemProp->GetValue().dblVal;
335  }
336  else if (subItemName.Compare(PFSettings.blemish.Optical_center_offset_X_max.name)==0) // Optical_center_offset_X_max
337  {
338  PFSettings.blemish.Optical_center_offset_X_max.value = subItemProp->GetValue().dblVal;
339  }
340  else if (subItemName.Compare(PFSettings.blemish.Optical_center_offset_Y_max.name)==0) // Optical_center_offset_Y_max
341  {
342  PFSettings.blemish.Optical_center_offset_Y_max.value = subItemProp->GetValue().dblVal;
343  }
344  else if (subItemName.Compare(PFSettings.blemish.Relative_illumination_corner_diff_pct_max.name)==0) // Relative_illumination_corner_diff_pct_max
345  {
346  PFSettings.blemish.Relative_illumination_corner_diff_pct_max.value = subItemProp->GetValue().dblVal;
347  }
348  else if (subItemName.Compare(PFSettings.blemish.Relative_illumination_worst_corner_pct_min.name)==0) // Relative_illumination_worst_corner_pct_min
349  {
350  PFSettings.blemish.Relative_illumination_worst_corner_pct_min.value = subItemProp->GetValue().dblVal;
351  }
352  else if (subItemName.Compare(PFSettings.blemish.Uniformity_BoverG_corners_pct_max.name)==0) // Uniformity_BoverG_corners_pct_max
353  {
354  PFSettings.blemish.Uniformity_BoverG_corners_pct_max.value = subItemProp->GetValue().dblVal;
355  }
356  else if (subItemName.Compare(PFSettings.blemish.Uniformity_RoverG_corners_pct_max.name)==0) // Uniformity_RoverG_corners_pct_max
357  {
358  PFSettings.blemish.Uniformity_RoverG_corners_pct_max.value = subItemProp->GetValue().dblVal;
359  }
360 
361  }
362 
363  }
365  // Update PFSettings.sfrplus
367  else if (currentName.Compare(PFSettings.sfrplus.name)==0)
368  {
369  std::size_t subItemsCnt = currentProp->GetSubItemsCount();
370  CMFCPropertyGridProperty* subItemProp;
371  for ( std::size_t subIdx = 0; subIdx < subItemsCnt; ++subIdx)
372  {
373  subItemProp = currentProp->GetSubItem(subIdx); // Get the sub item
374  CString subItemName = subItemProp->GetName();
375 
376  if (subItemName.Compare(PFSettings.sfrplus.All_Edge_IDs_detected.name)==0) // All_Edge_IDs_detected
377  {
378  PFSettings.sfrplus.All_Edge_IDs_detected.value = subItemProp->GetValue().lVal;
379  }
380  else if (subItemName.Compare(PFSettings.sfrplus.Bayer_decode.name)==0) // Bayer_decode
381  {
382  PFSettings.sfrplus.Bayer_decode.value = subItemProp->GetValue().lVal;
383  }
384  else if (subItemName.Compare(PFSettings.sfrplus.Chart_mean_pixel_level_bounds.group_name)==0) // Chart_mean_pixel_level_bounds
385  {
386  std::size_t subSubItemsCnt = subItemProp->GetSubItemsCount();
387  PFSettings.sfrplus.Chart_mean_pixel_level_bounds.min_val = subItemProp->GetSubItem(0)->GetValue().dblVal;
388  PFSettings.sfrplus.Chart_mean_pixel_level_bounds.max_val = subItemProp->GetSubItem(1)->GetValue().dblVal;
389  }
390  else if (subItemName.Compare(PFSettings.sfrplus.Chart_radial_pixel_shift_max.name)==0) // Chart_radial_pixel_shift_max
391  {
392  PFSettings.sfrplus.Chart_radial_pixel_shift_max.value = subItemProp->GetValue().dblVal;
393  }
394  else if (subItemName.Compare(PFSettings.sfrplus.Color_expected_detected.name)==0) // Color_expected_detected
395  {
396  PFSettings.sfrplus.Color_expected_detected.value = subItemProp->GetValue().lVal;
397  }
398  else if (subItemName.Compare(PFSettings.sfrplus.Convergence_angle_max.name)==0) // Convergence_angle_max
399  {
400  PFSettings.sfrplus.Convergence_angle_max.value = subItemProp->GetValue().dblVal;
401  }
402  else if (subItemName.Compare(PFSettings.sfrplus.FOV_degrees_diagonal_min.name)==0) // FOV_degrees_diagonal_min
403  {
404  PFSettings.sfrplus.FOV_degrees_diagonal_min.value = subItemProp->GetValue().dblVal;
405  }
406  else if (subItemName.Compare(PFSettings.sfrplus.High_pixel_saturation_fraction_max.name)==0) // High_pixel_saturation_fraction_max
407  {
408  PFSettings.sfrplus.High_pixel_saturation_fraction_max.value = subItemProp->GetValue().dblVal;
409  }
410  else if (subItemName.Compare(PFSettings.sfrplus.Horizontal_bars_OK_min.name)==0) // Horizontal_bars_OK_min
411  {
412  PFSettings.sfrplus.Horizontal_bars_OK_min.value = subItemProp->GetValue().lVal;
413  }
414  else if (subItemName.Compare(PFSettings.sfrplus.Low_pixel_saturation_fraction_max.name)==0) // Low_pixel_saturation_fraction_max
415  {
416  PFSettings.sfrplus.Low_pixel_saturation_fraction_max.value = subItemProp->GetValue().dblVal;
417  }
418  else if (subItemName.Compare(PFSettings.sfrplus.Mirrored_chart.name)==0) // Mirrored_chart
419  {
420  PFSettings.sfrplus.Mirrored_chart.value = subItemProp->GetValue().lVal;
421  }
422  else if (subItemName.Compare(PFSettings.sfrplus.MTF50P_CP_weighted_mean_min.name)==0) // MTF50P_CP_weighted_mean_min
423  {
424  PFSettings.sfrplus.MTF50P_CP_weighted_mean_min.value = subItemProp->GetValue().dblVal;
425  }
426  else if (subItemName.Compare(PFSettings.sfrplus.MTF50P_ratio_min.name)==0) // MTF50P_ratio_min
427  {
428  PFSettings.sfrplus.MTF50P_ratio_min.value = subItemProp->GetValue().dblVal;
429  }
430  else if (subItemName.Compare(PFSettings.sfrplus.passfail_ini_file_date.name)==0) // passfail_ini_file_date
431  {
432  PFSettings.sfrplus.passfail_ini_file_date.value = subItemProp->GetValue().bstrVal;
433  }
434  else if (subItemName.Compare(PFSettings.sfrplus.Rotation_degrees_max.name)==0) // Rotation_degrees_max
435  {
436  PFSettings.sfrplus.Rotation_degrees_max.value = subItemProp->GetValue().dblVal;
437  }
438  else if (subItemName.Compare(PFSettings.sfrplus.Secondary_readout_1_center_mean_min.name)==0) // Secondary_readout_1_center_mean_min
439  {
440  PFSettings.sfrplus.Secondary_readout_1_center_mean_min.value = subItemProp->GetValue().dblVal;
441  }
442  else if (subItemName.Compare(PFSettings.sfrplus.Secondary_readout_1_outer_mean_min.name)==0) // Secondary_readout_1_outer_mean_min
443  {
444  PFSettings.sfrplus.Secondary_readout_1_outer_mean_min.value = subItemProp->GetValue().dblVal;
445  }
446  else if (subItemName.Compare(PFSettings.sfrplus.Secondary_readout_1_outer_min_min.name)==0) // Secondary_readout_1_outer_min_min
447  {
448  PFSettings.sfrplus.Secondary_readout_1_outer_min_min.value = subItemProp->GetValue().dblVal;
449  }
450  else if (subItemName.Compare(PFSettings.sfrplus.Secondary_readout_1_outer_quadrant_delta_max.name)==0) // Secondary_readout_1_outer_quadrant_delta_max
451  {
452  PFSettings.sfrplus.Secondary_readout_1_outer_quadrant_delta_max.value = subItemProp->GetValue().dblVal;
453  }
454  else if (subItemName.Compare(PFSettings.sfrplus.Secondary_readout_1_outer_quadrant_mean_min_min.name)==0) // Secondary_readout_1_outer_quadrant_mean_min_min
455  {
457  }
458  else if (subItemName.Compare(PFSettings.sfrplus.Secondary_readout_2_center_mean_min.name)==0) // Secondary_readout_2_center_mean_min
459  {
460  PFSettings.sfrplus.Secondary_readout_2_center_mean_min.value = subItemProp->GetValue().dblVal;
461  }
462  else if (subItemName.Compare(PFSettings.sfrplus.Secondary_readout_2_outer_mean_min.name)==0) // Secondary_readout_2_outer_mean_min
463  {
464  PFSettings.sfrplus.Secondary_readout_2_outer_mean_min.value = subItemProp->GetValue().dblVal;
465  }
466  else if (subItemName.Compare(PFSettings.sfrplus.Secondary_readout_2_outer_min_min.name)==0) // Secondary_readout_2_outer_min_min
467  {
468  PFSettings.sfrplus.Secondary_readout_2_outer_min_min.value = subItemProp->GetValue().dblVal;
469  }
470  else if (subItemName.Compare(PFSettings.sfrplus.Secondary_readout_2_outer_quadrant_delta_max.name)==0) // Secondary_readout_2_outer_quadrant_delta_max
471  {
472  PFSettings.sfrplus.Secondary_readout_2_outer_quadrant_delta_max.value = subItemProp->GetValue().dblVal;
473  }
474  else if (subItemName.Compare(PFSettings.sfrplus.Secondary_readout_2_outer_quadrant_mean_min_min.name)==0) // Secondary_readout_2_outer_quadrant_mean_min_min
475  {
477  }
478  else if (subItemName.Compare(PFSettings.sfrplus.Stepchart_expected_detected.name)==0) // Stepchart_expected_detected
479  {
480  PFSettings.sfrplus.Stepchart_expected_detected.value = subItemProp->GetValue().lVal;
481  }
482  else if (subItemName.Compare(PFSettings.sfrplus.upside_down.name)==0) // upside_down
483  {
484  PFSettings.sfrplus.upside_down.value = subItemProp->GetValue().lVal;
485  }
486  }
487 
488  }
489 
491  // Update PFSettings.ois
493 
494  else if(currentName.Compare(PFSettings.ois.name)==0)
495  {
496  std::size_t subItemsCnt = currentProp->GetSubItemsCount();
497  CMFCPropertyGridProperty* subItemProp;
498  for ( std::size_t subIdx = 0; subIdx < subItemsCnt; ++subIdx)
499  {
500  subItemProp = currentProp->GetSubItem(subIdx); // Get the sub item
501  CString subItemName = subItemProp->GetName();
502 
503  if (subItemName.Compare(PFSettings.ois.L_MTF50_delta2_gain_summary_all_dB_min.name)==0) // L_MTF50_delta2_gain_summary_all_dB_min
504  {
505  PFSettings.ois.L_MTF50_delta2_gain_summary_all_dB_min.value = subItemProp->GetValue().lVal;
506  }
507  else if (subItemName.Compare(PFSettings.ois.R_improve_ALL_dB_min.name)==0) // R_improve_ALL_dB_min
508  {
509  PFSettings.ois.R_improve_ALL_dB_min.value = subItemProp->GetValue().lVal;
510  }
511  else if (subItemName.Compare(PFSettings.ois.R_improve_H_dB_min.name)==0) // R_improve_H_dB_min
512  {
513  PFSettings.ois.R_improve_H_dB_min.value = subItemProp->GetValue().lVal;
514  }
515  else if (subItemName.Compare(PFSettings.ois.R_improve_V_dB_min.name)==0) // R_improve_V_dB_min
516  {
517  PFSettings.ois.R_improve_V_dB_min.value = subItemProp->GetValue().lVal;
518  }
519  }
520 
521  }
522 
524  // Update PFSettings.other
526  else if(currentName.Compare(PFSettings.other.name)==0)
527  {
528  std::size_t subItemsCnt = currentProp->GetSubItemsCount();
529  CMFCPropertyGridProperty* subItemProp;
530 
531  for ( std::size_t subIdx = 0; subIdx < subItemsCnt; ++subIdx)
532  {
533  subItemProp = currentProp->GetSubItem(subIdx); // Get the sub item
534  CString subItemName = subItemProp->GetName();
535 
536  PFSettings.other.ent_vec[subIdx].value = subItemProp->GetValue().bstrVal;
537 
538  }
539 
540  }
541  }
542 
543 }
CPassFailSettings PFSettings
Definition: PassFail.h:49
T min_val
The value for the min variable.
Definition: PassFailSettings.h:61
CString name
The name to be displayed for this assembly of variables.
Definition: PassFailSettings.h:184
entry< double > Chart_radial_pixel_shift_max
Definition: PassFailSettings.h:119
entry< double > Secondary_readout_2_outer_min_min
Definition: PassFailSettings.h:138
vecEntry< long > Blemish_maximum_count
Definition: PassFailSettings.h:154
T value
the value of the pass/fail variable
Definition: PassFailSettings.h:33
entry< double > Secondary_readout_2_outer_quadrant_delta_max
Definition: PassFailSettings.h:139
entry< long > R_improve_V_dB_min
Definition: PassFailSettings.h:181
entry< long > All_Edge_IDs_detected
Definition: PassFailSettings.h:116
entry< double > Secondary_readout_1_center_mean_min
Definition: PassFailSettings.h:131
OtherPassFail other
Definition: PassFailSettings.h:213
entry< double > Secondary_readout_2_outer_mean_min
Definition: PassFailSettings.h:137
entry< double > Secondary_readout_2_center_mean_min
Definition: PassFailSettings.h:136
entry< long > Dead_pixels_max
Definition: PassFailSettings.h:157
CString group_name
The name to be displayed for the collection.
Definition: PassFailSettings.h:84
entry< double > Rotation_degrees_max
Definition: PassFailSettings.h:130
std::vector< T > value
A vector containing all the values of the variable.
Definition: PassFailSettings.h:90
entry< long > Horizontal_bars_OK_min
Definition: PassFailSettings.h:124
entry< double > Secondary_readout_2_outer_quadrant_mean_min_min
Definition: PassFailSettings.h:140
entry< double > Optical_center_offset_max
Definition: PassFailSettings.h:161
entry< long > Dead_pixel_clusters_max
Definition: PassFailSettings.h:156
entry< long > Mirrored_chart
Definition: PassFailSettings.h:126
CString group_name
The overall name for the pair.
Definition: PassFailSettings.h:54
std::vector< entry< CString > > ent_vec
Definition: PassFailSettings.h:193
entry< long > L_MTF50_delta2_gain_summary_all_dB_min
Definition: PassFailSettings.h:179
Blemish blemish
Definition: PassFailSettings.h:211
entry< double > Low_pixel_saturation_fraction_max
Definition: PassFailSettings.h:125
entry< long > R_improve_H_dB_min
Definition: PassFailSettings.h:180
entry< long > Hot_pixels_max
Definition: PassFailSettings.h:160
entry< double > Relative_illumination_corner_diff_pct_max
Definition: PassFailSettings.h:164
entry< double > FOV_degrees_diagonal_min
Definition: PassFailSettings.h:122
CString name
The name to be displayed for this assembly of variables.
Definition: PassFailSettings.h:169
entry< double > Optical_center_offset_X_max
Definition: PassFailSettings.h:162
entry< CString > passfail_ini_file_date
Definition: PassFailSettings.h:129
entry< double > Secondary_readout_1_outer_quadrant_delta_max
Definition: PassFailSettings.h:134
OISPassFail ois
Definition: PassFailSettings.h:212
T max_val
The value for the max variable.
Definition: PassFailSettings.h:62
entry< long > Color_expected_detected
Definition: PassFailSettings.h:120
CString name
The name to be displayed for this assembly of variables.
Definition: PassFailSettings.h:144
entry< double > MTF50P_CP_weighted_mean_min
Definition: PassFailSettings.h:128
CMFCPropertyGridCtrl m_wndPropList
Definition: PassFail.h:48
vecEntry< long > Blemish_size_pixels
Definition: PassFailSettings.h:155
CString name
the pass/fail variable (or key) name as given in the Imatest documentation
Definition: PassFailSettings.h:31
entry< double > Secondary_readout_1_outer_mean_min
Definition: PassFailSettings.h:132
minMaxEntry< double > Chart_mean_pixel_level_bounds
Definition: PassFailSettings.h:118
entry< long > Stepchart_expected_detected
Definition: PassFailSettings.h:141
entry< long > upside_down
Definition: PassFailSettings.h:142
entry< double > Relative_illumination_worst_corner_pct_min
Definition: PassFailSettings.h:165
entry< double > Convergence_angle_max
Definition: PassFailSettings.h:121
entry< long > Hot_pixel_clusters_max
Definition: PassFailSettings.h:159
entry< double > High_pixel_saturation_fraction_max
Definition: PassFailSettings.h:123
entry< double > Secondary_readout_1_outer_min_min
Definition: PassFailSettings.h:133
entry< double > Uniformity_RoverG_corners_pct_max
Definition: PassFailSettings.h:167
entry< double > Optical_center_offset_Y_max
Definition: PassFailSettings.h:163
entry< long > R_improve_ALL_dB_min
Definition: PassFailSettings.h:182
entry< long > Bayer_decode
Definition: PassFailSettings.h:117
entry< long > Defective_pixels_max_count
Definition: PassFailSettings.h:158
entry< double > Secondary_readout_1_outer_quadrant_mean_min_min
Definition: PassFailSettings.h:135
entry< double > MTF50P_ratio_min
Definition: PassFailSettings.h:127
SFRplusPassFail sfrplus
Definition: PassFailSettings.h:210
entry< double > Uniformity_BoverG_corners_pct_max
Definition: PassFailSettings.h:166
CString name
The name to be displayed for this assembly of variables.
Definition: PassFailSettings.h:195
BOOL CPassFail::OnInitDialog ( )
virtual

References AddSubEntry(), AddSubMinMaxEntry(), and AddSubVecEntry().

156 {
157  CDialogEx::OnInitDialog();
158 
159  CRect rectPropList;
160  c_proplist_location.GetClientRect(&rectPropList);
161  c_proplist_location.MapWindowPoints(this, &rectPropList);
162 
163  m_wndPropList.Create(WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER, rectPropList, this, (UINT)-1);
164  m_wndPropList.EnableHeaderCtrl();
165  m_wndPropList.EnableDescriptionArea();
166  m_wndPropList.SetVSDotNetLook(TRUE);
167  m_wndPropList.MarkModifiedProperties(TRUE); // Changes the text of a value to bold after the user edits a value
168  m_wndPropList.SetDescriptionRows(6); // set the number of rows to display by default in the description area
169 
171  // Add the SFRplus entries to the CMFCGridPropertyCtrl
174  {
175  std::auto_ptr<CMFCPropertyGridProperty> apGroup1(new CMFCPropertyGridProperty(PFSettings.sfrplus.name));
176 
204 
205  m_wndPropList.AddProperty(apGroup1.release());
206  }
207 
209  // Add the Blemish entries to the CMFCGridPropertyCtrl
212  {
213  std::auto_ptr<CMFCPropertyGridProperty> apGroup2(new CMFCPropertyGridProperty(PFSettings.blemish.name));
214 
229 
230  m_wndPropList.AddProperty(apGroup2.release());
231  }
232 
234  // Add the OIS entries to the CMFCGridPropertyCtrl
236  if (PFSettings.ois.b_enable)
237  {
238  std::auto_ptr<CMFCPropertyGridProperty> apGroup3(new CMFCPropertyGridProperty(PFSettings.ois.name));
239 
244  m_wndPropList.AddProperty(apGroup3.release());
245  }
246 
248  // Add the other entries to the CMFCGridPropertyCtrl
251  {
252  std::auto_ptr<CMFCPropertyGridProperty> apGroup4(new CMFCPropertyGridProperty(PFSettings.other.name));
253  for ( std::size_t idx = 0; idx < PFSettings.other.ent_vec.size(); ++idx)
254  {
255  AddSubEntry(apGroup4, PFSettings.other.ent_vec[idx]);
256  }
257  m_wndPropList.AddProperty(apGroup4.release());
258  }
259 
260  return TRUE; // return TRUE unless you set the focus to a control
261  // EXCEPTION: OCX Property Pages should return FALSE
262 }
CPassFailSettings PFSettings
Definition: PassFail.h:49
CString name
The name to be displayed for this assembly of variables.
Definition: PassFailSettings.h:184
entry< double > Chart_radial_pixel_shift_max
Definition: PassFailSettings.h:119
bool b_enable
Indicates that the OIS field was found in the pass/fail file.
Definition: PassFailSettings.h:186
entry< double > Secondary_readout_2_outer_min_min
Definition: PassFailSettings.h:138
vecEntry< long > Blemish_maximum_count
Definition: PassFailSettings.h:154
entry< double > Secondary_readout_2_outer_quadrant_delta_max
Definition: PassFailSettings.h:139
entry< long > R_improve_V_dB_min
Definition: PassFailSettings.h:181
entry< long > All_Edge_IDs_detected
Definition: PassFailSettings.h:116
entry< double > Secondary_readout_1_center_mean_min
Definition: PassFailSettings.h:131
OtherPassFail other
Definition: PassFailSettings.h:213
entry< double > Secondary_readout_2_outer_mean_min
Definition: PassFailSettings.h:137
entry< double > Secondary_readout_2_center_mean_min
Definition: PassFailSettings.h:136
entry< long > Dead_pixels_max
Definition: PassFailSettings.h:157
entry< double > Rotation_degrees_max
Definition: PassFailSettings.h:130
entry< long > Horizontal_bars_OK_min
Definition: PassFailSettings.h:124
entry< double > Secondary_readout_2_outer_quadrant_mean_min_min
Definition: PassFailSettings.h:140
entry< double > Optical_center_offset_max
Definition: PassFailSettings.h:161
entry< long > Dead_pixel_clusters_max
Definition: PassFailSettings.h:156
entry< long > Mirrored_chart
Definition: PassFailSettings.h:126
std::vector< entry< CString > > ent_vec
Definition: PassFailSettings.h:193
entry< long > L_MTF50_delta2_gain_summary_all_dB_min
Definition: PassFailSettings.h:179
Blemish blemish
Definition: PassFailSettings.h:211
entry< double > Low_pixel_saturation_fraction_max
Definition: PassFailSettings.h:125
entry< long > R_improve_H_dB_min
Definition: PassFailSettings.h:180
entry< long > Hot_pixels_max
Definition: PassFailSettings.h:160
entry< double > Relative_illumination_corner_diff_pct_max
Definition: PassFailSettings.h:164
entry< double > FOV_degrees_diagonal_min
Definition: PassFailSettings.h:122
CString name
The name to be displayed for this assembly of variables.
Definition: PassFailSettings.h:169
entry< double > Optical_center_offset_X_max
Definition: PassFailSettings.h:162
BOOL AddSubMinMaxEntry(std::auto_ptr< CMFCPropertyGridProperty > &apGroup, minMaxEntry< T > &ent)
Conditionally adds a minMaxEntry<T> as a subitem of a CMFCPropertyGridProperty if the minMaxEntry<T> ...
Definition: PassFail.cpp:47
entry< CString > passfail_ini_file_date
Definition: PassFailSettings.h:129
entry< double > Secondary_readout_1_outer_quadrant_delta_max
Definition: PassFailSettings.h:134
BOOL AddSubVecEntry(std::auto_ptr< CMFCPropertyGridProperty > &apGroup, vecEntry< T > &ent)
Conditionally adds a vecEntry<T> as a subitem of a CMFCPropertyGridProperty if the vecEntry<T> is use...
Definition: PassFail.cpp:73
BOOL AddSubEntry(std::auto_ptr< CMFCPropertyGridProperty > &apGroup, entry< T > &ent)
Conditionally adds an entry<T> as a subitem of a CMFCPropertyGridProperty if the entry<T> is used in ...
Definition: PassFail.cpp:33
OISPassFail ois
Definition: PassFailSettings.h:212
entry< long > Color_expected_detected
Definition: PassFailSettings.h:120
CString name
The name to be displayed for this assembly of variables.
Definition: PassFailSettings.h:144
bool b_enable
Indicates that the Blemish field was found in the pass/fail file.
Definition: PassFailSettings.h:171
CStatic c_proplist_location
The place-holder for CMFCPropertyGridCtrl.
Definition: PassFail.h:44
entry< double > MTF50P_CP_weighted_mean_min
Definition: PassFailSettings.h:128
CMFCPropertyGridCtrl m_wndPropList
Definition: PassFail.h:48
vecEntry< long > Blemish_size_pixels
Definition: PassFailSettings.h:155
entry< double > Secondary_readout_1_outer_mean_min
Definition: PassFailSettings.h:132
minMaxEntry< double > Chart_mean_pixel_level_bounds
Definition: PassFailSettings.h:118
entry< long > Stepchart_expected_detected
Definition: PassFailSettings.h:141
entry< long > upside_down
Definition: PassFailSettings.h:142
entry< double > Relative_illumination_worst_corner_pct_min
Definition: PassFailSettings.h:165
entry< double > Convergence_angle_max
Definition: PassFailSettings.h:121
entry< long > Hot_pixel_clusters_max
Definition: PassFailSettings.h:159
entry< double > High_pixel_saturation_fraction_max
Definition: PassFailSettings.h:123
entry< double > Secondary_readout_1_outer_min_min
Definition: PassFailSettings.h:133
bool b_enable
Indicates that the SFRPlus field was found in the pass/fail file.
Definition: PassFailSettings.h:146
entry< double > Uniformity_RoverG_corners_pct_max
Definition: PassFailSettings.h:167
entry< double > Optical_center_offset_Y_max
Definition: PassFailSettings.h:163
entry< long > R_improve_ALL_dB_min
Definition: PassFailSettings.h:182
entry< long > Bayer_decode
Definition: PassFailSettings.h:117
entry< long > Defective_pixels_max_count
Definition: PassFailSettings.h:158
entry< double > Secondary_readout_1_outer_quadrant_mean_min_min
Definition: PassFailSettings.h:135
entry< double > MTF50P_ratio_min
Definition: PassFailSettings.h:127
SFRplusPassFail sfrplus
Definition: PassFailSettings.h:210
entry< double > Uniformity_BoverG_corners_pct_max
Definition: PassFailSettings.h:166
CString name
The name to be displayed for this assembly of variables.
Definition: PassFailSettings.h:195
bool b_enable
The number of variables in this struct. This MUST be updated if new keys are added.
Definition: PassFailSettings.h:196

Here is the call graph for this function:

virtual BOOL CPassFail::OnInitDialog ( )
virtual

Member Data Documentation

CButton CPassFail::c_cancel

Referenced by DoDataExchange().

CButton CPassFail::c_ok

Referenced by DoDataExchange().

CStatic CPassFail::c_proplist_location

The place-holder for CMFCPropertyGridCtrl.

Referenced by DoDataExchange().

CMFCPropertyGridCtrl CPassFail::m_wndPropList

Referenced by OnBnClickedOk().

CPassFailSettings CPassFail::PFSettings

The documentation for this class was generated from the following files: