剥离第一阶段需要做的函数,梳理关系,新增测试dll工程

This commit is contained in:
wio
2022-10-10 11:52:53 +08:00
parent 698e1223fa
commit 6d2b284f36
44 changed files with 1500 additions and 302 deletions
+193 -189
View File
@@ -3,9 +3,9 @@
#include "HSI_Motion.h"
#include "HSI_Sevenocean_EF3.h"
#include "SevenOcean\CMMIO_SERIAL.h"
#include "HSI_Illumination.h"
#include "HSI_Function.h"
#include "HSI_JoyStick.h"
//#include "HSI_Illumination.h"
//#include "HSI_Function.h"
//#include "HSI_JoyStick.h"
#ifdef _DEBUG
#define new DEBUG_NEW
@@ -42,7 +42,7 @@ HSI_API HSI_STATUS WINAPI HSI_STARTUP(HWND _hWnd, bool _bOfflineOnly)
g_bOfflineOnly = _bOfflineOnly;
return rStatus;
}
//===========================================================================
//==========================获取机器控制器信息,3代表EF3=================================================
HSI_API HSI_STATUS WINAPI HSI_GET_MACHINE_INFO(int &_NumMachineTypes)
{
auto rStatus = HSI_STATUS_NORMAL;
@@ -62,7 +62,7 @@ HSI_API HSI_STATUS WINAPI HSI_SET_EVENT_CALLBACK(pEventCallback _pCallback)
auto rStatus = HSI_STATUS_NORMAL;
if (g_pHSI_Sevenocean_EF3)
{
rStatus = g_pHSI_Sevenocean_EF3->SetEventCallback(_pCallback);
rStatus = g_pHSI_Sevenocean_EF3->SetEventCallback(_pCallback); //设置事件
}
else
{
@@ -114,33 +114,50 @@ HSI_API HSI_STATUS WINAPI HSI_SHUTDOWM()
#pragma endregion
////////////////////////////////////////////////////////////////////////////////
// MOTION API
// MOTION API 运动相关API
///////////////////////////////////////////////////////////////////////////////
#pragma region Motion API
HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_SUPPORTED(UINT &Types)
#pragma region 第一阶段实现的API功能
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_MOTION_STARTUP(bool bHome)
{
auto rStatus = HSI_STATUS_NORMAL;
if (g_bOfflineOnly == 0)
{
if (!g_pHSI_Motion)
{
g_pHSI_Motion = new HSI_Motion();
}
if (g_pHSI_Motion)
{
rStatus = g_pHSI_Motion->IsSupported(Types);
}
else
{
rStatus = HSI_STATUS_FAILED;
}
}
return rStatus;
auto rStatus = HSI_STATUS_NORMAL;
if (g_bOfflineOnly == 0)
{
if (!g_pHSI_Motion)
{
g_pHSI_Motion = new HSI_Motion();
}
if (g_pHSI_Motion && g_pHSI_Sevenocean_EF3)
{
rStatus = g_pHSI_Motion->Startup(g_hWnd, g_bOfflineOnly);
if (rStatus == HSI_STATUS_FAILED)
{
return HSI_STATUS_FAILED;
}
rStatus = g_pHSI_Motion->HomeMachine(bHome);
switch (g_pHSI_Motion->m_iJoyStick)
{
case 0:
break;
case 1:
//if (!g_pHSI_JoyStick)
//{
// g_pHSI_JoyStick = new HSI_Joystick(g_pHSI_Motion);
// g_pHSI_JoyStick->ResumeJoyStickThread();
//}
break;
default:
break;
}
}
else
{
rStatus = HSI_STATUS_FAILED;
}
}
return rStatus;
}
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_FIREWAREVERION(byte *verion)
@@ -157,58 +174,130 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_FIREWAREVERION(byte *verion)
return rStatus;
}
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_MOTION_STARTUP(bool bHome)
HSI_API HSI_STATUS WINAPI HSI_MOTION_SHUTDOWN()
{
auto rStatus = HSI_STATUS_NORMAL;
if (g_bOfflineOnly == 0)
{
if (!g_pHSI_Motion)
{
g_pHSI_Motion = new HSI_Motion();
}
if (g_pHSI_Motion && g_pHSI_Sevenocean_EF3)
{
rStatus = g_pHSI_Motion->Startup(g_hWnd, g_bOfflineOnly);
if (rStatus == HSI_STATUS_FAILED)
{
return HSI_STATUS_FAILED;
}
rStatus = g_pHSI_Motion->HomeMachine(bHome);
switch (g_pHSI_Motion->m_iJoyStick)
{
case 0:
break;
case 1:
//if (!g_pHSI_JoyStick)
//{
// g_pHSI_JoyStick = new HSI_Joystick(g_pHSI_Motion);
// g_pHSI_JoyStick->ResumeJoyStickThread();
//}
break;
default:
break;
}
}
else
{
rStatus = HSI_STATUS_FAILED;
}
}
return rStatus;
auto rStatus = HSI_STATUS_NORMAL;
if (g_pHSI_Motion)
{
rStatus = g_pHSI_Motion->Shutdown();
delete g_pHSI_Motion;
g_pHSI_Motion = nullptr;
}
else
{
rStatus = HSI_STATUS_FAILED;
}
return rStatus;
}
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_MOTION_JOG(UINT AxisTypes, double Speed)
{
auto rStatus = HSI_STATUS_NORMAL;
if (g_pHSI_Motion)
{
rStatus = g_pHSI_Motion->Jog(AxisTypes, Speed);
}
else
{
rStatus = HSI_STATUS_FAILED;
}
return rStatus;
}
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_MOTION_STOP_JOG()
{
auto rStatus = HSI_STATUS_NORMAL;
if (g_pHSI_Motion)
{
rStatus = g_pHSI_Motion->StopJog();
}
else
{
rStatus = HSI_STATUS_FAILED;
}
return rStatus;
}
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_POSITION_XYZ(UINT AxisTypes, double &PositionX, double &PositionY, double &PositionZ, double &Time)
{
auto rStatus = HSI_STATUS_NORMAL;
if (g_pHSI_Motion)
{
rStatus = g_pHSI_Motion->GetPositionXyz(AxisTypes, PositionX, PositionY, PositionZ, Time);
}
else
{
rStatus = HSI_STATUS_FAILED;
}
return rStatus;
}
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_POSITION_XYZ(UINT AxisTypes, double PositionX, double PositionY, double PositionZ, HSI_MOTION_MOVE_TYPE eType, double dSpeedGear)
{
auto rStatus = HSI_STATUS_NORMAL;
if (g_pHSI_Motion)
{
rStatus = g_pHSI_Motion->SetPositionXyz(AxisTypes, PositionX, PositionY, PositionZ, eType, dSpeedGear);
}
else
{
rStatus = HSI_STATUS_FAILED;
}
return rStatus;
}
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_MOTION_ABORT_MOTION()
{
auto rStatus = HSI_STATUS_NORMAL;
if (g_pHSI_Motion)
{
rStatus = g_pHSI_Motion->AbortMotion();
}
else
{
rStatus = HSI_STATUS_FAILED;
}
return rStatus;
}
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_HOMED(bool &bHomed)
{
auto rStatus = HSI_STATUS_NORMAL;
if (g_pHSI_Motion)
{
rStatus = g_pHSI_Motion->IsHomed(bHomed);
}
else
{
rStatus = HSI_STATUS_FAILED;
}
return rStatus;
auto rStatus = HSI_STATUS_NORMAL;
if (g_pHSI_Motion)
{
rStatus = g_pHSI_Motion->IsHomed(bHomed);
}
else
{
rStatus = HSI_STATUS_FAILED;
}
return rStatus;
}
#pragma endregion
#ifdef USE_Motion_API
#pragma region 后续考虑
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_SUPPORTED(UINT &Types)
{
auto rStatus = HSI_STATUS_NORMAL;
if (g_bOfflineOnly == 0)
{
if (!g_pHSI_Motion)
{
g_pHSI_Motion = new HSI_Motion();
}
if (g_pHSI_Motion)
{
rStatus = g_pHSI_Motion->IsSupported(Types);
}
else
{
rStatus = HSI_STATUS_FAILED;
}
}
return rStatus;
}
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_EF3MOTION_GET_SPEED_XYZ(int axis,double &Speed)
@@ -364,34 +453,6 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_REFRESH_DEADBAND(double &Deadband)
return HSI_STATUS_NOT_SUPPORTED;
}
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_MOTION_JOG(UINT AxisTypes, double Speed)
{
auto rStatus = HSI_STATUS_NORMAL;
if (g_pHSI_Motion)
{
rStatus = g_pHSI_Motion->Jog(AxisTypes, Speed);
}
else
{
rStatus = HSI_STATUS_FAILED;
}
return rStatus;
}
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_MOTION_STOP_JOG()
{
auto rStatus = HSI_STATUS_NORMAL;
if (g_pHSI_Motion)
{
rStatus = g_pHSI_Motion->StopJog();
}
else
{
rStatus = HSI_STATUS_FAILED;
}
return rStatus;
}
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_ENCPRF_MULTI(UINT AxisTypes, double *EncPos, double *PrfPos, int Count)
{
auto rStatus = HSI_STATUS_NORMAL;
@@ -406,20 +467,6 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_ENCPRF_MULTI(UINT AxisTypes, double *En
return rStatus;
}
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_POSITION_XYZ(UINT AxisTypes, double &PositionX, double &PositionY, double &PositionZ, double &Time)
{
auto rStatus = HSI_STATUS_NORMAL;
if (g_pHSI_Motion)
{
rStatus = g_pHSI_Motion->GetPositionXyz(AxisTypes, PositionX, PositionY, PositionZ, Time);
}
else
{
rStatus = HSI_STATUS_FAILED;
}
return rStatus;
}
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_ENCODER_XYZ(long *lEncVal)
{
auto rStatus = HSI_STATUS_NORMAL;
@@ -461,20 +508,7 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_JOG_PROBE(UINT AxisTypes, double speed)
}
return rStatus;
}
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_POSITION_XYZ(UINT AxisTypes, double PositionX, double PositionY, double PositionZ, HSI_MOTION_MOVE_TYPE eType, double dSpeedGear)
{
auto rStatus = HSI_STATUS_NORMAL;
if (g_pHSI_Motion)
{
rStatus = g_pHSI_Motion->SetPositionXyz(AxisTypes, PositionX, PositionY, PositionZ, eType, dSpeedGear);
}
else
{
rStatus = HSI_STATUS_FAILED;
}
return rStatus;
}
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_POSITION_XYZA(UINT AxisTypes, double PositionX, double PositionY, double PositionZ, double PositionA, HSI_MOTION_MOVE_TYPE eType, double dSpeedGear)
{
@@ -535,20 +569,6 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_POSITION_R(UINT AxisTypes, double Posi
return HSI_STATUS_NOT_SUPPORTED;
}
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_MOTION_ABORT_MOTION()
{
auto rStatus = HSI_STATUS_NORMAL;
if (g_pHSI_Motion)
{
rStatus = g_pHSI_Motion->AbortMotion();
}
else
{
rStatus = HSI_STATUS_FAILED;
}
return rStatus;
}
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_DIO(UINT IOChannel, UINT& _Status)
{
auto rStatus = HSI_STATUS_NORMAL;
@@ -950,22 +970,7 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_TRIGGLECOUNT(int* nCount, int& nArea)
}
return rStatus;
}
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_MOTION_SHUTDOWN()
{
auto rStatus = HSI_STATUS_NORMAL;
if (g_pHSI_Motion)
{
rStatus = g_pHSI_Motion->Shutdown();
delete g_pHSI_Motion;
g_pHSI_Motion = nullptr;
}
else
{
rStatus = HSI_STATUS_FAILED;
}
return rStatus;
}
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_MOTION_FINDORIGINTEST(bool type)
{
@@ -981,15 +986,31 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_FINDORIGINTEST(bool type)
return rStatus;
}
HSI_API HSI_STATUS WINAPI HSI_MOTION_COLLECTPOS(bool isEnable, MOTOR_AXISCHOOES_CMD axis, short cycle)
{
auto rStatus = HSI_STATUS_NORMAL;
if (g_pHSI_Motion)
{
rStatus = g_pHSI_Motion->CollectPos(isEnable, axis, cycle);
}
else
{
rStatus = HSI_STATUS_FAILED;
}
return rStatus;
}
#pragma endregion
#endif // DEBUG
#pragma endregion
//²¹¹âµÆ
#ifdef USE_ILLUMINATION_API
////////////////////////////////////////////////////////////////////////////////
// ILLUMINATION API
// ILLUMINATION API 补光灯
///////////////////////////////////////////////////////////////////////////////
#ifdef USE_ILLUMINATION_API
#pragma region // ILLUMINATION API
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_ILLUMINATION_IS_SUPPORTED(UINT &Types)
@@ -1161,11 +1182,12 @@ HSI_API HSI_STATUS WINAPI HSI_ILLUMINATION_TESTLIGHT(bool flag)
#endif // USE_ILLUMINATION_API
//̽Õë
///////////////////////////////////////////////////////////////////////////////
// Probe API 探针
///////////////////////////////////////////////////////////////////////////////
#ifdef USE_Probe_API
///////////////////////////////////////////////////////////////////////////////
// Probe API
///////////////////////////////////////////////////////////////////////////////
#pragma region probe
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_TP_STARTUP()
@@ -1358,25 +1380,7 @@ HSI_API HSI_STATUS WINAPI HSI_TP_SHUTDOWN()
#endif // USE_Probe_API
//²âÊÔ
#ifdef Test
///////////////////////////////////////////////////////////////////////////////
// 测试功能
///////////////////////////////////////////////////////////////////////////////
#pragma region Test
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_MOTION_COLLECTPOS(bool isEnable, MOTOR_AXISCHOOES_CMD axis, short cycle)
{
auto rStatus = HSI_STATUS_NORMAL;
if (g_pHSI_Motion)
{
rStatus = g_pHSI_Motion->CollectPos(isEnable, axis, cycle);
}
else
{
rStatus = HSI_STATUS_FAILED;
}
return rStatus;
}
//===========================================================================
#pragma endregion
#endif // Test