From dc4fbc655f4a0a5d6c1a9705ba466db86dd2a48f Mon Sep 17 00:00:00 2001 From: TAO Cheng Date: Thu, 26 Dec 2013 17:43:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9S=E6=9B=B2=E7=BA=BF=E8=BF=90?= =?UTF-8?q?=E5=8A=A8=E6=8E=A7=E5=88=B6=E5=8F=82=E6=95=B0=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Interfac/Msi/Hsi/SevenOcean/SO7_Proto.cpp | 49 +- .../Interfac/Msi/Hsi/SevenOcean/SO7_Proto.h | 8 +- .../Tools/UsbUtility/Debug/UtilityDebug.Log | 541 ++++++++++++++++++ .../Tools/UsbUtility/Debug/Utility_Config.ini | 126 ++-- .../Hsi/Tools/UsbUtility/UsbUtil/Mv_Util.rc | 289 +++++----- .../UsbUtility/UsbUtil/SO7_Move_Location.cpp | 91 ++- .../UsbUtility/UsbUtil/SO7_Move_Location.h | 2 + .../UsbUtility/UsbUtil/SO7_Send_Parameter.cpp | 18 + .../Tools/UsbUtility/UsbUtil/SO7_UtilDlg.cpp | 12 +- .../UsbUtility/UsbUtil/Videocard_SV4000E.cpp | 162 ++++-- .../UsbUtility/UsbUtil/Videocard_SV4000E.h | 7 +- .../Hsi/Tools/UsbUtility/UsbUtil/resource.h | 11 +- .../Hsi/Tools/UsbUtility/UsbUtil_VS2010.suo | Bin 2355712 -> 2355712 bytes 13 files changed, 1003 insertions(+), 313 deletions(-) diff --git a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.cpp b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.cpp index dfea5e9..324384e 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.cpp @@ -461,10 +461,11 @@ CSO7_Proto::CSO7_Proto() g_machine.GetInterruptMsg[i][j]=0; } } - g_machine.GetInterruptMsgMethod=E_GET_INTERRUPT_MSG_INTERRUPT; + g_machine.GetInterruptMsgMethod=E_GET_INTERRUPT_MSG_INTERRUPT;//E_GET_INTERRUPT_MSG_INQUIRY; g_machine.IsSupportReadInterrputMsg=FALSE; g_machine.IsOffline=TRUE; g_machine.FPGAData=0; + g_machine.FirmwareVer=FirmwareVer_3_X; g_machine.x._Move_Speed_Gear =2; g_machine.y._Move_Speed_Gear =2; g_machine.z._Move_Speed_Gear =2; @@ -3030,7 +3031,7 @@ SSI_STATUS_MOTION CSO7_Proto::so7_motion_set_position_xyz(double dX, double dY, //================================================================== SSI_STATUS_MOTION CSO7_Proto::so7_motion_is_finished(char MotionType,BOOL& IsFinished) { - WaitForSingleObject(g_hHomedEvent, INFINITE); // machine start and homing is done + //WaitForSingleObject(g_hHomedEvent, INFINITE); // machine start and homing is done BOOL bIsFinised(FALSE); if (g_machine.GetInterruptMsgMethod==E_GET_INTERRUPT_MSG_INQUIRY) @@ -3964,14 +3965,15 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_SET_CONSTANT_SPEED(int iSpeed,ch *(ep_buff[EP_02_CMD_IDX]._buffer+6) = 0; } iDeceDistance =0; - *(ep_buff[EP_02_CMD_IDX]._buffer+7) =static_cast(iDeceDistance/1000); - *(ep_buff[EP_02_CMD_IDX]._buffer+7) = *(ep_buff[EP_02_CMD_IDX]._buffer+7) &0x0f; - *(ep_buff[EP_02_CMD_IDX]._buffer+8) = static_cast((iDeceDistance%1000)/100); - *(ep_buff[EP_02_CMD_IDX]._buffer+8) = *(ep_buff[EP_02_CMD_IDX]._buffer+8) & 0x0f; - *(ep_buff[EP_02_CMD_IDX]._buffer+9) = static_cast((iDeceDistance%100)/10); - *(ep_buff[EP_02_CMD_IDX]._buffer+9) = *(ep_buff[EP_02_CMD_IDX]._buffer+9) & 0x0f; - *(ep_buff[EP_02_CMD_IDX]._buffer+10)= static_cast(iDeceDistance%10); - *(ep_buff[EP_02_CMD_IDX]._buffer+10)=*(ep_buff[EP_02_CMD_IDX]._buffer+10) & 0x0f; + char cBuffer; + cBuffer =static_cast(iDeceDistance/1000); + *(ep_buff[EP_02_CMD_IDX]._buffer+7) =cBuffer; + cBuffer = static_cast((iDeceDistance%1000)/100); + *(ep_buff[EP_02_CMD_IDX]._buffer+8) = cBuffer; + cBuffer = static_cast((iDeceDistance%100)/10); + *(ep_buff[EP_02_CMD_IDX]._buffer+9) = cBuffer; + cBuffer = static_cast(iDeceDistance%10); + *(ep_buff[EP_02_CMD_IDX]._buffer+10)= cBuffer; ep_buff[EP_02_CMD_IDX]._size = 0x0b; @@ -4027,15 +4029,15 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_SET_SPEED_PARAMETER(char axis_ty iDeceDistance =(int)((g_machine.s_machine_config.z_axis._speed_slow_dis[xyz_gear] ) * 1000); } - *(ep_buff[EP_02_CMD_IDX]._buffer+7) =static_cast(iDeceDistance/1000); - *(ep_buff[EP_02_CMD_IDX]._buffer+7) = *(ep_buff[EP_02_CMD_IDX]._buffer+7) &0x0f; - *(ep_buff[EP_02_CMD_IDX]._buffer+8) = static_cast((iDeceDistance%1000)/100); - *(ep_buff[EP_02_CMD_IDX]._buffer+8) = *(ep_buff[EP_02_CMD_IDX]._buffer+8) & 0x0f; - *(ep_buff[EP_02_CMD_IDX]._buffer+9) = static_cast((iDeceDistance%100)/10); - *(ep_buff[EP_02_CMD_IDX]._buffer+9) = *(ep_buff[EP_02_CMD_IDX]._buffer+9) & 0x0f; - *(ep_buff[EP_02_CMD_IDX]._buffer+10)= static_cast(iDeceDistance%10); - *(ep_buff[EP_02_CMD_IDX]._buffer+10)=*(ep_buff[EP_02_CMD_IDX]._buffer+10) & 0x0f; - + char cBuffer; + cBuffer =static_cast(iDeceDistance/1000); + *(ep_buff[EP_02_CMD_IDX]._buffer+7) =cBuffer; + cBuffer = static_cast((iDeceDistance%1000)/100); + *(ep_buff[EP_02_CMD_IDX]._buffer+8) = cBuffer; + cBuffer = static_cast((iDeceDistance%100)/10); + *(ep_buff[EP_02_CMD_IDX]._buffer+9) = cBuffer; + cBuffer = static_cast(iDeceDistance%10); + *(ep_buff[EP_02_CMD_IDX]._buffer+10)= cBuffer; ep_buff[EP_02_CMD_IDX]._size = 0x0b; ep_buff[EP_82_DATA_IDX]._size = 0x45; @@ -4786,6 +4788,15 @@ SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_READ_FIRMWARE_VERSION_INFO() { g_machine.FirmwareInfo[i]=*(ep_buff[EP_82_DATA_IDX]._buffer+i); } + + if (g_machine.FirmwareInfo[3]=='6') + { + g_machine.FirmwareVer=FirmwareVer_6_X; + } + else + { + g_machine.FirmwareVer=FirmwareVer_3_X; + } 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 a991cce..bc02a42 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/SevenOcean/SO7_Proto.h @@ -58,7 +58,12 @@ const long MAX_INTENSITY = 0x3FF; #define MAXLIGHTVALUE 256 - +enum EFirmwareVer +{ + FirmwareVer_3_X=0, + FirmwareVer_6_X, + FirmwareVer_Total +}; #pragma pack(push) #pragma pack(1) //**************************************************************************************************** @@ -208,6 +213,7 @@ struct struct_so7_machine char InPortStatus; int _motor_pulse_num; char FirmwareInfo[10]; + int FirmwareVer; char GetInterruptMsg[20][2]; char GetInterruptMsgMethod; BOOL IsOffline; 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 484a7a0..1abd3d9 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/UtilityDebug.Log +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/Debug/UtilityDebug.Log @@ -2399,3 +2399,544 @@ 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 . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +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 . +_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 +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 . +_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 . +_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 +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +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 . +_start_machine +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Unable to open device Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Construct Cso7_Proto. +Unable to open device Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +Construct Cso7_Proto. +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +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 . +_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 +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +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 . +_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 . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +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 +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +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 +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +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 +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 . +_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 . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +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 +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +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 . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +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 +Init:Open device succeed . +_start_machine +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 . +_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 . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Init:Open device succeed . +_start_machine +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 +Init:Open device succeed . +_start_machine +Construct Cso7_Proto. +Unable to open device Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +Construct Cso7_Proto. +Unable to open device Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +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 +Init:Open device succeed . +_start_machine +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 +Init:Open device succeed . +_start_machine +Exit: Exit_SO7Usb +Destruct Cso7_Proto. +Construct Cso7_Proto. +Init:Open device succeed . +_start_machine +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 . +_start_machine +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. 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 5fee9ed..03419fd 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 @@ -1,5 +1,5 @@ [HARDWARE] -MOVETOSPEED_FAST_X=0.00000000 +MOVETOSPEED_FAST_X=50.00000000 MOVETOSPEED_SLOW_X=100.00000000 MOVETOSPEED_SCALE_X=1.00000000 ; @@ -11,103 +11,103 @@ MOVETOSPEED_FAST_Z=0.00000000 MOVETOSPEED_SLOW_Z=0.00000000 MOVETOSPEED_SCALE_Z=1.00000000 ; -SPEED_BASE_X1=5 -SPEED_MAX_X1=168 -SPEED_START_X1=28 -SPEED_FRESH_X1=10 -SPEED_SLOW_X1=0.510 +SPEED_BASE_X1=20 +SPEED_MAX_X1=20 +SPEED_START_X1=20 +SPEED_FRESH_X1=8 +SPEED_SLOW_X1=3.300 ; -SPEED_BASE_X2=3 -SPEED_MAX_X2=50 -SPEED_START_X2=10 +SPEED_BASE_X2=16 +SPEED_MAX_X2=10 +SPEED_START_X2=12 SPEED_FRESH_X2=10 -SPEED_SLOW_X2=0.110 +SPEED_SLOW_X2=2.000 ; SPEED_BASE_X3=2 SPEED_MAX_X3=5 -SPEED_START_X3=5 -SPEED_FRESH_X3=10 -SPEED_SLOW_X3=0.001 +SPEED_START_X3=8 +SPEED_FRESH_X3=100 +SPEED_SLOW_X3=0.500 ; SPEED_BASE_X4=2 SPEED_MAX_X4=0 -SPEED_START_X4=50 -SPEED_FRESH_X4=10 -SPEED_SLOW_X4=0.001 +SPEED_START_X4=5 +SPEED_FRESH_X4=100 +SPEED_SLOW_X4=0.100 ; -SPEED_BASE_X5=5 +SPEED_BASE_X5=2 SPEED_MAX_X5=0 -SPEED_START_X5=80 -SPEED_FRESH_X5=10 -SPEED_SLOW_X5=0.001 +SPEED_START_X5=50 +SPEED_FRESH_X5=100 +SPEED_SLOW_X5=0.100 ; -SPEED_BASE_Y1=5 -SPEED_MAX_Y1=168 -SPEED_START_Y1=28 -SPEED_FRESH_Y1=10 -SPEED_SLOW_Y1=0.600 +SPEED_BASE_Y1=20 +SPEED_MAX_Y1=10 +SPEED_START_Y1=20 +SPEED_FRESH_Y1=8 +SPEED_SLOW_Y1=2.000 ; -SPEED_BASE_Y2=3 -SPEED_MAX_Y2=60 -SPEED_START_Y2=10 +SPEED_BASE_Y2=16 +SPEED_MAX_Y2=10 +SPEED_START_Y2=12 SPEED_FRESH_Y2=10 -SPEED_SLOW_Y2=0.200 +SPEED_SLOW_Y2=1.000 ; -SPEED_BASE_Y3=2 +SPEED_BASE_Y3=1 SPEED_MAX_Y3=5 -SPEED_START_Y3=3 -SPEED_FRESH_Y3=10 -SPEED_SLOW_Y3=0.001 +SPEED_START_Y3=1 +SPEED_FRESH_Y3=100 +SPEED_SLOW_Y3=0.100 ; -SPEED_BASE_Y4=2 +SPEED_BASE_Y4=1 SPEED_MAX_Y4=0 -SPEED_START_Y4=50 -SPEED_FRESH_Y4=10 -SPEED_SLOW_Y4=0.001 +SPEED_START_Y4=6 +SPEED_FRESH_Y4=100 +SPEED_SLOW_Y4=0.100 ; -SPEED_BASE_Y5=5 +SPEED_BASE_Y5=1 SPEED_MAX_Y5=0 -SPEED_START_Y5=80 -SPEED_FRESH_Y5=10 -SPEED_SLOW_Y5=0.001 +SPEED_START_Y5=50 +SPEED_FRESH_Y5=100 +SPEED_SLOW_Y5=0.100 ; -SPEED_BASE_Z1=5 -SPEED_MAX_Z1=130 -SPEED_START_Z1=28 -SPEED_FRESH_Z1=10 -SPEED_SLOW_Z1=0.510 +SPEED_BASE_Z1=20 +SPEED_MAX_Z1=100 +SPEED_START_Z1=150 +SPEED_FRESH_Z1=8 +SPEED_SLOW_Z1=2.500 ; -SPEED_BASE_Z2=3 -SPEED_MAX_Z2=60 -SPEED_START_Z2=10 +SPEED_BASE_Z2=16 +SPEED_MAX_Z2=10 +SPEED_START_Z2=100 SPEED_FRESH_Z2=10 -SPEED_SLOW_Z2=0.110 +SPEED_SLOW_Z2=1.500 ; -SPEED_BASE_Z3=2 +SPEED_BASE_Z3=3 SPEED_MAX_Z3=5 SPEED_START_Z3=5 SPEED_FRESH_Z3=10 -SPEED_SLOW_Z3=0.001 +SPEED_SLOW_Z3=0.100 ; SPEED_BASE_Z4=2 SPEED_MAX_Z4=0 -SPEED_START_Z4=50 +SPEED_START_Z4=18 SPEED_FRESH_Z4=10 -SPEED_SLOW_Z4=0.001 +SPEED_SLOW_Z4=0.100 ; SPEED_BASE_Z5=5 -SPEED_MAX_Z5=0 -SPEED_START_Z5=80 +SPEED_MAX_Z5=13 +SPEED_START_Z5=12 SPEED_FRESH_Z5=10 -SPEED_SLOW_Z5=0.001 +SPEED_SLOW_Z5=0.100 ; -X_MOTOR_PRECISION=0.010 -Y_MOTOR_PRECISION=0.010 -Z_MOTOR_PRECISION=0.100 +X_MOTOR_PRECISION=0.004 +Y_MOTOR_PRECISION=0.009 +Z_MOTOR_PRECISION=0.004 ; -X_MOTOR_WHEELBASE=19.990 -Y_MOTOR_WHEELBASE=20.000 -Z_MOTOR_WHEELBASE=3.000 +X_MOTOR_WHEELBASE=1.500 +Y_MOTOR_WHEELBASE=1.500 +Z_MOTOR_WHEELBASE=1.500 ; MOTOR_PULSE_NUM=10000 ; 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 c952624..8544b9f 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 @@ -40,11 +40,11 @@ BEGIN GROUPBOX "Cmd",IDC_STATIC,17,216,379,46 PUSHBUTTON "Start_Machine",IDC_BUTTON_START_SO7MACHINE,23,40,63,18 PUSHBUTTON "Stop_Machine",IDC_BUTTON_STOP_SO7MACHINE,23,75,63,18 - PUSHBUTTON "Read XYZ Axis",IDC_BUTTON_SO7_READ_AXIS_XYZ,132,28,62,13 - PUSHBUTTON "Read Probe Axis",IDC_BUTTON_READ_PROBE,132,42,62,13 - PUSHBUTTON "Read V Axis",IDC_BUTTON_SO7_READ_AXIS_V,130,57,62,13 - PUSHBUTTON "Get Fixture Value",IDC_BUTTON_GET_FIXTURE_FLAG,131,73,62,13 - PUSHBUTTON "Get Reset Flag",IDC_BUTTON_SO7_GET_RESET_FLAG,132,89,62,13 + PUSHBUTTON "Read XYZ Axis",IDC_BUTTON_SO7_READ_AXIS_XYZ,133,28,62,13 + PUSHBUTTON "Read Probe Axis",IDC_BUTTON_READ_PROBE,133,44,62,13 + PUSHBUTTON "Read V Axis",IDC_BUTTON_SO7_READ_AXIS_V,133,60,62,13 + PUSHBUTTON "Get Fixture Value",IDC_BUTTON_GET_FIXTURE_FLAG,133,76,62,13 + PUSHBUTTON "Get Reset Flag",IDC_BUTTON_SO7_GET_RESET_FLAG,133,92,62,13 EDITTEXT IDC_EDIT_AXIAL_LIGHT,261,27,41,12,ES_AUTOHSCROLL | NOT WS_TABSTOP EDITTEXT IDC_EDIT_BOTTOM_LIGHT,261,41,41,12,ES_AUTOHSCROLL | NOT WS_TABSTOP EDITTEXT IDC_EDIT_RING_LIGHT,261,55,41,12,ES_AUTOHSCROLL @@ -67,7 +67,7 @@ BEGIN PUSHBUTTON "Home Worktable Right",IDC_BUTTON_RESET_WORKTABLE_RIGHT,277,173,76,14 PUSHBUTTON "Move\n To",IDC_BUTTON_MOVE_TO,359,142,32,27,BS_MULTILINE PUSHBUTTON "Auto Zoom",IDC_BUTTON_AUTO_ZOOM,359,177,32,27,BS_MULTILINE - PUSHBUTTON "Set Reset Flag",IDC_BUTTON_SET_RESET_FLAG,133,102,61,14 + PUSHBUTTON "Set Reset Flag",IDC_BUTTON_SET_RESET_FLAG,133,108,61,14 PUSHBUTTON "Set outport",IDC_BUTTON_GET_LASER,181,240,61,14 PUSHBUTTON "Home V",IDC_BUTTON_RESET_V,100,240,61,14 EDITTEXT IDC_EDIT_X_SCALE_COEFFICIENT,46,284,54,12,ES_CENTER | ES_AUTOHSCROLL @@ -178,140 +178,140 @@ BEGIN CONTROL "速度-时间",IDC_RADIO_CANVAS_SPEED_TIME,"Button",BS_AUTORADIOBUTTON | WS_GROUP,315,413,51,10 CONTROL "速度-位移",IDC_RADIO_CANVAS_SPEED_POSTION,"Button",BS_AUTORADIOBUTTON,315,426,51,10 CONTROL "位移-时间",IDC_RADIO_CANVAS_POSTION_TIME,"Button",BS_AUTORADIOBUTTON,315,439,51,10 - EDITTEXT IDC_EDIT_BASESPEED_X1,43,55,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_MAXSPEED_X1,107,55,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_STARTSPEED_X1,177,55,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_FRESHSPEED_X1,244,55,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_SLOWDIS_X1,243,55,40,12,ES_AUTOHSCROLL | NOT WS_VISIBLE - EDITTEXT IDC_EDIT_BASESPEED_X2,43,69,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_MAXSPEED_X2,107,69,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_STARTSPEED_X2,177,69,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_FRESHSPEED_X2,244,69,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_SLOWDIS_X2,243,69,40,12,ES_AUTOHSCROLL | NOT WS_VISIBLE - EDITTEXT IDC_EDIT_BASESPEED_X3,43,83,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_MAXSPEED_X3,107,83,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_STARTSPEED_X3,177,83,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_FRESHSPEED_X3,244,83,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_SLOWDIS_X3,243,83,40,12,ES_AUTOHSCROLL | NOT WS_VISIBLE - EDITTEXT IDC_EDIT_BASESPEED_X4,43,97,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_MAXSPEED_X4,107,97,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_STARTSPEED_X4,177,97,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_FRESHSPEED_X4,244,97,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_SLOWDIS_X4,243,97,40,12,ES_AUTOHSCROLL | NOT WS_VISIBLE - EDITTEXT IDC_EDIT_BASESPEED_X5,43,111,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_MAXSPEED_X5,107,111,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_STARTSPEED_X5,177,111,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_FRESHSPEED_X5,244,111,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_SLOWDIS_X5,243,111,40,12,ES_AUTOHSCROLL | NOT WS_VISIBLE - EDITTEXT IDC_EDIT_BASESPEED_Y1,43,129,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_MAXSPEED_Y1,107,129,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_STARTSPEED_Y1,177,129,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_FRESHSPEED_Y1,244,129,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_SLOWDIS_Y1,243,129,40,12,ES_AUTOHSCROLL | NOT WS_VISIBLE - EDITTEXT IDC_EDIT_BASESPEED_Y2,43,143,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_MAXSPEED_Y2,107,143,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_STARTSPEED_Y2,177,143,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_FRESHSPEED_Y2,244,143,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_SLOWDIS_Y2,243,143,40,12,ES_AUTOHSCROLL | NOT WS_VISIBLE - EDITTEXT IDC_EDIT_BASESPEED_Y3,43,156,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_MAXSPEED_Y3,107,156,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_STARTSPEED_Y3,177,156,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_FRESHSPEED_Y3,244,156,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_SLOWDIS_Y3,243,156,40,12,ES_AUTOHSCROLL | NOT WS_VISIBLE - EDITTEXT IDC_EDIT_BASESPEED_Y4,43,170,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_MAXSPEED_Y4,107,170,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_STARTSPEED_Y4,177,170,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_FRESHSPEED_Y4,244,170,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_SLOWDIS_Y4,243,170,40,12,ES_AUTOHSCROLL | NOT WS_VISIBLE - EDITTEXT IDC_EDIT_BASESPEED_Y5,43,184,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_MAXSPEED_Y5,107,184,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_STARTSPEED_Y5,177,184,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_FRESHSPEED_Y5,244,184,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_SLOWDIS_Y5,243,184,40,12,ES_AUTOHSCROLL | NOT WS_VISIBLE - EDITTEXT IDC_EDIT_BASESPEED_Z1,43,203,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_MAXSPEED_Z1,107,203,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_STARTSPEED_Z1,177,203,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_FRESHSPEED_Z1,244,203,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_SLOWDIS_Z1,243,203,40,12,ES_AUTOHSCROLL | NOT WS_VISIBLE - EDITTEXT IDC_EDIT_BASESPEED_Z2,43,217,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_MAXSPEED_Z2,107,217,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_STARTSPEED_Z2,177,217,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_FRESHSPEED_Z2,244,217,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_SLOWDIS_Z2,243,217,40,12,ES_AUTOHSCROLL | NOT WS_VISIBLE - EDITTEXT IDC_EDIT_BASESPEED_Z3,43,231,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_MAXSPEED_Z3,107,231,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_STARTSPEED_Z3,177,231,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_FRESHSPEED_Z3,244,231,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_SLOWDIS_Z3,243,231,40,12,ES_AUTOHSCROLL | NOT WS_VISIBLE - EDITTEXT IDC_EDIT_BASESPEED_Z4,43,245,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_MAXSPEED_Z4,107,245,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_STARTSPEED_Z4,177,245,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_FRESHSPEED_Z4,244,245,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_SLOWDIS_Z4,243,245,40,12,ES_AUTOHSCROLL | NOT WS_VISIBLE - EDITTEXT IDC_EDIT_BASESPEED_Z5,43,259,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_MAXSPEED_Z5,107,259,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_STARTSPEED_Z5,177,259,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_FRESHSPEED_Z5,244,259,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_SLOWDIS_Z5,243,259,40,12,ES_AUTOHSCROLL | NOT WS_VISIBLE - EDITTEXT IDC_EDIT_WHEELBASE_X,43,293,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_WHEELBASE_Y,104,293,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_WHEELBASE_Z,167,293,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_WHEELBASE_PULSENUM,246,294,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_PRECISION_X,43,328,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_PRECISION_Y,104,328,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_PRECISION_Z,167,328,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_NEG_WORKLIMIT_X,118,363,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_NEG_WORKLIMIT_Y,180,363,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_NEG_WORKLIMIT_Z,243,363,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_POS_WORKLIMIT_X,118,380,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_POS_WORKLIMIT_Y,180,380,40,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_POS_WORKLIMIT_Z,243,380,40,12,ES_AUTOHSCROLL - PUSHBUTTON "Save To Controller",IDC_BUTTON_SAVE_PARAMETER,46,410,50,24,BS_MULTILINE - PUSHBUTTON "Read From Controller",IDC_BUTTON_READ_PARAMETER_FROM_CONTROLLER,120,410,50,24,BS_MULTILINE - PUSHBUTTON "Save...",IDC_BUTTON_SAVE,194,410,50,24 + EDITTEXT IDC_EDIT_BASESPEED_X1,43,61,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_MAXSPEED_X1,91,61,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_STARTSPEED_X1,138,61,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_FRESHSPEED_X1,185,61,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_SLOWDIS_X1,232,61,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_BASESPEED_X2,43,75,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_MAXSPEED_X2,91,75,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_STARTSPEED_X2,138,75,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_FRESHSPEED_X2,185,75,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_SLOWDIS_X2,232,75,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_BASESPEED_X3,43,89,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_MAXSPEED_X3,91,89,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_STARTSPEED_X3,138,89,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_FRESHSPEED_X3,185,89,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_SLOWDIS_X3,232,89,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_BASESPEED_X4,43,103,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_MAXSPEED_X4,91,103,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_STARTSPEED_X4,138,103,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_FRESHSPEED_X4,185,103,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_SLOWDIS_X4,232,103,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_BASESPEED_X5,43,117,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_MAXSPEED_X5,91,117,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_STARTSPEED_X5,138,117,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_FRESHSPEED_X5,185,117,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_SLOWDIS_X5,232,117,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_BASESPEED_Y1,43,135,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_MAXSPEED_Y1,91,135,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_STARTSPEED_Y1,138,135,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_FRESHSPEED_Y1,185,135,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_SLOWDIS_Y1,232,135,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_BASESPEED_Y2,43,149,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_MAXSPEED_Y2,91,149,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_STARTSPEED_Y2,138,149,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_FRESHSPEED_Y2,185,149,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_SLOWDIS_Y2,232,149,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_BASESPEED_Y3,43,162,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_MAXSPEED_Y3,91,162,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_STARTSPEED_Y3,138,162,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_FRESHSPEED_Y3,185,162,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_SLOWDIS_Y3,232,162,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_BASESPEED_Y4,43,176,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_MAXSPEED_Y4,91,176,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_STARTSPEED_Y4,138,176,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_FRESHSPEED_Y4,185,176,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_SLOWDIS_Y4,232,176,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_BASESPEED_Y5,43,190,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_MAXSPEED_Y5,91,190,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_STARTSPEED_Y5,138,190,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_FRESHSPEED_Y5,185,190,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_SLOWDIS_Y5,232,190,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_BASESPEED_Z1,43,209,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_MAXSPEED_Z1,91,209,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_STARTSPEED_Z1,138,209,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_FRESHSPEED_Z1,185,209,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_SLOWDIS_Z1,232,209,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_BASESPEED_Z2,43,223,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_MAXSPEED_Z2,91,223,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_STARTSPEED_Z2,138,223,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_FRESHSPEED_Z2,185,223,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_SLOWDIS_Z2,232,223,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_BASESPEED_Z3,43,237,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_MAXSPEED_Z3,91,237,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_STARTSPEED_Z3,138,237,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_FRESHSPEED_Z3,185,237,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_SLOWDIS_Z3,232,237,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_BASESPEED_Z4,43,251,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_MAXSPEED_Z4,91,251,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_STARTSPEED_Z4,138,251,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_FRESHSPEED_Z4,185,251,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_SLOWDIS_Z4,232,251,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_BASESPEED_Z5,43,265,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_MAXSPEED_Z5,91,265,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_STARTSPEED_Z5,138,265,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_FRESHSPEED_Z5,185,265,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_SLOWDIS_Z5,232,265,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_WHEELBASE_X,43,299,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_WHEELBASE_Y,104,299,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_WHEELBASE_Z,167,299,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_WHEELBASE_PULSENUM,246,300,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_PRECISION_X,43,334,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_PRECISION_Y,104,334,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_PRECISION_Z,167,334,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_NEG_WORKLIMIT_X,118,369,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_NEG_WORKLIMIT_Y,180,369,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_NEG_WORKLIMIT_Z,243,369,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_POS_WORKLIMIT_X,118,386,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_POS_WORKLIMIT_Y,180,386,40,12,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_POS_WORKLIMIT_Z,243,386,40,12,ES_AUTOHSCROLL + PUSHBUTTON "Save To Controller",IDC_BUTTON_SAVE_PARAMETER,46,413,50,24,BS_MULTILINE + PUSHBUTTON "Read From Controller",IDC_BUTTON_READ_PARAMETER_FROM_CONTROLLER,120,413,50,24,BS_MULTILINE + PUSHBUTTON "Save...",IDC_BUTTON_SAVE,194,413,50,24 PUSHBUTTON "Exit",IDCANCEL,696,449,50,14 - LTEXT "Z=",IDC_STATIC,229,381,10,8 - LTEXT "Y=",IDC_STATIC,90,296,10,8 + LTEXT "Z=",IDC_STATIC,229,387,10,8 + LTEXT "Y=",IDC_STATIC,90,302,10,8 EDITTEXT IDC_EDIT_INPUT_FILE,58,12,186,14,ES_AUTOHSCROLL LTEXT "Input_File",IDC_STATIC,18,15,33,8 PUSHBUTTON "Browse...",IDC_BUTTON_BROWSE,252,12,36,14 - GROUPBOX "速度参数",IDC_STATIC,17,29,273,248 - LTEXT "X-1",IDC_STATIC,27,57,12,8 - LTEXT "X-2",IDC_STATIC,27,72,12,8 - LTEXT "加速度",IDC_STATIC,48,41,25,8 - LTEXT "最大速率(高8位)",IDC_STATIC,98,41,69,8 - CONTROL "最低速率(低8位)",IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,168,41,69,8 - LTEXT "刷新周期",IDC_STATIC,248,41,33,8 - LTEXT "减速距离",IDC_STATIC,247,41,33,8,NOT WS_VISIBLE - LTEXT "X-3",IDC_STATIC,27,85,12,8 - LTEXT "X-4",IDC_STATIC,27,99,12,8 - LTEXT "X-5",IDC_STATIC,27,113,12,8 - LTEXT "Y-1",IDC_STATIC,27,131,12,8 - LTEXT "Y-2",IDC_STATIC,27,146,12,8 - LTEXT "Y-3",IDC_STATIC,27,159,12,8 - LTEXT "Y-4",IDC_STATIC,27,173,12,8 - LTEXT "Y-5",IDC_STATIC,27,187,12,8 - LTEXT "Z-1",IDC_STATIC,27,205,12,8 - LTEXT "Z-2",IDC_STATIC,27,220,12,8 - LTEXT "Z-3",IDC_STATIC,27,233,12,8 - LTEXT "Z-4",IDC_STATIC,27,247,12,8 - LTEXT "Z-5",IDC_STATIC,27,261,12,8 - GROUPBOX "轴距",IDC_STATIC,15,279,275,36 - GROUPBOX "精度",IDC_STATIC,16,316,274,30 - LTEXT "X=",IDC_STATIC,28,296,10,8 - LTEXT "Z=",IDC_STATIC,153,296,10,8 - LTEXT "PulseNo.",IDC_STATIC,216,296,27,8 - LTEXT "X=",IDC_STATIC,28,330,10,8 - LTEXT "Y=",IDC_STATIC,90,330,10,8 - LTEXT "Z=",IDC_STATIC,153,330,10,8 - GROUPBOX "工作台设定",IDC_STATIC,16,347,274,49 - LTEXT "X=",IDC_STATIC,104,364,10,8 - LTEXT "Y=",IDC_STATIC,166,364,10,8 - LTEXT "Z=",IDC_STATIC,229,364,10,8 - LTEXT "NEG WORKING LIMIT",IDC_STATIC,20,364,69,8 - LTEXT "POS WORKING LIMIT",IDC_STATIC,20,382,69,8 - LTEXT "X=",IDC_STATIC,104,381,10,8 - LTEXT "Y=",IDC_STATIC,166,381,10,8 + GROUPBOX "速度参数",IDC_STATIC,17,29,273,254 + LTEXT "X-1",IDC_STATIC,27,63,12,8 + LTEXT "X-2",IDC_STATIC,27,78,12,8 + CTEXT "加速度 ",IDC_STATIC_SPEED_PARA1,43,41,39,18 + CTEXT "最大速率(高8位)",IDC_STATIC_SPEED_PARA2,90,41,39,18 + CTEXT "最低速率(低8位)",IDC_STATIC_SPEED_PARA3,137,41,39,18 + CTEXT "刷新周期",IDC_STATIC_SPEED_PARA4,184,41,39,18 + CTEXT "减速距离",IDC_STATIC_SPEED_PARA5,231,41,39,18 + LTEXT "X-3",IDC_STATIC,27,91,12,8 + LTEXT "X-4",IDC_STATIC,27,105,12,8 + LTEXT "X-5",IDC_STATIC,27,119,12,8 + LTEXT "Y-1",IDC_STATIC,27,137,12,8 + LTEXT "Y-2",IDC_STATIC,27,152,12,8 + LTEXT "Y-3",IDC_STATIC,27,165,12,8 + LTEXT "Y-4",IDC_STATIC,27,179,12,8 + LTEXT "Y-5",IDC_STATIC,27,193,12,8 + LTEXT "Z-1",IDC_STATIC,27,211,12,8 + LTEXT "Z-2",IDC_STATIC,27,226,12,8 + LTEXT "Z-3",IDC_STATIC,27,239,12,8 + LTEXT "Z-4",IDC_STATIC,27,253,12,8 + LTEXT "Z-5",IDC_STATIC,27,267,12,8 + GROUPBOX "轴距",IDC_STATIC,15,285,275,36 + GROUPBOX "精度",IDC_STATIC,16,322,274,30 + LTEXT "X=",IDC_STATIC,28,302,10,8 + LTEXT "Z=",IDC_STATIC,153,302,10,8 + LTEXT "PulseNo.",IDC_STATIC,216,302,27,8 + LTEXT "X=",IDC_STATIC,28,336,10,8 + LTEXT "Y=",IDC_STATIC,90,336,10,8 + LTEXT "Z=",IDC_STATIC,153,336,10,8 + GROUPBOX "工作台设定",IDC_STATIC,16,353,274,49 + LTEXT "X=",IDC_STATIC,104,370,10,8 + LTEXT "Y=",IDC_STATIC,166,370,10,8 + LTEXT "Z=",IDC_STATIC,229,370,10,8 + LTEXT "NEG WORKING LIMIT",IDC_STATIC,20,370,69,8 + LTEXT "POS WORKING LIMIT",IDC_STATIC,20,388,69,8 + LTEXT "X=",IDC_STATIC,104,387,10,8 + LTEXT "Y=",IDC_STATIC,166,387,10,8 EDITTEXT IDC_EDIT_SAMPLE_SCURVE_DIS,473,405,28,14,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_SAMPLE_TIME_SCURVE,564,405,28,14,ES_AUTOHSCROLL PUSHBUTTON "Start",IDC_BUTTON_START_SAMPLE_SCURVE,628,407,50,14 @@ -536,11 +536,11 @@ BEGIN EDITTEXT IDC_EDIT_ZM_AXIS,325,187,54,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP GROUPBOX "Move To Position",IDC_STATIC,20,63,236,105 GROUPBOX "Position",IDC_STATIC,20,171,480,36 - PUSHBUTTON "Zero Set",IDC_BUTTON_ZERO_SET,423,185,56,13 + PUSHBUTTON "Zero Set",IDC_BUTTON_ZERO_SET,397,185,56,13 GROUPBOX "Repeatability Test",IDC_STATIC,261,63,238,106 LTEXT "To",IDC_STATIC,344,79,8,8 LTEXT "Times",IDC_STATIC,339,105,19,8 - EDITTEXT IDC_EDIT_REPRETEST,19,216,480,115,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL + EDITTEXT IDC_EDIT_REPRETEST,19,216,429,115,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL CONTROL "x",IDC_CHECK_REPETESTX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,279,79,20,10 CONTROL "y",IDC_CHECK_REPETESTY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,279,92,20,10 CONTROL "z",IDC_CHECK_REPETESTZ,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,279,106,20,10 @@ -561,6 +561,8 @@ BEGIN LTEXT "mm/s",IDC_STATIC,283,29,18,8 LTEXT "mm/s",IDC_STATIC,375,29,18,8 LTEXT "mm/s",IDC_STATIC,462,28,18,8 + PUSHBUTTON "Clear All",IDC_BUTTON_SO7_MOVETO_CLEAR_ALL_LOG,452,266,50,14 + CONTROL "ErrPos",IDC_CHECK_SO7_MOVETO_FPGADATA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,459,186,34,10 END IDD_SO7_UTIL_IMAGE_DLL DIALOGEX 0, 0, 377, 184 @@ -762,12 +764,13 @@ BEGIN CONTROL "黑白图像",IDC_RADIO_SV4000E_GRAY,"Button",BS_AUTORADIOBUTTON,435,67,48,10 CONTROL "垂直镜像",IDC_SV4000E_CHECK_MIRROR_VERTICALLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,435,93,48,10 PUSHBUTTON "保存图片",IDC_BUTTON_SV4000E_SAVEFILE,435,117,50,14 - GROUPBOX "通道选择",IDC_STATIC,438,145,43,87 + GROUPBOX "通道选择",IDC_STATIC,438,145,43,102 CONTROL "",IDC_STATIC_SV4000E_PICTURE,"Static",SS_BLACKFRAME | NOT WS_VISIBLE,225,300,71,12 CONTROL "1",IDC_RADIO_SV4000E_CHANNEL1,"Button",BS_AUTORADIOBUTTON | WS_GROUP,451,162,20,10 CONTROL "2",IDC_RADIO_SV4000E_CHANNEL2,"Button",BS_AUTORADIOBUTTON,451,179,20,10 CONTROL "3",IDC_RADIO_SV4000E_CHANNEL3,"Button",BS_AUTORADIOBUTTON,451,196,20,10 CONTROL "4",IDC_RADIO_SV4000E_CHANNEL4,"Button",BS_AUTORADIOBUTTON,451,213,20,10 + CONTROL "All",IDC_RADIO_SV4000E_CHANNEL_ALL,"Button",BS_AUTORADIOBUTTON,451,230,23,10 END IDD_SO7_UTIL_PROGRAM DIALOGEX 0, 0, 590, 386 @@ -2291,8 +2294,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 6,1,0,0 - PRODUCTVERSION 6,1,0,0 + FILEVERSION 6,3,0,0 + PRODUCTVERSION 6,3,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -2309,12 +2312,12 @@ BEGIN BEGIN VALUE "CompanyName", "Hexagon Metrology" VALUE "FileDescription", "Utility for Hexagon Metrology" - VALUE "FileVersion", "6.1.0.0" + VALUE "FileVersion", "6.3.0.0" VALUE "InternalName", "Usb_Util.exe" VALUE "LegalCopyright", "Copyright 2013 Hexagon Metrology." VALUE "OriginalFilename", "Usb_Util.exe" VALUE "ProductName", "Utility" - VALUE "ProductVersion", "6.1.0.0" + VALUE "ProductVersion", "6.3.0.0" END END BLOCK "VarFileInfo" diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_Move_Location.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_Move_Location.cpp index a995c44..b81015b 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_Move_Location.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_Move_Location.cpp @@ -1,4 +1,4 @@ -7// SO7_Move_Location.cpp : 实现文件 +// SO7_Move_Location.cpp : 实现文件 // #include "stdafx.h" #include "afxdialogex.h" @@ -77,6 +77,8 @@ BEGIN_MESSAGE_MAP(CSO7_Move_Location, CDialog) ON_BN_CLICKED(IDC_RADIO_SPEED_FAST, &CSO7_Move_Location::OnBnClickedRadioSpeedFast) ON_BN_CLICKED(IDC_RADIO_SPEED_SLOW, &CSO7_Move_Location::OnBnClickedRadioSpeedSlow) ON_BN_CLICKED(IDC_RADIO_SPEED_SYSTEM, &CSO7_Move_Location::OnBnClickedRadioSpeedSystem) + ON_BN_CLICKED(IDC_BUTTON_SO7_MOVETO_CLEAR_ALL_LOG, &CSO7_Move_Location::OnBnClickedButtonSo7MovetoClearAllLog) + ON_BN_CLICKED(IDC_CHECK_SO7_MOVETO_FPGADATA, &CSO7_Move_Location::OnBnClickedCheckSo7MovetoFpgadata) END_MESSAGE_MAP() @@ -147,8 +149,7 @@ BOOL CSO7_Move_Location::OnInitDialog() m_RepeTest_ErrRange=_T("0"); bRepeTestDone=false; UpdateData(FALSE); - SetTimer(1,150,0); - SetTimer(2,200,0); + SetTimer(1,150,0); //SetTimer(4,20,NULL); return TRUE; } @@ -158,6 +159,7 @@ void CSO7_Move_Location::OnBnClickedCancel() KillTimer(1); KillTimer(2); KillTimer(4); + KillTimer(5); Sleep(20); @@ -550,12 +552,9 @@ void CSO7_Move_Location::OnEnKillfocusEditMotionSpeedx() { m_pSO7_Proto->g_machine.s_machine_config.x_axis._MoveToSpeed[1]=dSpeedX; } - m_pSO7_Proto->g_machine.s_machine_config.x_axis._speed_base[0]=0; - m_pSO7_Proto->g_machine.s_machine_config.x_axis._speed_max[0]=0; - m_pSO7_Proto->g_machine.s_machine_config.x_axis._speed_start[0]=static_cast(dSpeedX*m_pSO7_Proto->g_machine.s_machine_config.x_axis._MotionSpeedScale); - m_pSO7_Proto->g_machine.s_machine_config.x_axis._speed_fresh[0]=10; - m_pSO7_Proto->g_machine.s_machine_config.x_axis._speed_slow_dis[0]=0.0; - m_pSO7_Proto->_send_cmd_SO7_CMD_SET_SPEED_PARAMETER(0,0); + int iSpeed(0); + iSpeed=static_cast(dSpeedX*m_pSO7_Proto->g_machine.s_machine_config.x_axis._MotionSpeedScale); + m_pSO7_Proto->_send_cmd_SO7_CMD_SET_CONSTANT_SPEED(iSpeed,0,0); } //===================================================================================== void CSO7_Move_Location::OnEnKillfocusEditMotionSpeedy() @@ -574,12 +573,9 @@ void CSO7_Move_Location::OnEnKillfocusEditMotionSpeedy() { m_pSO7_Proto->g_machine.s_machine_config.y_axis._MoveToSpeed[1]=dSpeedY; } - m_pSO7_Proto->g_machine.s_machine_config.y_axis._speed_base[0]=0; - m_pSO7_Proto->g_machine.s_machine_config.y_axis._speed_max[0]=0; - m_pSO7_Proto->g_machine.s_machine_config.y_axis._speed_start[0]=static_cast(dSpeedY*m_pSO7_Proto->g_machine.s_machine_config.y_axis._MotionSpeedScale); - m_pSO7_Proto->g_machine.s_machine_config.y_axis._speed_fresh[0]=10; - m_pSO7_Proto->g_machine.s_machine_config.y_axis._speed_slow_dis[0]=0.0; - m_pSO7_Proto->_send_cmd_SO7_CMD_SET_SPEED_PARAMETER(1,0); + int iSpeed(0); + iSpeed=static_cast(dSpeedY*m_pSO7_Proto->g_machine.s_machine_config.y_axis._MotionSpeedScale); + m_pSO7_Proto->_send_cmd_SO7_CMD_SET_CONSTANT_SPEED(iSpeed,1,0); } //===================================================================================== void CSO7_Move_Location::OnEnKillfocusEditMotionSpeedz() @@ -598,12 +594,9 @@ void CSO7_Move_Location::OnEnKillfocusEditMotionSpeedz() { m_pSO7_Proto->g_machine.s_machine_config.z_axis._MoveToSpeed[1]=dSpeedZ; } - m_pSO7_Proto->g_machine.s_machine_config.z_axis._speed_base[0]=0; - m_pSO7_Proto->g_machine.s_machine_config.z_axis._speed_max[0]=0; - m_pSO7_Proto->g_machine.s_machine_config.z_axis._speed_start[0]=static_cast(dSpeedZ*m_pSO7_Proto->g_machine.s_machine_config.z_axis._MotionSpeedScale); - m_pSO7_Proto->g_machine.s_machine_config.z_axis._speed_fresh[0]=10; - m_pSO7_Proto->g_machine.s_machine_config.z_axis._speed_slow_dis[0]=0.0; - m_pSO7_Proto->_send_cmd_SO7_CMD_SET_SPEED_PARAMETER(2,0); + int iSpeed(0); + iSpeed=static_cast(dSpeedZ*m_pSO7_Proto->g_machine.s_machine_config.z_axis._MotionSpeedScale); + m_pSO7_Proto->_send_cmd_SO7_CMD_SET_CONSTANT_SPEED(iSpeed,2,0); } //===================================================================================== void CSO7_Move_Location::OnBnClickedRadioSpeedSystem() @@ -766,9 +759,12 @@ void CSO7_Move_Location::OnBnClickedButtonBeginRepeTest() m_pSO7_Proto->_send_cmd_SO7_CMD_STOP_MOVE_XYZ(); bFlag=false; bRepeTestDone=false; - } + //KillTimer(2); + } else { + BOOL IsFinished; + m_pSO7_Proto->so7_motion_is_finished(EMSG_STOPXYZ_1_MOVETOXYZ,IsFinished); bFlag=true; OnBnClickedButtonZeroSet(); iCnt=0; @@ -821,6 +817,7 @@ void CSO7_Move_Location::OnBnClickedButtonBeginRepeTest() } ((CButton*)GetDlgItem(IDC_BUTTON_BEGIN_REPE_TEST))->SetWindowTextW(_T("Stop")); + SetTimer(2,200,0); } } @@ -2401,6 +2398,7 @@ void CSO7_Move_Location::OnTimer(UINT_PTR nIDEvent) m_OutMessageZ=_T(""); m_OutMessageV=_T(""); ((CButton*)GetDlgItem(IDC_BUTTON_BEGIN_REPE_TEST))->SetWindowTextW(_T("Begin")); + KillTimer(2); } } } @@ -2490,7 +2488,33 @@ void CSO7_Move_Location::OnTimer(UINT_PTR nIDEvent) } break; } - } + case 5: + { + BYTE cdata[4]={0}; + m_pSO7_Proto->_send_cmd_SO7_CMD_READ_DATA_FROM_FPGA(1,12); + cdata[0]=static_cast(m_pSO7_Proto->g_machine.FPGAData); + m_pSO7_Proto->_send_cmd_SO7_CMD_READ_DATA_FROM_FPGA(1,13); + cdata[1]=static_cast(m_pSO7_Proto->g_machine.FPGAData); + m_pSO7_Proto->_send_cmd_SO7_CMD_READ_DATA_FROM_FPGA(1,14); + cdata[2]=static_cast(m_pSO7_Proto->g_machine.FPGAData); + m_pSO7_Proto->_send_cmd_SO7_CMD_READ_DATA_FROM_FPGA(1,15); + cdata[3]=static_cast(m_pSO7_Proto->g_machine.FPGAData); + if (true) + { + m_OutMessage.Format(_T("[Err Pos]%02X %02X %02X %02X.\r\n"),cdata[0],cdata[1],cdata[2],cdata[3]); + } + else + { + m_OutMessage.Format(_T("[Err Pos]%d %d %d.\r\n"),cdata[0]*256+cdata[1],cdata[2]*256+cdata[3],((cdata[0]*256+cdata[1])-(cdata[2]*256+cdata[3]))); + } + + CString strOutput; + m_edit_RepeTest.GetWindowText(strOutput); + strOutput += m_OutMessage; + OutputWithScroll(strOutput,m_edit_RepeTest); + break; + } +} CDialog::OnTimer(nIDEvent); } @@ -2507,8 +2531,6 @@ void CSO7_Move_Location::OutputWithScroll(const CString &strText,CEdit &edtOutpu edtOutput.SetSel(iCount, iCount); edtOutput.SetRedraw(TRUE); } - - //===================================================================================== void CSO7_Move_Location::OnBnClickedCheckSo7MotionOutputTime() { @@ -2521,7 +2543,22 @@ void CSO7_Move_Location::OnBnClickedCheckSo7MotionOutputTime() m_bOutputTime=FALSE; } } +//===================================================================================== +void CSO7_Move_Location::OnBnClickedButtonSo7MovetoClearAllLog() +{ + ((CEdit *)GetDlgItem(IDC_EDIT_REPRETEST))->SetWindowTextW(_T("")); +} - - +void CSO7_Move_Location::OnBnClickedCheckSo7MovetoFpgadata() +{ + if (((CButton *)GetDlgItem(IDC_CHECK_SO7_MOVETO_FPGADATA))->GetCheck()) + { + int iTime=10; + SetTimer(5,iTime,NULL); + } + else + { + KillTimer(5); + } +} diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_Move_Location.h b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_Move_Location.h index 1bbab19..b205d30 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_Move_Location.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_Move_Location.h @@ -98,4 +98,6 @@ public: afx_msg void OnBnClickedRadioSpeedFast(); afx_msg void OnBnClickedRadioSpeedSlow(); afx_msg void OnBnClickedRadioSpeedSystem(); + afx_msg void OnBnClickedButtonSo7MovetoClearAllLog(); + afx_msg void OnBnClickedCheckSo7MovetoFpgadata(); }; diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_Send_Parameter.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_Send_Parameter.cpp index 04c379c..223e022 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_Send_Parameter.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/SO7_Send_Parameter.cpp @@ -215,6 +215,24 @@ BOOL CSO7_Send_Parameter::OnInitDialog() ((CButton *)GetDlgItem(IDC_RADIO_CANVAS_POSTION_TIME))->SetCheck(false); ((CButton *)GetDlgItem(IDC_RADIO_CANVAS_SPEED_TIME))->SetCheck(true); + if (m_pSO7_Proto->g_machine.FirmwareVer==FirmwareVer_6_X) + { + ((CStatic *)GetDlgItem(IDC_STATIC_SPEED_PARA1))->SetWindowTextW(_T("加速度(0-255)")); + ((CStatic *)GetDlgItem(IDC_STATIC_SPEED_PARA2))->SetWindowTextW(_T("缓冲距离(0-255)")); + ((CStatic *)GetDlgItem(IDC_STATIC_SPEED_PARA3))->SetWindowTextW(_T("最低速率(0-255)")); + ((CStatic *)GetDlgItem(IDC_STATIC_SPEED_PARA4))->SetWindowTextW(_T("刷新周期(0-255)")); + ((CStatic *)GetDlgItem(IDC_STATIC_SPEED_PARA5))->SetWindowTextW(_T("最大速率(0.0-10.0)")); + } + else + { + ((CStatic *)GetDlgItem(IDC_STATIC_SPEED_PARA1))->SetWindowTextW(_T("加速度")); + ((CStatic *)GetDlgItem(IDC_STATIC_SPEED_PARA2))->SetWindowTextW(_T("最大速率 (高八位)")); + ((CStatic *)GetDlgItem(IDC_STATIC_SPEED_PARA3))->SetWindowTextW(_T("最低速率 (低八位)")); + ((CStatic *)GetDlgItem(IDC_STATIC_SPEED_PARA4))->SetWindowTextW(_T("刷新周期")); + ((CStatic *)GetDlgItem(IDC_STATIC_SPEED_PARA5))->SetWindowTextW(_T("减速距离")); + } + + return TRUE; // return TRUE unless you set the focus to a control } 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 283e321..a02ddf0 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 @@ -377,7 +377,8 @@ void CSO7_UtilDlg::OnBnClickedButtonStartSo7machine() csTmp.Format(("Firmware Version:[%s]"),m_pSO7_Proto->g_machine.FirmwareInfo); m_OutMessage=csTmp; OutputWithScroll(m_OutMessage,m_edMSG); - m_pSO7_Proto->_send_cmd_SO7_CMD_SET_GET_INTERRUPT_MSG_METHOD(E_GET_INTERRUPT_MSG_INQUIRY); + m_pSO7_Proto->g_machine.GetInterruptMsgMethod=E_GET_INTERRUPT_MSG_INQUIRY; + m_pSO7_Proto->_send_cmd_SO7_CMD_SET_GET_INTERRUPT_MSG_METHOD(m_pSO7_Proto->g_machine.GetInterruptMsgMethod); } ((CButton*)GetDlgItem(IDC_BUTTON_PROBE_ONOFF))->SetWindowTextW(_T("当前探头:激光")); ((CButton*)GetDlgItem(IDC_BUTTON_FIXTURE_ONOFF))->SetWindowTextW(_T("当前状态:夹具开")); @@ -1131,6 +1132,9 @@ void CSO7_UtilDlg::OnBnClickedButtonSo7TestZSignal() { m_TestZSignalNow=FALSE; ((CButton*)GetDlgItem(IDC_BUTTON_SO7_TEST_Z_SIGNAL))->SetWindowTextW(_T("Test Z Signal")); + m_ZsignalPosX=0; + m_ZsignalPosY=0; + m_ZsignalPosZ=0; } else { @@ -1402,9 +1406,9 @@ void CSO7_UtilDlg::OnTimer(UINT_PTR nIDEvent) m_pSO7_Proto->_send_cmd_SO7_CMD_READ_AXIS_XYZ(); m_pSO7_Proto->_send_cmd_SO7_CMD_READ_V_DATA(); - m_pSO7_Proto->g_machine.x._d_cur_pos_ = m_pSO7_Proto->ScaleToMM(m_pSO7_Proto->g_machine.x._scale_pos._long_, m_pSO7_Proto->g_machine.s_machine_config.x_axis._scale_resolution); - m_pSO7_Proto->g_machine.y._d_cur_pos_ = m_pSO7_Proto->ScaleToMM(m_pSO7_Proto->g_machine.y._scale_pos._long_, m_pSO7_Proto->g_machine.s_machine_config.y_axis._scale_resolution); - m_pSO7_Proto->g_machine.z._d_cur_pos_ = m_pSO7_Proto->ScaleToMM(m_pSO7_Proto->g_machine.z._scale_pos._long_, m_pSO7_Proto->g_machine.s_machine_config.z_axis._scale_resolution); + m_pSO7_Proto->g_machine.x._d_cur_pos_ = m_pSO7_Proto->ScaleToMM(m_pSO7_Proto->g_machine.x._scale_pos._long_-m_ZsignalPosX, m_pSO7_Proto->g_machine.s_machine_config.x_axis._scale_resolution); + m_pSO7_Proto->g_machine.y._d_cur_pos_ = m_pSO7_Proto->ScaleToMM(m_pSO7_Proto->g_machine.y._scale_pos._long_-m_ZsignalPosY, m_pSO7_Proto->g_machine.s_machine_config.y_axis._scale_resolution); + m_pSO7_Proto->g_machine.z._d_cur_pos_ = m_pSO7_Proto->ScaleToMM(m_pSO7_Proto->g_machine.z._scale_pos._long_-m_ZsignalPosZ, m_pSO7_Proto->g_machine.s_machine_config.z_axis._scale_resolution); m_X_Pos.Format(_T("%8ld"),(m_pSO7_Proto->g_machine.x._scale_pos._long_)); GetDlgItem(IDC_EDIT_X_AXIS)->SetWindowText(m_X_Pos); diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Videocard_SV4000E.cpp b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Videocard_SV4000E.cpp index a8f618c..002968c 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Videocard_SV4000E.cpp +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Videocard_SV4000E.cpp @@ -14,8 +14,7 @@ static const long SaturationDefault = 5000; static const long HueDefault = 5000; static const long SharpnessDefault = 4; -static BYTE g_DataBuffer[640*480*2]; -static BYTE g_DataBuffer_NAV[640*480*2]; +static BYTE g_DataBuffer[4][640*480*2]; // CVideocard_SV4000E dialog @@ -54,6 +53,7 @@ BEGIN_MESSAGE_MAP(CVideocard_SV4000E, CDialog) ON_BN_CLICKED(IDC_RADIO_SV4000E_CHANNEL2, &CVideocard_SV4000E::OnBnClickedRadioSV4000EChannel2) ON_BN_CLICKED(IDC_RADIO_SV4000E_CHANNEL3, &CVideocard_SV4000E::OnBnClickedRadioSV4000EChannel3) ON_BN_CLICKED(IDC_RADIO_SV4000E_CHANNEL4, &CVideocard_SV4000E::OnBnClickedRadioSV4000EChannel4) + ON_BN_CLICKED(IDC_RADIO_SV4000E_CHANNEL_ALL, &CVideocard_SV4000E::OnBnClickedRadioSv4000eChannelAll) END_MESSAGE_MAP() @@ -157,51 +157,36 @@ void CVideocard_SV4000E::OnBnClickedButtonSV4000ESavefile() void CVideocard_SV4000E::OnBnClickedRadioSV4000EChannel1() { #ifdef _RELEASE_FULL_VERSION - m_status=DXStopRawVideoCallback(m_device[m_Channel]); m_Channel=0; - m_status=DXSetRawVideoCallback(m_device[m_Channel], SV4000EAPrcVidCapCallBack, this); - m_status=DXStartRawVideoCallback(m_device[m_Channel],SV4000EAPrcVidCapCallBack,this); - //m_status=DXStartPreview(m_device[m_Channel], GetDlgItem(IDC_STATIC_SV4000E_PICTURE)->GetSafeHwnd(), NULL, 0); - - #endif //_RELEASE_FULL_VERSION } //=================================================== void CVideocard_SV4000E::OnBnClickedRadioSV4000EChannel2() { #ifdef _RELEASE_FULL_VERSION - m_status=DXStopRawVideoCallback(m_device[m_Channel]); m_Channel=1; - m_status=DXSetRawVideoCallback(m_device[m_Channel], SV4000EAPrcVidCapCallBack, this); - m_status=DXStartRawVideoCallback(m_device[m_Channel],SV4000EAPrcVidCapCallBack,this); - //m_status=DXStartPreview(m_device[m_Channel], GetDlgItem(IDC_STATIC_SV4000E_PICTURE)->GetSafeHwnd(), NULL, 0); - #endif //_RELEASE_FULL_VERSION } //=================================================== void CVideocard_SV4000E::OnBnClickedRadioSV4000EChannel3() { #ifdef _RELEASE_FULL_VERSION - m_status=DXStopRawVideoCallback(m_device[m_Channel]); m_Channel=2; - m_status=DXSetRawVideoCallback(m_device[m_Channel], SV4000EAPrcVidCapCallBack, this); - m_status=DXStartRawVideoCallback(m_device[m_Channel],SV4000EAPrcVidCapCallBack,this); - //m_status=DXStartPreview(m_device[m_Channel], GetDlgItem(IDC_STATIC_SV4000E_PICTURE)->GetSafeHwnd(), NULL, 0); - #endif //_RELEASE_FULL_VERSION } //=================================================== void CVideocard_SV4000E::OnBnClickedRadioSV4000EChannel4() { #ifdef _RELEASE_FULL_VERSION - m_status=DXStopRawVideoCallback(m_device[m_Channel]); m_Channel=3; - m_status=DXSetRawVideoCallback(m_device[m_Channel], SV4000EAPrcVidCapCallBack, this); - m_status=DXStartRawVideoCallback(m_device[m_Channel],SV4000EAPrcVidCapCallBack,this); - //m_status=DXStartPreview(m_device[m_Channel], GetDlgItem(IDC_STATIC_SV4000E_PICTURE)->GetSafeHwnd(), NULL, 0); #endif //_RELEASE_FULL_VERSION } +void CVideocard_SV4000E::OnBnClickedRadioSv4000eChannelAll() +{ + m_Channel=4; +} + //======================================= BOOL CVideocard_SV4000E::LoadVideocard() { @@ -217,9 +202,26 @@ BOOL CVideocard_SV4000E::LoadVideocard() { OpenDevice(i,m_device[i]); } - - m_status=DXSetRawVideoCallback(m_device[m_Channel], SV4000EAPrcVidCapCallBack, this); - m_status=DXStartRawVideoCallback(m_device[m_Channel],SV4000EAPrcVidCapCallBack,this); + if(m_device[0]) + { + m_status=DXSetRawVideoCallback(m_device[0], SV4000EAPrcVidCapCallBack0, this); + m_status=DXStartRawVideoCallback(m_device[0],SV4000EAPrcVidCapCallBack0,this); + } + if(m_device[1]) + { + m_status=DXSetRawVideoCallback(m_device[1], SV4000EAPrcVidCapCallBack1, this); + m_status=DXStartRawVideoCallback(m_device[1],SV4000EAPrcVidCapCallBack1,this); + } + if(m_device[2]) + { + m_status=DXSetRawVideoCallback(m_device[2], SV4000EAPrcVidCapCallBack2, this); + m_status=DXStartRawVideoCallback(m_device[2],SV4000EAPrcVidCapCallBack2,this); + } + if(m_device[3]) + { + m_status=DXSetRawVideoCallback(m_device[3], SV4000EAPrcVidCapCallBack3, this); + m_status=DXStartRawVideoCallback(m_device[3],SV4000EAPrcVidCapCallBack3,this); + } if((m_device[0]==NULL)||(m_device[2]==NULL)) { @@ -278,9 +280,10 @@ BOOL CVideocard_SV4000E::UnloadVideocard() { #ifdef _RELEASE_FULL_VERSION - m_status=DXStopRawVideoCallback(m_device[m_Channel]); for (int i=0;im_hDC,pBitBmp,0,480,pData,&bmpInfo,DIB_RGB_COLORS); - - if (m_bSaveFile) + if (m_Channel<4) { - SaveBitmapToFile(pBitBmp,m_SaveFile); - //CImage imgTemp; - //imgTemp.Attach(pBitBmp.operator HBITMAP()); - //imgTemp.Save(m_SaveFile); - m_bSaveFile=FALSE; - } - - if (!pMemDC->m_hDC) + ConvertVideoSubType(m_ImageBuffer,g_DataBuffer[m_Channel],m_ConvertColorType,m_bMirror); + pData = (BYTE *)m_ImageBuffer.ScanLine; + pBitBmp.CreateCompatibleBitmap(dc,640,480); + SetDIBits(dc->m_hDC,pBitBmp,0,480,pData,&bmpInfo,DIB_RGB_COLORS); + if (m_bSaveFile) + { + SaveBitmapToFile(pBitBmp,m_SaveFile); + //CImage imgTemp; + //imgTemp.Attach(pBitBmp.operator HBITMAP()); + //imgTemp.Save(m_SaveFile); + m_bSaveFile=FALSE; + } + if (!pMemDC->m_hDC) + { + pMemDC->CreateCompatibleDC(dc); + } + pOldBitmap = pMemDC->SelectObject(&pBitBmp); + nMode = pMemDC->SetBkMode(TRANSPARENT); + dc->BitBlt(0, 0, 640, 480, pMemDC,0,0, SRCCOPY); + } + else { - pMemDC->CreateCompatibleDC(dc); + if (!pMemDC->m_hDC) + { + pMemDC->CreateCompatibleDC(dc); + } + pBitBmp.CreateCompatibleBitmap(dc,640,480); + pOldBitmap = pMemDC->SelectObject(&pBitBmp); + nMode = pMemDC->SetBkMode(TRANSPARENT); + for (int i=0;i<2;i++) + { + for (int j=0;j<2;j++) + { + ConvertVideoSubType(m_ImageBuffer,g_DataBuffer[i*2+j],m_ConvertColorType,m_bMirror); + pData = (BYTE *)m_ImageBuffer.ScanLine; + SetDIBits(dc->m_hDC,pBitBmp,0,480,pData,&bmpInfo,DIB_RGB_COLORS); + + pMemDC->SelectObject(&pBitBmp); + pMemDC->SetBkMode(TRANSPARENT); + dc->SetStretchBltMode(COLORONCOLOR); + dc->StretchBlt(320*j,240*i,320,240,pMemDC,0,0,bmpInfo.bmiHeader.biWidth,bmpInfo.bmiHeader.biHeight,SRCCOPY); + } + } + if (m_bSaveFile) + { + HDC imgDC = ::CreateCompatibleDC(dc->m_hDC);//创建兼容DC + HBITMAP hBitMap = ::CreateCompatibleBitmap(dc->m_hDC,640,480); + HBITMAP hOldMap = (HBITMAP)::SelectObject(imgDC, hBitMap); + ::BitBlt(imgDC, 0, 0,640,480, dc->m_hDC, 0, 0, SRCCOPY); + CImage imgTemp; + imgTemp.Attach(hBitMap); + imgTemp.Save(m_SaveFile,Gdiplus::ImageFormatBMP); + imgTemp.Detach(); + ::SelectObject(imgDC, hOldMap); + m_bSaveFile=FALSE; + } } - CBitmap* pOldBitmap = pMemDC->SelectObject(&pBitBmp); - nMode = pMemDC->SetBkMode(TRANSPARENT); - - dc->BitBlt(0, 0, 640, 480, pMemDC,0,0, SRCCOPY); - pMemDC->SetBkMode(nMode); pMemDC->SelectObject(pOldBitmap); ReleaseDC(pMemDC); @@ -538,21 +577,38 @@ void CVideocard_SV4000E::OnTimer(UINT_PTR nIDEvent) } //==================================SV4000E===================================== -unsigned CALLBACK SV4000EAPrcVidCapCallBack(unsigned char* buffer, unsigned colorSpace, unsigned width, unsigned height, unsigned bytesWidth, void* context) +unsigned CALLBACK SV4000EAPrcVidCapCallBack0(unsigned char* buffer, unsigned colorSpace, unsigned width, unsigned height, unsigned bytesWidth, void* context) { UNREFERENCED_PARAMETER(colorSpace); UNREFERENCED_PARAMETER(context); UNREFERENCED_PARAMETER(bytesWidth); - memcpy(g_DataBuffer,(BYTE*)buffer,width*height*2); + memcpy(g_DataBuffer[0],(BYTE*)buffer,width*height*2); return 0; } //==================================SV4000E===================================== -unsigned CALLBACK SV4000EAPrcVidCapCallBackNav(unsigned char* buffer, unsigned colorSpace, unsigned width, unsigned height, unsigned bytesWidth, void* context) +unsigned CALLBACK SV4000EAPrcVidCapCallBack1(unsigned char* buffer, unsigned colorSpace, unsigned width, unsigned height, unsigned bytesWidth, void* context) { UNREFERENCED_PARAMETER(colorSpace); UNREFERENCED_PARAMETER(context); UNREFERENCED_PARAMETER(bytesWidth); - memcpy(g_DataBuffer_NAV,(BYTE*)buffer,width*height*2); + memcpy(g_DataBuffer[1],(BYTE*)buffer,width*height*2); + return 0; +} +//==================================SV4000E===================================== +unsigned CALLBACK SV4000EAPrcVidCapCallBack2(unsigned char* buffer, unsigned colorSpace, unsigned width, unsigned height, unsigned bytesWidth, void* context) +{ + UNREFERENCED_PARAMETER(colorSpace); + UNREFERENCED_PARAMETER(context); + UNREFERENCED_PARAMETER(bytesWidth); + memcpy(g_DataBuffer[2],(BYTE*)buffer,width*height*2); + return 0; +} +//==================================SV4000E===================================== +unsigned CALLBACK SV4000EAPrcVidCapCallBack3(unsigned char* buffer, unsigned colorSpace, unsigned width, unsigned height, unsigned bytesWidth, void* context) +{ + UNREFERENCED_PARAMETER(colorSpace); + UNREFERENCED_PARAMETER(context); + UNREFERENCED_PARAMETER(bytesWidth); + memcpy(g_DataBuffer[3],(BYTE*)buffer,width*height*2); return 0; }; - diff --git a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Videocard_SV4000E.h b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Videocard_SV4000E.h index 3ca620a..0ac1598 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Videocard_SV4000E.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/Videocard_SV4000E.h @@ -1,8 +1,10 @@ #pragma once // CVideocard_SV4000E dialog -unsigned CALLBACK SV4000EAPrcVidCapCallBack(unsigned char* buffer, unsigned colorSpace, unsigned width, unsigned height, unsigned bytesWidth, void* context); -unsigned CALLBACK SV4000EAPrcVidCapCallBackNav(unsigned char* buffer, unsigned colorSpace, unsigned width, unsigned height, unsigned bytesWidth, void* context); +unsigned CALLBACK SV4000EAPrcVidCapCallBack0(unsigned char* buffer, unsigned colorSpace, unsigned width, unsigned height, unsigned bytesWidth, void* context); +unsigned CALLBACK SV4000EAPrcVidCapCallBack1(unsigned char* buffer, unsigned colorSpace, unsigned width, unsigned height, unsigned bytesWidth, void* context); +unsigned CALLBACK SV4000EAPrcVidCapCallBack2(unsigned char* buffer, unsigned colorSpace, unsigned width, unsigned height, unsigned bytesWidth, void* context); +unsigned CALLBACK SV4000EAPrcVidCapCallBack3(unsigned char* buffer, unsigned colorSpace, unsigned width, unsigned height, unsigned bytesWidth, void* context); class CVideocard_SV4000E : public CDialog { @@ -55,4 +57,5 @@ public: afx_msg void OnBnClickedRadioSV4000EChannel3(); afx_msg void OnBnClickedRadioSV4000EChannel4(); + afx_msg void OnBnClickedRadioSv4000eChannelAll(); }; \ No newline at end of file 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 689f17e..2e7d9f0 100644 --- a/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h +++ b/PcDmis/Base/Interfac/Msi/Hsi/Tools/UsbUtility/UsbUtil/resource.h @@ -789,6 +789,8 @@ #define IDC_BUTTON_SV4000E_SAVEFILE 1683 #define IDC_STATIC_SV4000E_PICTURE 1684 #define IDC_CHECK_SO7_MOTION_OUTPUT_TIME 1685 +#define IDC_RADIO_SV4000E_CHANNEL5 1685 +#define IDC_RADIO_SV4000E_CHANNEL_ALL 1685 #define IDC_MFCBUTTON_SO7_PROGRAM_X_LEFT 1686 #define IDC_MFCBUTTON_SO7_PROGRAM_X_RIGHT 1687 #define IDC_MFCBUTTON_SO7_PROGRAM_Y_FRONTWARD 1688 @@ -848,6 +850,7 @@ #define IDC_BUTTON1 1794 #define IDC_BUTTON_SO7_SENDDATATOFPGA 1794 #define IDC_BUTTON_TESA_STAR_START_MACHINE 1794 +#define IDC_BUTTON_SO7_MOVETO_CLEAR_ALL_LOG 1794 #define IDC_COMBO_RWDATA_ADDR 1795 #define IDC_EDIT_MOTION_SPEEDY 1796 #define IDC_COMBO_OUTPORT_NUMBER 1796 @@ -872,6 +875,12 @@ #define IDC_BUTTONIDC_BUTTON_TESA_STAR_READ_POS 1812 #define IDC_EDIT_MOVETO_DEG2 1813 #define IDC_EDIT_MOVETO_DEGA 1813 +#define IDC_CHECK_SO7_MOVETO_FPGADATA 1813 +#define IDC_STATIC_SPEED_PARA5 1814 +#define IDC_STATIC_SPEED_PARA2 1815 +#define IDC_STATIC_SPEED_PARA1 1816 +#define IDC_STATIC_SPEED_PARA3 1817 +#define IDC_STATIC_SPEED_PARA4 1818 // Next default values for new objects // @@ -879,7 +888,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 189 #define _APS_NEXT_COMMAND_VALUE 32771 -#define _APS_NEXT_CONTROL_VALUE 1813 +#define _APS_NEXT_CONTROL_VALUE 1819 #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 3fc2e2a594a8ea2c99ec2737d21aad1f8e5062df..b99ec87c8db0d7d1e287065d8ec4807bbf297ede 100644 GIT binary patch delta 14810 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¥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 delta 17873 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