新增离线模式。
This commit is contained in:
@@ -442,6 +442,7 @@ CSO7_Proto::CSO7_Proto()
|
||||
ep_buff[i]._hProtoPending = false;
|
||||
ep_buff[i]._event = NULL;
|
||||
};
|
||||
g_machine.IsOffline=TRUE;
|
||||
g_machine.x._Move_Speed_Gear =2;
|
||||
g_machine.y._Move_Speed_Gear =2;
|
||||
g_machine.z._Move_Speed_Gear =2;
|
||||
@@ -2319,8 +2320,9 @@ SSI_STATUS_MOTION CSO7_Proto::Init_SO7Usb()
|
||||
g_machine.s_status._machine_running = false;
|
||||
|
||||
|
||||
SSI_STATUS_MOTION Status=SSI_STATUS_MOTION_NORMAL;
|
||||
UNREFERENCED_PARAMETER(Status);
|
||||
SSI_STATUS_MOTION rStatus=SSI_STATUS_MOTION_NORMAL;
|
||||
|
||||
g_machine.IsOffline=FALSE;
|
||||
|
||||
int usb_status = NULL;
|
||||
usb_init(); // initialize the library
|
||||
@@ -2329,22 +2331,23 @@ SSI_STATUS_MOTION CSO7_Proto::Init_SO7Usb()
|
||||
g_dev = _open_usb_dev();
|
||||
if (!g_dev)
|
||||
{
|
||||
MessageBox(NULL, _T("Unable to open device"), _T("Message"), MB_OK);
|
||||
MessageBox(NULL, _T("Unable to open device"), _T("Message"), MB_OK|MB_ICONERROR);
|
||||
g_pLogger->SendAndFlushPerMode(_T("Unable to open device %s \r\n"), usb_strerror());
|
||||
return SSI_STATUS_MOTION_DATALINK_ERROR;
|
||||
g_machine.IsOffline=TRUE;
|
||||
rStatus= SSI_STATUS_MOTION_DATALINK_ERROR;
|
||||
}
|
||||
|
||||
if (usb_set_configuration(g_dev, MY_CONFIG) < 0)
|
||||
else if (usb_set_configuration(g_dev, MY_CONFIG) < 0)
|
||||
{
|
||||
MessageBox(NULL, _T("Unable to SET CONFIGURATION"), _T("Message"), MB_OK);
|
||||
return SSI_STATUS_MOTION_DATALINK_ERROR;
|
||||
MessageBox(NULL, _T("Unable to SET CONFIGURATION"), _T("Message"), MB_OK|MB_ICONERROR);
|
||||
g_machine.IsOffline=TRUE;
|
||||
rStatus=SSI_STATUS_MOTION_DATALINK_ERROR;
|
||||
}
|
||||
|
||||
if (usb_claim_interface(g_dev, 0) < 0)
|
||||
else if (usb_claim_interface(g_dev, 0) < 0)
|
||||
{
|
||||
usb_close(g_dev);
|
||||
MessageBox(NULL, _T("Unable to CLAIM DEVICE"), _T("Message"), MB_OK);
|
||||
return SSI_STATUS_MOTION_DATALINK_ERROR;
|
||||
MessageBox(NULL, _T("Unable to CLAIM DEVICE"), _T("Message"), MB_OK|MB_ICONERROR);
|
||||
g_machine.IsOffline=TRUE;
|
||||
rStatus=SSI_STATUS_MOTION_DATALINK_ERROR;
|
||||
}
|
||||
|
||||
g_pLogger->SendAndFlushPerMode(_T("Init:Open device succeed .\r\n"));
|
||||
@@ -2392,7 +2395,7 @@ SSI_STATUS_MOTION CSO7_Proto::Init_SO7Usb()
|
||||
NULL); // unamed object
|
||||
|
||||
|
||||
return SSI_STATUS_MOTION_NORMAL;
|
||||
return rStatus;
|
||||
}
|
||||
|
||||
//******************************************************************************
|
||||
@@ -2499,6 +2502,13 @@ SSI_STATUS_MOTION CSO7_Proto::_shutdown_machine()
|
||||
//===============================================================================
|
||||
SSI_STATUS_MOTION CSO7_Proto::_read_data_8x(int iEP_Base)
|
||||
{
|
||||
if (g_machine.IsOffline)
|
||||
{
|
||||
ep_buff[EP_82_DATA_IDX]._hProtoPending = false;
|
||||
ep_buff[EP_01_CMD_IDX]._hProtoPending = false;
|
||||
ep_buff[EP_81_DATA_IDX]._hProtoPending = false;
|
||||
return SSI_STATUS_MOTION_NORMAL;
|
||||
}
|
||||
if (iEP_Base == EP_82_DATA_IDX)
|
||||
{
|
||||
TRACE2("_read_data_81() iEP : %X - ep_buff[iEP]._size : %X \r\n", iEP_Base, ep_buff[iEP_Base]._size);
|
||||
@@ -2543,6 +2553,12 @@ SSI_STATUS_MOTION CSO7_Proto::_read_data_8x(int iEP_Base)
|
||||
//===============================================================================
|
||||
SSI_STATUS_MOTION CSO7_Proto::_send_usb_cmd(int iEP_Base)
|
||||
{
|
||||
if (g_machine.IsOffline)
|
||||
{
|
||||
SetEvent(ep_buff[iEP_Base+1]._event);
|
||||
ep_buff[iEP_Base]._hProtoPending = false;
|
||||
return SSI_STATUS_MOTION_NORMAL;
|
||||
}
|
||||
int _ret;
|
||||
ep_buff[iEP_Base]._save_send_cmd = ep_buff[iEP_Base]._buffer[0];
|
||||
ep_buff[iEP_Base]._save_send_cmd0 = ep_buff[iEP_Base]._buffer[1];
|
||||
@@ -2569,6 +2585,12 @@ SSI_STATUS_MOTION CSO7_Proto::_send_usb_cmd(int iEP_Base)
|
||||
//===============================================================================
|
||||
SSI_STATUS_MOTION CSO7_Proto::_write_usb_data_only(int iEP_Base)
|
||||
{
|
||||
if (g_machine.IsOffline)
|
||||
{
|
||||
ep_buff[iEP_Base]._hProtoPending = false;
|
||||
ep_buff[iEP_Base+1]._hProtoPending = false;
|
||||
return SSI_STATUS_MOTION_NORMAL;
|
||||
}
|
||||
int _ret;
|
||||
ep_buff[iEP_Base]._save_send_cmd = ep_buff[iEP_Base]._buffer[0];
|
||||
ep_buff[iEP_Base]._save_send_cmd0 = ep_buff[iEP_Base]._buffer[1];
|
||||
@@ -2666,6 +2688,11 @@ SSI_STATUS_MOTION CSO7_Proto::so7_motion_laser_on_off(bool _bOnOff)
|
||||
//==================================================================
|
||||
bool CSO7_Proto::so7_motion_is_homed()
|
||||
{
|
||||
if (g_machine.IsOffline)
|
||||
{
|
||||
g_machine.Sys_Reset_Flag =1;
|
||||
SetEvent(g_hHomedEvent);
|
||||
}
|
||||
_send_cmd_SO7_CMD_GET_RESET_FLAG();
|
||||
if (g_machine.Sys_Reset_Flag == 1)
|
||||
{
|
||||
@@ -2681,6 +2708,11 @@ bool CSO7_Proto::so7_motion_is_homed()
|
||||
//========================================================================
|
||||
SSI_STATUS_MOTION CSO7_Proto::so7_motion_Dcc_Home()
|
||||
{
|
||||
if (g_machine.IsOffline)
|
||||
{
|
||||
SetEvent(g_hHomedEvent);
|
||||
return SSI_STATUS_MOTION_NORMAL;
|
||||
}
|
||||
//查询是否复位
|
||||
_send_cmd_SO7_CMD_GET_RESET_FLAG();
|
||||
g_machine.cVerNumber=3;
|
||||
@@ -2770,6 +2802,12 @@ SSI_STATUS_MOTION CSO7_Proto::so7_motion_get_position_xyz(double & dX, double &
|
||||
SSI_STATUS_MOTION CSO7_Proto::so7_motion_set_position_xyz(double dX, double dY, double dZ, bool bWait)
|
||||
{
|
||||
WaitForSingleObject(g_hHomedEvent, INFINITE); // machine start and homing is done
|
||||
|
||||
if (g_machine.IsOffline)
|
||||
{
|
||||
SetEvent(g_hHomedEvent);
|
||||
return SSI_STATUS_MOTION_NORMAL;
|
||||
}
|
||||
// get the current position
|
||||
double dXStart, dYStart, dZStart;
|
||||
so7_motion_get_position_xyz(dXStart, dYStart, dZStart);
|
||||
@@ -4347,4 +4385,4 @@ SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_READ_ZSIGNAL_POS_Z()
|
||||
g_machine.z._ZSignal_pos._long_=g_machine.z._ZSignal_pos._long_-16777216;
|
||||
|
||||
return SSI_STATUS_MOTION_NORMAL;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user