简化SO7 utility的释放

This commit is contained in:
TAO Cheng
2013-06-21 14:22:11 +08:00
parent e842462af2
commit 14b1638972
26 changed files with 529 additions and 54 deletions
@@ -222,7 +222,15 @@ void CSO7_Proto::_process_rcv_transfer_data(int iEP)
case CT_READ_IO_DAT:
_process_SO7_CMD_READ_INPUT_PORT_STATUS();
break;
case CT_READ_SEC_REALX:
_process_SO7_CMD_READ_ZSIGNAL_POS_X();
break;
case CT_READ_SEC_REALY:
_process_SO7_CMD_READ_ZSIGNAL_POS_Y();
break;
case CT_READ_SEC_REALZ:
_process_SO7_CMD_READ_ZSIGNAL_POS_Z();
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]);
@@ -434,14 +442,18 @@ CSO7_Proto::CSO7_Proto()
ep_buff[i]._hProtoPending = false;
ep_buff[i]._event = NULL;
};
g_machine.x._Move_Speed_Gear =3;
g_machine.y._Move_Speed_Gear =3;
g_machine.z._Move_Speed_Gear =3;
g_machine.x._Move_Speed_Gear =2;
g_machine.y._Move_Speed_Gear =2;
g_machine.z._Move_Speed_Gear =2;
g_machine.zm._Move_Speed_Gear =2;
g_machine.x._pos_fixed._long_ =0;
g_machine.y._pos_fixed._long_ =0;
g_machine.z._pos_fixed._long_ =0;
g_machine.zm._pos_fixed._long_ =0;
g_machine.x._ZSignal_pos._long_=0;
g_machine.y._ZSignal_pos._long_=0;
g_machine.z._ZSignal_pos._long_=0;
g_machine.x._d_cur_pos_ = 0;
g_machine.y._d_cur_pos_ = 0;
g_machine.z._d_cur_pos_ = 0;
@@ -3980,7 +3992,63 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_READ_INPUT_PORT_STATUS(char Addr
ReleaseMutex(g_hEP02_Serial_Mutex);
return SSI_STATUS_MOTION_NORMAL;
}
//==============================================================
SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_READ_ZSIGNAL_POS_X()
{
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_READ_SEC_REALX;
*(ep_buff[EP_02_CMD_IDX]._buffer+2)=0;
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::_send_cmd_SO7_CMD_READ_ZSIGNAL_POS_Y()
{
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_READ_SEC_REALY;
*(ep_buff[EP_02_CMD_IDX]._buffer+2)=0;
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::_send_cmd_SO7_CMD_READ_ZSIGNAL_POS_Z()
{
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_READ_SEC_REALZ;
*(ep_buff[EP_02_CMD_IDX]._buffer+2)=0;
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()
{
@@ -4240,4 +4308,43 @@ SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_READ_INPUT_PORT_STATUS()
g_machine.InPortStatus=0;
g_machine.InPortStatus=*(ep_buff[EP_82_DATA_IDX]._buffer);
return SSI_STATUS_MOTION_NORMAL;
}
//==============================================================
SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_READ_ZSIGNAL_POS_X()
{
g_machine.x._ZSignal_pos._char_[2] = *(ep_buff[EP_82_DATA_IDX]._buffer);
g_machine.x._ZSignal_pos._char_[1] = *(ep_buff[EP_82_DATA_IDX]._buffer+1);
g_machine.x._ZSignal_pos._char_[0] = *(ep_buff[EP_82_DATA_IDX]._buffer+2);
g_machine.x._ZSignal_pos._char_[3] = 0;
if (g_machine.x._ZSignal_pos._long_ > 8388608)
g_machine.x._ZSignal_pos._long_=g_machine.x._ZSignal_pos._long_-16777216;
return SSI_STATUS_MOTION_NORMAL;
}
//==============================================================
SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_READ_ZSIGNAL_POS_Y()
{
g_machine.y._ZSignal_pos._char_[2] = *(ep_buff[EP_82_DATA_IDX]._buffer);
g_machine.y._ZSignal_pos._char_[1] = *(ep_buff[EP_82_DATA_IDX]._buffer+1);
g_machine.y._ZSignal_pos._char_[0] = *(ep_buff[EP_82_DATA_IDX]._buffer+2);
g_machine.y._ZSignal_pos._char_[3] = 0;
if (g_machine.y._ZSignal_pos._long_ > 8388608)
g_machine.y._ZSignal_pos._long_=g_machine.y._ZSignal_pos._long_-16777216;
return SSI_STATUS_MOTION_NORMAL;
}
//==============================================================
SSI_STATUS_MOTION CSO7_Proto::_process_SO7_CMD_READ_ZSIGNAL_POS_Z()
{
g_machine.z._ZSignal_pos._char_[2] = *(ep_buff[EP_82_DATA_IDX]._buffer);
g_machine.z._ZSignal_pos._char_[1] = *(ep_buff[EP_82_DATA_IDX]._buffer+1);
g_machine.z._ZSignal_pos._char_[0] = *(ep_buff[EP_82_DATA_IDX]._buffer+2);
g_machine.z._ZSignal_pos._char_[3] = 0;
if (g_machine.z._ZSignal_pos._long_ > 8388608)
g_machine.z._ZSignal_pos._long_=g_machine.z._ZSignal_pos._long_-16777216;
return SSI_STATUS_MOTION_NORMAL;
}
@@ -83,6 +83,11 @@ typedef struct s_so7_axis // axis parameters
long _long_;
char _char_[4];
}_scale_pos;
union
{
long _long_;
char _char_[4];
}_ZSignal_pos;
double _d_cur_pos_;
long _scale_probe;
double _dSet_Zero_Pos;
@@ -399,6 +404,9 @@ public:
SSI_STATUS_MOTION _send_cmd_SO7_CMD_READ_ZOOM_MOTION_STATUS();
SSI_STATUS_MOTION _send_cmd_SO7_CMD_OPEN_KEYENCE_LASER();
SSI_STATUS_MOTION _send_cmd_SO7_CMD_READ_INPUT_PORT_STATUS(char AddrType);
SSI_STATUS_MOTION _send_cmd_SO7_CMD_READ_ZSIGNAL_POS_X();
SSI_STATUS_MOTION _send_cmd_SO7_CMD_READ_ZSIGNAL_POS_Y();
SSI_STATUS_MOTION _send_cmd_SO7_CMD_READ_ZSIGNAL_POS_Z();
static SSI_STATUS_MOTION _process_SO7_CMD_MOVE_X();
static SSI_STATUS_MOTION _process_SO7_CMD_MOVE_Y();
@@ -429,6 +437,9 @@ public:
static SSI_STATUS_MOTION _process_SO7_CMD_READ_INTERRUPT_MESSAGE();
static SSI_STATUS_MOTION _process_SO7_CMD_READ_ZOOM_MOTION_STATUS();
static SSI_STATUS_MOTION _process_SO7_CMD_READ_INPUT_PORT_STATUS();
static SSI_STATUS_MOTION _process_SO7_CMD_READ_ZSIGNAL_POS_X();
static SSI_STATUS_MOTION _process_SO7_CMD_READ_ZSIGNAL_POS_Y();
static SSI_STATUS_MOTION _process_SO7_CMD_READ_ZSIGNAL_POS_Z();
};
@@ -32,7 +32,7 @@ CSo7_Interface::~CSo7_Interface()
//========================================
void CSo7_Interface::InitDll(void)
{
m_hImageDLL=LoadLibrary(_T("Image.dll"));
m_hImageDLL=(HMODULE)LoadLibrary(GetAppPath()+_T("\\Image.dll"));
if(m_hImageDLL)
{
Pro_cmd=(PRO_CMD)GetProcAddress(m_hImageDLL,"Pro_Cmd");
@@ -44,12 +44,20 @@ void CSo7_Interface::InitDll(void)
Pro_cmd(VINIT_DLL,(LPARAM)&Image_Info);
Pro_cmd(MINIT_USB,(LPARAM)&Image_Info);
}
else
{
MessageBox(NULL, _T("Load Image.dll failed!"), _T("Message"), MB_OK);
}
//=====================================
m_hFitDLL=LoadLibrary(_T("FitDll.dll"));
m_hFitDLL=(HMODULE)LoadLibrary(GetAppPath()+_T("\\FitDll.dll"));
if(m_hFitDLL)
{
g_FitFace_PCD=(FITTING_SURFACE_PCD)GetProcAddress(m_hFitDLL,"FaceFit");
}
else
{
MessageBox(NULL, _T("Load FitDll.dll failed!"), _T("Message"), MB_OK);
}
}
//========================================
void CSo7_Interface::StartStoreData(void)
@@ -19,8 +19,8 @@ typedef int (_cdecl*FITTING_SURFACE_PCD)(MY3DPoint* pArr,int n, double* Coe, dou
class CSo7_Interface
{
protected:
HINSTANCE m_hImageDLL;
HINSTANCE m_hFitDLL;
HMODULE m_hImageDLL;
HMODULE m_hFitDLL;
Dev_Info Image_Info;
public: