完善ART PCI8622测试。

This commit is contained in:
TAO Cheng
2014-07-21 14:50:34 +08:00
parent 4bc4d0eb92
commit c1838204f2
14 changed files with 216 additions and 107 deletions
@@ -947,30 +947,35 @@ BEGIN
CONTROL "Abs",IDC_RADIO_R2_ABSOLUTE,"Button",BS_AUTORADIOBUTTON,66,213,28,8
END
IDD_SO7_ART_PCI8622 DIALOGEX 0, 0, 403, 284
IDD_SO7_ART_PCI8622 DIALOGEX 0, 0, 440, 285
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "ART PCI8622"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
CONTROL "DMA SEQ",IDC_RADIO_ART_PCI8622_MODE_DMASEQ,"Button",BS_AUTORADIOBUTTON | WS_GROUP,30,29,46,10
CONTROL "NPT SEQ",IDC_RADIO_ART_PCI8622_MODE_NPTSEQ,"Button",BS_AUTORADIOBUTTON,87,29,44,10
CONTROL "HALF SEQ",IDC_RADIO_ART_PCI8622_MODE_HALFSEQ,"Button",BS_AUTORADIOBUTTON,144,29,48,10
CONTROL "DMA TRIG",IDC_RADIO_ART_PCI8622_MODE_DMATRIG,"Button",BS_AUTORADIOBUTTON,30,45,49,10
CONTROL "NPT TRIG",IDC_RADIO_ART_PCI8622_MODE_NPTTRIG,"Button",BS_AUTORADIOBUTTON,87,45,47,10
CONTROL "HALF TRIG",IDC_RADIO_ART_PCI8622_MODE_HALFTRIG,"Button",BS_AUTORADIOBUTTON,144,45,51,10
PUSHBUTTON "Set",IDC_BUTTON_ART_PCI8622_SET_MODE,147,62,50,14
PUSHBUTTON "Start",IDC_BUTTON_ART_PCI8622_START,213,62,34,14
PUSHBUTTON "Read Once",IDC_BUTTON_ART_PCI8622_READ_DATA,291,62,47,14
PUSHBUTTON "Stop",IDC_BUTTON_ART_PCI8622_STOP,253,62,34,14
PUSHBUTTON "Clear all",IDC_BUTTON_ART_PCI8622_CLEAR_LOG,351,163,38,14
PUSHBUTTON "Exit",IDCANCEL,347,264,50,14
EDITTEXT IDC_EDIT_ART_PCI8622_LOG,20,88,326,161,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL
GROUPBOX "PCI Sample Mode",IDC_STATIC,20,15,187,65
GROUPBOX "PCI Sample Operate",IDC_STATIC,209,15,136,65
EDITTEXT IDC_EDIT_ART_PCI8622_READ_TIMES,271,33,40,14,ES_AUTOHSCROLL
LTEXT "Read Times",IDC_STATIC,219,36,38,8
LTEXT "Data Number",IDC_STATIC,33,64,43,8
EDITTEXT IDC_EDIT_ART_PCI8622_GET_DATA_NUMBER,87,62,40,14,ES_AUTOHSCROLL
CONTROL "DMA SEQ",IDC_RADIO_ART_PCI8622_MODE_DMASEQ,"Button",BS_AUTORADIOBUTTON | WS_GROUP,112,29,46,10
CONTROL "NPT SEQ",IDC_RADIO_ART_PCI8622_MODE_NPTSEQ,"Button",BS_AUTORADIOBUTTON,169,29,44,10
CONTROL "HALF SEQ",IDC_RADIO_ART_PCI8622_MODE_HALFSEQ,"Button",BS_AUTORADIOBUTTON,226,29,48,10
CONTROL "DMA TRIG",IDC_RADIO_ART_PCI8622_MODE_DMATRIG,"Button",BS_AUTORADIOBUTTON,112,45,49,10
CONTROL "NPT TRIG",IDC_RADIO_ART_PCI8622_MODE_NPTTRIG,"Button",BS_AUTORADIOBUTTON,169,45,47,10
CONTROL "HALF TRIG",IDC_RADIO_ART_PCI8622_MODE_HALFTRIG,"Button",BS_AUTORADIOBUTTON,226,45,51,10
PUSHBUTTON "Set",IDC_BUTTON_ART_PCI8622_SET_MODE,229,62,50,14
PUSHBUTTON "Start",IDC_BUTTON_ART_PCI8622_START,295,62,34,14
PUSHBUTTON "Read Once",IDC_BUTTON_ART_PCI8622_READ_DATA,373,62,47,14
PUSHBUTTON "Stop",IDC_BUTTON_ART_PCI8622_STOP,335,62,34,14
PUSHBUTTON "Clear all",IDC_BUTTON_ART_PCI8622_CLEAR_LOG,315,264,50,14
PUSHBUTTON "Exit",IDCANCEL,375,264,50,14
EDITTEXT IDC_EDIT_ART_PCI8622_LOG,20,88,406,161,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL
GROUPBOX "PCI Sample Mode",IDC_STATIC,102,15,187,65
GROUPBOX "PCI Sample Operate",IDC_STATIC,291,15,136,65
EDITTEXT IDC_EDIT_ART_PCI8622_READ_TIMES,353,33,40,14,ES_AUTOHSCROLL
LTEXT "Read Times",IDC_STATIC,301,36,38,8
LTEXT "Data Number",IDC_STATIC,115,64,43,8
EDITTEXT IDC_EDIT_ART_PCI8622_GET_DATA_NUMBER,169,62,40,14,ES_AUTOHSCROLL
LTEXT "First",IDC_STATIC,28,33,15,8
LTEXT "Last",IDC_STATIC,28,56,14,8
EDITTEXT IDC_EDIT_ART_PCI8622_FIRST_CHANNEL,48,31,40,14,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_ART_PCI8622_LAST_CHANNEL,48,54,40,14,ES_AUTOHSCROLL
GROUPBOX "PCI Sample Operate",IDC_STATIC,19,15,77,63
END
IDD_SO7_UTIL_EXTERNAL_TRIG DIALOGEX 0, 0, 333, 316
@@ -1161,9 +1166,9 @@ BEGIN
IDD_SO7_ART_PCI8622, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 396
RIGHTMARGIN, 433
TOPMARGIN, 7
BOTTOMMARGIN, 277
BOTTOMMARGIN, 278
END
IDD_SO7_UTIL_EXTERNAL_TRIG, DIALOG
@@ -222,9 +222,13 @@ BOOL CSO7_UtilDlg::OnInitDialog()
}
else if (i==12)
{
csTmp=_T("TrigMSB");
csTmp=_T("TrigMSBI");
}
else if (i==13)
{
csTmp=_T("TrigMSBII");
}
else if (i==14)
{
csTmp=_T("TrigHoldTime");
}
@@ -72,6 +72,8 @@ BOOL CSo7_Art_PCI8622::OnInitDialog()
}
GetDlgItem(IDC_EDIT_ART_PCI8622_GET_DATA_NUMBER)->SetWindowTextW(_T("4096"));
GetDlgItem(IDC_EDIT_ART_PCI8622_READ_TIMES)->SetWindowTextW(_T("0"));
GetDlgItem(IDC_EDIT_ART_PCI8622_FIRST_CHANNEL)->SetWindowTextW(_T("1"));
GetDlgItem(IDC_EDIT_ART_PCI8622_LAST_CHANNEL)->SetWindowTextW(_T("2"));
((CButton *)GetDlgItem(IDC_RADIO_ART_PCI8622_MODE_DMATRIG))->SetCheck(TRUE);
m_pART_PCI8622->Init();
@@ -86,6 +88,14 @@ void CSo7_Art_PCI8622::OnBnClickedButtonArtPci8622SetMode()
const char* cDataNumber=T2A(csDataNumber);
int iDataNumber = atoi(cDataNumber);
GetDlgItem(IDC_EDIT_ART_PCI8622_FIRST_CHANNEL)->GetWindowText(csDataNumber);
cDataNumber=T2A(csDataNumber);
int iFirstChannel = atoi(cDataNumber);
GetDlgItem(IDC_EDIT_ART_PCI8622_LAST_CHANNEL)->GetWindowText(csDataNumber);
cDataNumber=T2A(csDataNumber);
int iLastChannel = atoi(cDataNumber);
int iMode(0);
if (((CButton *)GetDlgItem(IDC_RADIO_ART_PCI8622_MODE_DMASEQ))->GetCheck())
{
@@ -111,22 +121,28 @@ void CSo7_Art_PCI8622::OnBnClickedButtonArtPci8622SetMode()
{
iMode=E_ART_PCI8622_SAMPLE_HALF_TRIGCLK;
}
BOOL BStatus=m_pART_PCI8622->SetSamplePara(iMode,iDataNumber);
BOOL BStatus=m_pART_PCI8622->SetSampleChannel(iFirstChannel,iLastChannel);
if(!BStatus)
{
m_csMsg=_T("[SetSampleChannel] rStatus=false");
OutputWithScroll(m_csMsg,m_edMSG);
}
BStatus=m_pART_PCI8622->SetSamplePara(iMode,iDataNumber);
if (!BStatus)
{
m_csMsg=_T("Failed to setup.");
m_csMsg=_T("[SetSampleChannel] rStatus=false");
OutputWithScroll(m_csMsg,m_edMSG);
m_pART_PCI8622->Exit();
m_pART_PCI8622->Init();
BStatus=m_pART_PCI8622->SetSamplePara(iMode,iDataNumber);
if (!BStatus)
{
m_csMsg=_T("Failed to setup.");
m_csMsg=_T("[SetSampleChannel] rStatus=false");
OutputWithScroll(m_csMsg,m_edMSG);
}
else
{
m_csMsg=_T("Setup successful.");
m_csMsg=_T("[SetSampleChannel] rStatus=true");
OutputWithScroll(m_csMsg,m_edMSG);
}
}
@@ -160,7 +160,7 @@ void CSo7_Util_External_Trig::OnEnKillfocusEditSo7ExtrigSpeclocation()
CString csTmp;
((CEdit*)GetDlgItem(IDC_EDIT_SO7_EXTRIG_SPECLOCATION))->GetWindowTextW(csTmp);
const char* cTmp=T2A(csTmp);
m_ParaNumber = static_cast<short>(atoi(cTmp));
m_ParaNumber = static_cast<long>(atoi(cTmp));
m_UpdateListControl(E_LISTCTRL_NO);
}
@@ -309,7 +309,7 @@ void CSo7_Util_External_Trig::m_UpdatePara(BOOL _bSave)
((CEdit*)GetDlgItem(IDC_EDIT_SO7_EXTRIG_TEST_TIMES))->GetWindowTextW(csTmp);
cTmp=T2A(csTmp);
m_TestTimes = static_cast<short>(atoi(cTmp));
m_TestTimes = static_cast<long>(atoi(cTmp));
m_CurTestCnt=0;
m_pSO7_Proto->so7_motion_get_position_xyz(m_BeginPos[0],m_BeginPos[1],m_BeginPos[2]);
@@ -329,13 +329,13 @@ void CSo7_Util_External_Trig::m_UpdatePara(BOOL _bSave)
m_ActiveAxis=E_AXIS_Z;
dResolution=m_pSO7_Proto->g_machine.s_machine_config.z_axis._scale_resolution;
}
short iParaNumber(0);
long iParaNumber(0);
if (m_TrigMode==E_DIS_TRIG_PULSE_EQDIS)
{
((CEdit*)GetDlgItem(IDC_EDIT_SO7_EXTRIG_EQDIS))->GetWindowTextW(csTmp);
cTmp=T2A(csTmp);
dTmp=atof(cTmp);
m_TrigPara[0] = static_cast<short>(m_pSO7_Proto->MMtoScale(dTmp,dResolution));
m_TrigPara[0] = static_cast<long>(m_pSO7_Proto->MMtoScale(dTmp,dResolution));
iParaNumber=1;
dEndPos+=m_ParaNumber*dTmp;
}
@@ -349,7 +349,7 @@ void CSo7_Util_External_Trig::m_UpdatePara(BOOL _bSave)
cTmp=T2A(csTmp);
dTmp=atof(cTmp);
dEndPos+=dTmp;
m_TrigPara[iRow]=static_cast<short>(m_pSO7_Proto->MMtoScale(dTmp,dResolution));
m_TrigPara[iRow]=static_cast<long>(m_pSO7_Proto->MMtoScale(dTmp,dResolution));
}
dEndPos+=dTmp;
}
@@ -378,7 +378,7 @@ void CSo7_Util_External_Trig::m_UpdatePara(BOOL _bSave)
}
else
{
m_pSO7_Proto->so7_motion_get_trig_para(static_cast<short>(m_ParaListSelectedRow),m_ActiveAxis,m_TrigMode,m_ParaNumber,m_ReturnPara);
m_pSO7_Proto->so7_motion_get_trig_para(static_cast<long>(m_ParaListSelectedRow),m_ActiveAxis,m_TrigMode,m_ParaNumber,m_ReturnPara);
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,
m_pSO7_Proto->g_machine.TrigPara.TrigCurIndex,m_pSO7_Proto->g_machine.TrigPara.TrigReadIndex,
@@ -387,26 +387,26 @@ void CSo7_Util_External_Trig::m_UpdatePara(BOOL _bSave)
}
}
//=====================================================================================
void CSo7_Util_External_Trig::m_ReadTrigPara(short _Index,int _type)
void CSo7_Util_External_Trig::m_ReadTrigPara(long _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[0]=static_cast<BYTE>(m_pSO7_Proto->g_machine.FPGAData);
m_pSO7_Proto->_send_cmd_SO7_CMD_READ_DATA_FROM_FPGA(m_ActiveAxis,12);
cdata[1]=static_cast<BYTE>(m_pSO7_Proto->g_machine.FPGAData);
m_pSO7_Proto->_send_cmd_SO7_CMD_READ_DATA_FROM_FPGA(m_ActiveAxis,10);
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];
WData=(cdata[0]*65536)+cdata[1]*256+cdata[2];
HoldTime=cdata[3];
CurSate=((cdata[4]&0xE0)/32);
ErrPos=((cdata[4]&0x1F));
m_csMsg.Format(_T("WData=%d,HoldTime=%d,State=%d,ErrPos=%d.\r\n"),
WData,HoldTime,CurSate,ErrPos);
@@ -425,7 +425,7 @@ void CSo7_Util_External_Trig::m_ReadTrigPara(short _Index,int _type)
//=====================================================================================
void CSo7_Util_External_Trig::m_StartTrig()
{
short iParaNumber(0);
long iParaNumber(0);
double dEndPos(0.5);
long lEndPos(0);
double dTmp(0.0);
@@ -463,14 +463,14 @@ void CSo7_Util_External_Trig::m_StartTrig()
for (int i=0;i<m_ParaNumber;i++)
{
dTmp=m_BeginPos[iAxisID]-dTmpXYZ[iAxisID];
m_TrigSetPara[i]=m_TrigPara[i]+static_cast<short>(m_pSO7_Proto->MMtoScale(dTmp,dResolution));
m_TrigSetPara[i]=m_TrigPara[i]+static_cast<long>(m_pSO7_Proto->MMtoScale(dTmp,dResolution));
lEndPos+=m_TrigSetPara[i];
}
}
dEndPos+=m_pSO7_Proto->ScaleToMM(lEndPos,dResolution);
m_EndPos[iAxisID]=dTmpXYZ[iAxisID]+dEndPos;
m_pSO7_Proto->so7_motion_set_trig_para(m_ActiveAxis,m_TrigMode,iParaNumber,m_TrigPara);
m_csMsg.Format(_T("[Write Trig Para]:R TotalNo=%d"),m_pSO7_Proto->g_machine.TrigPara.TrigTotalNo);
m_csMsg.Format(_T("<m_StartTrig>\r\n[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(50);
@@ -480,9 +480,10 @@ void CSo7_Util_External_Trig::m_StartTrig()
//=====================================================================================
void CSo7_Util_External_Trig::m_StopTrig()
{
OutputWithScroll(_T("<m_StopTrig>"),m_EdMsg);
int index(65535);
m_ReadTrigPara(0,0);
m_ReadTrigPara(static_cast<short>(index),1);
m_ReadTrigPara(static_cast<long>(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);
@@ -529,6 +530,8 @@ void CSo7_Util_External_Trig::OnTimer(UINT_PTR nIDEvent)
m_pSO7_Proto->so7_Motion_XYZ_IsMotionFinished(Isfinished);
if(Isfinished)
{
m_csMsg.Format(_T("Testcnts=%d"),m_CurTestCnt);
OutputWithScroll(m_csMsg,m_EdMsg);
if (m_CurTestCnt%2==0)
{
m_StopTrig();
@@ -551,7 +554,9 @@ void CSo7_Util_External_Trig::OnTimer(UINT_PTR nIDEvent)
}
else
{
int index(65535);
m_ReadTrigPara(0,0);
m_ReadTrigPara(static_cast<long>(index),1);
}
break;
}
@@ -29,9 +29,9 @@ protected:
void m_UpdateCtrls(int _type=0);
char m_TrigMode;
char m_ActiveAxis;
short m_ParaNumber;
short m_TrigPara[65535];
short m_TrigSetPara[65535];
long m_ParaNumber;
long m_TrigPara[65535];
long m_TrigSetPara[65535];
CString m_csMsg;
CEdit m_EdMsg;
void OutputWithScroll(const CString &strNewText,CEdit &edtOutput);
@@ -40,11 +40,11 @@ protected:
void m_StartTrig();
void m_StopTrig();
void m_SetGear(bool bDefault=true);
void m_ReadTrigPara(short _Index,int _type=0);
void m_ReadTrigPara(long _Index,int _type=0);
int m_ParaListRows;
int m_ParaListSelectedRow;
int m_ParaListSelectedCol;
short m_ReturnPara;
long m_ReturnPara;
double m_BeginPos[3];
double m_EndPos[3];
int m_TestTimes;
@@ -666,7 +666,6 @@
#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
@@ -1023,6 +1022,9 @@
#define IDC_EDIT_SO7_EXTRIG_TEST_TIMES 1872
#define IDC_EDIT_SO7_MOTION_STOP_CNTS 1873
#define IDC_EDIT_SO7_MOTION_START_CNTS 1874
#define IDC_EDIT2 1875
#define IDC_EDIT_ART_PCI8622_LAST_CHANNEL 1875
#define IDC_EDIT_ART_PCI8622_FIRST_CHANNEL 1876
#define IDC_BUTTON_DIY_EXIT_BUTTON 32740
#define ID_EDIT_SO7_CONFIG_MOTION 32741
@@ -1032,7 +1034,7 @@
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 193
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1875
#define _APS_NEXT_CONTROL_VALUE 1877
#define _APS_NEXT_SYMED_VALUE 104
#endif
#endif