增加触发脉冲测试功能。
This commit is contained in:
@@ -246,6 +246,12 @@ void CSO7_Proto::_process_rcv_transfer_data(int iEP)
|
||||
case CT_READ_SEQ_NUMBER:
|
||||
_process_SO7_CMD_GET_SEQ_NUMBER();
|
||||
break;
|
||||
case CT_READ_TRIG_PULSE_PARA:
|
||||
_process_SO7_CMD_READ_TRIG_PULSE_PARA();
|
||||
break;
|
||||
case CT_WRITE_TRIG_PULSE_PARA:
|
||||
_process_SO7_CMD_WRITE_TRIG_PULSE_PARA();
|
||||
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);
|
||||
@@ -5751,6 +5757,106 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_GET_SEQ_NUMBER()
|
||||
ReleaseMutex(g_hEP02_Serial_Mutex);
|
||||
return SSI_STATUS_MOTION_NORMAL;
|
||||
}
|
||||
|
||||
//==============================================================
|
||||
SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_READ_TRIG_PULSE_PARA(short ParaIndex)
|
||||
{
|
||||
WaitForSingleObject(g_hEP02_Serial_Mutex, INFINITE);
|
||||
memset(ep_buff[EP_02_CMD_IDX]._buffer, 0x00, MAX_BUFF_SIZE);
|
||||
char cBuff(0);
|
||||
|
||||
*(ep_buff[EP_02_CMD_IDX]._buffer) = CT_DATA;
|
||||
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_READ_TRIG_PULSE_PARA;
|
||||
cBuff = (ParaIndex>>8) & 0x0ff;
|
||||
*(ep_buff[EP_02_CMD_IDX]._buffer+2) = cBuff;
|
||||
cBuff = ParaIndex & 0x0ff;
|
||||
*(ep_buff[EP_02_CMD_IDX]._buffer+3) = cBuff;
|
||||
|
||||
ep_buff[EP_02_CMD_IDX]._size = 0x04;
|
||||
ep_buff[EP_82_DATA_IDX]._size = 0x08;
|
||||
|
||||
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_WRITE_TRIG_PULSE_PARA(char ActiveAxis,char TrigMode,short StartIndex,short ParaNumber,short* Para)
|
||||
{
|
||||
WaitForSingleObject(g_hEP02_Serial_Mutex, INFINITE);
|
||||
memset(ep_buff[EP_02_CMD_IDX]._buffer, 0x00, MAX_BUFF_SIZE);
|
||||
char cBuff(0);
|
||||
*(ep_buff[EP_02_CMD_IDX]._buffer) = CT_DATA;
|
||||
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_WRITE_TRIG_PULSE_PARA;
|
||||
*(ep_buff[EP_02_CMD_IDX]._buffer+2) = ActiveAxis;
|
||||
*(ep_buff[EP_02_CMD_IDX]._buffer+3) = TrigMode;
|
||||
cBuff = (StartIndex>>8) & 0x0ff;
|
||||
*(ep_buff[EP_02_CMD_IDX]._buffer+4) = cBuff;
|
||||
cBuff = StartIndex & 0x0ff;
|
||||
*(ep_buff[EP_02_CMD_IDX]._buffer+5) = cBuff;
|
||||
cBuff = (ParaNumber>>8) & 0x0ff;
|
||||
*(ep_buff[EP_02_CMD_IDX]._buffer+6) = cBuff;
|
||||
cBuff = ParaNumber & 0x0ff;
|
||||
*(ep_buff[EP_02_CMD_IDX]._buffer+7) = cBuff;
|
||||
int j=8;
|
||||
for (short i=0;i<ParaNumber;i++)
|
||||
{
|
||||
cBuff = (Para[i]>>8) & 0x0ff;
|
||||
*(ep_buff[EP_02_CMD_IDX]._buffer+j) = cBuff;
|
||||
j++;
|
||||
cBuff = Para[i] & 0x0ff;
|
||||
*(ep_buff[EP_02_CMD_IDX]._buffer+j) = cBuff;
|
||||
j++;
|
||||
}
|
||||
ep_buff[EP_02_CMD_IDX]._size = j;
|
||||
ep_buff[EP_82_DATA_IDX]._size = 0x02;
|
||||
|
||||
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_TRIG_PULSE_START()
|
||||
{
|
||||
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_DATA;
|
||||
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_START_TRIG_PULSE;
|
||||
*(ep_buff[EP_02_CMD_IDX]._buffer+2)=0;
|
||||
|
||||
ep_buff[EP_02_CMD_IDX]._size = 0x03;
|
||||
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_TRIG_PULSE_STOP()
|
||||
{
|
||||
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_DATA;
|
||||
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_STOP_TRIG_PULSE;
|
||||
*(ep_buff[EP_02_CMD_IDX]._buffer+2)=0;
|
||||
|
||||
ep_buff[EP_02_CMD_IDX]._size = 0x03;
|
||||
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::_process_SO7_CMD_MOVE_X()
|
||||
{
|
||||
@@ -6104,4 +6210,44 @@ SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_GET_SEQ_NUMBER()
|
||||
{
|
||||
g_machine.SEQ_NUMBER=*(ep_buff[EP_82_DATA_IDX]._buffer);
|
||||
return SSI_STATUS_MOTION_NORMAL;
|
||||
}
|
||||
//==============================================================
|
||||
SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_READ_TRIG_PULSE_PARA()
|
||||
{
|
||||
int index(0);
|
||||
g_machine.TrigPara.TrigPulseActiveAxis=*(ep_buff[EP_82_DATA_IDX]._buffer+index);
|
||||
index++;
|
||||
g_machine.TrigPara.TrigPulseMethod=*(ep_buff[EP_82_DATA_IDX]._buffer+index);
|
||||
index++;
|
||||
g_machine.TrigPara.TrigTotalNo._char_[1]=*(ep_buff[EP_82_DATA_IDX]._buffer+index);
|
||||
index++;
|
||||
g_machine.TrigPara.TrigTotalNo._char_[0]=*(ep_buff[EP_82_DATA_IDX]._buffer+index);
|
||||
g_machine.TrigPara.TrigTotalNo._char_[2]=0;
|
||||
g_machine.TrigPara.TrigTotalNo._char_[3]=0;
|
||||
index++;
|
||||
g_machine.TrigPara.TrigCurIndex._char_[1]=*(ep_buff[EP_82_DATA_IDX]._buffer+index);
|
||||
index++;
|
||||
g_machine.TrigPara.TrigCurIndex._char_[0]=*(ep_buff[EP_82_DATA_IDX]._buffer+index);
|
||||
g_machine.TrigPara.TrigCurIndex._char_[2]=0;
|
||||
g_machine.TrigPara.TrigCurIndex._char_[3]=0;
|
||||
index++;
|
||||
g_machine.TrigPara.TrigCurPara._char_[1]=*(ep_buff[EP_82_DATA_IDX]._buffer+index);
|
||||
index++;
|
||||
g_machine.TrigPara.TrigCurPara._char_[0]=*(ep_buff[EP_82_DATA_IDX]._buffer+index);
|
||||
g_machine.TrigPara.TrigCurPara._char_[2]=0;
|
||||
g_machine.TrigPara.TrigCurPara._char_[3]=0;
|
||||
index++;
|
||||
return SSI_STATUS_MOTION_NORMAL;
|
||||
}
|
||||
//==============================================================
|
||||
SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_WRITE_TRIG_PULSE_PARA()
|
||||
{
|
||||
int index(0);
|
||||
g_machine.TrigPara.TrigTotalNo._char_[1]=*(ep_buff[EP_82_DATA_IDX]._buffer+index);
|
||||
index++;
|
||||
g_machine.TrigPara.TrigTotalNo._char_[0]=*(ep_buff[EP_82_DATA_IDX]._buffer+index);
|
||||
g_machine.TrigPara.TrigTotalNo._char_[2]=0;
|
||||
g_machine.TrigPara.TrigTotalNo._char_[3]=0;
|
||||
index++;
|
||||
return SSI_STATUS_MOTION_NORMAL;
|
||||
}
|
||||
Reference in New Issue
Block a user