完善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
@@ -57,6 +57,22 @@ BOOL CART_PCI8622::Exit()
#endif //_RELEASE_FULL_VERSION
return rStatus;
}
//========================================
BOOL CART_PCI8622::SetSampleChannel(int _FirstChannel,int _LastChannel)
{
BOOL rStatus(TRUE);
if (_LastChannel<_FirstChannel)
{
rStatus=FALSE;
}
else
{
m_iFirstChannel=_FirstChannel;
m_iLastChannel=_LastChannel;
}
return rStatus;
}
//========================================
BOOL CART_PCI8622::SetSamplePara(int _Mode,int _ReadDataSize)
@@ -52,6 +52,7 @@ public:
BOOL Init();
BOOL Exit();
BOOL SetSamplePara(int _Mode,int _ReadDataSize);
BOOL SetSampleChannel(int _FirstChannel,int _LastChannel);
BOOL StartSampleData();
BOOL StopSampleData();
BOOL GetData(double (*_Data)[HALF_SIZE_WORDS],int* _DataNumber);
@@ -4812,15 +4812,15 @@ SSI_STATUS_MOTION CSO7_Proto::so7_SetDO(int Channel,BYTE bDOSts)
return SSI_STATUS_MOTION_NORMAL;
}
SSI_STATUS_MOTION CSO7_Proto::so7_motion_set_trig_para(char _cAxis,char _TrigMode,short _ParaNumber,short* _ParaData)
SSI_STATUS_MOTION CSO7_Proto::so7_motion_set_trig_para(char _cAxis,char _TrigMode,long _ParaNumber,long* _ParaData)
{
short SetStartIndex(0);
short SetParaNumber(0);
long SetStartIndex(0);
long SetParaNumber(0);
do
{
if ((_ParaNumber-SetStartIndex)>20)
if ((_ParaNumber-SetStartIndex)>15)
{
SetParaNumber=20;
SetParaNumber=15;
}
else
{
@@ -4832,13 +4832,13 @@ SSI_STATUS_MOTION CSO7_Proto::so7_motion_set_trig_para(char _cAxis,char _TrigMod
return SSI_STATUS_MOTION_NORMAL;
}
SSI_STATUS_MOTION CSO7_Proto::so7_motion_get_trig_para(short _Index,char& _cAxis,char& _TrigMode,short& _ParaNumber,short& _ParaData)
SSI_STATUS_MOTION CSO7_Proto::so7_motion_get_trig_para(long _Index,char& _cAxis,char& _TrigMode,long& _ParaNumber,long& _ParaData)
{
_send_cmd_SO7_CMD_READ_TRIG_PULSE_PARA(_Index);
_cAxis=g_machine.TrigPara.TrigPulseActiveAxis;
_TrigMode=g_machine.TrigPara.TrigPulseMethod;
_ParaNumber=static_cast<short>(g_machine.TrigPara.TrigTotalNo._long_);
_ParaData=static_cast<short>(g_machine.TrigPara.TrigReadPara._long_);
_ParaNumber=static_cast<long>(g_machine.TrigPara.TrigTotalNo._long_);
_ParaData=static_cast<long>(g_machine.TrigPara.TrigReadPara._long_);
return SSI_STATUS_MOTION_NORMAL;
}
@@ -6152,7 +6152,7 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_GET_SEQ_NUMBER()
}
//==============================================================
SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_READ_TRIG_PULSE_PARA(short ParaIndex)
SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_READ_TRIG_PULSE_PARA(long ParaIndex)
{
WaitForSingleObject(g_hEP02_Serial_Mutex, INFINITE);
memset(ep_buff[EP_02_CMD_IDX]._buffer, 0x00, MAX_BUFF_SIZE);
@@ -6160,13 +6160,15 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_READ_TRIG_PULSE_PARA(short ParaI
g_machine.TrigPara.TrigReadIndex._long_=ParaIndex;
*(ep_buff[EP_02_CMD_IDX]._buffer) = CT_DATA;
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_READ_TRIG_PULSE_PARA;
cBuff = (ParaIndex>>8) & 0x0ff;
cBuff = (ParaIndex>>16) & 0x0ff;
*(ep_buff[EP_02_CMD_IDX]._buffer+2) = cBuff;
cBuff = ParaIndex & 0x0ff;
cBuff = (ParaIndex>>8) & 0x0ff;
*(ep_buff[EP_02_CMD_IDX]._buffer+3) = cBuff;
cBuff = ParaIndex & 0x0ff;
*(ep_buff[EP_02_CMD_IDX]._buffer+4) = cBuff;
ep_buff[EP_02_CMD_IDX]._size = 0x04;
ep_buff[EP_82_DATA_IDX]._size = 0x08;
ep_buff[EP_02_CMD_IDX]._size = 0x05;
ep_buff[EP_82_DATA_IDX]._size = 0x011;
g_hEP02_Thread_State=THREAD_RUNNING_STATE1;
g_hEP8x_Thread_State=THREAD_RUNNING_STATE2;
@@ -6175,41 +6177,62 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_READ_TRIG_PULSE_PARA(short ParaI
return SSI_STATUS_MOTION_NORMAL;
}
//==============================================================
SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_WRITE_TRIG_PULSE_PARA(char ActiveAxis,char TrigMode,short StartIndex,short ParaNumber,short* Para)
SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_WRITE_TRIG_PULSE_PARA(char ActiveAxis,char TrigMode,long StartIndex,long ParaNumber,long* Para)
{
WaitForSingleObject(g_hEP02_Serial_Mutex, INFINITE);
memset(ep_buff[EP_02_CMD_IDX]._buffer, 0x00, MAX_BUFF_SIZE);
char cBuff(0);
short sPara(0);
long sPara(0);
int index(0);
g_machine.TrigPara.TrigPulseActiveAxis=ActiveAxis;
*(ep_buff[EP_02_CMD_IDX]._buffer) = CT_DATA;
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_WRITE_TRIG_PULSE_PARA;
*(ep_buff[EP_02_CMD_IDX]._buffer+2) = ActiveAxis;
*(ep_buff[EP_02_CMD_IDX]._buffer+3) = TrigMode;
*(ep_buff[EP_02_CMD_IDX]._buffer+index) = CT_DATA;
index++;
*(ep_buff[EP_02_CMD_IDX]._buffer+index) = CT_WRITE_TRIG_PULSE_PARA;
index++;
*(ep_buff[EP_02_CMD_IDX]._buffer+index) = ActiveAxis;
index++;
*(ep_buff[EP_02_CMD_IDX]._buffer+index) = TrigMode;
index++;
cBuff = (StartIndex>>16) & 0x0ff;
*(ep_buff[EP_02_CMD_IDX]._buffer+index) = cBuff;
index++;
cBuff = (StartIndex>>8) & 0x0ff;
*(ep_buff[EP_02_CMD_IDX]._buffer+4) = cBuff;
*(ep_buff[EP_02_CMD_IDX]._buffer+index) = cBuff;
index++;
cBuff = StartIndex & 0x0ff;
*(ep_buff[EP_02_CMD_IDX]._buffer+5) = cBuff;
*(ep_buff[EP_02_CMD_IDX]._buffer+index) = cBuff;
index++;
cBuff = (ParaNumber>>16) & 0x0ff;
*(ep_buff[EP_02_CMD_IDX]._buffer+index) = cBuff;
index++;
cBuff = (ParaNumber>>8) & 0x0ff;
*(ep_buff[EP_02_CMD_IDX]._buffer+6) = cBuff;
*(ep_buff[EP_02_CMD_IDX]._buffer+index) = cBuff;
index++;
cBuff = ParaNumber & 0x0ff;
*(ep_buff[EP_02_CMD_IDX]._buffer+7) = cBuff;
int j=8;
for (short i=StartIndex;i<(StartIndex+ParaNumber);i++)
*(ep_buff[EP_02_CMD_IDX]._buffer+index) = cBuff;
index++;
int j=index;
for (long i=StartIndex;i<(StartIndex+ParaNumber);i++)
{
if (Para[i]<0)
{
sPara=-Para[i];
cBuff = (sPara>>8) & 0x0ff;
cBuff = (sPara>>16) & 0x0ff;
cBuff = cBuff | 0x80;
*(ep_buff[EP_02_CMD_IDX]._buffer+j) = cBuff;
j++;
cBuff = (sPara>>8) & 0x0ff;
*(ep_buff[EP_02_CMD_IDX]._buffer+j) = cBuff;
j++;
cBuff = sPara & 0x0ff;
*(ep_buff[EP_02_CMD_IDX]._buffer+j) = cBuff;
j++;
}
else
{
cBuff = (Para[i]>>16) & 0x0ff;
*(ep_buff[EP_02_CMD_IDX]._buffer+j) = cBuff;
j++;
cBuff = (Para[i]>>8) & 0x0ff;
*(ep_buff[EP_02_CMD_IDX]._buffer+j) = cBuff;
j++;
@@ -6219,7 +6242,7 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_WRITE_TRIG_PULSE_PARA(char Activ
}
}
ep_buff[EP_02_CMD_IDX]._size = j;
ep_buff[EP_82_DATA_IDX]._size = 0x02;
ep_buff[EP_82_DATA_IDX]._size = 0x03;
g_hEP02_Thread_State=THREAD_RUNNING_STATE1;
g_hEP8x_Thread_State=THREAD_RUNNING_STATE2;
@@ -6691,28 +6714,31 @@ SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_READ_TRIG_PULSE_PARA()
index++;
g_machine.TrigPara.TrigPulseMethod=*(ep_buff[EP_82_DATA_IDX]._buffer+index);
index++;
g_machine.TrigPara.TrigTotalNo._char_[2]=*(ep_buff[EP_82_DATA_IDX]._buffer+index);
index++;
g_machine.TrigPara.TrigTotalNo._char_[1]=*(ep_buff[EP_82_DATA_IDX]._buffer+index);
index++;
g_machine.TrigPara.TrigTotalNo._char_[0]=*(ep_buff[EP_82_DATA_IDX]._buffer+index);
g_machine.TrigPara.TrigTotalNo._char_[2]=0;
g_machine.TrigPara.TrigTotalNo._char_[3]=0;
index++;
g_machine.TrigPara.TrigCurIndex._char_[2]=*(ep_buff[EP_82_DATA_IDX]._buffer+index);
index++;
g_machine.TrigPara.TrigCurIndex._char_[1]=*(ep_buff[EP_82_DATA_IDX]._buffer+index);
index++;
g_machine.TrigPara.TrigCurIndex._char_[0]=*(ep_buff[EP_82_DATA_IDX]._buffer+index);
g_machine.TrigPara.TrigCurIndex._char_[2]=0;
g_machine.TrigPara.TrigCurIndex._char_[3]=0;
index++;
g_machine.TrigPara.TrigReadPara._char_[2]=*(ep_buff[EP_82_DATA_IDX]._buffer+index);
index++;
g_machine.TrigPara.TrigReadPara._char_[1]=*(ep_buff[EP_82_DATA_IDX]._buffer+index);
index++;
g_machine.TrigPara.TrigReadPara._char_[0]=*(ep_buff[EP_82_DATA_IDX]._buffer+index);
g_machine.TrigPara.TrigReadPara._char_[2]=0;
g_machine.TrigPara.TrigReadPara._char_[3]=0;
index++;
if (g_machine.TrigPara.TrigReadPara._long_>32768)
if (g_machine.TrigPara.TrigReadPara._char_[2]&0x80)
{
g_machine.TrigPara.TrigReadPara._long_-=32768;
g_machine.TrigPara.TrigReadPara._long_*=-1;
g_machine.TrigPara.TrigReadPara._char_[2]&=0x7f;
g_machine.TrigPara.TrigReadPara._long_ *=-1;
}
return SSI_STATUS_MOTION_NORMAL;
}
@@ -6720,10 +6746,11 @@ SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_READ_TRIG_PULSE_PARA()
SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_WRITE_TRIG_PULSE_PARA()
{
int index(0);
g_machine.TrigPara.TrigTotalNo._char_[2]=*(ep_buff[EP_82_DATA_IDX]._buffer+index);
index++;
g_machine.TrigPara.TrigTotalNo._char_[1]=*(ep_buff[EP_82_DATA_IDX]._buffer+index);
index++;
g_machine.TrigPara.TrigTotalNo._char_[0]=*(ep_buff[EP_82_DATA_IDX]._buffer+index);
g_machine.TrigPara.TrigTotalNo._char_[2]=0;
g_machine.TrigPara.TrigTotalNo._char_[3]=0;
index++;
return SSI_STATUS_MOTION_NORMAL;
@@ -104,7 +104,8 @@ enum ESO7_WRITE_FPGA_DATA_ADDR
E_WRITE_TRIG_LSB=10,
E_WRITE_ACCURA_ERR=11,
E_WRITE_TRIG_MSB=12,
E_WRITE_TRIG_HOLDTIME=13,
E_WRITE_TRIG_MSBII=13,
E_WRITE_TRIG_HOLDTIME=14,
E_WRITE_TOTAL=16
};
enum ESO7_CONTROLLER_IO_ADDR
@@ -511,8 +512,8 @@ public:
SSI_STATUS_MOTION so7_GetDIO(int Channel,BYTE& bDISts);
SSI_STATUS_MOTION so7_SetDO(int Channel,BYTE bDOSts);
SSI_STATUS_MOTION so7_motion_set_trig_para(char _cAxis,char _TrigMode,short _ParaNumber,short* _ParaData);
SSI_STATUS_MOTION so7_motion_get_trig_para(short _Index,char& _cAxis,char& _TrigMode,short& _ParaNumber,short& _ParaData);
SSI_STATUS_MOTION so7_motion_set_trig_para(char _cAxis,char _TrigMode,long _ParaNumber,long* _ParaData);
SSI_STATUS_MOTION so7_motion_get_trig_para(long _Index,char& _cAxis,char& _TrigMode,long& _ParaNumber,long& _ParaData);
SSI_STATUS_MOTION _send_cmd_SO7_CMD_MOVE_X(char SpeedGear);
SSI_STATUS_MOTION _send_cmd_SO7_CMD_MOVE_Y(char SpeedGear);
@@ -566,8 +567,8 @@ public:
SSI_STATUS_MOTION _send_cmd_SO7_CMD_SET_CONSTANT_SPEED(int iSpeed,char axis_type,char xyz_gear);
SSI_STATUS_MOTION _send_cmd_SO7_CMD_SET_SEQ_NUMBER();
SSI_STATUS_MOTION _send_cmd_SO7_CMD_GET_SEQ_NUMBER();
SSI_STATUS_MOTION _send_cmd_SO7_CMD_READ_TRIG_PULSE_PARA(short ParaIndex);
SSI_STATUS_MOTION _send_cmd_SO7_CMD_WRITE_TRIG_PULSE_PARA(char ActiveAxis,char TrigMode,short StartIndex,short ParaNumber,short* Para);
SSI_STATUS_MOTION _send_cmd_SO7_CMD_READ_TRIG_PULSE_PARA(long ParaIndex);
SSI_STATUS_MOTION _send_cmd_SO7_CMD_WRITE_TRIG_PULSE_PARA(char ActiveAxis,char TrigMode,long StartIndex,long ParaNumber,long* Para);
SSI_STATUS_MOTION _send_cmd_SO7_CMD_TRIG_PULSE_START();
SSI_STATUS_MOTION _send_cmd_SO7_CMD_TRIG_PULSE_STOP();
SSI_STATUS_MOTION _send_cmd_SO7_CMD_IO_PURPOSE(BOOL _bEnTrigIO);
@@ -4730,3 +4730,19 @@ Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
@@ -26,26 +26,26 @@ SPEED_SLOW_X2=0.100
SPEED_BASE_X3=2
SPEED_MAX_X3=0
SPEED_START_X3=0
SPEED_FRESH_X3=100
SPEED_FRESH_X3=10
SPEED_SLOW_X3=0.001
;
SPEED_BASE_X4=2
SPEED_MAX_X4=0
SPEED_START_X4=5
SPEED_FRESH_X4=100
SPEED_FRESH_X4=10
SPEED_SLOW_X4=0.001
;
SPEED_BASE_X5=2
SPEED_MAX_X5=0
SPEED_START_X5=50
SPEED_FRESH_X5=100
SPEED_FRESH_X5=10
SPEED_SLOW_X5=0.000
;
SPEED_BASE_Y1=20
SPEED_BASE_Y1=60
SPEED_MAX_Y1=10
SPEED_START_Y1=20
SPEED_FRESH_Y1=8
SPEED_SLOW_Y1=2.000
SPEED_SLOW_Y1=3.000
;
SPEED_BASE_Y2=16
SPEED_MAX_Y2=10
@@ -56,20 +56,20 @@ SPEED_SLOW_Y2=1.000
SPEED_BASE_Y3=2
SPEED_MAX_Y3=0
SPEED_START_Y3=0
SPEED_FRESH_Y3=100
SPEED_FRESH_Y3=10
SPEED_SLOW_Y3=0.001
;
SPEED_BASE_Y4=2
SPEED_MAX_Y4=0
SPEED_START_Y4=10
SPEED_FRESH_Y4=100
SPEED_FRESH_Y4=10
SPEED_SLOW_Y4=0.001
;
SPEED_BASE_Y5=2
SPEED_MAX_Y5=0
SPEED_START_Y5=50
SPEED_FRESH_Y5=100
SPEED_SLOW_Y5=0.000
SPEED_BASE_Y5=60
SPEED_MAX_Y5=10
SPEED_START_Y5=20
SPEED_FRESH_Y5=8
SPEED_SLOW_Y5=3.000
;
SPEED_BASE_Z1=20
SPEED_MAX_Z1=100
@@ -86,19 +86,19 @@ SPEED_SLOW_Z2=1.500
SPEED_BASE_Z3=3
SPEED_MAX_Z3=5
SPEED_START_Z3=5
SPEED_FRESH_Z3=100
SPEED_FRESH_Z3=10
SPEED_SLOW_Z3=0.001
;
SPEED_BASE_Z4=2
SPEED_MAX_Z4=0
SPEED_START_Z4=18
SPEED_FRESH_Z4=100
SPEED_FRESH_Z4=10
SPEED_SLOW_Z4=0.001
;
SPEED_BASE_Z5=2
SPEED_MAX_Z5=6
SPEED_START_Z5=133
SPEED_FRESH_Z5=100
SPEED_FRESH_Z5=10
SPEED_SLOW_Z5=0.000
;
X_MOTOR_PRECISION=0.008
@@ -149,3 +149,19 @@ _start_machine
Exit: Exit_SO7Usb
Destruct Cso7_Proto.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
Usb Port Initialized.
@@ -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