新增导出XYZ工作台接口,新增导出灯光调节接口,完善debug信息输出。

This commit is contained in:
TAO Cheng
2014-04-25 17:23:08 +08:00
parent f1188c017c
commit d1cf313511
19 changed files with 1252 additions and 432 deletions
@@ -4539,3 +4539,5 @@ _start_machine
_start_machine
Exit: Exit_SO7Usb
Destruct Cso7_Proto.
@@ -1,23 +1,11 @@
[7OCEANAUTOZOOM]
ZOOM_PRODUCT_ID=So7123456
ZOOM_COM_PORT=1
ZOOM_START_DEG=0.000000
ZOOM_END_DEG=0.000000
ZOOM_ORG_DEG=0.000000
ZOOM_DEADBAND_DEG=0.100000
ZOOM_PULSE_PER_DEG=25.134736064968621
ZOOM_READING_INTERVAL_TIME=60
ZOOM_MOTOR_SPEED_FAST=2000
ZOOM_MOTOR_SPEED_SLOW=800
;
[CONTROLLER]
CLOSE_LOOP_ENABLED=0
MOTION_RETRY_TIMES=0
SHIFT_POSITION_X=0.000000
SHIFT_POSITION_Y=0.000000
SHIFT_POSITION_Z=0.000000
GET_USB_MESSAGE_METHOD=1
WRITE_DATA_SLEEP_TIME=0
TOUCH_PROBE_ENABLE=0
JOYSTICK_ENABLE=0
DEBUG_LOG_ENABLE=0
;
[Motion]
ACCURA_ERROR_PULSE_X=1
ACCURA_ERROR_PULSE_Y=1
ACCURA_ERROR_PULSE_Z=1
@@ -26,18 +14,8 @@ EQUIDISTANCE_PULSE_Y=0
EQUIDISTANCE_PULSE_Z=0
CNC_DEADLOCK_SOLUTION=1
CNC_DEADLOCK_MAX_CNTS=6
TOUCH_PROBE_ENABLE=0
JOYSTICK_ENABLE=0
DEBUG_LOG_ENABLE=0
;
[VIDEOCARD]
SDK3000_SLEEP_COUNT=550000
SV4000E_DENOISE_PARA_CHANNEL1=70
SV4000E_DENOISE_PARA_CHANNEL2=70
SV4000E_DENOISE_PARA_CHANNEL3=70
SV4000E_DENOISE_PARA_CHANNEL4=70
;
[HSI]
MACHINE_CONTROLLER_TYPE=0
MACHINE_VIDEOCARD_TYPE=0
;
X_SCALE_RESOLUTION=0.500
Y_SCALE_RESOLUTION=0.500
Z_SCALE_RESOLUTION=0.500
ROTARY_AXIS_NUMBER=2
ROTARY_CIR_DIS=7.2
@@ -48,7 +48,26 @@ void CLogger::SendAndFlush(LPCTSTR format, ...)
m_File = _wfsopen(m_FileName, _T("at"), _SH_DENYWR);
}
}
void CLogger::SendAndFlushWithTime(LPCTSTR format, ...)
{
if (!m_File)
{
m_File = _wfsopen(m_FileName, _T("at"), _SH_DENYWR);
}
if(m_File)
{
int length = 0;
va_list list;
va_start(list, format);
length = vswprintf_s(m_Str2,5000, format, list);
CTime _cTime=CTime::GetCurrentTime();
CString csTime=_cTime.Format("[%m/%d %H:%M:%S] ");
_ftprintf(m_File, _T("%s"), csTime);
_ftprintf(m_File, m_Str2);
fclose(m_File);
m_File = NULL;
}
}
void CLogger::SendAndFlushPerMode(LPCTSTR format, ...)
{
int length = 0;
@@ -16,6 +16,469 @@
CEF8000_Interface* m_pEF8000_Interface=NULL;
CSO7_Proto* m_pSO7_Proto=NULL;
bool g_bOfflineOnly(false);
EMACHINE_AXIS ActiveAxis=MACHINE_AXIS_NONE;
SSI_STATUS_MOTION LoadMotionParameter();
//==================================================================
extern "C" EXP_IMP SSI_STATUS_MOTION WINAPI Machine_Startup(bool bOfflineOnly,EHOME_MACHINE_MODE cHomeMachineMode)
{
SSI_STATUS_MOTION rStatus=SSI_STATUS_MOTION_NORMAL;
g_bOfflineOnly=bOfflineOnly;
if (!g_bOfflineOnly)
{
if (!m_pSO7_Proto)
{
m_pSO7_Proto=new CSO7_Proto();
}
rStatus=m_pSO7_Proto->Load_So7_Config();
if (rStatus==SSI_STATUS_MOTION_NORMAL)
{
rStatus=m_pSO7_Proto->Init_SO7Usb();
if (rStatus==SSI_STATUS_MOTION_NORMAL)
{
m_pSO7_Proto->_start_machine();
rStatus=LoadMotionParameter();
if (rStatus==SSI_STATUS_MOTION_NORMAL)
{
m_pSO7_Proto->so7_motion_set_all_speed_para();
m_pSO7_Proto->so7_motion_init_firmware_para();
switch (cHomeMachineMode)
{
case HOME_R:
{
m_pSO7_Proto->so7_motion_Dcc_Home_R();
break;
}
case HOME_XYZ:
case HOME_X:
case HOME_Y:
case HOME_Z:
case HOME_XY:
case HOME_XZ:
case HOME_YZ:
{
m_pSO7_Proto->so7_motion_Dcc_HomeXYZ(static_cast<char>(cHomeMachineMode));
break;
}
default:
{
break;
}
}
}
}
}
}
return rStatus;
}
//==================================================================
extern "C" EXP_IMP SSI_STATUS_MOTION WINAPI Machine_Shutdown()
{
if (m_pEF8000_Interface)
{
delete m_pEF8000_Interface;
m_pEF8000_Interface=nullptr;
}
if (m_pSO7_Proto)
{
m_pSO7_Proto->_send_cmd_SO7_CMD_STOP_MOVE_XYZ();
Sleep(10);
m_pSO7_Proto->so7_light_set_light_off();
if(m_pSO7_Proto->g_machine.IsSupportReadInterrputMsg)
{
m_pSO7_Proto->_send_cmd_SO7_CMD_SET_GET_INTERRUPT_MSG_METHOD(E_GET_INTERRUPT_MSG_INTERRUPT);
}
m_pSO7_Proto->_shutdown_machine();
m_pSO7_Proto->Exit_SO7Usb();
delete m_pSO7_Proto;
m_pSO7_Proto=nullptr;
}
return SSI_STATUS_MOTION_NORMAL;
}
/**************************Motion**********************************/
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_DCCHomeXYZ(EHOME_MACHINE_MODE cHomeMachineMode)
{
if (!g_bOfflineOnly)
{
if (m_pSO7_Proto)
{
return m_pSO7_Proto->so7_motion_Dcc_HomeXYZ(static_cast<char>(cHomeMachineMode));
}
else
{
return SSI_STATUS_MACHINE_UNINITIALIZED;
}
}
else
{
return SSI_STATUS_MOTION_NORMAL;
}
}
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_IsHomedXYZ(bool &bHomed)
{
if (!g_bOfflineOnly)
{
if (m_pSO7_Proto)
{
bHomed=m_pSO7_Proto->so7_motion_is_homed();
return SSI_STATUS_MOTION_NORMAL;
}
else
{
return SSI_STATUS_MACHINE_UNINITIALIZED;
}
}
else
{
return SSI_STATUS_MOTION_NORMAL;
}
}
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_GetPositionXYZ(double &PositionX, double &PositionY, double &PositionZ)
{
if (!g_bOfflineOnly)
{
if (m_pSO7_Proto)
{
return m_pSO7_Proto->so7_motion_get_position_xyz(PositionX,PositionY,PositionZ);
}
else
{
return SSI_STATUS_MACHINE_UNINITIALIZED;
}
}
else
{
return SSI_STATUS_MOTION_NORMAL;
}
}
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_SetPositionXYZ(double PositionX, double PositionY, double PositionZ,bool bWait)
{
if (!g_bOfflineOnly)
{
if (m_pSO7_Proto)
{
return m_pSO7_Proto->so7_motion_set_position_xyz(PositionX,PositionY,PositionZ,bWait);
}
else
{
return SSI_STATUS_MACHINE_UNINITIALIZED;
}
}
else
{
return SSI_STATUS_MOTION_NORMAL;
}
}
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_IsFinishedXYZ(bool &bFinished)
{
if (!g_bOfflineOnly)
{
if (m_pSO7_Proto)
{
return m_pSO7_Proto->so7_Motion_XYZ_IsMotionFinished(bFinished);
}
else
{
return SSI_STATUS_MACHINE_UNINITIALIZED;
}
}
else
{
return SSI_STATUS_MOTION_NORMAL;
}
}
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_SetSpeedXYZ(EMACHINE_AXIS cAxis,char cSpeedGear,char Acce,char cHoldSpeed,char cStartSpeed,char cRefreshCycle,double dBufferDis)
{
if (!g_bOfflineOnly)
{
if (m_pSO7_Proto)
{
return m_pSO7_Proto->so7_motion_set_speed_xyz(cAxis,cSpeedGear,Acce,cRefreshCycle,cStartSpeed,cHoldSpeed,dBufferDis);
}
else
{
return SSI_STATUS_MACHINE_UNINITIALIZED;
}
}
else
{
return SSI_STATUS_MOTION_NORMAL;
}
}
//SpeedGear:1,2,3,4(Faster)
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_Jog(EMACHINE_AXIS cAxis,char cSpeedGear)
{
if (!g_bOfflineOnly)
{
if (m_pSO7_Proto)
{
if (abs(cSpeedGear)>4)
{
if (cSpeedGear>0)
{
cSpeedGear=4;
}
else
{
cSpeedGear=-4;
}
}
if (abs(cSpeedGear)<1)
{
cSpeedGear=1;
}
ActiveAxis=cAxis;
switch (cAxis)
{
case MACHINE_AXIS_X:
{
return m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_X(cSpeedGear);
break;
}
case MACHINE_AXIS_Y:
{
return m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_Y(cSpeedGear);
break;
}
case MACHINE_AXIS_Z:
{
return m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_Z(cSpeedGear);
break;
}
case MACHINE_AXIS_ZOOM:
{
if (abs(cSpeedGear)==4)
{
if (cSpeedGear>0)
{
cSpeedGear=5;
}
else
{
cSpeedGear=-5;
}
}
else if (abs(cSpeedGear)==3)
{
if (cSpeedGear>0)
{
cSpeedGear=5;
}
else
{
cSpeedGear=-5;
}
}
else if (abs(cSpeedGear)==2)
{
if (cSpeedGear>0)
{
cSpeedGear=1;
}
else
{
cSpeedGear=-1;
}
}
else if (abs(cSpeedGear)==1)
{
if (cSpeedGear>0)
{
cSpeedGear=2;
}
else
{
cSpeedGear=-2;
}
}
return m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_ZM(cSpeedGear);
break;
}
case MACHINE_AXIS_R:
{
return m_pSO7_Proto->so7_motion_move_R(cSpeedGear);
break;
}
default:
{
return SSI_STATUS_MOTION_INVALID_PARAMETERS;
break;
}
}
}
else
{
return SSI_STATUS_MACHINE_UNINITIALIZED;
}
}
else
{
return SSI_STATUS_MOTION_NORMAL;
}
}
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_Stop()
{
if (!g_bOfflineOnly)
{
if (m_pSO7_Proto)
{
if (ActiveAxis==MACHINE_AXIS_ZOOM)
{
return m_pSO7_Proto->_send_cmd_SO7_CMD_STOP_V();
}
else
{
return m_pSO7_Proto->_send_cmd_SO7_CMD_STOP_MOVE_XYZ();
}
}
else
{
return SSI_STATUS_MACHINE_UNINITIALIZED;
}
}
else
{
return SSI_STATUS_MOTION_NORMAL;
}
}
/**************************Rotary Table****************************/
//==================================================================
extern "C" EXP_IMP SSI_STATUS_MOTION WINAPI Motion_GetPositionR(double& dPos)
{
if (!g_bOfflineOnly)
{
if (m_pSO7_Proto)
{
return m_pSO7_Proto->so7_motion_get_position_R(dPos);
}
else
{
return SSI_STATUS_MACHINE_UNINITIALIZED;
}
}
else
{
return SSI_STATUS_MOTION_NORMAL;
}
}
//==================================================================
extern "C" EXP_IMP SSI_STATUS_MOTION WINAPI Motion_SetPositionR(double dAbsolutePos,bool bWait)
{
if (!g_bOfflineOnly)
{
if (m_pSO7_Proto)
{
return m_pSO7_Proto->so7_motion_set_position_R(dAbsolutePos,bWait);
}
else
{
return SSI_STATUS_MACHINE_UNINITIALIZED;
}
}
else
{
return SSI_STATUS_MOTION_NORMAL;
}
}
//==================================================================
extern "C" EXP_IMP SSI_STATUS_MOTION WINAPI Motion_DCCHomeR()
{
if (!g_bOfflineOnly)
{
if (m_pSO7_Proto)
{
return m_pSO7_Proto->so7_motion_Dcc_Home_R();
}
else
{
return SSI_STATUS_MACHINE_UNINITIALIZED;
}
}
else
{
return SSI_STATUS_MOTION_NORMAL;
}
}
//==================================================================
extern "C" EXP_IMP SSI_STATUS_MOTION WINAPI Motion_IsHomedR(bool &bHomed)
{
if (!g_bOfflineOnly)
{
if (m_pSO7_Proto)
{
return m_pSO7_Proto->so7_Motion_R_IsHomed(bHomed);
}
else
{
return SSI_STATUS_MACHINE_UNINITIALIZED;
}
}
else
{
return SSI_STATUS_MOTION_NORMAL;
}
}
//==================================================================
extern "C" EXP_IMP SSI_STATUS_MOTION WINAPI Motion_IsFinishedR(bool &bFinished)
{
if (!g_bOfflineOnly)
{
if (m_pSO7_Proto)
{
return m_pSO7_Proto->so7_Motion_R_IsMotionFInished(bFinished);
}
else
{
return SSI_STATUS_MACHINE_UNINITIALIZED;
}
}
else
{
return SSI_STATUS_MOTION_NORMAL;
}
}
/*******************************************************************/
EXP_IMP SSI_STATUS_MOTION WINAPI Illumination_SetLampState(double dTopLightPercent,double dBottomLightPercent,double dCoaxialLightPercent,double dReservedLightPercent,double dRingLightPercent,char cOuterRingLightSwitch,char cInnerRingLightSwitch)
{
if (!g_bOfflineOnly)
{
if (m_pSO7_Proto)
{
return m_pSO7_Proto->so7_light_set_lamp_state(dTopLightPercent,dBottomLightPercent,dCoaxialLightPercent,dReservedLightPercent,dRingLightPercent,cOuterRingLightSwitch,cInnerRingLightSwitch);
}
else
{
return SSI_STATUS_MACHINE_UNINITIALIZED;
}
}
else
{
return SSI_STATUS_MOTION_NORMAL;
}
}
EXP_IMP SSI_STATUS_MOTION WINAPI SEND_SYS_COMMAND(char Cmd,char SubCmd,char Type,char Data)
{
if (!g_bOfflineOnly)
{
if (m_pSO7_Proto)
{
return m_pSO7_Proto->_send_cmd_SO7_CMD_COMMON_COMMAND_DATA(Cmd,SubCmd,Type,Data);
}
else
{
return SSI_STATUS_MACHINE_UNINITIALIZED;
}
}
else
{
return SSI_STATUS_MOTION_NORMAL;
}
}
//==================================================================
SSI_STATUS_MOTION LoadMotionParameter()
@@ -73,173 +536,3 @@ SSI_STATUS_MOTION LoadMotionParameter()
return SSI_STATUS_MOTOR_DAT_FILE_NOT_FOUND;
}
}
//==================================================================
extern "C" EXP_IMP SSI_STATUS_MOTION WINAPI Machine_Startup(bool bOfflineOnly,bool bDCCHome)
{
SSI_STATUS_MOTION rStatus=SSI_STATUS_MOTION_NORMAL;
g_bOfflineOnly=bOfflineOnly;
if (!g_bOfflineOnly)
{
if (!m_pSO7_Proto)
{
m_pSO7_Proto=new CSO7_Proto();
}
rStatus=m_pSO7_Proto->Init_SO7Usb();
if (rStatus==SSI_STATUS_MOTION_NORMAL)
{
m_pSO7_Proto->_start_machine();
rStatus=m_pSO7_Proto->Load_So7_Config();
if (rStatus==SSI_STATUS_MOTION_NORMAL)
{
rStatus=LoadMotionParameter();
if (rStatus==SSI_STATUS_MOTION_NORMAL)
{
m_pSO7_Proto->_send_cmd_SO7_CMD_GET_RESET_FLAG();
if(m_pSO7_Proto->g_machine.IsSupportReadInterrputMsg)
{
m_pSO7_Proto->_send_cmd_SO7_CMD_READ_FIRMWARE_VERSION_INFO();
}
if (bDCCHome)
{
m_pSO7_Proto->so7_motion_Dcc_Home_R();
}
}
}
}
}
return rStatus;
}
//==================================================================
extern "C" EXP_IMP SSI_STATUS_MOTION WINAPI Machine_Sutdown()
{
if (m_pEF8000_Interface)
{
delete m_pEF8000_Interface;
m_pEF8000_Interface=nullptr;
}
if (m_pSO7_Proto)
{
if(m_pSO7_Proto->g_machine.IsSupportReadInterrputMsg)
{
m_pSO7_Proto->_send_cmd_SO7_CMD_SET_GET_INTERRUPT_MSG_METHOD(E_GET_INTERRUPT_MSG_INTERRUPT);
}
m_pSO7_Proto->_shutdown_machine();
m_pSO7_Proto->Exit_SO7Usb();
delete m_pSO7_Proto;
m_pSO7_Proto=nullptr;
}
return SSI_STATUS_MOTION_NORMAL;
}
//==================================================================
extern "C" EXP_IMP SSI_STATUS_MOTION WINAPI Motion_GetPositionR(double& dPos)
{
if (!g_bOfflineOnly)
{
if (!m_pSO7_Proto)
{
m_pSO7_Proto=new CSO7_Proto();
}
return m_pSO7_Proto->so7_motion_get_position_R(dPos);
}
else
{
return SSI_STATUS_MOTION_NORMAL;
}
}
//==================================================================
extern "C" EXP_IMP SSI_STATUS_MOTION WINAPI Motion_SetPositionR(double dAbsolutePos,bool bWait)
{
if (!g_bOfflineOnly)
{
if (!m_pSO7_Proto)
{
m_pSO7_Proto=new CSO7_Proto();
}
return m_pSO7_Proto->so7_motion_set_position_R(dAbsolutePos,bWait);
}
else
{
return SSI_STATUS_MOTION_NORMAL;
}
}
//==================================================================
extern "C" EXP_IMP SSI_STATUS_MOTION WINAPI Motion_DCCHome()
{
if (!g_bOfflineOnly)
{
if (!m_pSO7_Proto)
{
m_pSO7_Proto=new CSO7_Proto();
}
return m_pSO7_Proto->so7_motion_Dcc_Home_R();
}
else
{
return SSI_STATUS_MOTION_NORMAL;
}
}
//==================================================================
extern "C" EXP_IMP SSI_STATUS_MOTION WINAPI Motion_IsHomed(bool &bHomed)
{
if (!g_bOfflineOnly)
{
if (!m_pSO7_Proto)
{
m_pSO7_Proto=new CSO7_Proto();
}
return m_pSO7_Proto->so7_Motion_R_IsHomed(bHomed);
}
else
{
return SSI_STATUS_MOTION_NORMAL;
}
}
//==================================================================
extern "C" EXP_IMP SSI_STATUS_MOTION WINAPI Motion_IsFinished(bool &bFinished)
{
if (!g_bOfflineOnly)
{
if (!m_pSO7_Proto)
{
m_pSO7_Proto=new CSO7_Proto();
}
return m_pSO7_Proto->so7_Motion_R_IsMotionFInished(bFinished);
}
else
{
return SSI_STATUS_MOTION_NORMAL;
}
}
//==================================================================
extern "C" EXP_IMP SSI_STATUS_MOTION WINAPI Motion_JogR(char cSpeedGear)
{
if (!g_bOfflineOnly)
{
if (!m_pSO7_Proto)
{
m_pSO7_Proto=new CSO7_Proto();
}
return m_pSO7_Proto->so7_motion_move_R(cSpeedGear);
}
else
{
return SSI_STATUS_MOTION_NORMAL;
}
}
//==================================================================
extern "C" EXP_IMP SSI_STATUS_MOTION WINAPI Motion_StopR()
{
if (!g_bOfflineOnly)
{
if (!m_pSO7_Proto)
{
m_pSO7_Proto=new CSO7_Proto();
}
return m_pSO7_Proto->_send_cmd_SO7_CMD_STOP_MOVE_XYZ();
}
else
{
return SSI_STATUS_MOTION_NORMAL;
}
}
@@ -6,6 +6,29 @@
#define EXP_IMP __declspec(dllimport)
#endif
enum EMACHINE_AXIS
{
MACHINE_AXIS_NONE = 0,
MACHINE_AXIS_X,
MACHINE_AXIS_Y,
MACHINE_AXIS_Z,
MACHINE_AXIS_ZOOM,
MACHINE_AXIS_R,
MACHINE_AXIS_ALL = 5
};
enum EHOME_MACHINE_MODE
{
HOME_NONE,
HOME_XYZ=1,
HOME_X=10,
HOME_Y,
HOME_Z,
HOME_XY=20,
HOME_XZ,
HOME_YZ,
HOME_R=30,
HOME_TOATAL=255
};
enum SSI_STATUS_MOTION
{
SSI_STATUS_MOTION_NORMAL = 0,
@@ -15,23 +38,40 @@ enum SSI_STATUS_MOTION
SSI_STATUS_MOTION_TIMEOUT,
SSI_STATUS_SO7_CONFIG_FILE_NOT_FOUND,
SSI_STATUS_MOTOR_DAT_FILE_NOT_FOUND,
SSI_STATUS_MACHINE_UNINITIALIZED,
SSI_STATUS_UNKNOWN_ERROR
};
extern "C"
{
///////////////////////////////////////////////
EXP_IMP SSI_STATUS_MOTION WINAPI Machine_Startup(bool bOfflineOnly,bool bDCCHome);
EXP_IMP SSI_STATUS_MOTION WINAPI Machine_Sutdown();
///////////////////////////////////////////////////////////////////////////////////
EXP_IMP SSI_STATUS_MOTION WINAPI Machine_Startup(bool bOfflineOnly,EHOME_MACHINE_MODE cHomeMachineMode);
EXP_IMP SSI_STATUS_MOTION WINAPI Machine_Shutdown();
//=================================================================================
//===============================Motion============================================
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_DCCHomeXYZ(EHOME_MACHINE_MODE cHomeMachineMode);
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_IsHomedXYZ(bool &bHomed);
//Units:mm
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_GetPositionXYZ(double &PositionX, double &PositionY, double &PositionZ);
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_SetPositionXYZ(double PositionX, double PositionY, double PositionZ,bool bWait);
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_IsFinishedXYZ(bool &bFinished);
//SpeedGear:1,2,3,4(Faster)
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_SetSpeedXYZ(EMACHINE_AXIS cAxis,char cSpeedGear,char Acce,char cHoldSpeed,char cStartSpeed,char cRefreshCycle,double dBufferDis);
//SpeedGear:1,2,3,4(Faster)
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_Jog(EMACHINE_AXIS cAxis,char cSpeedGear);
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_Stop();
//===================================Rotary Table==================================
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_DCCHomeR();
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_IsHomedR(bool &bHomed);
//Units:Rad
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_GetPositionR(double& dPos);
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_SetPositionR(double dAbsolutePos,bool bWait);
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_DCCHome();
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_IsHomed(bool &bHomed);
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_IsFinished(bool &bFinished);
//SpeedGear:1,2,3,4(Faster)
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_JogR(char cSpeedGear);
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_StopR();
EXP_IMP SSI_STATUS_MOTION WINAPI Motion_IsFinishedR(bool &bFinished);
//==============================Illumination=======================================
//Range value:0.0-100.0
EXP_IMP SSI_STATUS_MOTION WINAPI Illumination_SetLampState(double dTopLightPercent,double dBottomLightPercent,double dCoaxialLightPercent,double dReservedLightPercent,double dRingLightPercent,char cOuterRingLightSwitch,char cInnerRingLightSwitch);
//==============================CMD================================================
EXP_IMP SSI_STATUS_MOTION WINAPI SEND_SYS_COMMAND(char Cmd,char SubCmd,char Type,char Data);
}
@@ -80,23 +80,27 @@
<None Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\MicroVu\logger.h" />
<ClInclude Include="..\..\..\SevenOcean\EF8000_Interface.h" />
<ClInclude Include="..\..\..\SevenOcean\SO7_Proto.h" />
<ClInclude Include="..\logger.h" />
<ClInclude Include="MachineInterfaceDll.h" />
<ClInclude Include="resource.h" />
<ClInclude Include="stdafx.h" />
<ClInclude Include="targetver.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\MicroVu\LOGGER.CPP" />
<ClCompile Include="..\..\..\SevenOcean\EF8000_Interface.cpp" />
<ClCompile Include="..\..\..\SevenOcean\SO7_Proto.cpp" />
<ClCompile Include="..\LOGGER.CPP" />
<ClCompile Include="MachineInterfaceDll.cpp" />
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="MachineInterfaceDll.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
@@ -33,7 +33,10 @@
<ClInclude Include="..\..\..\SevenOcean\SO7_Proto.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="..\..\..\MicroVu\logger.h">
<ClInclude Include="..\logger.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="resource.h">
<Filter>头文件</Filter>
</ClInclude>
</ItemGroup>
@@ -50,8 +53,13 @@
<ClCompile Include="..\..\..\SevenOcean\SO7_Proto.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="..\..\..\MicroVu\LOGGER.CPP">
<ClCompile Include="..\LOGGER.CPP">
<Filter>源文件</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="MachineInterfaceDll.rc">
<Filter>资源文件</Filter>
</ResourceCompile>
</ItemGroup>
</Project>
@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LocalDebuggerCommand>E:\Tony\MachineInterfaceUtility\PcDmis\Base\Interfac\Msi\Hsi\Tools\UsbUtility\Debug\Win32TestDll.exe</LocalDebuggerCommand>
<LocalDebuggerCommand>
</LocalDebuggerCommand>
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
</PropertyGroup>
</Project>
@@ -0,0 +1,14 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by MachineInterfaceDll.rc
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 101
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
@@ -2,19 +2,169 @@
//
#include "stdafx.h"
#include <conio.h>
#include "..\MachineInterfaceDll\MachineInterfaceDll.h"
void ShowMessage(SSI_STATUS_MOTION status);
int _tmain(int argc, _TCHAR* argv[])
{
SSI_STATUS_MOTION status=Machine_Startup(false,false);
double dPos(0.0);
bool bb;
status=Motion_GetPositionR(dPos);
status=Motion_SetPositionR(dPos,true);
status=Motion_IsHomed(bb);
status=Motion_IsFinished(bb);
status=Motion_MoveR(1);
status=Machine_Sutdown();
SSI_STATUS_MOTION status=Machine_Startup(false,HOME_NONE);
printf("Machine_Startup:");
ShowMessage(status);
//=================================================================================
//===============================Motion============================================
bool bHomed(false);
status=Motion_IsHomedXYZ(bHomed);
printf("Motion_IsHomedXYZ:");
ShowMessage(status);
if (!bHomed)
{
status=Motion_DCCHomeXYZ(HOME_XYZ);
printf("Motion_IsHomedXYZ:");
ShowMessage(status);
do
{
Sleep(20);
status=Motion_IsHomedXYZ(bHomed);
printf("Motion_IsHomedXYZ:");
ShowMessage(status);
} while (!bHomed);
}
status=Motion_Jog(MACHINE_AXIS_X,3);
printf("Motion_Jog:");
ShowMessage(status);
Sleep(3000);
status=Motion_Stop();
printf("Motion_Stop:");
ShowMessage(status);
status=Motion_Jog(MACHINE_AXIS_Y,3);
printf("Motion_Jog:");
ShowMessage(status);
Sleep(3000);
status=Motion_Stop();
printf("Motion_Stop:");
ShowMessage(status);
status=Motion_Jog(MACHINE_AXIS_Z,-3);
printf("Motion_Jog:");
ShowMessage(status);
Sleep(3000);
status=Motion_Stop();
printf("Motion_Stop:");
ShowMessage(status);
double PositionX,PositionY,PositionZ;
status=Motion_GetPositionXYZ(PositionX,PositionY,PositionZ);
printf("Motion_GetPositionXYZ:%.4f,%.4f.%.4f;\r\n",PositionX,PositionY,PositionZ);
PositionX=0.0;
PositionY=0.0;
PositionZ=0.0;
printf("Motion_SetPositionXYZ:%.4f,%.4f.%.4f;\r\n",PositionX,PositionY,PositionZ);
status=Motion_SetPositionXYZ(PositionX,PositionY,PositionZ,true);
status=Motion_GetPositionXYZ(PositionX,PositionY,PositionZ);
printf("Motion_GetPositionXYZ:%.4f,%.4f.%.4f;\r\n",PositionY,PositionX,PositionZ);
//status=Motion_IsFinishedXYZ(bool &bFinished);
status=Motion_Jog(MACHINE_AXIS_X,-3);
printf("Motion_Jog:");
ShowMessage(status);
Sleep(3000);
status=Motion_Stop();
printf("Motion_Stop:");
ShowMessage(status);
status=Motion_SetSpeedXYZ(MACHINE_AXIS_X,3,20,20,20,3,0.01);
printf("Motion_SetSpeedXYZ:");
ShowMessage(status);
status=Motion_Jog(MACHINE_AXIS_X,3);
printf("Motion_Jog:");
ShowMessage(status);
Sleep(3000);
status=Motion_Stop();
printf("Motion_Stop:");
ShowMessage(status);
//===================================Rotary Table==================================
//Motion_DCCHomeR();
//Motion_IsHomedR(bool &bHomed);
////Units:Rad
//Motion_GetPositionR(double& dPos);
//Motion_SetPositionR(double dAbsolutePos,bool bWait);
//Motion_IsFinishedR(bool &bFinished);
//==============================Illumination=======================================
//Range value:0.0-100.0
status=Illumination_SetLampState(0,100,0,0,0,0,0);
printf("Illumination_SetLampState:");
ShowMessage(status);
Sleep(1000);
status=Illumination_SetLampState(100,0,0,0,0,0,0);
printf("Illumination_SetLampState:");
ShowMessage(status);
Sleep(1000);
status=Illumination_SetLampState(100,100,0,0,0,0,0);
printf("Illumination_SetLampState:");
ShowMessage(status);
Sleep(1000);
//==============================CMD================================================
//SEND_SYS_COMMAND(char Cmd,char SubCmd,char Type,char Data);
status=Machine_Shutdown();
printf("Machine_Shutdown:");
ShowMessage(status);
printf("Press any key to exit\r\n");
_getch();
return 0;
}
void ShowMessage(SSI_STATUS_MOTION status)
{
switch(status)
{
case SSI_STATUS_MOTION_NORMAL:
{
printf("SSI_STATUS_MOTION_NORMAL.\r\n");
break;
}
case SSI_STATUS_MOTION_DATALINK_ERROR:
{
printf("SSI_STATUS_MOTION_DATALINK_ERROR.\r\n");
break;
}
case SSI_STATUS_MOTION_LIMIT_REACHED:
{
printf("SSI_STATUS_MOTION_LIMIT_REACHED.\r\n");
break;
}
case SSI_STATUS_MOTION_INVALID_PARAMETERS:
{
printf("SSI_STATUS_MOTION_INVALID_PARAMETERS.\r\n");
break;
}
case SSI_STATUS_MOTION_TIMEOUT:
{
printf("SSI_STATUS_MOTION_TIMEOUT.\r\n");
break;
}
case SSI_STATUS_SO7_CONFIG_FILE_NOT_FOUND:
{
printf("SSI_STATUS_SO7_CONFIG_FILE_NOT_FOUND.\r\n");
break;
}
case SSI_STATUS_MOTOR_DAT_FILE_NOT_FOUND:
{
printf("SSI_STATUS_MOTOR_DAT_FILE_NOT_FOUND.\r\n");
break;
}
case SSI_STATUS_MACHINE_UNINITIALIZED:
{
printf("SSI_STATUS_MACHINE_UNINITIALIZED.\r\n");
break;
}
case SSI_STATUS_UNKNOWN_ERROR:
{
printf("SSI_STATUS_UNKNOWN_ERROR.\r\n");
break;
}
}
}
@@ -46,6 +46,7 @@ public:
void Send(LPCTSTR, ...);
void SendAndFlush(LPCTSTR, ...);
void SendAndFlushPerMode(LPCTSTR, ...);
void SendAndFlushWithTime(LPCTSTR, ...);
CString m_FileName;
long m_lLogMask;
FILE *m_File;