diff --git a/PcDmis/Base/Interfac/Msi/Hsi/ART/ART_PCI8622.cpp b/PcDmis/Base/Interfac/Msi/Hsi/ART/ART_PCI8622.cpp index c50ff34..e503eb0 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/ART/ART_PCI8622.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/ART/ART_PCI8622.cpp @@ -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) diff --git a/PcDmis/Base/Interfac/Msi/Hsi/ART/ART_PCI8622.h b/PcDmis/Base/Interfac/Msi/Hsi/ART/ART_PCI8622.h index 7ca7710..0ed2d1c 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/ART/ART_PCI8622.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/ART/ART_PCI8622.h @@ -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); diff --git a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.cpp b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.cpp index 5ae0fe6..7825c36 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.cpp @@ -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(g_machine.TrigPara.TrigTotalNo._long_); - _ParaData=static_cast(g_machine.TrigPara.TrigReadPara._long_); + _ParaNumber=static_cast(g_machine.TrigPara.TrigTotalNo._long_); + _ParaData=static_cast(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; diff --git a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.h b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.h index f7e0e5d..8213029 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.h @@ -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); diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/UtilityDebug.Log b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/UtilityDebug.Log index f2a1133..ca6a738 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/UtilityDebug.Log +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/UtilityDebug.Log @@ -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. diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/Utility_Config.ini b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/Utility_Config.ini index 4c38b56..da5e420 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/Utility_Config.ini +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/Utility_Config.ini @@ -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 diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Release/UtilityDebug.Log b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Release/UtilityDebug.Log index db786d1..36f7968 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Release/UtilityDebug.Log +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Release/UtilityDebug.Log @@ -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. diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Mv_Util.rc b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Mv_Util.rc index 0db6637..2d38182 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Mv_Util.rc +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Mv_Util.rc @@ -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 diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_UtilDlg.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_UtilDlg.cpp index 56ee23a..c94caaf 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_UtilDlg.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_UtilDlg.cpp @@ -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"); } diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Art_PCI8622.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Art_PCI8622.cpp index 85103dc..b50704b 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Art_PCI8622.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Art_PCI8622.cpp @@ -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); } } diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_External_Trig.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_External_Trig.cpp index d70194c..6e15ba0 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_External_Trig.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_External_Trig.cpp @@ -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(atoi(cTmp)); + m_ParaNumber = static_cast(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(atoi(cTmp)); + m_TestTimes = static_cast(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(m_pSO7_Proto->MMtoScale(dTmp,dResolution)); + m_TrigPara[0] = static_cast(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(m_pSO7_Proto->MMtoScale(dTmp,dResolution)); + m_TrigPara[iRow]=static_cast(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(m_ParaListSelectedRow),m_ActiveAxis,m_TrigMode,m_ParaNumber,m_ReturnPara); + m_pSO7_Proto->so7_motion_get_trig_para(static_cast(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(m_pSO7_Proto->g_machine.FPGAData); - m_pSO7_Proto->_send_cmd_SO7_CMD_READ_DATA_FROM_FPGA(m_ActiveAxis,10); - cdata[1]=static_cast(m_pSO7_Proto->g_machine.FPGAData); m_pSO7_Proto->_send_cmd_SO7_CMD_READ_DATA_FROM_FPGA(m_ActiveAxis,13); + cdata[0]=static_cast(m_pSO7_Proto->g_machine.FPGAData); + m_pSO7_Proto->_send_cmd_SO7_CMD_READ_DATA_FROM_FPGA(m_ActiveAxis,12); + cdata[1]=static_cast(m_pSO7_Proto->g_machine.FPGAData); + m_pSO7_Proto->_send_cmd_SO7_CMD_READ_DATA_FROM_FPGA(m_ActiveAxis,10); cdata[2]=static_cast(m_pSO7_Proto->g_machine.FPGAData); m_pSO7_Proto->_send_cmd_SO7_CMD_READ_DATA_FROM_FPGA(m_ActiveAxis,14); cdata[3]=static_cast(m_pSO7_Proto->g_machine.FPGAData); m_pSO7_Proto->_send_cmd_SO7_CMD_READ_DATA_FROM_FPGA(m_ActiveAxis,15); cdata[4]=static_cast(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_pSO7_Proto->MMtoScale(dTmp,dResolution)); + m_TrigSetPara[i]=m_TrigPara[i]+static_cast(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("\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_EdMsg); int index(65535); m_ReadTrigPara(0,0); - m_ReadTrigPara(static_cast(index),1); + m_ReadTrigPara(static_cast(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(index),1); } break; } diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_External_Trig.h b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_External_Trig.h index 4959c42..7958ba6 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_External_Trig.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/So7_Util_External_Trig.h @@ -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; diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h index 96560a0..0578037 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h @@ -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 diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil_VS2010.suo b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil_VS2010.suo index 2b05046..187d3d1 100644 Binary files a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil_VS2010.suo and b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil_VS2010.suo differ