新增外触发测试功能。

This commit is contained in:
TAO Cheng
2014-07-07 16:28:28 +08:00
parent 7c3f60c985
commit e81ff3e991
15 changed files with 370 additions and 52 deletions
@@ -123,6 +123,10 @@ enum MOTOR_CMD
CT_GET_INTERRUPT_MSG, CT_GET_INTERRUPT_MSG,
CT_SET_INTERRUPT_MSG, CT_SET_INTERRUPT_MSG,
CT_SET_GETINTERRUPTMSG_METHOD, CT_SET_GETINTERRUPTMSG_METHOD,
CT_SET_MOTION_FINISHED_CNTS,
CT_GET_MOTION_FINISHED_CNTS,
CT_END CT_END
}; };
@@ -204,8 +204,10 @@ void CSO7_Proto::_process_rcv_transfer_data(int iEP)
break; break;
case CT_GET_INTERRUPT_MSG: case CT_GET_INTERRUPT_MSG:
_process_SO7_CMD_GET_INTERRUPT_MSG(ep_buff[EP_02_CMD_IDX]._save_send_cmd1); _process_SO7_CMD_GET_INTERRUPT_MSG(ep_buff[EP_02_CMD_IDX]._save_send_cmd1);
break;
case CT_GET_MOTION_FINISHED_CNTS:
_process_SO7_CMD_GET_MOTION_CNTS();
break; break;
default: 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_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]); 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]);
@@ -512,6 +514,18 @@ CSO7_Proto::CSO7_Proto()
g_machine.Light_Switch=0; g_machine.Light_Switch=0;
g_machine.SEQ_NUMBER=0; g_machine.SEQ_NUMBER=0;
g_machine.Arm_MotionStartCnts[0]=30;
g_machine.Arm_MotionStartCnts[1]=50;
g_machine.Arm_MotionStartCnts[2]=60;
g_machine.Arm_MotionStartCnts[3]=70;
g_machine.Arm_MotionStartCnts[4]=80;
g_machine.Arm_MotionStopCnts[0]=5;
g_machine.Arm_MotionStopCnts[1]=10;
g_machine.Arm_MotionStopCnts[2]=15;
g_machine.Arm_MotionStopCnts[3]=20;
g_machine.Arm_MotionStopCnts[4]=20;
g_machine.Arm_MotionSpeedGear=0;//4,3,2,1,5
g_machine.s_machine_config.x_axis._MoveToSpeed[0]=0.0; g_machine.s_machine_config.x_axis._MoveToSpeed[0]=0.0;
g_machine.s_machine_config.x_axis._MoveToSpeed[1]=0.0; g_machine.s_machine_config.x_axis._MoveToSpeed[1]=0.0;
g_machine.s_machine_config.x_axis._MotionSpeedScale=1.0; g_machine.s_machine_config.x_axis._MotionSpeedScale=1.0;
@@ -3416,7 +3430,7 @@ SSI_STATUS_MOTION CSO7_Proto::so7_motion_init_firmware_para()
CString csStr(csAStr); CString csStr(csAStr);
g_pLogger->SendAndFlushWithTime(csStr); g_pLogger->SendAndFlushWithTime(csStr);
} }
if (g_machine.FirmwareVer==FirmwareVer_6_X) if (g_machine.FirmwareVer>=FirmwareVer_6_X)
{ {
_send_cmd_SO7_CMD_WRITE_DATA_TO_FPGA(E_AXIS_X,E_WRITE_ACCURA_ERR,static_cast<char>(g_machine.s_machine_config.motion.m_AccuraErrPulseX)); _send_cmd_SO7_CMD_WRITE_DATA_TO_FPGA(E_AXIS_X,E_WRITE_ACCURA_ERR,static_cast<char>(g_machine.s_machine_config.motion.m_AccuraErrPulseX));
Sleep(MIN_SLEEP_TIME); Sleep(MIN_SLEEP_TIME);
@@ -3424,12 +3438,12 @@ SSI_STATUS_MOTION CSO7_Proto::so7_motion_init_firmware_para()
Sleep(MIN_SLEEP_TIME); Sleep(MIN_SLEEP_TIME);
_send_cmd_SO7_CMD_WRITE_DATA_TO_FPGA(E_AXIS_Z,E_WRITE_ACCURA_ERR,static_cast<char>(g_machine.s_machine_config.motion.m_AccuraErrPulseZ)); _send_cmd_SO7_CMD_WRITE_DATA_TO_FPGA(E_AXIS_Z,E_WRITE_ACCURA_ERR,static_cast<char>(g_machine.s_machine_config.motion.m_AccuraErrPulseZ));
Sleep(MIN_SLEEP_TIME); Sleep(MIN_SLEEP_TIME);
_send_cmd_SO7_CMD_WRITE_DATA_TO_FPGA(E_AXIS_X,E_WRITE_EQUIDISTANCE,static_cast<char>(g_machine.s_machine_config.motion.m_EQUIDIS_X)); //_send_cmd_SO7_CMD_WRITE_DATA_TO_FPGA(E_AXIS_X,E_WRITE_EQUIDISTANCE,static_cast<char>(g_machine.s_machine_config.motion.m_EQUIDIS_X));
Sleep(MIN_SLEEP_TIME); //Sleep(MIN_SLEEP_TIME);
_send_cmd_SO7_CMD_WRITE_DATA_TO_FPGA(E_AXIS_Y,E_WRITE_EQUIDISTANCE,static_cast<char>(g_machine.s_machine_config.motion.m_EQUIDIS_Y)); //_send_cmd_SO7_CMD_WRITE_DATA_TO_FPGA(E_AXIS_Y,E_WRITE_EQUIDISTANCE,static_cast<char>(g_machine.s_machine_config.motion.m_EQUIDIS_Y));
Sleep(MIN_SLEEP_TIME); //Sleep(MIN_SLEEP_TIME);
_send_cmd_SO7_CMD_WRITE_DATA_TO_FPGA(E_AXIS_Z,E_WRITE_EQUIDISTANCE,static_cast<char>(g_machine.s_machine_config.motion.m_EQUIDIS_Z)); //_send_cmd_SO7_CMD_WRITE_DATA_TO_FPGA(E_AXIS_Z,E_WRITE_EQUIDISTANCE,static_cast<char>(g_machine.s_machine_config.motion.m_EQUIDIS_Z));
Sleep(MIN_SLEEP_TIME); //Sleep(MIN_SLEEP_TIME);
} }
} }
else else
@@ -3615,6 +3629,7 @@ SSI_STATUS_MOTION CSO7_Proto::so7_motion_Dcc_Home_R()
{ {
g_machine.z._pos_fixed._long_=lMoveToDis; g_machine.z._pos_fixed._long_=lMoveToDis;
} }
so7_motion_clear_finished_flag();
_send_cmd_SO7_CMD_MOVE_TO_POS_XYZ(CT_MOVETOXYZ); _send_cmd_SO7_CMD_MOVE_TO_POS_XYZ(CT_MOVETOXYZ);
//======================================== //========================================
INT lSleep = 20; INT lSleep = 20;
@@ -3753,6 +3768,7 @@ SSI_STATUS_MOTION CSO7_Proto::so7_motion_set_position_R(double dRad,bool bWait)
{ {
g_machine.z._pos_fixed._long_=lMoveToDis; g_machine.z._pos_fixed._long_=lMoveToDis;
} }
so7_motion_clear_finished_flag();
_send_cmd_SO7_CMD_MOVE_TO_POS_XYZ(CT_MOVETOXYZ); _send_cmd_SO7_CMD_MOVE_TO_POS_XYZ(CT_MOVETOXYZ);
g_machine.MotionType=EMSG_STOPXYZ_1_MOVETOXYZ; g_machine.MotionType=EMSG_STOPXYZ_1_MOVETOXYZ;
@@ -4105,6 +4121,7 @@ SSI_STATUS_MOTION CSO7_Proto::so7_motion_set_position_xyz(double dX, double dY,
g_machine.z._pos_fixed._long_=Z.to-Z.from; g_machine.z._pos_fixed._long_=Z.to-Z.from;
// _calculate_straightline_motion(g_machine.s_machine_config._dXYZSpeed); // _calculate_straightline_motion(g_machine.s_machine_config._dXYZSpeed);
so7_motion_clear_finished_flag();
_send_cmd_SO7_CMD_MOVE_TO_POS_XYZ(CT_MOVETOXYZ); _send_cmd_SO7_CMD_MOVE_TO_POS_XYZ(CT_MOVETOXYZ);
g_machine.MotionType=EMSG_STOPXYZ_1_MOVETOXYZ; g_machine.MotionType=EMSG_STOPXYZ_1_MOVETOXYZ;
@@ -4213,6 +4230,17 @@ BOOL CSO7_Proto::IsMotionFinishedManual(BOOL _BResetCnts)
} }
return g_machine.MotionFinished; return g_machine.MotionFinished;
}; };
//==================================================================
SSI_STATUS_MOTION CSO7_Proto::so7_motion_clear_finished_flag()
{
WaitForSingleObject(g_hHomedEvent, INFINITE); // machine start and homing is done
if (g_machine.s_machine_config.motion.GetInterruptMsgMethod==E_GET_INTERRUPT_MSG_INQUIRY)
{
_send_cmd_SO7_CMD_SET_INTERRUPT_MSG(g_machine.MotionType,0);
}
return SSI_STATUS_MOTION_NORMAL;
}
//================================================================== //==================================================================
SSI_STATUS_MOTION CSO7_Proto::so7_motion_is_finished(char MotionType,BOOL& IsFinished) SSI_STATUS_MOTION CSO7_Proto::so7_motion_is_finished(char MotionType,BOOL& IsFinished)
{ {
@@ -5560,7 +5588,7 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_SET_CONSTANT_SPEED(int iSpeed,ch
char _speed_fresh(0); char _speed_fresh(0);
char _speed_start(0); char _speed_start(0);
char _speed_max(0); char _speed_max(0);
if (g_machine.FirmwareVer==FirmwareVer_6_X) if (g_machine.FirmwareVer>=FirmwareVer_6_X)
{ {
iDeceDistance = iSpeed; iDeceDistance = iSpeed;
} }
@@ -6146,15 +6174,14 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_READ_TRIG_PULSE_PARA(short ParaI
ReleaseMutex(g_hEP02_Serial_Mutex); ReleaseMutex(g_hEP02_Serial_Mutex);
return SSI_STATUS_MOTION_NORMAL; return SSI_STATUS_MOTION_NORMAL;
} }
static char caxis=1;
//============================================================== //==============================================================
SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_WRITE_TRIG_PULSE_PARA(char ActiveAxis,char TrigMode,short StartIndex,short ParaNumber,short* Para) SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_WRITE_TRIG_PULSE_PARA(char ActiveAxis,char TrigMode,short StartIndex,short ParaNumber,short* Para)
{ {
caxis=ActiveAxis;
WaitForSingleObject(g_hEP02_Serial_Mutex, INFINITE); WaitForSingleObject(g_hEP02_Serial_Mutex, INFINITE);
memset(ep_buff[EP_02_CMD_IDX]._buffer, 0x00, MAX_BUFF_SIZE); memset(ep_buff[EP_02_CMD_IDX]._buffer, 0x00, MAX_BUFF_SIZE);
char cBuff(0); char cBuff(0);
short sPara(0); short sPara(0);
g_machine.TrigPara.TrigPulseActiveAxis=ActiveAxis;
*(ep_buff[EP_02_CMD_IDX]._buffer) = CT_DATA; *(ep_buff[EP_02_CMD_IDX]._buffer) = CT_DATA;
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_WRITE_TRIG_PULSE_PARA; *(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_WRITE_TRIG_PULSE_PARA;
*(ep_buff[EP_02_CMD_IDX]._buffer+2) = ActiveAxis; *(ep_buff[EP_02_CMD_IDX]._buffer+2) = ActiveAxis;
@@ -6208,7 +6235,7 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_TRIG_PULSE_START()
*(ep_buff[EP_02_CMD_IDX]._buffer) = CT_DATA; *(ep_buff[EP_02_CMD_IDX]._buffer) = CT_DATA;
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_START_TRIG_PULSE; *(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_START_TRIG_PULSE;
*(ep_buff[EP_02_CMD_IDX]._buffer+2)=caxis; *(ep_buff[EP_02_CMD_IDX]._buffer+2)=g_machine.TrigPara.TrigPulseActiveAxis;
ep_buff[EP_02_CMD_IDX]._size = 0x03; ep_buff[EP_02_CMD_IDX]._size = 0x03;
ep_buff[EP_81_DATA_IDX]._size = 0x00; ep_buff[EP_81_DATA_IDX]._size = 0x00;
@@ -6226,7 +6253,7 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_TRIG_PULSE_STOP()
*(ep_buff[EP_02_CMD_IDX]._buffer) = CT_DATA; *(ep_buff[EP_02_CMD_IDX]._buffer) = CT_DATA;
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_STOP_TRIG_PULSE; *(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_STOP_TRIG_PULSE;
*(ep_buff[EP_02_CMD_IDX]._buffer+2)=caxis; *(ep_buff[EP_02_CMD_IDX]._buffer+2)=g_machine.TrigPara.TrigPulseActiveAxis;
ep_buff[EP_02_CMD_IDX]._size = 0x03; ep_buff[EP_02_CMD_IDX]._size = 0x03;
ep_buff[EP_81_DATA_IDX]._size = 0x00; ep_buff[EP_81_DATA_IDX]._size = 0x00;
@@ -6261,6 +6288,44 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_IO_PURPOSE(BOOL _bEnTrigIO)
return SSI_STATUS_MOTION_NORMAL; return SSI_STATUS_MOTION_NORMAL;
} }
//============================================================== //==============================================================
SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_SET_MOTION_CNTS(char _Speedgear,char _StartCnts,char _StopCnts)
{
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_MOTION_FINISHED_CNTS;
*(ep_buff[EP_02_CMD_IDX]._buffer+2)= _Speedgear;
*(ep_buff[EP_02_CMD_IDX]._buffer+3)= _StartCnts;
*(ep_buff[EP_02_CMD_IDX]._buffer+4)= _StopCnts;
ep_buff[EP_02_CMD_IDX]._size = 0x05;
ep_buff[EP_81_DATA_IDX]._size = 0x00;
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_GET_MOTION_CNTS(char _Speedgear)
{
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_MOTION_FINISHED_CNTS;
*(ep_buff[EP_02_CMD_IDX]._buffer+2) = _Speedgear;
ep_buff[EP_02_CMD_IDX]._size = 0x03;
ep_buff[EP_82_DATA_IDX]._size = 0x03;
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::_process_SO7_CMD_MOVE_X() SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_MOVE_X()
{ {
@@ -6595,6 +6660,10 @@ SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_READ_FIRMWARE_VERSION_INFO()
{ {
g_machine.FirmwareVer=FirmwareVer_6_X; g_machine.FirmwareVer=FirmwareVer_6_X;
} }
else if (g_machine.FirmwareInfo[3]=='7')
{
g_machine.FirmwareVer=FirmwareVer_7_X;
}
else else
{ {
g_machine.FirmwareVer=FirmwareVer_3_X; g_machine.FirmwareVer=FirmwareVer_3_X;
@@ -6658,4 +6727,13 @@ SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_WRITE_TRIG_PULSE_PARA()
g_machine.TrigPara.TrigTotalNo._char_[3]=0; g_machine.TrigPara.TrigTotalNo._char_[3]=0;
index++; index++;
return SSI_STATUS_MOTION_NORMAL; return SSI_STATUS_MOTION_NORMAL;
} }
//==============================================================
SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_GET_MOTION_CNTS()
{
int index(0);
g_machine.Arm_MotionSpeedGear=*(ep_buff[EP_82_DATA_IDX]._buffer);
g_machine.Arm_MotionStartCnts[index]=*(ep_buff[EP_82_DATA_IDX]._buffer+1);
g_machine.Arm_MotionStopCnts[index]=*(ep_buff[EP_82_DATA_IDX]._buffer+2);
return SSI_STATUS_MOTION_NORMAL;
}
@@ -79,6 +79,7 @@ enum EFirmwareVer
{ {
FirmwareVer_3_X=0, FirmwareVer_3_X=0,
FirmwareVer_6_X, FirmwareVer_6_X,
FirmwareVer_7_X,
FirmwareVer_Total FirmwareVer_Total
}; };
enum ESO7_AXIS_TYPE enum ESO7_AXIS_TYPE
@@ -88,11 +89,22 @@ enum ESO7_AXIS_TYPE
E_AXIS_Z=3, E_AXIS_Z=3,
E_AXIS_V=4 E_AXIS_V=4
}; };
//FirmwareVer_6_X
//enum ESO7_WRITE_FPGA_DATA_ADDR
//{
// E_WRITE_MOTOR_FLAG=9,
// E_WRITE_EQUIDISTANCE=10,
// E_WRITE_ACCURA_ERR=11,
// E_WRITE_TOTAL=16
//};
//FirmwareVer_7_X
enum ESO7_WRITE_FPGA_DATA_ADDR enum ESO7_WRITE_FPGA_DATA_ADDR
{ {
E_WRITE_MOTOR_FLAG=9, E_WRITE_MOTOR_FLAG=9,
E_WRITE_EQUIDISTANCE=10, E_WRITE_TRIG_LSB=10,
E_WRITE_ACCURA_ERR=11, E_WRITE_ACCURA_ERR=12,
E_WRITE_TRIG_MSB=13,
E_WRITE_TRIG_HOLDTIME=14,
E_WRITE_TOTAL=16 E_WRITE_TOTAL=16
}; };
enum ESO7_CONTROLLER_IO_ADDR enum ESO7_CONTROLLER_IO_ADDR
@@ -310,6 +322,9 @@ struct struct_so7_machine
char MotionType; char MotionType;
int MotionFinishedCnts; int MotionFinishedCnts;
BOOL MotionFinished; BOOL MotionFinished;
char Arm_MotionStartCnts[5];
char Arm_MotionStopCnts[5];
char Arm_MotionSpeedGear;
struct s_so7_axis x; struct s_so7_axis x;
struct s_so7_axis y; struct s_so7_axis y;
struct s_so7_axis z; struct s_so7_axis z;
@@ -474,6 +489,7 @@ public:
SSI_STATUS_MOTION so7_motion_get_3D_max_speed(double &dMaxSpeed); 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 so7_motion_is_finished(char MotionType,BOOL& IsFinished);
SSI_STATUS_MOTION so7_motion_clear_finished_flag();
SSI_STATUS_MOTION so7_motion_set_all_speed_para(); SSI_STATUS_MOTION so7_motion_set_all_speed_para();
SSI_STATUS_MOTION so7_motion_get_all_speed_para(); SSI_STATUS_MOTION so7_motion_get_all_speed_para();
@@ -555,6 +571,8 @@ public:
SSI_STATUS_MOTION _send_cmd_SO7_CMD_TRIG_PULSE_START(); SSI_STATUS_MOTION _send_cmd_SO7_CMD_TRIG_PULSE_START();
SSI_STATUS_MOTION _send_cmd_SO7_CMD_TRIG_PULSE_STOP(); SSI_STATUS_MOTION _send_cmd_SO7_CMD_TRIG_PULSE_STOP();
SSI_STATUS_MOTION _send_cmd_SO7_CMD_IO_PURPOSE(BOOL _bEnTrigIO); SSI_STATUS_MOTION _send_cmd_SO7_CMD_IO_PURPOSE(BOOL _bEnTrigIO);
SSI_STATUS_MOTION _send_cmd_SO7_CMD_SET_MOTION_CNTS(char _Speedgear,char _StartCnts,char _StopCnts);
SSI_STATUS_MOTION _send_cmd_SO7_CMD_GET_MOTION_CNTS(char _Speedgear=0);
static SSI_STATUS_MOTION _process_SO7_CMD_MOVE_X(); static SSI_STATUS_MOTION _process_SO7_CMD_MOVE_X();
@@ -596,6 +614,8 @@ public:
static SSI_STATUS_MOTION _process_SO7_CMD_GET_SEQ_NUMBER(); static SSI_STATUS_MOTION _process_SO7_CMD_GET_SEQ_NUMBER();
static SSI_STATUS_MOTION _process_SO7_CMD_READ_TRIG_PULSE_PARA(); static SSI_STATUS_MOTION _process_SO7_CMD_READ_TRIG_PULSE_PARA();
static SSI_STATUS_MOTION _process_SO7_CMD_WRITE_TRIG_PULSE_PARA(); static SSI_STATUS_MOTION _process_SO7_CMD_WRITE_TRIG_PULSE_PARA();
static SSI_STATUS_MOTION _process_SO7_CMD_GET_MOTION_CNTS();
}; };
#endif #endif
@@ -4677,3 +4677,29 @@ Usb Port Initialized.
_start_machine _start_machine
Exit: Exit_SO7Usb 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 .
@@ -15,17 +15,17 @@ SPEED_BASE_X1=28
SPEED_MAX_X1=30 SPEED_MAX_X1=30
SPEED_START_X1=20 SPEED_START_X1=20
SPEED_FRESH_X1=8 SPEED_FRESH_X1=8
SPEED_SLOW_X1=3.000 SPEED_SLOW_X1=2.500
; ;
SPEED_BASE_X2=8 SPEED_BASE_X2=16
SPEED_MAX_X2=10 SPEED_MAX_X2=10
SPEED_START_X2=10 SPEED_START_X2=12
SPEED_FRESH_X2=10 SPEED_FRESH_X2=10
SPEED_SLOW_X2=0.500 SPEED_SLOW_X2=2.000
; ;
SPEED_BASE_X3=2 SPEED_BASE_X3=4
SPEED_MAX_X3=0 SPEED_MAX_X3=80
SPEED_START_X3=8 SPEED_START_X3=10
SPEED_FRESH_X3=10 SPEED_FRESH_X3=10
SPEED_SLOW_X3=0.050 SPEED_SLOW_X3=0.050
; ;
@@ -33,25 +33,25 @@ SPEED_BASE_X4=2
SPEED_MAX_X4=0 SPEED_MAX_X4=0
SPEED_START_X4=5 SPEED_START_X4=5
SPEED_FRESH_X4=10 SPEED_FRESH_X4=10
SPEED_SLOW_X4=0.010 SPEED_SLOW_X4=0.009
; ;
SPEED_BASE_X5=2 SPEED_BASE_X5=28
SPEED_MAX_X5=0 SPEED_MAX_X5=30
SPEED_START_X5=50 SPEED_START_X5=20
SPEED_FRESH_X5=10 SPEED_FRESH_X5=8
SPEED_SLOW_X5=0.100 SPEED_SLOW_X5=2.500
; ;
SPEED_BASE_Y1=20 SPEED_BASE_Y1=20
SPEED_MAX_Y1=10 SPEED_MAX_Y1=10
SPEED_START_Y1=20 SPEED_START_Y1=20
SPEED_FRESH_Y1=8 SPEED_FRESH_Y1=8
SPEED_SLOW_Y1=2.000 SPEED_SLOW_Y1=2.500
; ;
SPEED_BASE_Y2=8 SPEED_BASE_Y2=16
SPEED_MAX_Y2=10 SPEED_MAX_Y2=10
SPEED_START_Y2=10 SPEED_START_Y2=12
SPEED_FRESH_Y2=10 SPEED_FRESH_Y2=10
SPEED_SLOW_Y2=0.500 SPEED_SLOW_Y2=1.000
; ;
SPEED_BASE_Y3=2 SPEED_BASE_Y3=2
SPEED_MAX_Y3=0 SPEED_MAX_Y3=0
@@ -63,7 +63,7 @@ SPEED_BASE_Y4=0
SPEED_MAX_Y4=0 SPEED_MAX_Y4=0
SPEED_START_Y4=10 SPEED_START_Y4=10
SPEED_FRESH_Y4=10 SPEED_FRESH_Y4=10
SPEED_SLOW_Y4=0.010 SPEED_SLOW_Y4=0.009
; ;
SPEED_BASE_Y5=1 SPEED_BASE_Y5=1
SPEED_MAX_Y5=0 SPEED_MAX_Y5=0
@@ -93,7 +93,7 @@ SPEED_BASE_Z4=0
SPEED_MAX_Z4=0 SPEED_MAX_Z4=0
SPEED_START_Z4=18 SPEED_START_Z4=18
SPEED_FRESH_Z4=10 SPEED_FRESH_Z4=10
SPEED_SLOW_Z4=0.010 SPEED_SLOW_Z4=0.009
; ;
SPEED_BASE_Z5=5 SPEED_BASE_Z5=5
SPEED_MAX_Z5=6 SPEED_MAX_Z5=6
@@ -102,7 +102,7 @@ SPEED_FRESH_Z5=10
SPEED_SLOW_Z5=0.100 SPEED_SLOW_Z5=0.100
; ;
X_MOTOR_PRECISION=0.004 X_MOTOR_PRECISION=0.004
Y_MOTOR_PRECISION=0.009 Y_MOTOR_PRECISION=0.008
Z_MOTOR_PRECISION=0.004 Z_MOTOR_PRECISION=0.004
; ;
X_MOTOR_WHEELBASE=1.500 X_MOTOR_WHEELBASE=1.500
@@ -540,8 +540,6 @@ BEGIN
EDITTEXT IDC_EDIT_REPETEST_ERRORRANGE,365,206,45,12,ES_RIGHT | ES_AUTOHSCROLL EDITTEXT IDC_EDIT_REPETEST_ERRORRANGE,365,206,45,12,ES_RIGHT | ES_AUTOHSCROLL
PUSHBUTTON "开始",IDC_BUTTON_BEGIN_REPE_TEST,435,159,56,13 PUSHBUTTON "开始",IDC_BUTTON_BEGIN_REPE_TEST,435,159,56,13
PUSHBUTTON "保存记录...",IDC_BUTTON_SAVE_REPETEST,435,186,56,13 PUSHBUTTON "保存记录...",IDC_BUTTON_SAVE_REPETEST,435,186,56,13
GROUPBOX "单位",IDC_STATIC,18,15,160,38
GROUPBOX "运动类型",IDC_STATIC,188,15,129,38
GROUPBOX "匀速速度",IDC_STATIC,187,68,305,41 GROUPBOX "匀速速度",IDC_STATIC,187,68,305,41
PUSHBUTTON "EXIT",IDCANCEL,697,449,50,14,NOT WS_VISIBLE PUSHBUTTON "EXIT",IDCANCEL,697,449,50,14,NOT WS_VISIBLE
LTEXT "x",IDC_STATIC,28,134,8,8 LTEXT "x",IDC_STATIC,28,134,8,8
@@ -589,6 +587,15 @@ BEGIN
GROUPBOX "档位",IDC_STATIC,27,68,149,41 GROUPBOX "档位",IDC_STATIC,27,68,149,41
GROUPBOX "定位速度",IDC_STATIC,18,59,479,60 GROUPBOX "定位速度",IDC_STATIC,18,59,479,60
GROUPBOX "Log",IDC_STATIC,16,268,487,183 GROUPBOX "Log",IDC_STATIC,16,268,487,183
EDITTEXT IDC_EDIT_SO7_MOTION_START_CNTS,370,21,40,14,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_SO7_MOTION_STOP_CNTS,370,40,40,14,ES_AUTOHSCROLL
PUSHBUTTON "Set",IDC_BUTTON_SO7_MOTION_SET_CNTS,420,20,50,14
PUSHBUTTON "Get",IDC_BUTTON_SO7_MOTION_GET_CNTS,420,40,50,14
GROUPBOX "Motion Cnts",IDC_STATIC,324,10,174,48
GROUPBOX "运动类型",IDC_STATIC,188,10,129,48
GROUPBOX "单位",IDC_STATIC,18,10,160,48
LTEXT "Start",IDC_STATIC,343,24,17,8
LTEXT "Stop",IDC_STATIC,343,41,16,8
END END
IDD_SO7_UTIL_IMAGE_DLL DIALOGEX 0, 0, 377, 184 IDD_SO7_UTIL_IMAGE_DLL DIALOGEX 0, 0, 377, 184
@@ -983,13 +990,15 @@ BEGIN
CONTROL "",IDC_LIST_SO7_EXTRIG_SPECLOCATION,"SysListView32",LVS_REPORT | WS_BORDER | WS_TABSTOP,33,113,254,77 CONTROL "",IDC_LIST_SO7_EXTRIG_SPECLOCATION,"SysListView32",LVS_REPORT | WS_BORDER | WS_TABSTOP,33,113,254,77
EDITTEXT IDC_EDIT_SO7_EXTRIG_RESULT,19,208,294,80,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL EDITTEXT IDC_EDIT_SO7_EXTRIG_RESULT,19,208,294,80,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL
PUSHBUTTON "Exit",IDCANCEL,276,295,50,14 PUSHBUTTON "Exit",IDCANCEL,276,295,50,14
PUSHBUTTON "开始",IDC_BUTTON_SO7_EXTRIG_START,171,30,50,14 PUSHBUTTON "开始",IDC_BUTTON_SO7_EXTRIG_START,238,23,50,14
GROUPBOX "外触发轴",IDC_STATIC,17,15,125,41 GROUPBOX "外触发轴",IDC_STATIC,17,15,125,41
PUSHBUTTON "停止",IDC_BUTTON_SO7_EXTRIG_STOP,243,30,50,14 PUSHBUTTON "停止",IDC_BUTTON_SO7_EXTRIG_STOP,238,39,50,14
GROUPBOX "外触发参数",IDC_STATIC,17,58,297,144 GROUPBOX "外触发参数",IDC_STATIC,17,58,297,144
GROUPBOX "操作",IDC_STATIC,150,15,163,40 GROUPBOX "操作",IDC_STATIC,150,15,163,40
PUSHBUTTON "设置",IDC_BUTTON_SO7_EXTRIG_SET_PARA,238,70,50,14 PUSHBUTTON "设置",IDC_BUTTON_SO7_EXTRIG_SET_PARA,238,70,50,14
PUSHBUTTON "读取",IDC_BUTTON_SO7_EXTRIG_GET_PARA,238,90,50,14 PUSHBUTTON "读取",IDC_BUTTON_SO7_EXTRIG_GET_PARA,238,90,50,14
EDITTEXT IDC_EDIT_SO7_EXTRIG_TEST_TIMES,182,30,40,14,ES_AUTOHSCROLL
LTEXT "次数",IDC_STATIC,161,32,17,8
END END
@@ -84,6 +84,8 @@ BEGIN_MESSAGE_MAP(CSO7_Move_Location, CMFCPropertyPage)
ON_BN_CLICKED(IDC_RADIO_SO7_MOVE_SPEED_GEAR3, &CSO7_Move_Location::OnBnClickedRadioSo7MoveSpeedGear3) ON_BN_CLICKED(IDC_RADIO_SO7_MOVE_SPEED_GEAR3, &CSO7_Move_Location::OnBnClickedRadioSo7MoveSpeedGear3)
ON_BN_CLICKED(IDC_RADIO_SO7_MOVE_SPEED_GEAR4, &CSO7_Move_Location::OnBnClickedRadioSo7MoveSpeedGear4) ON_BN_CLICKED(IDC_RADIO_SO7_MOVE_SPEED_GEAR4, &CSO7_Move_Location::OnBnClickedRadioSo7MoveSpeedGear4)
ON_BN_CLICKED(IDC_RADIO_SO7_MOVE_SPEED_GEAR5, &CSO7_Move_Location::OnBnClickedRadioSo7MoveSpeedGear5) ON_BN_CLICKED(IDC_RADIO_SO7_MOVE_SPEED_GEAR5, &CSO7_Move_Location::OnBnClickedRadioSo7MoveSpeedGear5)
ON_BN_CLICKED(IDC_BUTTON_SO7_MOTION_SET_CNTS, &CSO7_Move_Location::OnBnClickedButtonSo7MotionSetCnts)
ON_BN_CLICKED(IDC_BUTTON_SO7_MOTION_GET_CNTS, &CSO7_Move_Location::OnBnClickedButtonSo7MotionGetCnts)
END_MESSAGE_MAP() END_MESSAGE_MAP()
// CSO7_Move_Location ÏûÏ¢´¦Àí³ÌÐò // CSO7_Move_Location ÏûÏ¢´¦Àí³ÌÐò
@@ -151,6 +153,10 @@ BOOL CSO7_Move_Location::OnInitDialog()
m_RepeTest_Interval=_T("0"); m_RepeTest_Interval=_T("0");
m_RepeTest_ErrRange=_T("0"); m_RepeTest_ErrRange=_T("0");
bRepeTestDone=false; bRepeTestDone=false;
((CEdit*)GetDlgItem(IDC_EDIT_SO7_MOTION_START_CNTS))->SetWindowTextW(_T("30"));
((CEdit*)GetDlgItem(IDC_EDIT_SO7_MOTION_STOP_CNTS))->SetWindowTextW(_T("5"));
UpdateData(FALSE); UpdateData(FALSE);
return TRUE; return TRUE;
} }
@@ -2424,6 +2430,38 @@ void CSO7_Move_Location::RepeTestMoveTo(char type,char axis,double dis)
} }
//=========================================================================================
void CSO7_Move_Location::OnBnClickedButtonSo7MotionSetCnts()
{
UpdateData(TRUE);
USES_CONVERSION;
char Startcnts(0);
char Stopcnts(0);
CString csTmp;
((CEdit*)GetDlgItem(IDC_EDIT_SO7_MOTION_START_CNTS))->GetWindowTextW(csTmp);
const char* cTmp=T2A(csTmp);
Startcnts = static_cast<char>(atoi(cTmp));
((CEdit*)GetDlgItem(IDC_EDIT_SO7_MOTION_STOP_CNTS))->GetWindowTextW(csTmp);
cTmp=T2A(csTmp);
Stopcnts = static_cast<char>(atoi(cTmp));
m_pSO7_Proto->_send_cmd_SO7_CMD_SET_MOTION_CNTS(m_pSO7_Proto->g_machine.x._MoveTo_Speed_Gear,Startcnts,Stopcnts);
}
//=========================================================================================
void CSO7_Move_Location::OnBnClickedButtonSo7MotionGetCnts()
{
m_pSO7_Proto->_send_cmd_SO7_CMD_GET_MOTION_CNTS(m_pSO7_Proto->g_machine.x._MoveTo_Speed_Gear);
CString csTmp;
csTmp.Format(_T("MotionCnts:Gear=%d,Start=%d,Stop=%d."),m_pSO7_Proto->g_machine.Arm_MotionSpeedGear
,static_cast<BYTE>(m_pSO7_Proto->g_machine.Arm_MotionStartCnts[0]),static_cast<BYTE>(m_pSO7_Proto->g_machine.Arm_MotionStopCnts[0]));
OutputWithScroll(csTmp,m_edit_RepeTest);
csTmp.Format(_T("%d"),static_cast<BYTE>(m_pSO7_Proto->g_machine.Arm_MotionStartCnts[0]));
((CEdit*)GetDlgItem(IDC_EDIT_SO7_MOTION_START_CNTS))->SetWindowTextW(csTmp);
csTmp.Format(_T("%d"),static_cast<BYTE>(m_pSO7_Proto->g_machine.Arm_MotionStopCnts[0]));
((CEdit*)GetDlgItem(IDC_EDIT_SO7_MOTION_STOP_CNTS))->SetWindowTextW(csTmp);
}
//========================================================================================= //=========================================================================================
void CSO7_Move_Location::OnTimer(UINT_PTR nIDEvent) void CSO7_Move_Location::OnTimer(UINT_PTR nIDEvent)
{ {
@@ -2706,3 +2744,5 @@ void CSO7_Move_Location::OnBnClickedCheckSo7MovetoFpgadata()
KillTimer(5); KillTimer(5);
} }
} }
@@ -109,4 +109,6 @@ public:
afx_msg void OnBnClickedRadioSo7MoveSpeedGear3(); afx_msg void OnBnClickedRadioSo7MoveSpeedGear3();
afx_msg void OnBnClickedRadioSo7MoveSpeedGear4(); afx_msg void OnBnClickedRadioSo7MoveSpeedGear4();
afx_msg void OnBnClickedRadioSo7MoveSpeedGear5(); afx_msg void OnBnClickedRadioSo7MoveSpeedGear5();
afx_msg void OnBnClickedButtonSo7MotionSetCnts();
afx_msg void OnBnClickedButtonSo7MotionGetCnts();
}; };
@@ -216,7 +216,7 @@ BOOL CSO7_Send_Parameter::OnInitDialog()
((CButton *)GetDlgItem(IDC_RADIO_CANVAS_POSTION_TIME))->SetCheck(false); ((CButton *)GetDlgItem(IDC_RADIO_CANVAS_POSTION_TIME))->SetCheck(false);
((CButton *)GetDlgItem(IDC_RADIO_CANVAS_SPEED_TIME))->SetCheck(true); ((CButton *)GetDlgItem(IDC_RADIO_CANVAS_SPEED_TIME))->SetCheck(true);
if (m_pSO7_Proto->g_machine.FirmwareVer==FirmwareVer_6_X) 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_PARA1))->SetWindowTextW(_T("¼ÓËÙ¶È(0-255)"));
((CStatic *)GetDlgItem(IDC_STATIC_SPEED_PARA2))->SetWindowTextW(_T("»º³å¾àÀë(0-255)")); ((CStatic *)GetDlgItem(IDC_STATIC_SPEED_PARA2))->SetWindowTextW(_T("»º³å¾àÀë(0-255)"));
@@ -71,7 +71,7 @@ BOOL CSo7_Art_PCI8622::OnInitDialog()
} }
} }
GetDlgItem(IDC_EDIT_ART_PCI8622_GET_DATA_NUMBER)->SetWindowTextW(_T("4096")); GetDlgItem(IDC_EDIT_ART_PCI8622_GET_DATA_NUMBER)->SetWindowTextW(_T("4096"));
GetDlgItem(IDC_EDIT_ART_PCI8622_READ_TIMES)->SetWindowTextW(_T("1")); GetDlgItem(IDC_EDIT_ART_PCI8622_READ_TIMES)->SetWindowTextW(_T("0"));
((CButton *)GetDlgItem(IDC_RADIO_ART_PCI8622_MODE_DMATRIG))->SetCheck(TRUE); ((CButton *)GetDlgItem(IDC_RADIO_ART_PCI8622_MODE_DMATRIG))->SetCheck(TRUE);
m_pART_PCI8622->Init(); m_pART_PCI8622->Init();
@@ -20,7 +20,10 @@ IMPLEMENT_DYNAMIC(CSo7_Util_External_Trig, CDialog)
for (int i=0;i<65535;i++) for (int i=0;i<65535;i++)
{ {
m_TrigPara[i]=0; m_TrigPara[i]=0;
m_TrigSetPara[i]=0;
} }
m_TestTimes=1;
m_CurTestCnt=0;
} }
CSo7_Util_External_Trig::~CSo7_Util_External_Trig() CSo7_Util_External_Trig::~CSo7_Util_External_Trig()
@@ -36,6 +39,7 @@ void CSo7_Util_External_Trig::DoDataExchange(CDataExchange* pDX)
BEGIN_MESSAGE_MAP(CSo7_Util_External_Trig, CDialog) BEGIN_MESSAGE_MAP(CSo7_Util_External_Trig, CDialog)
ON_WM_TIMER()
ON_BN_CLICKED(IDC_RADIO_SO7_EXTRIG_EQDIS, &CSo7_Util_External_Trig::OnBnClickedRadioSo7ExtrigEqdis) ON_BN_CLICKED(IDC_RADIO_SO7_EXTRIG_EQDIS, &CSo7_Util_External_Trig::OnBnClickedRadioSo7ExtrigEqdis)
ON_BN_CLICKED(IDC_RADIO_SO7_EXTRIG_SPECLOCATION, &CSo7_Util_External_Trig::OnBnClickedRadioSo7ExtrigSpeclocation) ON_BN_CLICKED(IDC_RADIO_SO7_EXTRIG_SPECLOCATION, &CSo7_Util_External_Trig::OnBnClickedRadioSo7ExtrigSpeclocation)
ON_BN_CLICKED(IDC_BUTTON_SO7_EXTRIG_START, &CSo7_Util_External_Trig::OnBnClickedButtonSo7ExtrigStart) ON_BN_CLICKED(IDC_BUTTON_SO7_EXTRIG_START, &CSo7_Util_External_Trig::OnBnClickedButtonSo7ExtrigStart)
@@ -43,6 +47,7 @@ BEGIN_MESSAGE_MAP(CSo7_Util_External_Trig, CDialog)
ON_EN_KILLFOCUS(IDC_EDIT_SO7_EXTRIG_SPECLOCATION, &CSo7_Util_External_Trig::OnEnKillfocusEditSo7ExtrigSpeclocation) ON_EN_KILLFOCUS(IDC_EDIT_SO7_EXTRIG_SPECLOCATION, &CSo7_Util_External_Trig::OnEnKillfocusEditSo7ExtrigSpeclocation)
ON_BN_CLICKED(IDC_BUTTON_SO7_EXTRIG_SET_PARA, &CSo7_Util_External_Trig::OnBnClickedButtonSo7ExtrigSetPara) ON_BN_CLICKED(IDC_BUTTON_SO7_EXTRIG_SET_PARA, &CSo7_Util_External_Trig::OnBnClickedButtonSo7ExtrigSetPara)
ON_BN_CLICKED(IDC_BUTTON_SO7_EXTRIG_GET_PARA, &CSo7_Util_External_Trig::OnBnClickedButtonSo7ExtrigGetPara) ON_BN_CLICKED(IDC_BUTTON_SO7_EXTRIG_GET_PARA, &CSo7_Util_External_Trig::OnBnClickedButtonSo7ExtrigGetPara)
ON_BN_CLICKED(IDCANCEL, &CSo7_Util_External_Trig::OnBnClickedCancel)
END_MESSAGE_MAP() END_MESSAGE_MAP()
@@ -81,6 +86,8 @@ BOOL CSo7_Util_External_Trig::OnInitDialog()
m_ParaListRows=0; m_ParaListRows=0;
m_UpdateListControl(E_LISTCTRL_TITLE); m_UpdateListControl(E_LISTCTRL_TITLE);
m_UpdateListControl(E_LISTCTRL_NO); m_UpdateListControl(E_LISTCTRL_NO);
((CEdit*)GetDlgItem(IDC_EDIT_SO7_EXTRIG_TEST_TIMES))->SetWindowText(_T("1"));
return TRUE; // return TRUE unless you set the focus to a control return TRUE; // return TRUE unless you set the focus to a control
} }
@@ -116,7 +123,7 @@ void CSo7_Util_External_Trig::m_UpdateListControl(int _type)
CString str; CString str;
str.Format(_T("%d"),i+1); str.Format(_T("%d"),i+1);
m_ParaList.InsertItem(i,str); m_ParaList.InsertItem(i,str);
m_ParaList.SetItemText(i,1,str); m_ParaList.SetItemText(i,1,_T("1"));
} }
} }
else else
@@ -170,16 +177,27 @@ void CSo7_Util_External_Trig::OnBnClickedRadioSo7ExtrigSpeclocation()
//===================================================================== //=====================================================================
void CSo7_Util_External_Trig::OnBnClickedButtonSo7ExtrigStart() void CSo7_Util_External_Trig::OnBnClickedButtonSo7ExtrigStart()
{ {
GetDlgItem(IDC_BUTTON_SO7_EXTRIG_START)->EnableWindow(FALSE);
m_UpdatePara(TRUE); m_UpdatePara(TRUE);
m_pSO7_Proto->_send_cmd_SO7_CMD_TRIG_PULSE_START(); m_pSO7_Proto->_send_cmd_SO7_CMD_TRIG_PULSE_START();
m_pSO7_Proto->so7_motion_set_position_xyz(m_EndPos[0],m_EndPos[1],m_EndPos[2],true); char _Gear(3);
_Gear=m_pSO7_Proto->g_machine.x._Move_Speed_Gear;
m_pSO7_Proto->g_machine.x._MoveTo_Speed_Gear=_Gear;
m_pSO7_Proto->g_machine.y._MoveTo_Speed_Gear=_Gear;
m_pSO7_Proto->g_machine.z._MoveTo_Speed_Gear=_Gear;
m_pSO7_Proto->so7_motion_set_position_xyz(m_EndPos[0],m_EndPos[1],m_EndPos[2],false);
if (m_TestTimes>1)
{
SetTimer(1,500,NULL);
}
} }
//===================================================================== //=====================================================================
void CSo7_Util_External_Trig::OnBnClickedButtonSo7ExtrigStop() void CSo7_Util_External_Trig::OnBnClickedButtonSo7ExtrigStop()
{ {
m_pSO7_Proto->_send_cmd_SO7_CMD_TRIG_PULSE_STOP(); KillTimer(1);
m_pSO7_Proto->so7_motion_set_position_xyz(m_BeginPos[0],m_BeginPos[1],m_BeginPos[2],true); m_StopTrig();
GetDlgItem(IDC_BUTTON_SO7_EXTRIG_START)->EnableWindow(TRUE);
} }
//===================================================================================== //=====================================================================================
@@ -270,8 +288,14 @@ void CSo7_Util_External_Trig::m_UpdatePara(BOOL _bSave)
CString csTmp; CString csTmp;
const char* cTmp; const char* cTmp;
double dResolution(0.5); double dResolution(0.5);
double dEndPos(0.0); double dEndPos(0.5);
double dTmp(0.0); double dTmp(0.0);
((CEdit*)GetDlgItem(IDC_EDIT_SO7_EXTRIG_TEST_TIMES))->GetWindowTextW(csTmp);
cTmp=T2A(csTmp);
m_TestTimes = static_cast<short>(atoi(cTmp));
m_CurTestCnt=0;
m_pSO7_Proto->so7_motion_get_position_xyz(m_BeginPos[0],m_BeginPos[1],m_BeginPos[2]); m_pSO7_Proto->so7_motion_get_position_xyz(m_BeginPos[0],m_BeginPos[1],m_BeginPos[2]);
if (((CButton *)GetDlgItem(IDC_RADIO_SO7_EXTRIG_X))->GetCheck()) if (((CButton *)GetDlgItem(IDC_RADIO_SO7_EXTRIG_X))->GetCheck())
@@ -311,6 +335,7 @@ void CSo7_Util_External_Trig::m_UpdatePara(BOOL _bSave)
dEndPos+=dTmp; dEndPos+=dTmp;
m_TrigPara[iRow]=static_cast<short>(m_pSO7_Proto->MMtoScale(dTmp,dResolution)); m_TrigPara[iRow]=static_cast<short>(m_pSO7_Proto->MMtoScale(dTmp,dResolution));
} }
dEndPos+=dTmp;
} }
if (m_ActiveAxis==E_AXIS_X) if (m_ActiveAxis==E_AXIS_X)
{ {
@@ -346,6 +371,66 @@ void CSo7_Util_External_Trig::m_UpdatePara(BOOL _bSave)
} }
} }
//===================================================================================== //=====================================================================================
void CSo7_Util_External_Trig::m_StartTrig()
{
short iParaNumber(0);
double dEndPos(0.5);
long lEndPos(0);
double dTmp(0.0);
double dResolution(0.0);
int iAxisID(0);
double dTmpXYZ[3]={0.0};
m_pSO7_Proto->so7_motion_get_position_xyz(dTmpXYZ[0],dTmpXYZ[1],dTmpXYZ[2]);
m_EndPos[0]=dTmpXYZ[0];
m_EndPos[1]=dTmpXYZ[1];
m_EndPos[2]=dTmpXYZ[2];
if (m_ActiveAxis==E_AXIS_X)
{
dResolution=m_pSO7_Proto->g_machine.s_machine_config.x_axis._scale_resolution;
iAxisID=0;
}
else if (m_ActiveAxis==E_AXIS_Y)
{
dResolution=m_pSO7_Proto->g_machine.s_machine_config.y_axis._scale_resolution;
iAxisID=1;
}
else
{
dResolution=m_pSO7_Proto->g_machine.s_machine_config.z_axis._scale_resolution;
iAxisID=2;
}
if (m_TrigMode==E_DIS_TRIG_PULSE_EQDIS)
{
m_TrigSetPara[0]=m_TrigPara[0];
iParaNumber=1;
dEndPos=10.0;
}
else
{
iParaNumber=m_ParaNumber;
for (int i=0;i<m_ParaNumber;i++)
{
dTmp=m_BeginPos[iAxisID]-dTmpXYZ[iAxisID];
m_TrigSetPara[i]=m_TrigPara[i]+static_cast<short>(m_pSO7_Proto->MMtoScale(dTmp,dResolution));
lEndPos+=m_TrigSetPara[i];
}
}
dEndPos+=m_pSO7_Proto->ScaleToMM(lEndPos,dResolution);
m_EndPos[iAxisID]=dTmpXYZ[iAxisID]+dEndPos;
m_pSO7_Proto->so7_motion_set_trig_para(m_ActiveAxis,m_TrigMode,iParaNumber,m_TrigPara);
m_csMsg.Format(_T("[Write Trig Para]:R TotalNo=%d"),m_pSO7_Proto->g_machine.TrigPara.TrigTotalNo);
OutputWithScroll(m_csMsg,m_EdMsg);
m_pSO7_Proto->_send_cmd_SO7_CMD_TRIG_PULSE_START();
Sleep(20);
m_pSO7_Proto->so7_motion_set_position_xyz(m_EndPos[0],m_EndPos[1],m_EndPos[2],false);
}
//=====================================================================================
void CSo7_Util_External_Trig::m_StopTrig()
{
m_pSO7_Proto->_send_cmd_SO7_CMD_TRIG_PULSE_STOP();
m_pSO7_Proto->so7_motion_set_position_xyz(m_BeginPos[0],m_BeginPos[1],m_BeginPos[2],false);
}
//=====================================================================================
//Print message on edit control //Print message on edit control
void CSo7_Util_External_Trig::OutputWithScroll(const CString &strNewText,CEdit &edtOutput) void CSo7_Util_External_Trig::OutputWithScroll(const CString &strNewText,CEdit &edtOutput)
{ {
@@ -365,4 +450,42 @@ void CSo7_Util_External_Trig::OutputWithScroll(const CString &strNewText,CEdit &
edtOutput.LineScroll(iLine, 0); edtOutput.LineScroll(iLine, 0);
edtOutput.SetSel(iCount, iCount); edtOutput.SetSel(iCount, iCount);
edtOutput.SetRedraw(TRUE); edtOutput.SetRedraw(TRUE);
}
void CSo7_Util_External_Trig::OnBnClickedCancel()
{
KillTimer(1);
// TODO: Add your control notification handler code here
CDialog::OnCancel();
}
//===================================================
void CSo7_Util_External_Trig::OnTimer(UINT_PTR nIDEvent)
{
switch(nIDEvent)
{
case 1:
{
bool Isfinished(false);
m_pSO7_Proto->so7_Motion_XYZ_IsMotionFinished(Isfinished);
if(Isfinished)
{
if (m_CurTestCnt%2==0)
{
m_StopTrig();
}
else
{
m_StartTrig();
}
m_CurTestCnt++;
}
if(m_CurTestCnt>=2*m_TestTimes)
{
OnBnClickedButtonSo7ExtrigStop();
}
break;
}
}
CDialog::OnTimer(nIDEvent);
} }
@@ -31,18 +31,24 @@ protected:
char m_ActiveAxis; char m_ActiveAxis;
short m_ParaNumber; short m_ParaNumber;
short m_TrigPara[65535]; short m_TrigPara[65535];
short m_TrigSetPara[65535];
CString m_csMsg; CString m_csMsg;
CEdit m_EdMsg; CEdit m_EdMsg;
void OutputWithScroll(const CString &strNewText,CEdit &edtOutput); void OutputWithScroll(const CString &strNewText,CEdit &edtOutput);
CEditableListCtrl m_ParaList; CEditableListCtrl m_ParaList;
void m_UpdateListControl(int _type); void m_UpdateListControl(int _type);
void m_StartTrig();
void m_StopTrig();
int m_ParaListRows; int m_ParaListRows;
int m_ParaListSelectedRow; int m_ParaListSelectedRow;
int m_ParaListSelectedCol; int m_ParaListSelectedCol;
short m_ReturnPara; short m_ReturnPara;
double m_BeginPos[3]; double m_BeginPos[3];
double m_EndPos[3]; double m_EndPos[3];
int m_TestTimes;
int m_CurTestCnt;
public: public:
afx_msg void OnTimer(UINT_PTR nIDEvent);
afx_msg void OnBnClickedRadioSo7ExtrigEqdis(); afx_msg void OnBnClickedRadioSo7ExtrigEqdis();
afx_msg void OnBnClickedRadioSo7ExtrigSpeclocation(); afx_msg void OnBnClickedRadioSo7ExtrigSpeclocation();
afx_msg void OnBnClickedButtonSo7ExtrigStart(); afx_msg void OnBnClickedButtonSo7ExtrigStart();
@@ -50,4 +56,5 @@ public:
afx_msg void OnEnKillfocusEditSo7ExtrigSpeclocation(); afx_msg void OnEnKillfocusEditSo7ExtrigSpeclocation();
afx_msg void OnBnClickedButtonSo7ExtrigSetPara(); afx_msg void OnBnClickedButtonSo7ExtrigSetPara();
afx_msg void OnBnClickedButtonSo7ExtrigGetPara(); afx_msg void OnBnClickedButtonSo7ExtrigGetPara();
afx_msg void OnBnClickedCancel();
}; };
@@ -217,7 +217,9 @@
<ClCompile Include="..\..\..\STIL\Common\src\cAcqEasy.cpp"> <ClCompile Include="..\..\..\STIL\Common\src\cAcqEasy.cpp">
<Filter>Sources Files</Filter> <Filter>Sources Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="So7_Util_External_Trig.cpp" /> <ClCompile Include="So7_Util_External_Trig.cpp">
<Filter>Sources Files</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="CaptureDataDlg.h"> <ClInclude Include="CaptureDataDlg.h">
@@ -469,7 +471,9 @@
<ClInclude Include="..\..\..\STIL\STIL_CCS_PRIMA_Laser.h"> <ClInclude Include="..\..\..\STIL\STIL_CCS_PRIMA_Laser.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="So7_Util_External_Trig.h" /> <ClInclude Include="So7_Util_External_Trig.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="ReadMe.txt" /> <None Include="ReadMe.txt" />
@@ -657,13 +657,13 @@
#define IDC_BTN_KEYENCE_LKG5000_ETHERNET_READOUT1 1542 #define IDC_BTN_KEYENCE_LKG5000_ETHERNET_READOUT1 1542
#define IDC_BUTTON_STIL_LASER_EXIT 1542 #define IDC_BUTTON_STIL_LASER_EXIT 1542
#define IDC_BUTTON_SO7_EXTRIG_STOP 1542 #define IDC_BUTTON_SO7_EXTRIG_STOP 1542
#define IDC_BUTTON_SO7_MOTION_SET_CNTS 1542
#define IDC_BUTTON_STOP_SAMPLE_SCURVE 1543 #define IDC_BUTTON_STOP_SAMPLE_SCURVE 1543
#define IDC_BTN_KEYENCE_LKG5000_ETHERNET_READOUT2 1543 #define IDC_BTN_KEYENCE_LKG5000_ETHERNET_READOUT2 1543
#define IDC_BUTTON_SO7_MOTION_CONFIG_OK2 1543 #define IDC_BUTTON_SO7_MOTION_CONFIG_OK2 1543
#define IDC_BUTTON_SO7_MOTION_CONFIG_SET_DEFAULT 1543 #define IDC_BUTTON_SO7_MOTION_CONFIG_SET_DEFAULT 1543
#define IDC_BUTTON_SO7_EXTRIG_SET_PARA 1543 #define IDC_BUTTON_SO7_EXTRIG_SET_PARA 1543
#define IDC_BTN_CONFIGURE_MOVEVOUT 1544 #define IDC_BTN_CONFIGURE_MOVEVOUT 1544
#define IDC_BUTTON_SO7_EXTRIG_STOP3 1544
#define IDC_BUTTON_SO7_EXTRIG_GET_PARA 1544 #define IDC_BUTTON_SO7_EXTRIG_GET_PARA 1544
#define IDC_BUTTON_STOP_SCAN_KEYENCE_LK_GLASER 1545 #define IDC_BUTTON_STOP_SCAN_KEYENCE_LK_GLASER 1545
#define IDC_BUTTON_SET_TRIGGER 1546 #define IDC_BUTTON_SET_TRIGGER 1546
@@ -710,6 +710,7 @@
#define IDC_BUTTONIDC_BUTTON_TESA_STAR_MOVETO 1585 #define IDC_BUTTONIDC_BUTTON_TESA_STAR_MOVETO 1585
#define IDC_BUTTON_SO7_TRIGPULSE_STOP 1585 #define IDC_BUTTON_SO7_TRIGPULSE_STOP 1585
#define IDC_BTN_KEYENCE_LKG5000_ETHERNET_STORAGEDATA2 1585 #define IDC_BTN_KEYENCE_LKG5000_ETHERNET_STORAGEDATA2 1585
#define IDC_BUTTON_SO7_MOTION_GET_CNTS 1585
#define IDC_BUTTON_INIT_SCAN_KEYENCE_LK_GLASER 1586 #define IDC_BUTTON_INIT_SCAN_KEYENCE_LK_GLASER 1586
#define IDC_BUTTON_SO7_TRIGPULSE_START 1586 #define IDC_BUTTON_SO7_TRIGPULSE_START 1586
#define IDC_BTN_KEYENCE_LKG5000_ETHERNET_STORAGEDATA1 1586 #define IDC_BTN_KEYENCE_LKG5000_ETHERNET_STORAGEDATA1 1586
@@ -1017,6 +1018,10 @@
#define IDC_RADIO_SO7_EXTRIG_Z 1868 #define IDC_RADIO_SO7_EXTRIG_Z 1868
#define IDC_EDIT_SO7_EXTRIG_EQDIS 1869 #define IDC_EDIT_SO7_EXTRIG_EQDIS 1869
#define IDC_LIST_SO7_EXTRIG_SPECLOCATION 1870 #define IDC_LIST_SO7_EXTRIG_SPECLOCATION 1870
#define IDC_EDIT_SO7_EXTRIG_TEST_TIMES 1872
#define IDC_EDIT2 1873
#define IDC_EDIT_SO7_MOTION_STOP_CNTS 1873
#define IDC_EDIT_SO7_MOTION_START_CNTS 1874
#define IDC_BUTTON_DIY_EXIT_BUTTON 32740 #define IDC_BUTTON_DIY_EXIT_BUTTON 32740
#define ID_EDIT_SO7_CONFIG_MOTION 32741 #define ID_EDIT_SO7_CONFIG_MOTION 32741
@@ -1026,7 +1031,7 @@
#ifndef APSTUDIO_READONLY_SYMBOLS #ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 193 #define _APS_NEXT_RESOURCE_VALUE 193
#define _APS_NEXT_COMMAND_VALUE 32771 #define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1872 #define _APS_NEXT_CONTROL_VALUE 1875
#define _APS_NEXT_SYMED_VALUE 104 #define _APS_NEXT_SYMED_VALUE 104
#endif #endif
#endif #endif