新增外触发测试功能。

This commit is contained in:
TAO Cheng
2014-06-20 18:25:58 +08:00
parent 41b9e8314b
commit 7c3f60c985
13 changed files with 593 additions and 17 deletions
@@ -4784,8 +4784,39 @@ SSI_STATUS_MOTION CSO7_Proto::so7_SetDO(int Channel,BYTE bDOSts)
return SSI_STATUS_MOTION_NORMAL;
}
SSI_STATUS_MOTION CSO7_Proto::so7_motion_set_trig_para(char _cAxis,char _TrigMode,short _ParaNumber,short* _ParaData)
{
short SetStartIndex(0);
short SetParaNumber(0);
do
{
if ((_ParaNumber-SetStartIndex)>20)
{
SetParaNumber=20;
}
else
{
SetParaNumber=(_ParaNumber-SetStartIndex);
}
_send_cmd_SO7_CMD_WRITE_TRIG_PULSE_PARA(_cAxis,_TrigMode,SetStartIndex,SetParaNumber,_ParaData);
SetStartIndex+=SetParaNumber;
} while ((_ParaNumber-SetStartIndex)>0);
return SSI_STATUS_MOTION_NORMAL;
}
SSI_STATUS_MOTION CSO7_Proto::so7_motion_get_trig_para(short _Index,char& _cAxis,char& _TrigMode,short& _ParaNumber,short& _ParaData)
{
_send_cmd_SO7_CMD_READ_TRIG_PULSE_PARA(_Index);
_cAxis=g_machine.TrigPara.TrigPulseActiveAxis;
_TrigMode=g_machine.TrigPara.TrigPulseMethod;
_ParaNumber=static_cast<short>(g_machine.TrigPara.TrigTotalNo._long_);
_ParaData=static_cast<short>(g_machine.TrigPara.TrigReadPara._long_);
return SSI_STATUS_MOTION_NORMAL;
}
//********************************************************************************//
//********************************************************************************//
//*******************************************************************************//
//==================================================================================
@@ -6098,7 +6129,7 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_READ_TRIG_PULSE_PARA(short ParaI
WaitForSingleObject(g_hEP02_Serial_Mutex, INFINITE);
memset(ep_buff[EP_02_CMD_IDX]._buffer, 0x00, MAX_BUFF_SIZE);
char cBuff(0);
g_machine.TrigPara.TrigReadIndex._long_=ParaIndex;
*(ep_buff[EP_02_CMD_IDX]._buffer) = CT_DATA;
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_READ_TRIG_PULSE_PARA;
cBuff = (ParaIndex>>8) & 0x0ff;
@@ -6137,7 +6168,7 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_WRITE_TRIG_PULSE_PARA(char Activ
cBuff = ParaNumber & 0x0ff;
*(ep_buff[EP_02_CMD_IDX]._buffer+7) = cBuff;
int j=8;
for (short i=0;i<ParaNumber;i++)
for (short i=StartIndex;i<(StartIndex+ParaNumber);i++)
{
if (Para[i]<0)
{
@@ -6603,16 +6634,16 @@ SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_READ_TRIG_PULSE_PARA()
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);
g_machine.TrigPara.TrigReadPara._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;
g_machine.TrigPara.TrigReadPara._char_[0]=*(ep_buff[EP_82_DATA_IDX]._buffer+index);
g_machine.TrigPara.TrigReadPara._char_[2]=0;
g_machine.TrigPara.TrigReadPara._char_[3]=0;
index++;
if (g_machine.TrigPara.TrigCurPara._long_>32768)
if (g_machine.TrigPara.TrigReadPara._long_>32768)
{
g_machine.TrigPara.TrigCurPara._long_-=32768;
g_machine.TrigPara.TrigCurPara._long_*=-1;
g_machine.TrigPara.TrigReadPara._long_-=32768;
g_machine.TrigPara.TrigReadPara._long_*=-1;
}
return SSI_STATUS_MOTION_NORMAL;
}