修改外触发测试功能。

This commit is contained in:
TAO Cheng
2014-07-16 10:34:30 +08:00
parent e81ff3e991
commit 4bc4d0eb92
12 changed files with 189 additions and 67 deletions
@@ -372,10 +372,22 @@ BOOL CART_PCI8622::GetData(double (*_Data)[HALF_SIZE_WORDS],int* _DataNumber)
case E_ART_PCI8622_SAMPLE_NPT_SEQ:
case E_ART_PCI8622_SAMPLE_NPT_TRIGCLK:
{
PCI8622_STATUS_AD ADStatus;
if(!PCI8622_GetDevStatusProAD(m_hDevice, &ADStatus))
{
rStatus=FALSE;
break;
}
m_SegmentID=0;
LONG nReadSizeWords = m_iReadDataSize;
LONG nRetSizeWords(0);
PCI8622_ReadDeviceProAD_Npt(m_hDevice, ADBuffer[m_SegmentID], nReadSizeWords, &nRetSizeWords);
if(!PCI8622_GetDevStatusProAD(m_hDevice, &ADStatus))
{
rStatus=FALSE;
break;
}
nADChannel = m_ADPara.FirstChannel;
TRACE1("[PCI8622_ReadDeviceProAD_Npt] Retsize:%d.\r\n",nRetSizeWords);
for(Index=0; Index<nReadSizeWords; Index++)
@@ -102,9 +102,9 @@ enum ESO7_WRITE_FPGA_DATA_ADDR
{
E_WRITE_MOTOR_FLAG=9,
E_WRITE_TRIG_LSB=10,
E_WRITE_ACCURA_ERR=12,
E_WRITE_TRIG_MSB=13,
E_WRITE_TRIG_HOLDTIME=14,
E_WRITE_ACCURA_ERR=11,
E_WRITE_TRIG_MSB=12,
E_WRITE_TRIG_HOLDTIME=13,
E_WRITE_TOTAL=16
};
enum ESO7_CONTROLLER_IO_ADDR
@@ -4703,3 +4703,30 @@ Usb Port Initialized.
Exit: Exit_SO7Usb
Init:Open device succeed .
_start_machine
Exit: Exit_SO7Usb
Destruct Cso7_Proto.
Construct Cso7_Proto.
Init:Open device succeed .
_start_machine
Exit: Exit_SO7Usb
Destruct Cso7_Proto.
Construct Cso7_Proto.
Init:Open device succeed .
_start_machine
Exit: Exit_SO7Usb
Destruct Cso7_Proto.
Construct Cso7_Proto.
Init:Open device succeed .
@@ -11,41 +11,41 @@ MOVETOSPEED_FAST_Z=0.00000000
MOVETOSPEED_SLOW_Z=0.00000000
MOVETOSPEED_SCALE_Z=1.00000000
;
SPEED_BASE_X1=28
SPEED_BASE_X1=50
SPEED_MAX_X1=30
SPEED_START_X1=20
SPEED_FRESH_X1=8
SPEED_SLOW_X1=2.500
SPEED_FRESH_X1=7
SPEED_SLOW_X1=3.500
;
SPEED_BASE_X2=16
SPEED_MAX_X2=10
SPEED_START_X2=12
SPEED_FRESH_X2=10
SPEED_SLOW_X2=2.000
SPEED_SLOW_X2=0.100
;
SPEED_BASE_X3=4
SPEED_MAX_X3=80
SPEED_START_X3=10
SPEED_FRESH_X3=10
SPEED_SLOW_X3=0.050
SPEED_BASE_X3=2
SPEED_MAX_X3=0
SPEED_START_X3=0
SPEED_FRESH_X3=100
SPEED_SLOW_X3=0.001
;
SPEED_BASE_X4=2
SPEED_MAX_X4=0
SPEED_START_X4=5
SPEED_FRESH_X4=10
SPEED_SLOW_X4=0.009
SPEED_FRESH_X4=100
SPEED_SLOW_X4=0.001
;
SPEED_BASE_X5=28
SPEED_MAX_X5=30
SPEED_START_X5=20
SPEED_FRESH_X5=8
SPEED_SLOW_X5=2.500
SPEED_BASE_X5=2
SPEED_MAX_X5=0
SPEED_START_X5=50
SPEED_FRESH_X5=100
SPEED_SLOW_X5=0.000
;
SPEED_BASE_Y1=20
SPEED_MAX_Y1=10
SPEED_START_Y1=20
SPEED_FRESH_Y1=8
SPEED_SLOW_Y1=2.500
SPEED_SLOW_Y1=2.000
;
SPEED_BASE_Y2=16
SPEED_MAX_Y2=10
@@ -55,21 +55,21 @@ SPEED_SLOW_Y2=1.000
;
SPEED_BASE_Y3=2
SPEED_MAX_Y3=0
SPEED_START_Y3=8
SPEED_FRESH_Y3=10
SPEED_SLOW_Y3=0.050
SPEED_START_Y3=0
SPEED_FRESH_Y3=100
SPEED_SLOW_Y3=0.001
;
SPEED_BASE_Y4=0
SPEED_BASE_Y4=2
SPEED_MAX_Y4=0
SPEED_START_Y4=10
SPEED_FRESH_Y4=10
SPEED_SLOW_Y4=0.009
SPEED_FRESH_Y4=100
SPEED_SLOW_Y4=0.001
;
SPEED_BASE_Y5=1
SPEED_BASE_Y5=2
SPEED_MAX_Y5=0
SPEED_START_Y5=50
SPEED_FRESH_Y5=10
SPEED_SLOW_Y5=0.100
SPEED_FRESH_Y5=100
SPEED_SLOW_Y5=0.000
;
SPEED_BASE_Z1=20
SPEED_MAX_Z1=100
@@ -86,27 +86,27 @@ SPEED_SLOW_Z2=1.500
SPEED_BASE_Z3=3
SPEED_MAX_Z3=5
SPEED_START_Z3=5
SPEED_FRESH_Z3=10
SPEED_SLOW_Z3=0.100
SPEED_FRESH_Z3=100
SPEED_SLOW_Z3=0.001
;
SPEED_BASE_Z4=0
SPEED_BASE_Z4=2
SPEED_MAX_Z4=0
SPEED_START_Z4=18
SPEED_FRESH_Z4=10
SPEED_SLOW_Z4=0.009
SPEED_FRESH_Z4=100
SPEED_SLOW_Z4=0.001
;
SPEED_BASE_Z5=5
SPEED_BASE_Z5=2
SPEED_MAX_Z5=6
SPEED_START_Z5=133
SPEED_FRESH_Z5=10
SPEED_SLOW_Z5=0.100
SPEED_FRESH_Z5=100
SPEED_SLOW_Z5=0.000
;
X_MOTOR_PRECISION=0.004
Y_MOTOR_PRECISION=0.008
X_MOTOR_PRECISION=0.008
Y_MOTOR_PRECISION=0.004
Z_MOTOR_PRECISION=0.004
;
X_MOTOR_WHEELBASE=1.500
Y_MOTOR_WHEELBASE=1.500
X_MOTOR_WHEELBASE=3.047
Y_MOTOR_WHEELBASE=2.971
Z_MOTOR_WHEELBASE=1.500
;
MOTOR_PULSE_NUM=10000
@@ -29,6 +29,7 @@ CNC_DEADLOCK_MAX_CNTS=6
TOUCH_PROBE_ENABLE=0
FOOT_SWITCH_ENABLE=0
JOYSTICK_ENABLE=0
CCS_PRIMA_ENABLE=0
DEBUG_LOG_ENABLE=0
;
[VIDEOCARD]
@@ -988,7 +988,7 @@ BEGIN
EDITTEXT IDC_EDIT_SO7_EXTRIG_EQDIS,158,71,40,14,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_SO7_EXTRIG_SPECLOCATION,158,89,40,14,ES_AUTOHSCROLL
CONTROL "",IDC_LIST_SO7_EXTRIG_SPECLOCATION,"SysListView32",LVS_REPORT | WS_BORDER | WS_TABSTOP,33,113,254,77
EDITTEXT IDC_EDIT_SO7_EXTRIG_RESULT,19,208,294,80,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL
EDITTEXT IDC_EDIT_SO7_EXTRIG_RESULT,19,208,296,80,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL
PUSHBUTTON "Exit",IDCANCEL,276,295,50,14
PUSHBUTTON "开始",IDC_BUTTON_SO7_EXTRIG_START,238,23,50,14
GROUPBOX "外触发轴",IDC_STATIC,17,15,125,41
@@ -999,6 +999,7 @@ BEGIN
PUSHBUTTON "读取",IDC_BUTTON_SO7_EXTRIG_GET_PARA,238,90,50,14
EDITTEXT IDC_EDIT_SO7_EXTRIG_TEST_TIMES,182,30,40,14,ES_AUTOHSCROLL
LTEXT "次数",IDC_STATIC,161,32,17,8
PUSHBUTTON "Clear",IDC_BUTTON_SO7_EXTRIG_CLEAR_MSG,222,295,50,14,BS_CENTER
END
@@ -24,6 +24,7 @@ IMPLEMENT_DYNAMIC(CSo7_Util_External_Trig, CDialog)
}
m_TestTimes=1;
m_CurTestCnt=0;
m_Timer1Interval=200;
}
CSo7_Util_External_Trig::~CSo7_Util_External_Trig()
@@ -48,6 +49,7 @@ BEGIN_MESSAGE_MAP(CSo7_Util_External_Trig, CDialog)
ON_BN_CLICKED(IDC_BUTTON_SO7_EXTRIG_SET_PARA, &CSo7_Util_External_Trig::OnBnClickedButtonSo7ExtrigSetPara)
ON_BN_CLICKED(IDC_BUTTON_SO7_EXTRIG_GET_PARA, &CSo7_Util_External_Trig::OnBnClickedButtonSo7ExtrigGetPara)
ON_BN_CLICKED(IDCANCEL, &CSo7_Util_External_Trig::OnBnClickedCancel)
ON_BN_CLICKED(IDC_BUTTON_SO7_EXTRIG_CLEAR_MSG, &CSo7_Util_External_Trig::OnBnClickedButtonSo7ExtrigClearMsg)
END_MESSAGE_MAP()
@@ -79,7 +81,7 @@ BOOL CSo7_Util_External_Trig::OnInitDialog()
}
m_TrigMode=E_DIS_TRIG_PULSE_EQDIS;
m_ActiveAxis=E_AXIS_X;
m_ParaNumber=1;
m_ParaNumber=5;
m_TrigPara[0]=0;
m_ReturnPara=m_TrigPara[0];
m_UpdateCtrls();
@@ -123,7 +125,7 @@ void CSo7_Util_External_Trig::m_UpdateListControl(int _type)
CString str;
str.Format(_T("%d"),i+1);
m_ParaList.InsertItem(i,str);
m_ParaList.SetItemText(i,1,_T("1"));
m_ParaList.SetItemText(i,1,str);
}
}
else
@@ -181,15 +183,12 @@ void CSo7_Util_External_Trig::OnBnClickedButtonSo7ExtrigStart()
m_UpdatePara(TRUE);
m_pSO7_Proto->_send_cmd_SO7_CMD_TRIG_PULSE_START();
char _Gear(3);
_Gear=m_pSO7_Proto->g_machine.x._Move_Speed_Gear;
m_pSO7_Proto->g_machine.x._MoveTo_Speed_Gear=_Gear;
m_pSO7_Proto->g_machine.y._MoveTo_Speed_Gear=_Gear;
m_pSO7_Proto->g_machine.z._MoveTo_Speed_Gear=_Gear;
Sleep(50);
m_SetGear(false);
m_pSO7_Proto->so7_motion_set_position_xyz(m_EndPos[0],m_EndPos[1],m_EndPos[2],false);
if (m_TestTimes>1)
if (m_TestTimes>=1)
{
SetTimer(1,500,NULL);
SetTimer(1,m_Timer1Interval,NULL);
}
}
//=====================================================================
@@ -218,6 +217,23 @@ void CSo7_Util_External_Trig::OnBnClickedButtonSo7ExtrigGetPara()
}
m_UpdatePara(FALSE);
}
//=====================================================================
void CSo7_Util_External_Trig::m_SetGear(bool bDefault)
{
if(bDefault)
{
m_pSO7_Proto->g_machine.x._MoveTo_Speed_Gear=0;
m_pSO7_Proto->g_machine.y._MoveTo_Speed_Gear=0;
m_pSO7_Proto->g_machine.z._MoveTo_Speed_Gear=0;
}
else
{
m_pSO7_Proto->g_machine.x._MoveTo_Speed_Gear=m_pSO7_Proto->g_machine.x._Move_Speed_Gear;
m_pSO7_Proto->g_machine.y._MoveTo_Speed_Gear=m_pSO7_Proto->g_machine.x._Move_Speed_Gear;
m_pSO7_Proto->g_machine.z._MoveTo_Speed_Gear=m_pSO7_Proto->g_machine.x._Move_Speed_Gear;
}
}
//=====================================================================
void CSo7_Util_External_Trig::m_UpdateCtrls(int _type)
{
@@ -288,7 +304,7 @@ void CSo7_Util_External_Trig::m_UpdatePara(BOOL _bSave)
CString csTmp;
const char* cTmp;
double dResolution(0.5);
double dEndPos(0.5);
double dEndPos(1.0);
double dTmp(0.0);
((CEdit*)GetDlgItem(IDC_EDIT_SO7_EXTRIG_TEST_TIMES))->GetWindowTextW(csTmp);
@@ -321,7 +337,7 @@ void CSo7_Util_External_Trig::m_UpdatePara(BOOL _bSave)
dTmp=atof(cTmp);
m_TrigPara[0] = static_cast<short>(m_pSO7_Proto->MMtoScale(dTmp,dResolution));
iParaNumber=1;
dEndPos=10.0;
dEndPos+=m_ParaNumber*dTmp;
}
else
{
@@ -371,6 +387,42 @@ void CSo7_Util_External_Trig::m_UpdatePara(BOOL _bSave)
}
}
//=====================================================================================
void CSo7_Util_External_Trig::m_ReadTrigPara(short _Index,int _type)
{
if (_type==0)
{
BYTE cdata[5]={0};
m_pSO7_Proto->_send_cmd_SO7_CMD_READ_DATA_FROM_FPGA(m_ActiveAxis,12);
cdata[0]=static_cast<BYTE>(m_pSO7_Proto->g_machine.FPGAData);
m_pSO7_Proto->_send_cmd_SO7_CMD_READ_DATA_FROM_FPGA(m_ActiveAxis,10);
cdata[1]=static_cast<BYTE>(m_pSO7_Proto->g_machine.FPGAData);
m_pSO7_Proto->_send_cmd_SO7_CMD_READ_DATA_FROM_FPGA(m_ActiveAxis,13);
cdata[2]=static_cast<BYTE>(m_pSO7_Proto->g_machine.FPGAData);
m_pSO7_Proto->_send_cmd_SO7_CMD_READ_DATA_FROM_FPGA(m_ActiveAxis,14);
cdata[3]=static_cast<BYTE>(m_pSO7_Proto->g_machine.FPGAData);
m_pSO7_Proto->_send_cmd_SO7_CMD_READ_DATA_FROM_FPGA(m_ActiveAxis,15);
cdata[4]=static_cast<BYTE>(m_pSO7_Proto->g_machine.FPGAData);
int WData(0),HoldTime(0),CurSate(0),ErrPos(0);
WData=(cdata[0]*256)+cdata[1];
HoldTime=cdata[2];
CurSate=((cdata[3]&0xE0)/32);
ErrPos=((cdata[3]&0x1F)*256)+cdata[4];
m_csMsg.Format(_T("WData=%d,HoldTime=%d,State=%d,ErrPos=%d.\r\n"),
WData,HoldTime,CurSate,ErrPos);
OutputWithScroll(m_csMsg,m_EdMsg);
}
if (_type==1)
{
m_pSO7_Proto->_send_cmd_SO7_CMD_READ_TRIG_PULSE_PARA(_Index);
m_csMsg.Format(_T("[Read Trig Para]:R Axis=%d,Method=%d,TotalNo=%d,CurIndex=%d,Para[%d]=%d."),m_pSO7_Proto->g_machine.TrigPara.TrigPulseActiveAxis,
m_pSO7_Proto->g_machine.TrigPara.TrigPulseMethod,m_pSO7_Proto->g_machine.TrigPara.TrigTotalNo._long_,
m_pSO7_Proto->g_machine.TrigPara.TrigCurIndex._long_,static_cast<unsigned>(m_pSO7_Proto->g_machine.TrigPara.TrigReadIndex._long_),
m_pSO7_Proto->g_machine.TrigPara.TrigReadPara._long_);
OutputWithScroll(m_csMsg,m_EdMsg);
}
}
//=====================================================================================
void CSo7_Util_External_Trig::m_StartTrig()
{
short iParaNumber(0);
@@ -421,13 +473,18 @@ void CSo7_Util_External_Trig::m_StartTrig()
m_csMsg.Format(_T("[Write Trig Para]:R TotalNo=%d"),m_pSO7_Proto->g_machine.TrigPara.TrigTotalNo);
OutputWithScroll(m_csMsg,m_EdMsg);
m_pSO7_Proto->_send_cmd_SO7_CMD_TRIG_PULSE_START();
Sleep(20);
Sleep(50);
m_SetGear(false);
m_pSO7_Proto->so7_motion_set_position_xyz(m_EndPos[0],m_EndPos[1],m_EndPos[2],false);
}
//=====================================================================================
void CSo7_Util_External_Trig::m_StopTrig()
{
int index(65535);
m_ReadTrigPara(0,0);
m_ReadTrigPara(static_cast<short>(index),1);
m_pSO7_Proto->_send_cmd_SO7_CMD_TRIG_PULSE_STOP();
m_SetGear(true);
m_pSO7_Proto->so7_motion_set_position_xyz(m_BeginPos[0],m_BeginPos[1],m_BeginPos[2],false);
}
//=====================================================================================
@@ -466,26 +523,43 @@ void CSo7_Util_External_Trig::OnTimer(UINT_PTR nIDEvent)
{
case 1:
{
bool Isfinished(false);
m_pSO7_Proto->so7_Motion_XYZ_IsMotionFinished(Isfinished);
if(Isfinished)
if(m_TestTimes>1)
{
if (m_CurTestCnt%2==0)
bool Isfinished(false);
m_pSO7_Proto->so7_Motion_XYZ_IsMotionFinished(Isfinished);
if(Isfinished)
{
m_StopTrig();
}
if (m_CurTestCnt%2==0)
{
m_StopTrig();
}
else
{
m_StartTrig();
}
m_CurTestCnt++;
if(m_CurTestCnt>=(2*m_TestTimes-1))
{
OnBnClickedButtonSo7ExtrigStop();
}
}
else
{
m_StartTrig();
m_ReadTrigPara(0,0);
}
m_CurTestCnt++;
}
if(m_CurTestCnt>=2*m_TestTimes)
else
{
OnBnClickedButtonSo7ExtrigStop();
m_ReadTrigPara(0,0);
}
break;
}
}
CDialog::OnTimer(nIDEvent);
}
}
void CSo7_Util_External_Trig::OnBnClickedButtonSo7ExtrigClearMsg()
{
((CEdit*)GetDlgItem(IDC_EDIT_SO7_EXTRIG_RESULT))->SetWindowTextW(_T(""));
}
@@ -39,6 +39,8 @@ protected:
void m_UpdateListControl(int _type);
void m_StartTrig();
void m_StopTrig();
void m_SetGear(bool bDefault=true);
void m_ReadTrigPara(short _Index,int _type=0);
int m_ParaListRows;
int m_ParaListSelectedRow;
int m_ParaListSelectedCol;
@@ -47,6 +49,7 @@ protected:
double m_EndPos[3];
int m_TestTimes;
int m_CurTestCnt;
int m_Timer1Interval;
public:
afx_msg void OnTimer(UINT_PTR nIDEvent);
afx_msg void OnBnClickedRadioSo7ExtrigEqdis();
@@ -57,4 +60,5 @@ public:
afx_msg void OnBnClickedButtonSo7ExtrigSetPara();
afx_msg void OnBnClickedButtonSo7ExtrigGetPara();
afx_msg void OnBnClickedCancel();
afx_msg void OnBnClickedButtonSo7ExtrigClearMsg();
};
@@ -206,7 +206,7 @@
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
<AdditionalDependencies>..\..\..\..\..\..\..\ThirdParty\UsbSupport\LibUsb_Win\Lib\Msvc\libusb.lib;..\..\..\Videocard\SDK3000\sdk3000_7130.lib;..\..\..\Videocard\SV2000E\dataAcq.lib;..\..\..\Videocard\SV2000E\DXMediaCap.lib;..\..\..\Videocard\TC4000\Sa7134Capture.lib;..\..\..\ART\PCI8622_32.lib;..\..\..\STIL\Dll_chr.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>..\..\..\..\..\..\..\ThirdParty\UsbSupport\LibUsb_Win\Lib\Msvc\libusb.lib;..\..\..\Videocard\SDK3000\sdk3000_7130.lib;..\..\..\Videocard\TC4000\Sa7134Capture.lib;..\..\..\Videocard\SV4000E\dataAcq.lib;..\..\..\Videocard\SV4000E\DXMediaCap.lib;..\..\..\ART\PCI8622_32.lib;..\..\..\STIL\Dll_chr.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseSO7|Win32'">
@@ -666,6 +666,8 @@
#define IDC_BTN_CONFIGURE_MOVEVOUT 1544
#define IDC_BUTTON_SO7_EXTRIG_GET_PARA 1544
#define IDC_BUTTON_STOP_SCAN_KEYENCE_LK_GLASER 1545
#define IDC_BUTTON_SO7_EXTRIG_GET_PARA2 1545
#define IDC_BUTTON_SO7_EXTRIG_CLEAR_MSG 1545
#define IDC_BUTTON_SET_TRIGGER 1546
#define IDC_BUTTON_IMAGEDLL_GET_SCAN_LASER_DATA 1547
#define IDC_BUTTON_SO7_TEST_Z_SIGNAL 1548
@@ -1019,7 +1021,6 @@
#define IDC_EDIT_SO7_EXTRIG_EQDIS 1869
#define IDC_LIST_SO7_EXTRIG_SPECLOCATION 1870
#define IDC_EDIT_SO7_EXTRIG_TEST_TIMES 1872
#define IDC_EDIT2 1873
#define IDC_EDIT_SO7_MOTION_STOP_CNTS 1873
#define IDC_EDIT_SO7_MOTION_START_CNTS 1874
#define IDC_BUTTON_DIY_EXIT_BUTTON 32740
@@ -78,6 +78,7 @@ Global
{A945B062-6081-49F0-992D-D14769C4C7D4}.ReleaseSO7|Mixed Platforms.ActiveCfg = Release|Win32
{A945B062-6081-49F0-992D-D14769C4C7D4}.ReleaseSO7|Mixed Platforms.Build.0 = Release|Win32
{A945B062-6081-49F0-992D-D14769C4C7D4}.ReleaseSO7|Win32.ActiveCfg = Release|Win32
{A945B062-6081-49F0-992D-D14769C4C7D4}.ReleaseSO7|Win32.Build.0 = Release|Win32
{A945B062-6081-49F0-992D-D14769C4C7D4}.ReleaseSO7|x64.ActiveCfg = Release|Win32
{A945B062-6081-49F0-992D-D14769C4C7D4}.ReleaseSO7|x86.ActiveCfg = Release|Win32
{A945B062-6081-49F0-992D-D14769C4C7D4}.Template|Mixed Platforms.ActiveCfg = Release|Win32
@@ -101,6 +102,7 @@ Global
{BF02B850-BB32-4635-9E53-8583C474884D}.ReleaseSO7|Mixed Platforms.ActiveCfg = Release|Win32
{BF02B850-BB32-4635-9E53-8583C474884D}.ReleaseSO7|Mixed Platforms.Build.0 = Release|Win32
{BF02B850-BB32-4635-9E53-8583C474884D}.ReleaseSO7|Win32.ActiveCfg = Release|Win32
{BF02B850-BB32-4635-9E53-8583C474884D}.ReleaseSO7|Win32.Build.0 = Release|Win32
{BF02B850-BB32-4635-9E53-8583C474884D}.ReleaseSO7|x64.ActiveCfg = Release|Win32
{BF02B850-BB32-4635-9E53-8583C474884D}.ReleaseSO7|x86.ActiveCfg = Release|Win32
{BF02B850-BB32-4635-9E53-8583C474884D}.Template|Mixed Platforms.ActiveCfg = Release|Win32