新增变倍时间输出,统一CMD_H文件。

This commit is contained in:
TAO Cheng
2013-11-12 14:37:21 +08:00
parent 842c95f8b1
commit 24ba06adf7
16 changed files with 912 additions and 371 deletions
+284 -265
View File
@@ -1,352 +1,350 @@
#ifndef _CMD_H_H_
#define _CMD_H_H_
enum FUN_CMD
{
CT_FUN,
CT_MOTOR,
CT_SCALE,
CT_LIGHT,
CT_INT,
CT_DATA
CT_FUN,
CT_MOTOR,
CT_SCALE,
CT_LIGHT,
CT_INT,
CT_DATA
};
enum MOTOR_CMD
{
CT_MOVEX,
CT_MOVEY,
CT_MOVEZ,
CT_MOVEX,
CT_MOVETOX,
CT_MOVETOY,
CT_MOVETOZ,
CT_MOVEY,
CT_MOVETOFX,
CT_MOVETOFY,
CT_MOVETOFZ,
CT_MOVEZ,
CT_MOVETOSX,
CT_MOVETOSY,
CT_MOVETOSZ,
CT_MOVETOAX,
CT_MOVETOAY,
CT_MOVETOAZ,
CT_MOVETOX,
CT_MOVETOY,
CT_MOVETOZ,
CT_MOVETOASX,
CT_MOVETOASY,
CT_MOVETOASZ,
CT_MOVETOFX,
CT_MOVETOFY,
CT_MOVETOFZ,
CT_MOVETOAFX,
CT_MOVETOAFY,
CT_MOVETOAFZ,
CT_MOVETOSX,
CT_MOVETOSY,
CT_MOVETOSZ,
CT_RESETXYZ,
CT_RESETX,
CT_RESETY,
CT_RESETZ,
CT_MOVETOAX,
CT_MOVETOAY,
CT_MOVETOAZ,
CT_STOPA,
CT_STOPX,
CT_STOPY,
CT_STOPZ,
CT_MOVETOASX,
CT_MOVETOASY,
CT_MOVETOASZ,
CT_STOPFA,
CT_STOPFX,
CT_STOPFY,
CT_STOPFZ,
CT_MOVETOAFX,
CT_MOVETOAFY,
CT_MOVETOAFZ,
CT_SET_SPEEDX,
CT_SET_SPEEDY,
CT_SET_SPEEDZ,
CT_RESETXYZ,
CT_RESETX,
CT_RESETY,
CT_RESETZ,
CT_READ_SPEEDX,
CT_READ_SPEEDY,
CT_READ_SPEEDZ,
CT_STOPA,
CT_STOPX,
CT_STOPY,
CT_STOPZ,
CT_SET_PRECISIONX,
CT_SET_PRECISIONY,
CT_SET_PRECISIONZ,
CT_STOPFA,
CT_STOPFX,
CT_STOPFY,
CT_STOPFZ,
CT_SET_DEFAULTX,
CT_SET_DEFAULTY,
CT_SET_DEFAULTZ,
CT_SET_SPEEDX,
CT_READ_PRECISIONX,
CT_READ_PRECISIONY,
CT_READ_PRECISIONZ,
CT_RESET,
CT_MOVEV,
CT_MOVETOV,
CT_RESETV,
CT_STOPV,
CT_SET_SPEEDV,
CT_READ_SPEEDV,
CT_SET_DEFAULTV,
CT_TESTV,
CT_TSTOPV,
CT_TEST_STOP,
CT_READ_V,
CT_SET_SPEEDY,
CT_M_SPEED,
CT_M_DIS,
CT_M_FRESH,
CT_M_CMD,
CT_M_READ_DAT,
CT_SET_MOTOR_CAL,
CT_M_SWITCH_START,
CT_M_SWITCH_CLOSE,
CT_M_SWITCH_TOP,
CT_M_SWITCH_BOM,
CT_M_SWITCH_RESET,
CT_M_SWITCH_VALUE,
CT_M_RESET_LEFT,
CT_M_RESET_RIGHT,
CT_SET_SPEEDZ,
CT_READ_SPEEDX,
CT_READ_SPEEDY,
CT_READ_SPEEDZ,
CT_SET_PRECISIONX,
CT_SET_PRECISIONY,
CT_SET_PRECISIONZ,
CT_SET_DEFAULTX,
CT_SET_DEFAULTY,
CT_SET_DEFAULTZ,
CT_READ_PRECISIONX,
CT_READ_PRECISIONY,
CT_READ_PRECISIONZ,
CT_RESET,
CT_MOVEV,
CT_MOVETOV,
CT_RESETV,
CT_STOPV,
CT_SET_SPEEDV,
CT_READ_SPEEDV,
CT_SET_DEFAULTV,
CT_TESTV,
CT_TSTOPV,
CT_TEST_STOP,
CT_READ_V,
CT_M_SPEED,
CT_M_DIS,
CT_M_FRESH,
CT_M_CMD,
CT_M_READ_DAT,
CT_SET_MOTOR_CAL,
CT_M_SWITCH_START,
CT_M_SWITCH_CLOSE,
CT_M_SWITCH_TOP,
CT_M_SWITCH_BOM,
CT_M_SWITCH_RESET,
CT_M_SWITCH_VALUE,
CT_M_RESET_LEFT,
CT_M_RESET_RIGHT,
CT_LASE_TIMMER_ON,
CT_LASE_TIMMER_OFF,
CT_M_PROBE_ON,
CT_M_PROBE_OFF,
CT_MOVETOXYZ,
CT_MOVETOXYZ_LASE,
CT_GET_LASE,
CT_MOVETOXYZV,
CT_M_LASE_ON,
CT_M_LASE_OFF,
CT_M_BCL_ON,
CT_M_BCL_OFF,
CT_MOVETOXYZ_JM,
CT_READ_MOTOR_CAL,
CT_END
CT_LASE_TIMMER_ON,
CT_LASE_TIMMER_OFF,
CT_M_PROBE_ON,
CT_M_PROBE_OFF,
CT_MOVETOXYZ,
CT_MOVETOXYZ_LASE,
CT_GET_LASE,
CT_MOVETOXYZV,
CT_M_LASE_ON,
CT_M_LASE_OFF,
CT_M_BCL_ON,
CT_M_BCL_OFF,
CT_MOVETOXYZ_JM,
CT_READ_MOTOR_CAL,
CT_MOVEXY,
CT_GET_INTERRUPT_MSG,
CT_SET_INTERRUPT_MSG,
CT_SET_GETINTERRUPTMSG_METHOD,
CT_END
};
enum SCALE_CMD
{
CT_SEC_FLAG,
CT_SEC_FLAG,
CT_SCALEX,
CT_SCALEY,
CT_SCALEZ,
CT_SCALEX,
CT_SCALEY,
CT_SCALEZ,
CT_SECTIONX,
CT_SECTIONY,
CT_SECTIONZ,
CT_SECTIONX,
CT_SECTIONY,
CT_SECTIONZ,
CT_SET_AXISX,
CT_SET_AXISY,
CT_SET_AXISZ,
CT_SET_AXISX,
CT_SET_AXISY,
CT_SET_AXISZ,
CT_SET_SECTIONX,
CT_SET_SECTIONY,
CT_SET_SECTIONZ,
CT_SET_SECTIONX,
CT_SET_SECTIONY,
CT_SET_SECTIONZ,
CT_X_BEGIN,
CT_Y_BEGIN,
CT_Z_BEGIN,
CT_X_BEGIN,
CT_Y_BEGIN,
CT_Z_BEGIN,
CT_X_SECTION_END,
CT_Y_SECTION_END,
CT_Z_SECTION_END,
CT_X_SECTION_END,
CT_Y_SECTION_END,
CT_Z_SECTION_END,
CT_X_SECTION_DEC,
CT_Y_SECTION_DEC,
CT_Z_SECTION_DEC,
CT_X_SECTION_DEC,
CT_Y_SECTION_DEC,
CT_Z_SECTION_DEC,
CT_SET_SECTION_X,
CT_SET_SECTION_Y,
CT_SET_SECTION_Z,
CT_SET_SECTION_X,
CT_SET_SECTION_Y,
CT_SET_SECTION_Z,
CT_PROBE_FLAG,
CT_SET_LINE_X,
CT_SET_LINE_Y,
CT_SET_LINE_Z,
CT_SET_PROBE_LINE,
CT_SET_PROBE_SECTION,
CT_SET_VERNO,
CT_SET_RESET_FLAG,
CT_GET_RESET_FLAG
CT_PROBE_FLAG,
CT_SET_LINE_X,
CT_SET_LINE_Y,
CT_SET_LINE_Z,
CT_SET_PROBE_LINE,
CT_SET_PROBE_SECTION,
CT_SET_VERNO,
CT_SET_RESET_FLAG,
CT_GET_RESET_FLAG,
CT_GET_SYSTEM_VER_INFO,
CT_SCALE_TOTAL=255
};
enum LIGHT_CMD
{
CT_LIGHT1_SIZE,
CT_LIGHT2_SIZE,
CT_LIGHT3_SIZE,
CT_LIGHT4_SIZE,
CT_LIGHT1_SIZE,
CT_LIGHT2_SIZE,
CT_LIGHT3_SIZE,
CT_LIGHT4_SIZE,
CT_LIGHT1_SWITCH,
CT_LIGHT2_SWITCH,
CT_LIGHT3_SWITCH,
CT_LIGHT4_SWITCH,
CT_LIGHT5_SWITCH,
CT_LIGHT_CMD
CT_LIGHT1_SWITCH,
CT_LIGHT2_SWITCH,
CT_LIGHT3_SWITCH,
CT_LIGHT4_SWITCH,
CT_LIGHT5_SWITCH,
CT_LIGHT_CMD
};
enum INT_CMD
{
CT_STOPMX,
CT_STOPMY,
CT_STOPMZ,
CT_STOPXYZ,
CT_STOPMX,
CT_STOPMY,
CT_STOPMZ,
CT_STOPXYZ,
CT_ENDXYZ,
CT_ENDXYZ,
CT_SWITCHX,
CT_SWITCHY,
CT_SWITCHZ,
CT_SWITCHX,
CT_SWITCHY,
CT_SWITCHZ,
CT_PROBE,
CT_PROBE_SWITCH,
CT_XYZLASE,
CT_SEND_XYZLASE,
CT_END1
CT_PROBE,
CT_PROBE_SWITCH,
CT_XYZLASE,
CT_SEND_XYZLASE,
CT_END1
};
enum PRO_DATA
{
CT_READ_AXISXYZ,
CT_READ_AXISX,
CT_READ_AXISY,
CT_READ_AXISZ,
CT_READ_AXISXYZ,
CT_READ_AXISX,
CT_READ_AXISY,
CT_READ_AXISZ,
CT_READ_PROBEXYZ,
CT_READ_PROBEX,
CT_READ_PROBEY,
CT_READ_PROBEZ,
CT_READ_PROBEXYZ,
CT_READ_PROBEX,
CT_READ_PROBEY,
CT_READ_PROBEZ,
CT_SAVE_MOTORX1,
CT_SAVE_MOTORX2,
CT_SAVE_MOTORX3,
CT_SAVE_MOTORX4,
CT_SAVE_MOTORX5,
CT_SAVE_MOTORX1,
CT_SAVE_MOTORX2,
CT_SAVE_MOTORX3,
CT_SAVE_MOTORX4,
CT_SAVE_MOTORX5,
CT_SAVE_MOTORY1,
CT_SAVE_MOTORY2,
CT_SAVE_MOTORY3,
CT_SAVE_MOTORY4,
CT_SAVE_MOTORY5,
CT_SAVE_MOTORY1,
CT_SAVE_MOTORY2,
CT_SAVE_MOTORY3,
CT_SAVE_MOTORY4,
CT_SAVE_MOTORY5,
CT_SAVE_MOTORZ1,
CT_SAVE_MOTORZ2,
CT_SAVE_MOTORZ3,
CT_SAVE_MOTORZ4,
CT_SAVE_MOTORZ5,
CT_SAVE_MOTORZ1,
CT_SAVE_MOTORZ2,
CT_SAVE_MOTORZ3,
CT_SAVE_MOTORZ4,
CT_SAVE_MOTORZ5,
CT_READ_MOTORX1,
CT_READ_MOTORX2,
CT_READ_MOTORX3,
CT_READ_MOTORX4,
CT_READ_MOTORX5,
CT_READ_MOTORX1,
CT_READ_MOTORX2,
CT_READ_MOTORX3,
CT_READ_MOTORX4,
CT_READ_MOTORX5,
CT_READ_MOTORY1,
CT_READ_MOTORY2,
CT_READ_MOTORY3,
CT_READ_MOTORY4,
CT_READ_MOTORY5,
CT_READ_MOTORY1,
CT_READ_MOTORY2,
CT_READ_MOTORY3,
CT_READ_MOTORY4,
CT_READ_MOTORY5,
CT_READ_MOTORZ1,
CT_READ_MOTORZ2,
CT_READ_MOTORZ3,
CT_READ_MOTORZ4,
CT_READ_MOTORZ5,
CT_READ_MOTORZ1,
CT_READ_MOTORZ2,
CT_READ_MOTORZ3,
CT_READ_MOTORZ4,
CT_READ_MOTORZ5,
CT_SAVE_SCALEX,
CT_SAVE_SCALEY,
CT_SAVE_SCALEZ,
CT_SAVE_SCALEX,
CT_SAVE_SCALEY,
CT_SAVE_SCALEZ,
CT_READ_SCALEX,
CT_READ_SCALEY,
CT_READ_SCALEZ,
CT_READ_SCALEX,
CT_READ_SCALEY,
CT_READ_SCALEZ,
CT_SAVE_SECTION_FLAGX,
CT_SAVE_SECTION_FLAGY,
CT_SAVE_SECTION_FLAGZ,
CT_SAVE_SECTION_FLAGX,
CT_SAVE_SECTION_FLAGY,
CT_SAVE_SECTION_FLAGZ,
CT_READ_SECTION_FLAGX,
CT_READ_SECTION_FLAGY,
CT_READ_SECTION_FLAGZ,
CT_READ_SECTION_FLAGX,
CT_READ_SECTION_FLAGY,
CT_READ_SECTION_FLAGZ,
CT_SAVE_PROBE,
CT_READ_PROBE,
CT_SAVE_PROBE,
CT_READ_PROBE,
CT_SAVE_SEC_REALX,
CT_SAVE_SEC_INTX,
CT_SAVE_SEC_SCALEX,
CT_SAVE_SEC_REALX,
CT_SAVE_SEC_INTX,
CT_SAVE_SEC_SCALEX,
CT_SAVE_SEC_REALY,
CT_SAVE_SEC_INTY,
CT_SAVE_SEC_SCALEY,
CT_SAVE_SEC_REALY,
CT_SAVE_SEC_INTY,
CT_SAVE_SEC_SCALEY,
CT_SAVE_SEC_REALZ,
CT_SAVE_SEC_INTZ,
CT_SAVE_SEC_SCALEZ,
CT_SAVE_SEC_REALZ,
CT_SAVE_SEC_INTZ,
CT_SAVE_SEC_SCALEZ,
CT_READ_SEC_REALX,
CT_READ_SEC_INTX,
CT_READ_SEC_SCALEX,
CT_READ_SEC_REALX,
CT_READ_SEC_INTX,
CT_READ_SEC_SCALEX,
CT_READ_SEC_REALY,
CT_READ_SEC_INTY,
CT_READ_SEC_SCALEY,
CT_READ_SEC_REALY,
CT_READ_SEC_INTY,
CT_READ_SEC_SCALEY,
CT_READ_SEC_REALZ,
CT_READ_SEC_INTZ,
CT_READ_SEC_SCALEZ,
CT_READ_SEC_REALZ,
CT_READ_SEC_INTZ,
CT_READ_SEC_SCALEZ,
CT_READ_SYSTEM,
CT_READ_XSECTION_INT,
CT_READ_XSECTION_REAL,
CT_READ_XSECTION_SCALE,
CT_READ_SYSTEM,
CT_READ_XSECTION_INT,
CT_READ_XSECTION_REAL,
CT_READ_XSECTION_SCALE,
CT_READ_YSECTION_INT,
CT_READ_YSECTION_REAL,
CT_READ_YSECTION_SCALE,
CT_READ_YSECTION_INT,
CT_READ_YSECTION_REAL,
CT_READ_YSECTION_SCALE,
CT_READ_ZSECTION_INT,
CT_READ_ZSECTION_REAL,
CT_READ_ZSECTION_SCALE,
CT_READ_ZSECTION_INT,
CT_READ_ZSECTION_REAL,
CT_READ_ZSECTION_SCALE,
CT_WRITE_SYSTEM,
CT_WRITE_XSECTION_INT,
CT_WRITE_XSECTION_REAL,
CT_WRITE_XSECTION_SCALE,
CT_WRITE_SYSTEM,
CT_WRITE_XSECTION_INT,
CT_WRITE_XSECTION_REAL,
CT_WRITE_XSECTION_SCALE,
CT_WRITE_YSECTION_INT,
CT_WRITE_YSECTION_REAL,
CT_WRITE_YSECTION_SCALE,
CT_WRITE_YSECTION_INT,
CT_WRITE_YSECTION_REAL,
CT_WRITE_YSECTION_SCALE,
CT_WRITE_ZSECTION_INT,
CT_WRITE_ZSECTION_REAL,
CT_WRITE_ZSECTION_SCALE,
CT_WRITE_ZSECTION_INT,
CT_WRITE_ZSECTION_REAL,
CT_WRITE_ZSECTION_SCALE,
CT_READ_AXISV,
CT_READ_ADC,
CT_READ_ADC_INDEX,
CT_READ_AXISV,
CT_READ_ADC,
CT_READ_ADC_INDEX,
CT_PRO_DAT_END,
CT_CLEAR_PROBE_FLAG,
CT_READ_IO_DAT,
CT_WRITE_IO_DAT
CT_PRO_DAT_END,
CT_CLEAR_PROBE_FLAG,
CT_READ_IO_DAT,
CT_WRITE_IO_DAT,
CT_DATA_TOTAL=255
};
enum EHOME_MODE
@@ -360,4 +358,25 @@ enum EHOME_MODE
CT_HOME_YZ,
CT_HOME_TOATAL=255
};
};
enum E_GET_INTERRUPT_MSG_METHOD
{
E_GET_INTERRUPT_MSG_INTERRUPT=0,
E_GET_INTERRUPT_MSG_INQUIRY,
E_GET_INTERRUPT_MSG_TOATAL=255
};
enum E_INTERRUPT_MSG
{
EMSG_STOPXYZ_1_MOVETOXYZ=0,
EMSG_STOPXYZ_6_MOVETOV,
EMSG_STOPXYZ_7_TESTV,//Home V
EMSG_XYZLASE_1_MOVETOXYZ_LASE,
EMSG_SEND_XYZLASE_1_GET_LASE,
EMSG_PROBE_SWITCH_1,
EMSG_PROBE_1,
EMSG_FINISHED_TYPE_TOATAL=20
};
#endif
@@ -200,6 +200,10 @@ void CSO7_Proto::_process_rcv_transfer_data(int iEP)
case CT_TEST_STOP:
_process_SO7_CMD_READ_ZOOM_MOTION_STATUS();
break;
case CT_GET_INTERRUPT_MSG:
_process_SO7_CMD_GET_INTERRUPT_MSG(ep_buff[EP_02_CMD_IDX]._save_send_cmd1);
break;
default:
TRACE1("_process_rcv_transfer_data() : Unknown ep_buff[EP_02_CMD_IDX]._save_send_cmd : %X \r\n", ep_buff[EP_02_CMD_IDX]._save_send_cmd);
TRACE1("_process_rcv_transfer_data() : Unknown ep_buff[EP_81_DATA_IDX]._buffer[0] : %X \r\n", ep_buff[EP_81_DATA_IDX]._buffer[0]);
@@ -250,7 +254,9 @@ void CSO7_Proto::_process_rcv_transfer_data(int iEP)
case CT_GET_RESET_FLAG:
_process_SO7_CMD_GET_GET_RESET_FLAG();
break;
case CT_GET_SYSTEM_VER_INFO:
_process_SO7_CMD_READ_FIRMWARE_VERSION_INFO();
break;
default:
TRACE1("_process_rcv_transfer_data() : Unknown ep_buff[EP_02_CMD_IDX]._save_send_cmd : %X \r\n", ep_buff[EP_02_CMD_IDX]._save_send_cmd);
TRACE1("_process_rcv_transfer_data() : Unknown ep_buff[EP_81_DATA_IDX]._buffer[0] : %X \r\n", ep_buff[EP_81_DATA_IDX]._buffer[0]);
@@ -448,6 +454,15 @@ CSO7_Proto::CSO7_Proto()
ep_buff[i]._hProtoPending = false;
ep_buff[i]._event = NULL;
};
for (int i=0;i<20;i++)
{
for (int j=0;j<2;j++)
{
g_machine.GetInterruptMsg[i][j]=0;
}
}
g_machine.GetInterruptMsgMethod=E_GET_INTERRUPT_MSG_INTERRUPT;
g_machine.IsSupportReadInterrputMsg=FALSE;
g_machine.IsOffline=TRUE;
g_machine.FPGAData=0;
g_machine.x._Move_Speed_Gear =2;
@@ -2996,14 +3011,14 @@ SSI_STATUS_MOTION CSO7_Proto::so7_motion_set_position_xyz(double dX, double dY,
const long lMaxLoopCnt = 5000/lSleep; // use max homing time of 20 seconds
long lLoopCnt = 0;
Sleep(lSleep);
while (g_machine.InterruptFlag[0]!=CT_STOPXYZ && lLoopCnt < lMaxLoopCnt)
{
BOOL IsFinished(FALSE);
do
{
so7_motion_is_finished(EMSG_STOPXYZ_1_MOVETOXYZ,IsFinished);
Sleep(lSleep);
_send_cmd_SO7_CMD_READ_INTERRUPT_MESSAGE();
++lLoopCnt;
}
g_machine.InterruptFlag[0]=0;
} while (g_machine.InterruptFlag[0]!=CT_STOPXYZ && lLoopCnt < lMaxLoopCnt);
TRACE1("Presettle Time: %lf\n", TimeInSecs());
//WaitForSettleXYZZM();
TRACE1("Postsettle Time: %lf\n", TimeInSecs());
@@ -3012,7 +3027,34 @@ SSI_STATUS_MOTION CSO7_Proto::so7_motion_set_position_xyz(double dX, double dY,
return SSI_STATUS_MOTION_NORMAL;
};
//==================================================================
SSI_STATUS_MOTION CSO7_Proto::so7_motion_is_finished(char MotionType,BOOL& IsFinished)
{
WaitForSingleObject(g_hHomedEvent, INFINITE); // machine start and homing is done
BOOL bIsFinised(FALSE);
if (g_machine.GetInterruptMsgMethod==E_GET_INTERRUPT_MSG_INQUIRY)
{
_send_cmd_SO7_CMD_GET_INTERRUPT_MSG(MotionType);
if (g_machine.GetInterruptMsg[MotionType][0]==CT_STOPXYZ)
{
bIsFinised=TRUE;
_send_cmd_SO7_CMD_SET_INTERRUPT_MSG(MotionType,0);
}
}
else
{
_send_cmd_SO7_CMD_READ_INTERRUPT_MESSAGE();
if (g_machine.InterruptFlag[0]==CT_STOPXYZ)
{
bIsFinised=TRUE;
g_machine.InterruptFlag[0]=0;
}
}
IsFinished=bIsFinised;
return SSI_STATUS_MOTION_NORMAL;
};
//========================================================================
// This speed setting will be carried out in the next DCC move
@@ -3500,8 +3542,7 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_MOVE_TO_POS_XYZ(char ProbeType)
pSO7_CMD_02->s_SO7_CMD_MOVE_TO_XYZ.data[8]=(g_machine.z._pos_fixed._char_[0]);
}
ep_buff[EP_02_CMD_IDX]._size = 0x0C;
ep_buff[EP_02_CMD_IDX]._size = 0x0E;
ep_buff[EP_82_DATA_IDX]._size = 0x45;
g_hEP02_Thread_State=THREAD_RUNNING_STATE2;
@@ -3893,7 +3934,55 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_SET_ZOOM_SPEED(char xyz_gear)
return SSI_STATUS_MOTION_NORMAL;
}
//=============================================================
SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_SET_CONSTANT_SPEED(int iSpeed,char axis_type,char xyz_gear)
{
WaitForSingleObject(g_hEP02_Serial_Mutex, INFINITE);
memset(ep_buff[EP_02_CMD_IDX]._buffer, 0x00, MAX_BUFF_SIZE);
*(ep_buff[EP_02_CMD_IDX]._buffer) = CT_MOTOR;
int iDeceDistance = 0;
if(axis_type == 0)
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_SET_SPEEDX;
else if(axis_type == 1)
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_SET_SPEEDY;
else if(axis_type == 2)
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_SET_SPEEDZ;
*(ep_buff[EP_02_CMD_IDX]._buffer+2) = xyz_gear+1;
*(ep_buff[EP_02_CMD_IDX]._buffer+3) = 0;
*(ep_buff[EP_02_CMD_IDX]._buffer+4) = 0;
if (iSpeed>255)
{
BYTE MaxSpeed(255);
*(ep_buff[EP_02_CMD_IDX]._buffer+5) = static_cast<char>((iSpeed%256)+1);
*(ep_buff[EP_02_CMD_IDX]._buffer+6) = static_cast<char>(MaxSpeed);
}
else
{
*(ep_buff[EP_02_CMD_IDX]._buffer+5) = static_cast<char>(iSpeed);
*(ep_buff[EP_02_CMD_IDX]._buffer+6) = 0;
}
iDeceDistance =0;
*(ep_buff[EP_02_CMD_IDX]._buffer+7) =static_cast<char>(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<char>((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<char>((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<char>(iDeceDistance%10);
*(ep_buff[EP_02_CMD_IDX]._buffer+10)=*(ep_buff[EP_02_CMD_IDX]._buffer+10) & 0x0f;
ep_buff[EP_02_CMD_IDX]._size = 0x0b;
ep_buff[EP_82_DATA_IDX]._size = 0x45;
g_hEP02_Thread_State=THREAD_RUNNING_STATE2;
_do_single_threaded_usb_comm(EP_02_CMD_IDX);
ReleaseMutex(g_hEP02_Serial_Mutex);
return SSI_STATUS_MOTION_NORMAL;
}
//=============================================================
SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_SET_SPEED_PARAMETER(char axis_type,char xyz_gear)
@@ -4271,6 +4360,104 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_READ_DATA_FROM_FPGA(char axis_ty
ReleaseMutex(g_hEP02_Serial_Mutex);
return SSI_STATUS_MOTION_NORMAL;
}
//==============================================================
SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_READ_FIRMWARE_VERSION_INFO()
{
WaitForSingleObject(g_hEP02_Serial_Mutex, INFINITE);
memset(ep_buff[EP_02_CMD_IDX]._buffer, 0x00, MAX_BUFF_SIZE);
*(ep_buff[EP_02_CMD_IDX]._buffer) = CT_SCALE;
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_GET_SYSTEM_VER_INFO;
*(ep_buff[EP_02_CMD_IDX]._buffer+2)=0;
ep_buff[EP_02_CMD_IDX]._size = 0x03;
ep_buff[EP_82_DATA_IDX]._size = 0x12;
g_hEP02_Thread_State=THREAD_RUNNING_STATE1;
g_hEP8x_Thread_State=THREAD_RUNNING_STATE2;
_do_single_threaded_usb_comm(EP_02_CMD_IDX);
ReleaseMutex(g_hEP02_Serial_Mutex);
return SSI_STATUS_MOTION_NORMAL;
}
//==============================================================
SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_GET_INTERRUPT_MSG(char cType)
{
WaitForSingleObject(g_hEP02_Serial_Mutex, INFINITE);
memset(ep_buff[EP_02_CMD_IDX]._buffer, 0x00, MAX_BUFF_SIZE);
*(ep_buff[EP_02_CMD_IDX]._buffer) = CT_MOTOR;
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_GET_INTERRUPT_MSG;
*(ep_buff[EP_02_CMD_IDX]._buffer+2)=cType;
ep_buff[EP_02_CMD_IDX]._size = 0x03;
ep_buff[EP_82_DATA_IDX]._size = 0x12;
g_hEP02_Thread_State=THREAD_RUNNING_STATE1;
g_hEP8x_Thread_State=THREAD_RUNNING_STATE2;
_do_single_threaded_usb_comm(EP_02_CMD_IDX);
ReleaseMutex(g_hEP02_Serial_Mutex);
return SSI_STATUS_MOTION_NORMAL;
}
//==============================================================
SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_SET_INTERRUPT_MSG(char cType,char cValue)
{
WaitForSingleObject(g_hEP02_Serial_Mutex, INFINITE);
memset(ep_buff[EP_02_CMD_IDX]._buffer, 0x00, MAX_BUFF_SIZE);
*(ep_buff[EP_02_CMD_IDX]._buffer) = CT_MOTOR;
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_SET_INTERRUPT_MSG;
*(ep_buff[EP_02_CMD_IDX]._buffer+2)=cType;
*(ep_buff[EP_02_CMD_IDX]._buffer+3)=cValue;
ep_buff[EP_02_CMD_IDX]._size = 0x04;
ep_buff[EP_81_DATA_IDX]._size = 0x45;
g_hEP02_Thread_State=THREAD_RUNNING_STATE2;
_do_single_threaded_usb_comm(EP_02_CMD_IDX);
ReleaseMutex(g_hEP02_Serial_Mutex);
return SSI_STATUS_MOTION_NORMAL;
}
//==============================================================
SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_SET_GET_INTERRUPT_MSG_METHOD(char Method)
{
WaitForSingleObject(g_hEP02_Serial_Mutex, INFINITE);
memset(ep_buff[EP_02_CMD_IDX]._buffer, 0x00, MAX_BUFF_SIZE);
*(ep_buff[EP_02_CMD_IDX]._buffer) = CT_MOTOR;
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_SET_GETINTERRUPTMSG_METHOD;
*(ep_buff[EP_02_CMD_IDX]._buffer+2)=Method;
ep_buff[EP_02_CMD_IDX]._size = 0x03;
ep_buff[EP_81_DATA_IDX]._size = 0x45;
g_hEP02_Thread_State=THREAD_RUNNING_STATE2;
_do_single_threaded_usb_comm(EP_02_CMD_IDX);
ReleaseMutex(g_hEP02_Serial_Mutex);
return SSI_STATUS_MOTION_NORMAL;
}
//==============================================================
SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_MOVE_XY(char SpeedGearX,char SpeedGearY)
{
WaitForSingleObject(g_hEP02_Serial_Mutex, INFINITE);
memset(ep_buff[EP_02_CMD_IDX]._buffer, 0x00, MAX_BUFF_SIZE);
*(ep_buff[EP_02_CMD_IDX]._buffer) = CT_MOTOR;
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_MOVEXY;
*(ep_buff[EP_02_CMD_IDX]._buffer+2)=SpeedGearX;
*(ep_buff[EP_02_CMD_IDX]._buffer+3)=SpeedGearY;
TRACE2("--MOVEXY--[X]:%d;[Y]:%d.\r\n",SpeedGearX,SpeedGearY);
ep_buff[EP_02_CMD_IDX]._size = 0x04;
ep_buff[EP_81_DATA_IDX]._size = 0x45;
g_hEP02_Thread_State=THREAD_RUNNING_STATE2;
_do_single_threaded_usb_comm(EP_02_CMD_IDX);
ReleaseMutex(g_hEP02_Serial_Mutex);
return SSI_STATUS_MOTION_NORMAL;
}
//==============================================================
SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_MOVE_X()
@@ -4411,6 +4598,15 @@ SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_READ_V_DATA()
SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_GET_GET_RESET_FLAG()
{
g_machine.Sys_Reset_Flag=*(ep_buff[EP_82_DATA_IDX]._buffer);
char cTmp=*(ep_buff[EP_82_DATA_IDX]._buffer+1);
if (cTmp==1)
{
g_machine.IsSupportReadInterrputMsg=TRUE;
}
else
{
g_machine.IsSupportReadInterrputMsg=FALSE;
}
return SSI_STATUS_MOTION_NORMAL;
};
@@ -4583,3 +4779,19 @@ SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_READ_DATA_FROM_FPGA()
g_machine.FPGAData = *(ep_buff[EP_82_DATA_IDX]._buffer);
return SSI_STATUS_MOTION_NORMAL;
}
//==============================================================
SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_READ_FIRMWARE_VERSION_INFO()
{
for (int i=0;i<10;i++)
{
g_machine.FirmwareInfo[i]=*(ep_buff[EP_82_DATA_IDX]._buffer+i);
}
return SSI_STATUS_MOTION_NORMAL;
}
//==============================================================
SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_GET_INTERRUPT_MSG(BYTE Type)
{
g_machine.GetInterruptMsg[Type][0]=*(ep_buff[EP_82_DATA_IDX]._buffer);
g_machine.GetInterruptMsg[Type][1]=*(ep_buff[EP_82_DATA_IDX]._buffer+1);
return SSI_STATUS_MOTION_NORMAL;
}
@@ -207,7 +207,11 @@ struct struct_so7_machine
char FPGAData;
char InPortStatus;
int _motor_pulse_num;
char FirmwareInfo[10];
char GetInterruptMsg[20][2];
char GetInterruptMsgMethod;
BOOL IsOffline;
BOOL IsSupportReadInterrputMsg;
struct s_so7_axis x;
struct s_so7_axis y;
struct s_so7_axis z;
@@ -232,7 +236,7 @@ struct s_SO7_CMD_BUFF_02
struct
{
BYTE uSubCmdByte;
char data[9];
char data[12];
}s_SO7_CMD_MOVE_TO_XYZ;
struct
{
@@ -355,6 +359,7 @@ public:
SSI_STATUS_MOTION so7_motion_set_speed_xyz(double dPercentSpeed);
SSI_STATUS_MOTION so7_motion_get_speed_xyz(double &dPercentSpeed);
SSI_STATUS_MOTION so7_motion_get_3D_max_speed(double &dMaxSpeed);
SSI_STATUS_MOTION so7_motion_is_finished(char MotionType,BOOL& IsFinished);
SSI_STATUS_MOTION _calculate_straightline_motion(double dSpeedMM);
@@ -413,6 +418,13 @@ public:
SSI_STATUS_MOTION _send_cmd_SO7_CMD_READ_ZSIGNAL_POS_Z();
SSI_STATUS_MOTION _send_cmd_SO7_CMD_WRITE_DATA_TO_FPGA(char axis_type,char Addr,char Data);
SSI_STATUS_MOTION _send_cmd_SO7_CMD_READ_DATA_FROM_FPGA(char axis_type,char Addr);
SSI_STATUS_MOTION _send_cmd_SO7_CMD_READ_FIRMWARE_VERSION_INFO();
SSI_STATUS_MOTION _send_cmd_SO7_CMD_GET_INTERRUPT_MSG(char cType);
SSI_STATUS_MOTION _send_cmd_SO7_CMD_SET_INTERRUPT_MSG(char cType,char cValue);
SSI_STATUS_MOTION _send_cmd_SO7_CMD_SET_GET_INTERRUPT_MSG_METHOD(char Method);
SSI_STATUS_MOTION _send_cmd_SO7_CMD_MOVE_XY(char SpeedGearX,char SpeedGearY);
SSI_STATUS_MOTION _send_cmd_SO7_CMD_SET_CONSTANT_SPEED(int iSpeed,char axis_type,char xyz_gear);
static SSI_STATUS_MOTION _process_SO7_CMD_MOVE_X();
static SSI_STATUS_MOTION _process_SO7_CMD_MOVE_Y();
@@ -448,7 +460,8 @@ public:
static SSI_STATUS_MOTION _process_SO7_CMD_READ_ZSIGNAL_POS_Z();
static SSI_STATUS_MOTION _process_SO7_CMD_WRITE_DATA_TO_FPGA();
static SSI_STATUS_MOTION _process_SO7_CMD_READ_DATA_FROM_FPGA();
static SSI_STATUS_MOTION _process_SO7_CMD_READ_FIRMWARE_VERSION_INFO();
static SSI_STATUS_MOTION _process_SO7_CMD_GET_INTERRUPT_MSG(BYTE Type);
};
#endif
@@ -2213,3 +2213,156 @@ _start_machine
Exit: Exit_SO7Usb
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
Exit: Exit_SO7Usb
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
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
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
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.
Destruct Cso7_Proto.
Construct Cso7_Proto.
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
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
Init:Open device succeed .
_start_machine
Exit: Exit_SO7Usb
Destruct Cso7_Proto.
@@ -1,27 +1,27 @@
[HARDWARE]
MOVETOSPEED_FAST_X=20.00000000
MOVETOSPEED_SLOW_X=10.00000000
MOVETOSPEED_FAST_X=0.00000000
MOVETOSPEED_SLOW_X=100.00000000
MOVETOSPEED_SCALE_X=1.00000000
;
MOVETOSPEED_FAST_Y=20.00000000
MOVETOSPEED_SLOW_Y=10.00000000
MOVETOSPEED_FAST_Y=0.00000000
MOVETOSPEED_SLOW_Y=0.00000000
MOVETOSPEED_SCALE_Y=1.00000000
;
MOVETOSPEED_FAST_Z=20.00000000
MOVETOSPEED_SLOW_Z=10.00000000
MOVETOSPEED_FAST_Z=0.00000000
MOVETOSPEED_SLOW_Z=0.00000000
MOVETOSPEED_SCALE_Z=1.00000000
;
SPEED_BASE_X1=0
SPEED_MAX_X1=0
SPEED_START_X1=10
SPEED_FRESH_X1=0
SPEED_SLOW_X1=0.000
SPEED_BASE_X1=5
SPEED_MAX_X1=168
SPEED_START_X1=28
SPEED_FRESH_X1=10
SPEED_SLOW_X1=0.510
;
SPEED_BASE_X2=3
SPEED_MAX_X2=50
SPEED_START_X2=10
SPEED_FRESH_X2=10
SPEED_SLOW_X2=0.109
SPEED_SLOW_X2=0.110
;
SPEED_BASE_X3=2
SPEED_MAX_X3=5
@@ -41,11 +41,11 @@ SPEED_START_X5=80
SPEED_FRESH_X5=10
SPEED_SLOW_X5=0.001
;
SPEED_BASE_Y1=0
SPEED_MAX_Y1=0
SPEED_START_Y1=10
SPEED_FRESH_Y1=0
SPEED_SLOW_Y1=0.000
SPEED_BASE_Y1=5
SPEED_MAX_Y1=168
SPEED_START_Y1=28
SPEED_FRESH_Y1=10
SPEED_SLOW_Y1=0.600
;
SPEED_BASE_Y2=3
SPEED_MAX_Y2=60
@@ -71,17 +71,17 @@ SPEED_START_Y5=80
SPEED_FRESH_Y5=10
SPEED_SLOW_Y5=0.001
;
SPEED_BASE_Z1=0
SPEED_MAX_Z1=0
SPEED_START_Z1=10
SPEED_FRESH_Z1=0
SPEED_SLOW_Z1=0.000
SPEED_BASE_Z1=5
SPEED_MAX_Z1=130
SPEED_START_Z1=28
SPEED_FRESH_Z1=10
SPEED_SLOW_Z1=0.510
;
SPEED_BASE_Z2=3
SPEED_MAX_Z2=60
SPEED_START_Z2=10
SPEED_FRESH_Z2=10
SPEED_SLOW_Z2=0.109
SPEED_SLOW_Z2=0.110
;
SPEED_BASE_Z3=2
SPEED_MAX_Z3=5
@@ -101,20 +101,20 @@ SPEED_START_Z5=80
SPEED_FRESH_Z5=10
SPEED_SLOW_Z5=0.001
;
X_MOTOR_PRECISION=0.009
Y_MOTOR_PRECISION=0.009
X_MOTOR_PRECISION=0.010
Y_MOTOR_PRECISION=0.010
Z_MOTOR_PRECISION=0.100
;
X_MOTOR_WHEELBASE=19.990
Y_MOTOR_WHEELBASE=20.000
Z_MOTOR_WHEELBASE=2.999
Z_MOTOR_WHEELBASE=3.000
;
MOTOR_PULSE_NUM=10000
;
[WORKTABLE]
X_SCALE_RESOLUTION=0.400
Y_SCALE_RESOLUTION=0.400
Z_SCALE_RESOLUTION=0.400
X_SCALE_RESOLUTION=0.500
Y_SCALE_RESOLUTION=0.500
Z_SCALE_RESOLUTION=0.500
;
X_NEG_WORKING_LIMIT=-0.000
Y_NEG_WORKING_LIMIT=0.000
@@ -127,3 +127,14 @@ 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.
Destruct Cso7_Proto.
Construct Cso7_Proto.
Destruct Cso7_Proto.
Construct Cso7_Proto.
Destruct Cso7_Proto.
@@ -55,12 +55,12 @@ BEGIN
PUSHBUTTON "Motion",IDC_BUTTON_LOAD_SO7CONFIG,20,143,44,23,BS_MULTILINE
PUSHBUTTON "V+",IDC_BUTTON_SO7_MOVE_ZOOM_IN,77,159,25,12
PUSHBUTTON "V-",IDC_BUTTON_SO7_MOVE_ZOOM_OUT,77,180,25,12
PUSHBUTTON "Z+",IDC_BUTTON_SO7_MOVE_Z_UP,112,152,25,12
PUSHBUTTON "Z-",IDC_BUTTON_SO7_MOVE_Z_DOWN,112,186,25,12
PUSHBUTTON "Z+",IDC_BUTTON_SO7_MOVE_Z_UP,101,140,25,12
PUSHBUTTON "Z-",IDC_BUTTON_SO7_MOVE_Z_DOWN,103,196,25,12
PUSHBUTTON "X-",IDC_BUTTON_SO7_MOVE_X_LEFT,128,169,25,12
PUSHBUTTON "Y+",IDC_BUTTON_SO7_MOVE_Y_FRONT,154,159,25,12
PUSHBUTTON "Y-",IDC_BUTTON_SO7_MOVE_Y_BACK,154,180,25,12
PUSHBUTTON "X+",IDC_BUTTON_SO7_MOVE_X_RIGHT,180,169,25,12
PUSHBUTTON "Y+",IDC_BUTTON_SO7_MOVE_Y_FRONT,154,156,25,12
PUSHBUTTON "Y-",IDC_BUTTON_SO7_MOVE_Y_BACK,154,182,25,12
PUSHBUTTON "X+",IDC_BUTTON_SO7_MOVE_X_RIGHT,179,169,25,12
PUSHBUTTON "Home XYZ",IDC_BUTTON_SO7_RESET_XYZ,277,154,76,14,BS_MULTILINE
PUSHBUTTON "Hoom Manual",IDC_BUTTON_MANUAL_HOME,277,135,76,14
PUSHBUTTON "Home DCC",IDC_BUTTON_RESET_WORKTABLE,277,192,40,14
@@ -156,6 +156,10 @@ BEGIN
LTEXT "Data",IDC_STATIC,287,373,16,8
COMBOBOX IDC_COMBO_RWDATA_ADDR,307,348,45,30,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDC_COMBO_SO7_HOMEMODE,324,192,27,30,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "¨",IDC_BUTTON_SO7_MOVE_XR_YF,179,156,25,12
PUSHBUTTON "¨",IDC_BUTTON_SO7_MOVE_XR_YB,179,182,25,12
PUSHBUTTON "¨",IDC_BUTTON_SO7_MOVE_XL_YF,128,156,25,12
PUSHBUTTON "¨Ž",IDC_BUTTON_SO7_MOVE_XL_YB,128,182,25,12
END
IDD_S07_UTIL_SEND_PARAMETER DIALOGEX 0, 0, 753, 481
@@ -328,7 +332,7 @@ BEGIN
EDITTEXT IDC_EDIT_DATASEND,86,316,191,16,ES_MULTILINE | ES_AUTOHSCROLL | ES_WANTRETURN
PUSHBUTTON "Clear",IDC_BUTTON_CLEARMESSAGE,284,363,50,17
GROUPBOX "Serial Communication",IDC_STATIC,11,300,398,117
GROUPBOX "Move Test",IDC_STATIC,13,28,393,247
GROUPBOX "Move Test",IDC_STATIC,13,28,406,247
EDITTEXT IDC_EDIT_ZOOM_ANGLE,129,137,81,14,ES_RIGHT | ES_AUTOHSCROLL | ES_READONLY
LTEXT "Zm",IDC_STATIC,109,140,10,8
CTEXT "¡ã",IDC_STATIC,213,136,8,8
@@ -337,17 +341,17 @@ BEGIN
PUSHBUTTON "Zero Set",IDC_BUTTON_ZOOM_SETZERO,263,138,50,14,NOT WS_VISIBLE
EDITTEXT IDC_EDIT_REPETEST_PAUSE,179,100,54,14,ES_AUTOHSCROLL
CTEXT "ms",IDC_STATIC,235,101,11,8
EDITTEXT IDC_EDIT_ZOOM_LOG,47,159,250,110,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL
PUSHBUTTON "Save as...",IDC_BUTTON_SAVELOG,320,209,39,19
EDITTEXT IDC_EDIT_ZOOM_LOG,129,158,249,110,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL
PUSHBUTTON "Save as...",IDC_BUTTON_SAVELOG,380,212,39,19
COMBOBOX IDC_COMBO_REPETEST_FROM,85,80,54,30,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDC_COMBO_REPETEST_TO,179,76,54,30,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDC_COMBO_REPETEST_TO,179,80,54,30,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Begin",IDC_BUTTON_REPETEST_BEGIN,263,89,50,14
EDITTEXT IDC_EDIT_REPETEST_TIMES,85,100,54,14,ES_AUTOHSCROLL
GROUPBOX "Repeatability Test",IDC_STATIC,47,69,268,64
LTEXT "Times",IDC_STATIC,59,104,19,8
LTEXT "Pause",IDC_STATIC,155,102,20,8
LTEXT "To",IDC_STATIC,165,80,9,8
LTEXT "From",IDC_STATIC,61,85,17,8
LTEXT "To",IDC_STATIC,165,83,9,8
LTEXT "From",IDC_STATIC,61,83,17,8
CONTROL "Continue",IDC_CHECK_AUTOZOOM_CONTINUE_READ,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,61,140,40,10
PUSHBUTTON "V+",IDC_BUTTON_MOVEV_IN,48,235,50,14,NOT WS_VISIBLE
PUSHBUTTON "V-",IDC_BUTTON_MOVEV_OUT,48,252,50,14,NOT WS_VISIBLE
@@ -371,6 +375,7 @@ BEGIN
EDITTEXT IDC_EDIT_TESTZOOM_PRODUCTID,159,16,124,14,ES_AUTOHSCROLL | ES_READONLY
LTEXT "±ä±¶¾µÍ·²úÆ·±àºÅ£º",IDC_STATIC,80,18,73,8
PUSHBUTTON "MoveTo",IDC_BUTTON_ZOOM_MOVETO,263,43,50,14
EDITTEXT IDC_EDIT_ZOOM_TIME,14,159,112,112,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL
END
IDD_S07_OPTION_DIALOG DIALOGEX 0, 0, 298, 166
@@ -486,6 +491,9 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSM
CAPTION "Move To Location(SO7)"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
CONTROL "System",IDC_RADIO_SPEED_SYSTEM,"Button",BS_AUTORADIOBUTTON | WS_GROUP,179,20,39,10
CONTROL "Fast",IDC_RADIO_SPEED_FAST,"Button",BS_AUTORADIOBUTTON,179,31,30,10
CONTROL "Slow",IDC_RADIO_SPEED_SLOW,"Button",BS_AUTORADIOBUTTON,179,42,31,10
EDITTEXT IDC_EDIT_MOVE_TO_X,41,78,53,12,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_MOVE_TO_Y,41,99,53,12,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_MOVE_TO_Z,41,120,53,12,ES_AUTOHSCROLL
@@ -510,8 +518,6 @@ BEGIN
CONTROL "Relative",IDC_RADIO_MOVE_RELATIVE,"Button",BS_AUTORADIOBUTTON | WS_GROUP,107,22,42,10
CONTROL "Absolute",IDC_RADIO_MOVE_ABSOLUTE,"Button",BS_AUTORADIOBUTTON,107,38,44,10
GROUPBOX "Move Speed",IDC_STATIC,168,9,330,46
CONTROL "Fast",IDC_RADIO_SPEED_FAST,"Button",BS_AUTORADIOBUTTON | WS_GROUP,180,22,30,10
CONTROL "Slow",IDC_RADIO_SPEED_SLOW,"Button",BS_AUTORADIOBUTTON,180,36,31,10
PUSHBUTTON "EXIT",IDCANCEL,454,333,50,14
LTEXT "x",IDC_STATIC,29,78,8,8
LTEXT "y",IDC_STATIC,29,99,8,8
@@ -50,6 +50,26 @@ void CProcessButton::OnLButtonDown(UINT nFlags, CPoint point)
switch (iCtrlID)
{
case IDC_BUTTON_SO7_MOVE_XR_YF:
{
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_XY(m_pSO7_Proto->g_machine.x._Move_Speed_Gear,m_pSO7_Proto->g_machine.y._Move_Speed_Gear);
break;
}
case IDC_BUTTON_SO7_MOVE_XR_YB:
{
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_XY(m_pSO7_Proto->g_machine.x._Move_Speed_Gear,-m_pSO7_Proto->g_machine.y._Move_Speed_Gear);
break;
}
case IDC_BUTTON_SO7_MOVE_XL_YF:
{
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_XY(-m_pSO7_Proto->g_machine.x._Move_Speed_Gear,m_pSO7_Proto->g_machine.y._Move_Speed_Gear);
break;
}
case IDC_BUTTON_SO7_MOVE_XL_YB:
{
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_XY(-m_pSO7_Proto->g_machine.x._Move_Speed_Gear,-m_pSO7_Proto->g_machine.y._Move_Speed_Gear);
break;
}
//======================================================================================
case IDC_BUTTON_SO7_MOVE_X_LEFT:
{
@@ -177,8 +197,12 @@ void CProcessButton::OnLButtonUp(UINT /*nFlags*/, CPoint/* point*/)
case IDC_BUTTON_SO7_MOVE_X_RIGHT:
case IDC_BUTTON_SO7_MOVE_Y_FRONT:
case IDC_BUTTON_SO7_MOVE_Y_BACK:
case IDC_BUTTON_SO7_MOVE_Z_UP:
case IDC_BUTTON_SO7_MOVE_Z_UP:
case IDC_BUTTON_SO7_MOVE_Z_DOWN:
case IDC_BUTTON_SO7_MOVE_XR_YF:
case IDC_BUTTON_SO7_MOVE_XR_YB:
case IDC_BUTTON_SO7_MOVE_XL_YF:
case IDC_BUTTON_SO7_MOVE_XL_YB:
{
m_pSO7_Proto->_send_cmd_SO7_CMD_STOP_MOVE_XYZ();
break;
@@ -45,6 +45,8 @@ void CSO7_Automatic_Zoom::DoDataExchange(CDataExchange* pDX)
DDX_Control(pDX, IDC_COMBO_REPETEST_FROM, m_cmbRepeTestFrom);
DDX_Control(pDX, IDC_COMBO_REPETEST_TO, m_cmbRepeTestTo);
DDX_Control(pDX, IDC_EDIT_ZOOM_LOG, m_edit_Log);
DDX_Control(pDX, IDC_EDIT_ZOOM_TIME, m_edit_Time);
DDX_Control(pDX, IDC_BUTTON_MOVEV_IN, m_Button_MoveV_Zoom_In);
DDX_Control(pDX, IDC_BUTTON_MOVEV_OUT, m_Button_MoveV_Zoom_Out);
@@ -270,6 +272,7 @@ void CSO7_Automatic_Zoom::OnBnClickedButtonRepetestBegin()
bBeginFlag=false;
bRepeTestDone=true;
((CButton*)GetDlgItem(IDC_BUTTON_REPETEST_BEGIN))->SetWindowTextW(_T("Begin"));
SetTimer(1,200,NULL);
}
else
{
@@ -289,7 +292,7 @@ void CSO7_Automatic_Zoom::OnBnClickedButtonRepetestBegin()
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_TO_POS_ZM();
bRepeTestDone=false;
((CButton*)GetDlgItem(IDC_BUTTON_REPETEST_BEGIN))->SetWindowTextW(_T("Stop"));
SetTimer(1,200,NULL);
//SetTimer(1,200,NULL);
SetTimer(2,100,NULL);
}
@@ -297,7 +300,6 @@ void CSO7_Automatic_Zoom::OnBnClickedButtonRepetestBegin()
//====================================================
BOOL CSO7_Automatic_Zoom::RepeTest()
{
KillTimer(1);
UpdateData(TRUE);
CString csTemp;
m_pSO7_Proto->g_machine.zm._d_cur_pos_=GetZoomCurPos();
@@ -398,8 +400,9 @@ BOOL CSO7_Automatic_Zoom::RepeTest()
OutputWithScroll(m_OutMessage,m_edit_Log);
bBeginFlag=false;
((CButton*)GetDlgItem(IDC_BUTTON_REPETEST_BEGIN))->SetWindowTextW(_T("Begin"));
SetTimer(1,200,NULL);
}
SetTimer(1,200,NULL);
return TRUE;
}
@@ -455,10 +458,34 @@ void CSO7_Automatic_Zoom::OnTimer(UINT_PTR nIDEvent)
bRepeTestDone=true;
m_OutMessage=_T("");
((CButton*)GetDlgItem(IDC_BUTTON_BEGIN_REPE_TEST))->SetWindowTextW(_T("Begin"));
SetTimer(1,200,NULL);
}
}
m_pSO7_Proto->g_machine.InterruptFlag[0]=0;
}
else
{
m_pSO7_Proto->_send_cmd_SO7_CMD_READ_ZOOM_MOTION_STATUS();
if (m_pSO7_Proto->g_machine.s_status._bIsZMMotionFinished)
{
if (!bRepeTestDone)
{
if (bBeginFlag)
{
SetTimer(3,m_iZoom_Pause_Time,NULL);
}
else
{
bRepeTestDone=true;
m_OutMessage=_T("");
((CButton*)GetDlgItem(IDC_BUTTON_BEGIN_REPE_TEST))->SetWindowTextW(_T("Begin"));
SetTimer(1,200,NULL);
}
}
}
}
}
}
break;
@@ -475,6 +502,7 @@ void CSO7_Automatic_Zoom::OnTimer(UINT_PTR nIDEvent)
bRepeTestDone=true;
m_OutMessage=_T("");
((CButton*)GetDlgItem(IDC_BUTTON_REPETEST_BEGIN))->SetWindowTextW(_T("Begin"));
SetTimer(1,200,NULL);
}
KillTimer(3);
break;
@@ -500,6 +528,28 @@ void CSO7_Automatic_Zoom::OutputWithScroll(const CString &strText,CEdit &edtOutp
edtOutput.SetSel(iCount, iCount);
edtOutput.SetRedraw(TRUE);
}
//=====================================================================================
//Print message on edit control
void CSO7_Automatic_Zoom::OutputWithScroll_Auto(const CString &strNewText,CEdit &edtOutput)
{
CString strOutput;
edtOutput.GetWindowText(strOutput);
strOutput += strNewText;
if ("\r\n" != strOutput.Right(2))
{
strOutput += "\r\n";
}
int iCount = strOutput.GetLength();
edtOutput.SetRedraw(FALSE);
edtOutput.SetWindowText(strOutput);
int iLine = edtOutput.GetLineCount();
edtOutput.LineScroll(iLine, 0);
edtOutput.SetSel(iCount, iCount);
edtOutput.SetRedraw(TRUE);
}
//=====================================================================================
void CSO7_Automatic_Zoom::OnBnClickedButtonSavelog()
{ USES_CONVERSION;
@@ -729,6 +779,14 @@ double CSO7_Automatic_Zoom::GetZoomCurPos()
{
dZoomPos=dZoomPos/(iCnt2);
}
CTime t = CTime::GetCurrentTime();
int hh=t.GetHour();
int mm=t.GetMinute();
int s=t.GetSecond();
CString csTime;
csTime.Format(_T("[%2d:%2d:%2d] %.4f¡ã\r\n"),hh,mm,s,dZoomPos);
OutputWithScroll_Auto(csTime,m_edit_Time);
return dZoomPos;
}
@@ -19,7 +19,8 @@ protected:
DECLARE_MESSAGE_MAP()
public:
CStatusBarCtrl m_StatusBar;
CEdit m_edit_Log;
CEdit m_edit_Log;
CEdit m_edit_Time;
int Port;
int Baud;
char Parity;
@@ -54,11 +55,17 @@ public:
INT iRetryCnt,iRetryCntTo,iRetryCntFrom;
INT iFrom,iTo;
BOOL m_bZMHoming;
double ReadZoomAngle();
BOOL CalibrateEncoder();
double GetZoomCurPos();
BOOL RepeTest();
void OutputWithScroll(const CString &strText,CEdit &edtOutput);
void OutputWithScroll(const CString &strText,CEdit &edtOutput);
void OutputWithScroll_Auto(const CString &strText,CEdit &edtOutput);
afx_msg void OnTimer(UINT_PTR nIDEvent);
afx_msg void OnBnClickedCancel();
afx_msg void OnBnClickedButtonSendData();
@@ -1,4 +1,4 @@
// SO7_Move_Location.cpp : ʵÏÖÎļþ
7// SO7_Move_Location.cpp : ʵÏÖÎļþ
//
#include "stdafx.h"
#include "afxdialogex.h"
@@ -76,6 +76,7 @@ BEGIN_MESSAGE_MAP(CSO7_Move_Location, CDialog)
ON_EN_KILLFOCUS(IDC_EDIT_MOTION_SPEEDZ, &CSO7_Move_Location::OnEnKillfocusEditMotionSpeedz)
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)
END_MESSAGE_MAP()
@@ -92,12 +93,15 @@ BOOL CSO7_Move_Location::OnInitDialog()
((CButton *)GetDlgItem(IDC_RADIO_MM))->SetCheck(1);
((CButton *)GetDlgItem(IDC_RADIO_SCALE))->SetCheck(0);
((CButton *)GetDlgItem(IDC_RADIO_SPEED_FAST))->SetCheck(0);
((CButton *)GetDlgItem(IDC_RADIO_SPEED_SLOW))->SetCheck(1);
((CButton *)GetDlgItem(IDC_RADIO_SPEED_SLOW))->SetCheck(0);
((CButton *)GetDlgItem(IDC_RADIO_SPEED_SYSTEM))->SetCheck(1);
(GetDlgItem(IDC_EDIT_MOTION_SPEEDX))->EnableWindow(FALSE);
(GetDlgItem(IDC_EDIT_MOTION_SPEEDY))->EnableWindow(FALSE);
(GetDlgItem(IDC_EDIT_MOTION_SPEEDZ))->EnableWindow(FALSE);
((CButton *)GetDlgItem(IDC_RADIO_MOVE_RELATIVE))->SetCheck(1);
((CButton *)GetDlgItem(IDC_RADIO_MOVE_ABSOLUTE))->SetCheck(0);
GetDlgItem(IDC_EDIT_REPETEST_ERRORRANGE)->EnableWindow(false);
OnBnClickedRadioSpeedSlow();
if (((CButton *)GetDlgItem(IDC_RADIO_SCALE))->GetCheck())
{// scale
@@ -602,8 +606,23 @@ void CSO7_Move_Location::OnEnKillfocusEditMotionSpeedz()
m_pSO7_Proto->_send_cmd_SO7_CMD_SET_SPEED_PARAMETER(2,0);
}
//=====================================================================================
void CSO7_Move_Location::OnBnClickedRadioSpeedSystem()
{
(GetDlgItem(IDC_EDIT_MOTION_SPEEDX))->EnableWindow(FALSE);
(GetDlgItem(IDC_EDIT_MOTION_SPEEDY))->EnableWindow(FALSE);
(GetDlgItem(IDC_EDIT_MOTION_SPEEDZ))->EnableWindow(FALSE);
m_pSO7_Proto->_send_cmd_SO7_CMD_SET_SPEED_PARAMETER(0,0);
Sleep(20);
m_pSO7_Proto->_send_cmd_SO7_CMD_SET_SPEED_PARAMETER(1,0);
Sleep(20);
m_pSO7_Proto->_send_cmd_SO7_CMD_SET_SPEED_PARAMETER(2,0);
}
//=====================================================================================
void CSO7_Move_Location::OnBnClickedRadioSpeedFast()
{
(GetDlgItem(IDC_EDIT_MOTION_SPEEDX))->EnableWindow(TRUE);
(GetDlgItem(IDC_EDIT_MOTION_SPEEDY))->EnableWindow(TRUE);
(GetDlgItem(IDC_EDIT_MOTION_SPEEDZ))->EnableWindow(TRUE);
CString cStr("");
cStr.Format(_T("%.3f"),(m_pSO7_Proto->g_machine.s_machine_config.x_axis._MoveToSpeed[0]));
GetDlgItem(IDC_EDIT_MOTION_SPEEDX)->SetWindowTextW(cStr);
@@ -615,32 +634,23 @@ void CSO7_Move_Location::OnBnClickedRadioSpeedFast()
double dSpeedX=m_pSO7_Proto->g_machine.s_machine_config.x_axis._MoveToSpeed[0];
double dSpeedY=m_pSO7_Proto->g_machine.s_machine_config.y_axis._MoveToSpeed[0];
double dSpeedZ=m_pSO7_Proto->g_machine.s_machine_config.z_axis._MoveToSpeed[0];
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<char>(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<int>(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);
Sleep(20);
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<char>(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);
iSpeed=static_cast<char>(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);
Sleep(20);
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<char>(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);
iSpeed=static_cast<char>(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);
Sleep(20);
}
//=====================================================================================
void CSO7_Move_Location::OnBnClickedRadioSpeedSlow()
{
(GetDlgItem(IDC_EDIT_MOTION_SPEEDX))->EnableWindow(TRUE);
(GetDlgItem(IDC_EDIT_MOTION_SPEEDY))->EnableWindow(TRUE);
(GetDlgItem(IDC_EDIT_MOTION_SPEEDZ))->EnableWindow(TRUE);
CString cStr("");
cStr.Format(_T("%.3f"),(m_pSO7_Proto->g_machine.s_machine_config.x_axis._MoveToSpeed[1]));
GetDlgItem(IDC_EDIT_MOTION_SPEEDX)->SetWindowTextW(cStr);
@@ -652,27 +662,15 @@ void CSO7_Move_Location::OnBnClickedRadioSpeedSlow()
double dSpeedX=m_pSO7_Proto->g_machine.s_machine_config.x_axis._MoveToSpeed[1];
double dSpeedY=m_pSO7_Proto->g_machine.s_machine_config.y_axis._MoveToSpeed[1];
double dSpeedZ=m_pSO7_Proto->g_machine.s_machine_config.z_axis._MoveToSpeed[1];
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<char>(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<int>(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);
Sleep(20);
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<char>(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);
iSpeed=static_cast<char>(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);
Sleep(20);
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<char>(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);
iSpeed=static_cast<char>(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);
Sleep(20);
}
//=========================================================================================
@@ -2385,8 +2383,9 @@ void CSO7_Move_Location::OnTimer(UINT_PTR nIDEvent)
{
if (m_pSO7_Proto->g_machine.s_status._machine_running)
{
m_pSO7_Proto->_send_cmd_SO7_CMD_READ_INTERRUPT_MESSAGE();
if (m_pSO7_Proto->g_machine.InterruptFlag[0] == CT_STOPXYZ)
BOOL IsFinished(FALSE);
m_pSO7_Proto->so7_motion_is_finished(EMSG_STOPXYZ_1_MOVETOXYZ,IsFinished);
if (IsFinished)
{
if (!bRepeTestDone)
{
@@ -2404,7 +2403,6 @@ void CSO7_Move_Location::OnTimer(UINT_PTR nIDEvent)
((CButton*)GetDlgItem(IDC_BUTTON_BEGIN_REPE_TEST))->SetWindowTextW(_T("Begin"));
}
}
m_pSO7_Proto->g_machine.InterruptFlag[0]=0;
}
}
}
@@ -2524,3 +2522,6 @@ void CSO7_Move_Location::OnBnClickedCheckSo7MotionOutputTime()
}
}
@@ -97,4 +97,5 @@ public:
afx_msg void OnEnKillfocusEditMotionSpeedz();
afx_msg void OnBnClickedRadioSpeedFast();
afx_msg void OnBnClickedRadioSpeedSlow();
afx_msg void OnBnClickedRadioSpeedSystem();
};
@@ -80,6 +80,10 @@ void CSO7_UtilDlg::DoDataExchange(CDataExchange* pDX)
DDX_Control(pDX, IDC_BUTTON_SO7_MOVE_Z_DOWN, m_Button_MoveZ_Down);
DDX_Control(pDX, IDC_BUTTON_SO7_MOVE_ZOOM_IN, m_Button_MoveV_Zoom_In);
DDX_Control(pDX, IDC_BUTTON_SO7_MOVE_ZOOM_OUT, m_Button_MoveV_Zoom_Out);
DDX_Control(pDX, IDC_BUTTON_SO7_MOVE_XR_YF, m_Button_MoveXRYF);
DDX_Control(pDX, IDC_BUTTON_SO7_MOVE_XR_YB, m_Button_MoveXRYB);
DDX_Control(pDX, IDC_BUTTON_SO7_MOVE_XL_YF, m_Button_MoveXLYF);
DDX_Control(pDX, IDC_BUTTON_SO7_MOVE_XL_YB, m_Button_MoveXLYB);
DDX_Control(pDX, IDC_EDIT_STATUS, m_edMSG);
@@ -195,6 +199,10 @@ BOOL CSO7_UtilDlg::OnInitDialog()
GetDlgItem(IDC_BUTTON_SO7_MOVE_X_RIGHT)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_SO7_MOVE_Y_BACK)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_SO7_MOVE_Y_FRONT)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_SO7_MOVE_XR_YF)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_SO7_MOVE_XR_YB)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_SO7_MOVE_XL_YF)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_SO7_MOVE_XL_YB)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_SO7_RESET_XYZ)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_RESET_V)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_RESET_WORKTABLE)->EnableWindow(false);
@@ -347,7 +355,16 @@ void CSO7_UtilDlg::OnBnClickedButtonStartSo7machine()
OnBnClickedButtonInitSo7usb();
//m_pSO7_Proto->so7_motion_startup(0.5, 0.5, 0.5);
m_pSO7_Proto->_start_machine();
m_pSO7_Proto->_send_cmd_SO7_CMD_GET_RESET_FLAG();
if(m_pSO7_Proto->g_machine.IsSupportReadInterrputMsg)
{
m_pSO7_Proto->_send_cmd_SO7_CMD_READ_FIRMWARE_VERSION_INFO();
CStringA csTmp("");
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);
}
((CButton*)GetDlgItem(IDC_BUTTON_PROBE_ONOFF))->SetWindowTextW(_T("当前探头:激光"));
((CButton*)GetDlgItem(IDC_BUTTON_FIXTURE_ONOFF))->SetWindowTextW(_T("当前状态:夹具开"));
((CButton*)GetDlgItem(IDC_BUTTON_FIXTURE_UPDOWN))->SetWindowTextW(_T("当前状态:夹具上"));
@@ -379,6 +396,10 @@ void CSO7_UtilDlg::OnBnClickedButtonStartSo7machine()
GetDlgItem(IDC_BUTTON_SO7_MOVE_X_RIGHT)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_SO7_MOVE_Y_BACK)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_SO7_MOVE_Y_FRONT)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_SO7_MOVE_XR_YF)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_SO7_MOVE_XR_YB)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_SO7_MOVE_XL_YF)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_SO7_MOVE_XL_YB)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_SO7_RESET_XYZ)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_RESET_V)->EnableWindow(true);
GetDlgItem(IDC_BUTTON_RESET_WORKTABLE)->EnableWindow(true);
@@ -448,6 +469,10 @@ void CSO7_UtilDlg::OnBnClickedButtonStopSo7machine()
GetDlgItem(IDC_BUTTON_SO7_MOVE_X_RIGHT)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_SO7_MOVE_Y_BACK)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_SO7_MOVE_Y_FRONT)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_SO7_MOVE_XR_YF)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_SO7_MOVE_XR_YB)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_SO7_MOVE_XL_YF)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_SO7_MOVE_XL_YB)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_SO7_RESET_XYZ)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_RESET_V)->EnableWindow(false);
GetDlgItem(IDC_BUTTON_RESET_WORKTABLE)->EnableWindow(false);
@@ -51,6 +51,10 @@ public:
CProcessButton m_Button_MoveZ_Down;
CProcessButton m_Button_MoveV_Zoom_In;
CProcessButton m_Button_MoveV_Zoom_Out;
CProcessButton m_Button_MoveXRYF;
CProcessButton m_Button_MoveXLYF;
CProcessButton m_Button_MoveXRYB;
CProcessButton m_Button_MoveXLYB;
char m_ReadIOStatusAddr;
BOOL m_BeginReadIO;
BOOL m_TestZSignalNow;
@@ -151,6 +151,8 @@
#define IDC_RADIO_FAST 1093
#define IDC_RADIO_SPEED_FAST 1094
#define IDC_EDIT_DECEL_X 1095
#define IDC_RADIO_SPEED_FAST2 1095
#define IDC_RADIO_SPEED_SYSTEM 1095
#define IDC_EDIT_DECEL_Y 1096
#define IDC_EDIT_DECEL_Z 1097
#define IDC_BUTTON_ALL_ON 1101
@@ -291,13 +293,17 @@
#define IDC_BUTTON_SO7_MOVE_Z_DOWN 1232
#define IDC_EDIT_LASER_LK_H_VALUE2 1232
#define IDC_BUTTON_READ_PROBE 1233
#define IDC_BUTTON_SO7_MOVE_XR_YF 1234
#define IDC_BUTTON_SO7_MOVE_XR_YB 1235
#define IDC_BUTTON_SO7_MOVE_ZOOM_IN 1236
#define IDC_BUTTON_SO7_MOVE_ZOOM_OUT 1237
#define IDC_BUTTON_MOVE_TO_ZOOM 1238
#define IDC_BUTTON_SO7_MOVE_XL_YF 1238
#define IDC_BUTTON_MOVE_TO_XYZ_LASER 1239
#define IDC_BUTTON_SO7_READ_AXIS_V 1239
#define IDC_BUTTON_MOVE_TO_XYZ_JM 1240
#define IDC_BUTTON_SO7_READ_ADC 1240
#define IDC_BUTTON_SO7_MOVE_XL_YB 1240
#define IDC_BUTTON_MOVE_TO_XYZV 1241
#define IDC_BUTTON_SO7_GET_RESET_FLAG 1241
#define IDC_EDIT_RING_LIGHT 1242
@@ -849,6 +855,7 @@
#define IDC_BUTTON_KEYENCE_LASER_GET_DATA 1801
#define IDC_COMBO1 1802
#define IDC_COMBO_SO7_HOMEMODE 1802
#define IDC_EDIT_ZOOM_TIME 1803
// Next default values for new objects
//
@@ -856,7 +863,7 @@
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 188
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1803
#define _APS_NEXT_CONTROL_VALUE 1804
#define _APS_NEXT_SYMED_VALUE 104
#endif
#endif