结构整理,修改文件编码格式适配VS gb2312
This commit is contained in:
@@ -102,7 +102,6 @@ Global
|
||||
{DA01B86D-5BC1-4863-BAAC-71B309B09CC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{DA01B86D-5BC1-4863-BAAC-71B309B09CC0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{DA01B86D-5BC1-4863-BAAC-71B309B09CC0}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{DA01B86D-5BC1-4863-BAAC-71B309B09CC0}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{DA01B86D-5BC1-4863-BAAC-71B309B09CC0}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{DA01B86D-5BC1-4863-BAAC-71B309B09CC0}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{DA01B86D-5BC1-4863-BAAC-71B309B09CC0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
|
||||
+44
-27
@@ -113,6 +113,15 @@ HSI_API HSI_STATUS WINAPI HSI_SHUTDOWM()
|
||||
//===========================================================================
|
||||
#pragma endregion
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// MOTION API
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
#pragma region Motion API
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_SUPPORTED(UINT &Types)
|
||||
{
|
||||
auto rStatus = HSI_STATUS_NORMAL;
|
||||
@@ -188,25 +197,19 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_STARTUP(bool bHome)
|
||||
return rStatus;
|
||||
}
|
||||
//===========================================================================
|
||||
/**
|
||||
* .ѯ�ʻ�̨�Ƿ���ԭ��
|
||||
*
|
||||
* \param bHomed �Ƿ��� ԭ ��
|
||||
* \return
|
||||
*/
|
||||
//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;
|
||||
//}
|
||||
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;
|
||||
}
|
||||
//===========================================================================
|
||||
HSI_API HSI_STATUS WINAPI HSI_EF3MOTION_GET_SPEED_XYZ(int axis,double &Speed)
|
||||
{
|
||||
@@ -615,7 +618,6 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_IOPROGRAM_DATA(byte* SendData,int length)
|
||||
}
|
||||
return rStatus;
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_PPStartPoint(double *startPoint)
|
||||
{
|
||||
@@ -753,7 +755,6 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_GLUE_DISPENSERSTART(double xOffset, double
|
||||
return rStatus;
|
||||
}
|
||||
//===========================================================================
|
||||
|
||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_PTPDISTANCE(double& ptpDistance, int& spTimeCount)
|
||||
{
|
||||
auto rStatus = HSI_STATUS_NORMAL;
|
||||
@@ -980,9 +981,14 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_FINDORIGINTEST(bool type)
|
||||
return rStatus;
|
||||
}
|
||||
|
||||
#if 0
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#pragma endregion
|
||||
|
||||
//²¹¹âµÆ
|
||||
#ifdef USE_ILLUMINATION_API
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// ILLUMINATION API
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma region // ILLUMINATION API
|
||||
//===========================================================================
|
||||
@@ -1152,8 +1158,14 @@ HSI_API HSI_STATUS WINAPI HSI_ILLUMINATION_TESTLIGHT(bool flag)
|
||||
}
|
||||
//===========================================================================
|
||||
#pragma endregion
|
||||
// 0
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#endif // USE_ILLUMINATION_API
|
||||
|
||||
//̽Õë
|
||||
#ifdef USE_Probe_API
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Probe API
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
#pragma region probe
|
||||
//===========================================================================
|
||||
HSI_API HSI_STATUS WINAPI HSI_TP_STARTUP()
|
||||
@@ -1344,7 +1356,10 @@ HSI_API HSI_STATUS WINAPI HSI_TP_SHUTDOWN()
|
||||
//===========================================================================
|
||||
#pragma endregion
|
||||
|
||||
#endif
|
||||
#endif // USE_Probe_API
|
||||
|
||||
//²âÊÔ
|
||||
#ifdef Test
|
||||
|
||||
#pragma region Test
|
||||
//===========================================================================
|
||||
@@ -1362,4 +1377,6 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_COLLECTPOS(bool isEnable, MOTOR_AXISCHOOES_
|
||||
return rStatus;
|
||||
}
|
||||
//===========================================================================
|
||||
#pragma endregion
|
||||
#pragma endregion
|
||||
|
||||
#endif // Test
|
||||
+69
-50
@@ -234,11 +234,11 @@ struct sHSIEventProperties
|
||||
|
||||
// >>>> In Interfaces
|
||||
typedef VOID(WINAPI *pEventCallback)(HSI_EVENT_TYPE EventType, HSI_EVENT_RESPONSE_TYPE ResponseType, UINT EventID, char EventData[HSI_MaxStringLength + 1], UINT &EventCallbackID);
|
||||
//HSI_API HSI_STATUS WINAPI HSI_STARTUP(HWND _hWnd, bool _bOfflineOnly);
|
||||
//HSI_API HSI_STATUS WINAPI HSI_GET_INTERFACE_VERSION(UINT &APIVersionMajor, UINT &APIVersionMinor);
|
||||
//HSI_API HSI_STATUS WINAPI HSI_GET_MACHINE_INFO(int &_NumMachineTypes);
|
||||
//HSI_API HSI_STATUS WINAPI HSI_SET_EVENT_CALLBACK(pEventCallback _pCallback);
|
||||
//HSI_API HSI_STATUS WINAPI HSI_SHUTDOWM();
|
||||
HSI_API HSI_STATUS WINAPI HSI_STARTUP(HWND _hWnd, bool _bOfflineOnly);
|
||||
HSI_API HSI_STATUS WINAPI HSI_GET_INTERFACE_VERSION(UINT &APIVersionMajor, UINT &APIVersionMinor);
|
||||
HSI_API HSI_STATUS WINAPI HSI_GET_MACHINE_INFO(int &_NumMachineTypes);
|
||||
HSI_API HSI_STATUS WINAPI HSI_SET_EVENT_CALLBACK(pEventCallback _pCallback);
|
||||
HSI_API HSI_STATUS WINAPI HSI_SHUTDOWM();
|
||||
|
||||
// <<<< Out Interfaces
|
||||
|
||||
@@ -284,18 +284,18 @@ enum HSI_MOTION_IO_TYPE
|
||||
{
|
||||
HSI_MOTION_INPUT = 0x0001,
|
||||
HSI_MOTION_INPUT_LIMIT_SWITCH,
|
||||
HSI_MOTION_INPUT_CH1,//�̸ߡ���Ϊ�ˡ�EF1����
|
||||
HSI_MOTION_INPUT_CH1,//固高、众为兴、EF1输入
|
||||
HSI_MOTION_INPUT_CH2,
|
||||
HSI_MOTION_INPUT_CH3,//���ڿ���������
|
||||
HSI_MOTION_INPUT_CH4,//��Ϊ���˶����ƿ���������
|
||||
HSI_MOTION_INPUT_ALARM,//��������
|
||||
HSI_MOTION_INPUT_CH3,//串口控制器输入
|
||||
HSI_MOTION_INPUT_CH4,//众为兴运动控制卡测试输入
|
||||
HSI_MOTION_INPUT_ALARM,//驱动报警
|
||||
|
||||
HSI_MOTION_OUTPUT = 0x0100,
|
||||
HSI_MOTION_OUTPUT_LASER_PEN,
|
||||
HSI_MOTION_OUTPUT_CH1,//�̸ߡ���Ϊ�ˡ�EF1���
|
||||
HSI_MOTION_OUTPUT_CH1,//固高、众为兴、EF1输出
|
||||
HSI_MOTION_OUTPUT_CH2,
|
||||
HSI_MOTION_OUTPUT_CH3,//���ڿ��������
|
||||
HSI_MOTION_OUTPUT_CH4//��Ϊ���˶����ƿ��������
|
||||
HSI_MOTION_OUTPUT_CH3,//串口控制器输出
|
||||
HSI_MOTION_OUTPUT_CH4//众为兴运动控制卡测试输出
|
||||
};
|
||||
|
||||
const UINT HSI_MOTION_AXIS_ALL = HSI_MOTION_AXIS_X | HSI_MOTION_AXIS_Y | HSI_MOTION_AXIS_Z;
|
||||
@@ -326,11 +326,12 @@ enum HSI_SCAN_MOTION_TYPE
|
||||
HSI_SCAN_MOTION_SPEC_LOCA = 100,//EF1
|
||||
HSI_SCAN_MOTION_EQ_DIS,
|
||||
HSI_SCAN_MOTION_EQ_DIS_II,
|
||||
HSI_SCAN_MOTION_LINEAR_TEST,//����ʹ��
|
||||
HSI_SCAN_MOTION_EQ_TEST,//����ʹ��
|
||||
HSI_SCAN_MOTION_MANUAL_TEST//����ʹ��
|
||||
HSI_SCAN_MOTION_LINEAR_TEST,//测试使用
|
||||
HSI_SCAN_MOTION_EQ_TEST,//测试使用
|
||||
HSI_SCAN_MOTION_MANUAL_TEST//测试使用
|
||||
};
|
||||
|
||||
|
||||
enum HSI_ZOOM_TYPE
|
||||
{
|
||||
HSI_ZOOM_MANUAL = 0,
|
||||
@@ -347,8 +348,8 @@ const int HSI_MAX_POSITIONS_STORED = 500;
|
||||
|
||||
// >>>> In Interfaces
|
||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_SUPPORTED(UINT &Types);
|
||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_STARTUP(bool bHome);
|
||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_HOMED(bool &bHomed);
|
||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_STARTUP(bool bHome);
|
||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_HOMED(bool &bHomed);
|
||||
|
||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_SPEED_XYZ(double &Speed);
|
||||
HSI_API HSI_STATUS WINAPI HSI_EF3MOTION_GET_SPEED_XYZ(int axis, double &Speed);
|
||||
@@ -368,10 +369,9 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_REFRESH_DEADBAND(double &Deadband);
|
||||
|
||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_JOG(UINT AxisTypes, double Speed);
|
||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_STOP_JOG();
|
||||
//HSI_API BOOL WINAPI HSI_MOTION_GET_PROBE_TOUCH();
|
||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_TOUCH_MOVE(double dSpeed, double dEndPosX, double dEndPosY, double dEndPosZ, double dI, double dJ, double dK);
|
||||
|
||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_POSITION_XYZ(UINT AxisTypes, double &PositionX, double &PositionY, double &PositionZ, double &Time);
|
||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_POSITION_XYZA_PROBE(UINT AxisTypes, double &PositionX, double &PositionY, double &PositionZ, double &dI, double &dJ, double &dK, double &PositionA);
|
||||
|
||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_POSITIONPROBE(UINT AxisTypes, double &PositionX, double &PositionY, double &PositionZ, double &PositionA);
|
||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_ENCODER_XYZ(long *lEncVal);
|
||||
|
||||
@@ -389,6 +389,8 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_SCAN_SET_DATA(UINT AxisTypes, HSI_SCAN_
|
||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_SCAN_START();
|
||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_SCAN_STOP();
|
||||
|
||||
|
||||
|
||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_SUPPORTED_EX(UINT AxisTypes, UINT &Types);
|
||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_STARTUP_EX(UINT AxisTypes, bool bHome);
|
||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_SCALE_RESOLUTION_EX(UINT AxisTypes, double &Scale);
|
||||
@@ -400,74 +402,88 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_SCAN_STOP();
|
||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_ACCELERATION_EX(UINT AxisTypes, double &Accel);
|
||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_ACCELERATION_EX(UINT AxisTypes, double Accel);
|
||||
|
||||
//暂未实现
|
||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_MAGNIFICATION(UINT AxisTypes, double mag, HSI_MOTION_MOVE_TYPE eType, double dSpeedGear);
|
||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_MAGNIFICATION(UINT AxisTypes, double &mag);
|
||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_SCALE_POS(UINT AxisTypes, double ScalePos, HSI_MOTION_MOVE_TYPE eType, double dSpeedGear);
|
||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_SCALE_POS(UINT AxisTypes, double &ScalePos);
|
||||
|
||||
//HSI_API BOOL WINAPI HSI_MOTION_GET_PROBE_TOUCH();
|
||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_TOUCH_MOVE(double dSpeed, double dEndPosX, double dEndPosY, double dEndPosZ, double dI, double dJ, double dK);
|
||||
//HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_POSITION_XYZA_PROBE(UINT AxisTypes, double &PositionX, double &PositionY, double &PositionZ, double &dI, double &dJ, double &dK, double &PositionA);
|
||||
|
||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_SHUTDOWN();
|
||||
// <<<< Out Interfaces
|
||||
|
||||
|
||||
#ifdef USE_Illumination_API
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Illumination API
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
enum HSI_ILLUMINATION_INFO
|
||||
{
|
||||
HSI_ILLUMINATION_INFO_UNKNOWN = 0,
|
||||
HSI_ILLUMINATION_INFO_SO7 = 0x01,
|
||||
HSI_ILLUMINATION_INFO_SO7_II = 0x02,//lvgang
|
||||
HSI_ILLUMINATION_INFO_SO7_III = 0x04,//shixuyong
|
||||
HSI_ILLUMINATION_INFO_TOTAL
|
||||
HSI_ILLUMINATION_INFO_UNKNOWN = 0,
|
||||
HSI_ILLUMINATION_INFO_SO7 = 0x01,
|
||||
HSI_ILLUMINATION_INFO_SO7_II = 0x02,//lvgang
|
||||
HSI_ILLUMINATION_INFO_SO7_III = 0x04,//shixuyong
|
||||
HSI_ILLUMINATION_INFO_TOTAL
|
||||
};
|
||||
|
||||
enum HSI_ILLUMINATION_BULB_TYPE
|
||||
{
|
||||
HSI_ILLUMINATION_BULB_ROUND = 1,
|
||||
HSI_ILLUMINATION_BULB_SQUARE = 2,
|
||||
HSI_ILLUMINATION_BULB_RING = 3,
|
||||
HSI_ILLUMINATION_BULB_GRID = 4
|
||||
HSI_ILLUMINATION_BULB_ROUND = 1,
|
||||
HSI_ILLUMINATION_BULB_SQUARE = 2,
|
||||
HSI_ILLUMINATION_BULB_RING = 3,
|
||||
HSI_ILLUMINATION_BULB_GRID = 4
|
||||
};
|
||||
|
||||
enum HSI_ILLUMINATION_LAMP_TYPE
|
||||
{
|
||||
HSI_ILLUMINATION_LAMP_COAXIAL = 0,
|
||||
HSI_ILLUMINATION_LAMP_SURFACE = 1,
|
||||
HSI_ILLUMINATION_LAMP_PROFILE = 2,
|
||||
HSI_ILLUMINATION_LAMP_PROFILE_OUTER = 3
|
||||
HSI_ILLUMINATION_LAMP_COAXIAL = 0,
|
||||
HSI_ILLUMINATION_LAMP_SURFACE = 1,
|
||||
HSI_ILLUMINATION_LAMP_PROFILE = 2,
|
||||
HSI_ILLUMINATION_LAMP_PROFILE_OUTER = 3
|
||||
};
|
||||
|
||||
enum HSI_ILLUMINATION_LAMP_CONTROL_TYPE
|
||||
{
|
||||
HSI_ILLUMINATION_LAMP_CONTROL_BY_WHOLE_LAMP = 0x0000,
|
||||
HSI_ILLUMINATION_LAMP_CONTROL_BY_RINGS = 0x0001,
|
||||
HSI_ILLUMINATION_LAMP_CONTROL_BY_OCTANTS = 0x0002,
|
||||
HSI_ILLUMINATION_LAMP_CONTROL_BY_SEGMENTS = 0x0004,
|
||||
HSI_ILLUMINATION_LAMP_CONTROL_BY_OTHER
|
||||
HSI_ILLUMINATION_LAMP_CONTROL_BY_WHOLE_LAMP = 0x0000,
|
||||
HSI_ILLUMINATION_LAMP_CONTROL_BY_RINGS = 0x0001,
|
||||
HSI_ILLUMINATION_LAMP_CONTROL_BY_OCTANTS = 0x0002,
|
||||
HSI_ILLUMINATION_LAMP_CONTROL_BY_SEGMENTS = 0x0004,
|
||||
HSI_ILLUMINATION_LAMP_CONTROL_BY_OTHER
|
||||
};
|
||||
|
||||
enum HSI_ILLUMINATION_BULB_STATE
|
||||
{
|
||||
HSI_ILLUMINATION_BULB_STATE_TURN_ON = 0,
|
||||
HSI_ILLUMINATION_BULB_STATE_TURN_OFF = 1,
|
||||
HSI_ILLUMINATION_BULB_STATE_TOTAL
|
||||
HSI_ILLUMINATION_BULB_STATE_TURN_ON = 0,
|
||||
HSI_ILLUMINATION_BULB_STATE_TURN_OFF = 1,
|
||||
HSI_ILLUMINATION_BULB_STATE_TOTAL
|
||||
};
|
||||
|
||||
enum HSI_ILLUMINATION_TYPE
|
||||
{
|
||||
HSI_ILLUMINATION_SUPPORTS_DCC_CONTROL = 0x0001,
|
||||
HSI_ILLUMINATION_SUPPORTS_MANUAL_CONTROL = 0x0002
|
||||
HSI_ILLUMINATION_SUPPORTS_DCC_CONTROL = 0x0001,
|
||||
HSI_ILLUMINATION_SUPPORTS_MANUAL_CONTROL = 0x0002
|
||||
};
|
||||
|
||||
enum HSI_ILLUMINATION_LAMP_LOCATION_TYPE
|
||||
{
|
||||
HSI_ILLUMINATION_LAMP_LOCATION_NONE = 0,
|
||||
HSI_ILLUMINATION_LAMP_LOCATION_TOP_ON_AXIS = 1,
|
||||
HSI_ILLUMINATION_LAMP_LOCATION_TOP_ANGLED = 2,
|
||||
HSI_ILLUMINATION_LAMP_LOCATION_BOTTOM = 3,
|
||||
HSI_ILLUMINATION_LAMP_LOCATION_MOVABLE = 4
|
||||
HSI_ILLUMINATION_LAMP_LOCATION_NONE = 0,
|
||||
HSI_ILLUMINATION_LAMP_LOCATION_TOP_ON_AXIS = 1,
|
||||
HSI_ILLUMINATION_LAMP_LOCATION_TOP_ANGLED = 2,
|
||||
HSI_ILLUMINATION_LAMP_LOCATION_BOTTOM = 3,
|
||||
HSI_ILLUMINATION_LAMP_LOCATION_MOVABLE = 4
|
||||
};
|
||||
|
||||
const int HSI_ILLUMINATION_MAX_LAMPS = 6;
|
||||
const int HSI_ILLUMINATION_MAX_BULB_COLORS = 3;
|
||||
const int HSI_ILLUMINATION_MAX_RINGS = 12;
|
||||
const int HSI_ILLUMINATION_MAX_SECTORS = 16;
|
||||
const int HSI_ILLUMINATION_MAX_BULBS = HSI_ILLUMINATION_MAX_RINGS*HSI_ILLUMINATION_MAX_SECTORS;
|
||||
const int HSI_ILLUMINATION_MAX_BULBS = HSI_ILLUMINATION_MAX_RINGS * HSI_ILLUMINATION_MAX_SECTORS;
|
||||
const int HSI_ILLUMINATION_MAX_BULB_TYPE = 2;
|
||||
|
||||
const int HSI_MaxLampNameLength = 29, HSI_MaxLampDescriptionLength = 255; // Maximum string length (buffer size - 1)
|
||||
@@ -477,7 +493,7 @@ HSI_API HSI_STATUS WINAPI HSI_ILLUMINATION_IS_SUPPORTED(UINT &Types);
|
||||
HSI_API HSI_STATUS WINAPI HSI_ILLUMINATION_STARTUP();
|
||||
HSI_API HSI_STATUS WINAPI HSI_ILLUMINATION_GET_LAMP_COUNT(int &nLamps);
|
||||
HSI_API HSI_STATUS WINAPI HSI_ILLUMINATION_GET_LAMP_INFO(int& _LampInfo, int& _NumLamps, int(*_LampsType)[HSI_ILLUMINATION_MAX_BULB_TYPE],
|
||||
int *NumRings, int *NumSectors, int* _Color, double *_Angle, bool &bCanBeCalibrated);
|
||||
int *NumRings, int *NumSectors, int* _Color, double *_Angle, bool &bCanBeCalibrated);
|
||||
HSI_API HSI_STATUS WINAPI HSI_ILLUMINATION_GET_LAMP_STATE(int nLamp, bool *bBulbStates, double *Intensities, int &Color, double &Angle);
|
||||
HSI_API HSI_STATUS WINAPI HSI_ILLUMINATION_SET_LAMP_STATE(int nLamp, bool *bBulbStates, double *Intensities, int Color, double Angle, bool bWait);
|
||||
HSI_API HSI_STATUS WINAPI HSI_ILLUMINATION_GET_LAMP_STATE_ALL(int _LampInfo, int _NumLamps, int(*_LampsType)[HSI_ILLUMINATION_MAX_BULB_TYPE], int(*bBulbStates)[HSI_ILLUMINATION_MAX_BULBS], double(*Intensities)[HSI_ILLUMINATION_MAX_BULBS]);
|
||||
@@ -485,6 +501,9 @@ HSI_API HSI_STATUS WINAPI HSI_ILLUMINATION_SET_LAMP_STATE_ALL(int _LampInfo, int
|
||||
HSI_API HSI_STATUS WINAPI HSI_ILLUMINATION_SHUTDOWN();
|
||||
// <<<< Out Interfaces
|
||||
|
||||
#endif // !USE_Illumination_API
|
||||
|
||||
|
||||
|
||||
class HSI
|
||||
{
|
||||
|
||||
@@ -254,7 +254,7 @@ private:
|
||||
double seekSpeed;
|
||||
double retractDis;
|
||||
double retractManDis;
|
||||
E_EF3_PROBE_STATUS probeRunStatus;//探针运行状态
|
||||
E_EF3_PROBE_STATUS probeRunStatus;//探锟斤拷锟斤拷锟斤拷状态
|
||||
};
|
||||
|
||||
extern HSI_Function *g_pHSI_Function;
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;HSI_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
@@ -178,6 +178,7 @@ xcopy "$(OutDir)\$(ProjectName).pdb" ..\HSI_GOOGOL_GTS800_WPFTest\bin\Debug\HSI.
|
||||
<ClInclude Include="HSI_Motion.h" />
|
||||
<ClInclude Include="HSI_Sevenocean_EF3.h" />
|
||||
<ClInclude Include="resource.h" />
|
||||
<ClInclude Include="SevenOcean\CMMIO_SERIAL.H" />
|
||||
<ClInclude Include="stdafx.h" />
|
||||
<ClInclude Include="targetver.h" />
|
||||
<ClInclude Include="version.h" />
|
||||
|
||||
@@ -19,5 +19,6 @@
|
||||
<ClInclude Include="stdafx.h" />
|
||||
<ClInclude Include="targetver.h" />
|
||||
<ClInclude Include="version.h" />
|
||||
<ClInclude Include="SevenOcean\CMMIO_SERIAL.H" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
+137
-138
@@ -1,5 +1,4 @@
|
||||
// HSI_Motion.cpp : 定义 DLL 的初始化例程。
|
||||
//
|
||||
// HSI_Motion.cpp : 定义 DLL 的初始化例程。
|
||||
#include "stdafx.h"
|
||||
#include "HSI.h"
|
||||
#include "HSI_Sevenocean_EF3.h"
|
||||
@@ -18,7 +17,7 @@ using namespace std;
|
||||
//===========================================================================
|
||||
HSI_Motion *g_pHSI_Motion = nullptr;
|
||||
CLogger extern *g_pLogger = nullptr;
|
||||
HANDLE hCom;//串口句柄
|
||||
HANDLE hCom;//串口句柄
|
||||
|
||||
const int WSA_MAJOR_VERSION = 2;
|
||||
const int WSA_MINOR_VERSION = 2;
|
||||
@@ -127,7 +126,7 @@ HSI_Motion::HSI_Motion()
|
||||
bSaveSpeedFlag = false;
|
||||
m_IsUseManualRunin = 0;
|
||||
fourthAxisFlag = false;
|
||||
bCircleRun = false;//圆弧插补
|
||||
bCircleRun = false;//圆弧插补
|
||||
m_UseAxisNum = 1;
|
||||
jogAxisNum = 0;
|
||||
jogDirFlag = false;
|
||||
@@ -136,9 +135,9 @@ HSI_Motion::HSI_Motion()
|
||||
set_start = 0;
|
||||
set_end = 0;
|
||||
m_iSpeedType = 0;
|
||||
m_axisDirX = 0;//探针运动时X轴的运动方向
|
||||
m_axisDirY = 0;//探针运动时Y轴的运动方向
|
||||
m_axisDirZ = 0;//探针运动时Z轴的运动方向
|
||||
m_axisDirX = 0;//探针运动时X轴的运动方向
|
||||
m_axisDirY = 0;//探针运动时Y轴的运动方向
|
||||
m_axisDirZ = 0;//探针运动时Z轴的运动方向
|
||||
m_probeSeekSpeed = 0;
|
||||
|
||||
bUseGlueDispenser = false;
|
||||
@@ -147,9 +146,9 @@ HSI_Motion::HSI_Motion()
|
||||
m_iGlueAccSpeed = 1;
|
||||
GlueDispenserindexNum = 0;
|
||||
|
||||
m_isUseAport = 0;//A串口
|
||||
m_isUseAport = 0;//A串口
|
||||
m_portAnum = 0;
|
||||
m_isUseBport = 0;//B串口
|
||||
m_isUseBport = 0;//B串口
|
||||
m_portBnum = 0;
|
||||
m_bEmergencyState = false;
|
||||
SpCompleteTStart = 0;
|
||||
@@ -182,7 +181,7 @@ HSI_Motion::HSI_Motion()
|
||||
}
|
||||
|
||||
CTime tm = CTime::GetCurrentTime();
|
||||
CString csTime = tm.Format("%Y-%m-%d");//显示年月日
|
||||
CString csTime = tm.Format("%Y-%m-%d");//显示年月日
|
||||
CString dir = L"\\Log\\" + csTime += L".SO7_EF3.Log";
|
||||
g_pLogger = new CLogger(dir);
|
||||
g_pLogger2 = new CLogger(L"\\Log\\EF3_SumTime.Log");
|
||||
@@ -190,7 +189,7 @@ HSI_Motion::HSI_Motion()
|
||||
{
|
||||
for (int j = 0; j < 5; j++)
|
||||
{
|
||||
m_JogDriveSpeed[j][i] = 10; //表示5个档位
|
||||
m_JogDriveSpeed[j][i] = 10; //表示5个档位
|
||||
m_JogStartSpeed[j][i] = 10;
|
||||
m_JogAccLine[j][i] = 5;
|
||||
m_JogAccCurve[j][i] = 0;
|
||||
@@ -293,12 +292,12 @@ bool HSI_Motion::PortInit(int iSerialComPort, int iBuadRate)
|
||||
sprintf_s(buf, "COM%d", iSerialComPort);
|
||||
CString comName(buf);
|
||||
hCom = CreateFile(comName,
|
||||
GENERIC_READ | GENERIC_WRITE, //允许读和写
|
||||
0, //独占方式,串口必须为0
|
||||
GENERIC_READ | GENERIC_WRITE, //允许读和写
|
||||
0, //独占方式,串口必须为0
|
||||
NULL,
|
||||
OPEN_EXISTING, //打开而不是创建,串口必须为打开
|
||||
0, //同步方式,同步执行时,函数直到操作完成后才返回
|
||||
NULL);//串口必须为NULL
|
||||
OPEN_EXISTING, //打开而不是创建,串口必须为打开
|
||||
0, //同步方式,同步执行时,函数直到操作完成后才返回
|
||||
NULL);//串口必须为NULL
|
||||
if (hCom != (HANDLE)-1)
|
||||
{
|
||||
PurgeComm(hCom, PURGE_TXCLEAR | PURGE_RXCLEAR);
|
||||
@@ -315,7 +314,7 @@ bool HSI_Motion::PortInit(int iSerialComPort, int iBuadRate)
|
||||
return false;//Setting Error!!!!
|
||||
}
|
||||
|
||||
//设置读写超时时间
|
||||
//设置读写超时时间
|
||||
COMMTIMEOUTS to;
|
||||
memset(&to, 0, sizeof(to));
|
||||
to.ReadIntervalTimeout = 100;
|
||||
@@ -371,7 +370,7 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly)
|
||||
sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||
sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "EF3控制器打开失败,串口");
|
||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "EF3控制器打开失败,串口");
|
||||
EventCallback(sEvenProp);
|
||||
return HSI_STATUS_FAILED;
|
||||
}
|
||||
@@ -418,7 +417,7 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly)
|
||||
g_pLogger->SendAndFlushWithTime(L"[Startup] DriverAlarmStatus HSI_STATUS_FAILED\n");
|
||||
//return HSI_STATUS_FAILED;
|
||||
}
|
||||
//无效软限位
|
||||
//无效软限位
|
||||
m_cSendData[0] = CT_MOTOR;
|
||||
m_cSendData[1] = CT_MOTOR_SET;
|
||||
m_cSendData[2] = AXIS_XYZU;
|
||||
@@ -431,12 +430,12 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly)
|
||||
m_cSendData[9] = 0;
|
||||
m_cSendData[10] = 0;
|
||||
m_cSendData[11] = 0;
|
||||
m_WriteByte = Send_Command(0, (const char*)m_cSendData, m_SendDataLength);//初始化防止第一次无效
|
||||
m_WriteByte = Send_Command(0, (const char*)m_cSendData, m_SendDataLength);//初始化防止第一次无效
|
||||
Sleep(5);
|
||||
m_WriteByte = Send_Command(0, (const char*)m_cSendData, m_SendDataLength);
|
||||
g_pLogger->SendAndFlushWithTime(L"[Startup] Limit no Enable\n");
|
||||
|
||||
//设置方向4个轴的方向,按位
|
||||
//设置方向4个轴的方向,按位
|
||||
m_cSendData[0] = CT_MOTOR;
|
||||
m_cSendData[1] = CT_MOTOR_SET;
|
||||
m_cSendData[2] = AXIS_X;
|
||||
@@ -448,28 +447,28 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly)
|
||||
Sleep(10);
|
||||
m_cSendData[0] = CT_MOTOR;
|
||||
m_cSendData[1] = CT_MDATA_INIT;
|
||||
m_cSendData[2] = m_motorType & 0xff; //电机类型(步进电机或伺服电机)
|
||||
m_cSendData[3] = m_IsUseExternalTrigger; //是否启用外触发功能
|
||||
m_cSendData[4] = m_IsUseSixRingEightArea; //是否启用六环八区灯功能
|
||||
m_cSendData[2] = m_motorType & 0xff; //电机类型(步进电机或伺服电机)
|
||||
m_cSendData[3] = m_IsUseExternalTrigger; //是否启用外触发功能
|
||||
m_cSendData[4] = m_IsUseSixRingEightArea; //是否启用六环八区灯功能
|
||||
m_cSendData[5] = m_IsHardLimit;
|
||||
m_cSendData[6] = m_IsEnableAxis;
|
||||
m_cSendData[7] = m_IsProbe; //是否启用探针
|
||||
m_cSendData[8] = m_EF3LightType; //5V高频灯光配置
|
||||
m_cSendData[9] = m_IsUseRocker; //是否启用摇杆
|
||||
m_cSendData[10] = m_IsHavePattern; //光栅
|
||||
m_cSendData[11] = m_AxisHomeDirection; //轴回家方向
|
||||
m_cSendData[12] = m_IsCollectPos; //是否从串口打印位置
|
||||
m_cSendData[16] = m_IsLightDebug; //是否不回家也能调试灯光
|
||||
m_cSendData[7] = m_IsProbe; //是否启用探针
|
||||
m_cSendData[8] = m_EF3LightType; //5V高频灯光配置
|
||||
m_cSendData[9] = m_IsUseRocker; //是否启用摇杆
|
||||
m_cSendData[10] = m_IsHavePattern; //光栅
|
||||
m_cSendData[11] = m_AxisHomeDirection; //轴回家方向
|
||||
m_cSendData[12] = m_IsCollectPos; //是否从串口打印位置
|
||||
m_cSendData[16] = m_IsLightDebug; //是否不回家也能调试灯光
|
||||
|
||||
if (m_IsStartInput == 1 && m_IsUseRocker == 2)
|
||||
{
|
||||
m_cSendData[14] = m_StartInputPort >> 8 & 0xff; //外部启动端口号 H
|
||||
m_cSendData[15] = m_StartInputPort & 0xff; //外部启动端口号 L
|
||||
m_cSendData[14] = m_StartInputPort >> 8 & 0xff; //外部启动端口号 H
|
||||
m_cSendData[15] = m_StartInputPort & 0xff; //外部启动端口号 L
|
||||
}
|
||||
m_WriteByte = Send_Command(0, (const char*)m_cSendData, m_SendDataLength);
|
||||
Sleep(10);
|
||||
|
||||
////步进电机补偿值设定
|
||||
////步进电机补偿值设定
|
||||
//if (m_motorType == 0)
|
||||
//{
|
||||
// m_cSendData[0] = CT_MOTOR;
|
||||
@@ -485,7 +484,7 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly)
|
||||
// g_pLogger->SendAndFlushWithTime(L"[Startup] Set Encoder Dir\n");
|
||||
//}
|
||||
|
||||
//多光源板
|
||||
//多光源板
|
||||
if (m_bISUseMoreLights > 0)
|
||||
{
|
||||
for (int i = 0; i < m_bISUseMoreLights; i++)
|
||||
@@ -505,7 +504,7 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly)
|
||||
sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||
sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "光源板打开网口失败");
|
||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "光源板打开网口失败");
|
||||
EventCallback(sEvenProp);
|
||||
return HSI_STATUS_FAILED;
|
||||
}
|
||||
@@ -529,7 +528,7 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly)
|
||||
}
|
||||
}
|
||||
|
||||
//摇杆速度设置
|
||||
//摇杆速度设置
|
||||
if (m_IsUseRocker == 1)
|
||||
{
|
||||
m_cSendData[0] = CT_MOTOR;
|
||||
@@ -557,7 +556,7 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly)
|
||||
Sleep(5);
|
||||
g_pLogger->SendAndFlushWithTime(L"[Startup] Set Rocker Success\n");
|
||||
}
|
||||
//摇杆2下载档位
|
||||
//摇杆2下载档位
|
||||
if (m_IsUseRocker == 2)
|
||||
{
|
||||
SetAllGears();
|
||||
@@ -604,7 +603,7 @@ HSI_STATUS HSI_Motion::Startup(HWND _hWnd, bool _bOfflineOnly)
|
||||
return rStatus;
|
||||
}
|
||||
|
||||
//获取EF3固件版本
|
||||
//获取EF3固件版本
|
||||
HSI_STATUS HSI_Motion::GetFirmwareVersion(byte *version)
|
||||
{
|
||||
m_Thread_StateData = HSI_THREAD_PAUSED;
|
||||
@@ -663,7 +662,7 @@ HSI_STATUS HSI_Motion::GetFirmwareVersion(byte *version)
|
||||
return HSI_STATUS_NORMAL;
|
||||
}
|
||||
|
||||
//回家
|
||||
//回家
|
||||
//===========================================================================
|
||||
HSI_STATUS HSI_Motion::HomeMachine(bool bHomed)
|
||||
{
|
||||
@@ -680,7 +679,7 @@ HSI_STATUS HSI_Motion::HomeMachine(bool bHomed)
|
||||
if (g_pHSI_Motion)
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[HomeMachine] In\n");
|
||||
//判断是否需要回家
|
||||
//判断是否需要回家
|
||||
bool home(false);
|
||||
IsHomed(home);
|
||||
if (home == true)
|
||||
@@ -700,7 +699,7 @@ HSI_STATUS HSI_Motion::HomeMachine(bool bHomed)
|
||||
}
|
||||
if (m_bEmergencyState)
|
||||
{
|
||||
AfxMessageBox(_T("急停或安全门或安全光幕触发!"));
|
||||
AfxMessageBox(_T("急停或安全门或安全光幕触发!"));
|
||||
return HSI_STATUS_FAILED;
|
||||
}
|
||||
CurrentHomeMachineState = E_EF3_HOME_ING;
|
||||
@@ -842,7 +841,7 @@ HSI_STATUS HSI_Motion::HomeFindIndex()
|
||||
if (m_Home_Machine_Axis[i] == 1)
|
||||
{
|
||||
AxisTypes = IndexConvertAxis(i);
|
||||
//无效软限位
|
||||
//无效软限位
|
||||
m_cSendData[0] = CT_MOTOR;
|
||||
m_cSendData[1] = CT_MOTOR_SET;
|
||||
m_cSendData[2] = AxisTypes;
|
||||
@@ -974,7 +973,7 @@ HSI_STATUS HSI_Motion::HomeFindIndex()
|
||||
}
|
||||
if (m_bEmergencyState)
|
||||
{
|
||||
AfxMessageBox(_T("急停或安全门或安全光幕触发!"));
|
||||
AfxMessageBox(_T("急停或安全门或安全光幕触发!"));
|
||||
return HSI_STATUS_FAILED;
|
||||
}
|
||||
if (Count > 25000)
|
||||
@@ -984,7 +983,7 @@ HSI_STATUS HSI_Motion::HomeFindIndex()
|
||||
sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||
sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "回家超时");
|
||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "回家超时");
|
||||
EventCallback(sEvenProp);
|
||||
return HSI_STATUS_FAILED;
|
||||
}
|
||||
@@ -995,22 +994,22 @@ HSI_STATUS HSI_Motion::HomeFindIndex()
|
||||
bool bHomed = true;
|
||||
if ((m_SO7_Serial.m_RecvData[38] & 0x01) == 0 && m_Home_Machine_Axis[1] == 1)
|
||||
{
|
||||
strcat_s(MessageHome, 30, "1、");
|
||||
strcat_s(MessageHome, 30, "1、");
|
||||
bHomed = false;
|
||||
}
|
||||
if ((m_SO7_Serial.m_RecvData[38] & 0x02) == 0 && m_Home_Machine_Axis[2] == 1)
|
||||
{
|
||||
strcat_s(MessageHome, 30, "2、");
|
||||
strcat_s(MessageHome, 30, "2、");
|
||||
bHomed = false;
|
||||
}
|
||||
if ((m_SO7_Serial.m_RecvData[38] & 0x04) == 0 && m_Home_Machine_Axis[3] == 1)
|
||||
{
|
||||
strcat_s(MessageHome, 30, "3、");
|
||||
strcat_s(MessageHome, 30, "3、");
|
||||
bHomed = false;
|
||||
}
|
||||
if ((m_SO7_Serial.m_RecvData[38] & 0x08) == 0 && m_Home_Machine_Axis[4] == 1)
|
||||
{
|
||||
strcat_s(MessageHome, 30, "4、");
|
||||
strcat_s(MessageHome, 30, "4、");
|
||||
bHomed = false;
|
||||
}
|
||||
if (!bHomed)
|
||||
@@ -1019,7 +1018,7 @@ HSI_STATUS HSI_Motion::HomeFindIndex()
|
||||
sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||
sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||
strcat_s(MessageHome, 100, "轴回家失败!");
|
||||
strcat_s(MessageHome, 100, "轴回家失败!");
|
||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, MessageHome);
|
||||
EventCallback(sEvenProp);
|
||||
return HSI_STATUS_FAILED;
|
||||
@@ -1069,11 +1068,11 @@ HSI_STATUS HSI_Motion::IsHomed(bool &bHomed)
|
||||
g_pLogger->SendAndFlushWithTime(L"[IsHomed] In\n");
|
||||
short isHomed[5] = { 1, 1, 1, 1, 1 };
|
||||
//int Count = 0;
|
||||
//if (bHomed == true)//定位是增大判断精度
|
||||
//if (bHomed == true)//定位是增大判断精度
|
||||
//{
|
||||
// Count = 1000;
|
||||
//}
|
||||
//所有轴都不需要回家
|
||||
//所有轴都不需要回家
|
||||
if (m_Home_Machine_Axis[1] == 0 && m_Home_Machine_Axis[2] == 0 && m_Home_Machine_Axis[3] == 0 && m_Home_Machine_Axis[4] == 0)
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[IsHomed] No Axis Go Home E_GTS_HOME_FINISHED\n");
|
||||
@@ -1082,7 +1081,7 @@ HSI_STATUS HSI_Motion::IsHomed(bool &bHomed)
|
||||
return HSI_STATUS_NORMAL;
|
||||
}
|
||||
|
||||
//判断是否需要回家
|
||||
//判断是否需要回家
|
||||
int Delay = 0;
|
||||
while (m_SO7_Serial.m_RecvData[0] != 2)
|
||||
{
|
||||
@@ -1176,7 +1175,7 @@ HSI_STATUS HSI_Motion::ZeroPos(bool bZeroPos)
|
||||
return rStatus;
|
||||
}
|
||||
|
||||
//JOG模式
|
||||
//JOG模式
|
||||
//===========================================================================
|
||||
HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
||||
{
|
||||
@@ -1206,12 +1205,12 @@ HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
||||
m_cSendData[1] = CT_MOTOR_SET;
|
||||
m_cSendData[2] = AxisTypes;
|
||||
m_cSendData[3] = SOFT_LIMIT_POS_NEG;
|
||||
m_cSendData[4] = (int)(m_P_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) & 0xff;
|
||||
m_cSendData[4] = (int)(m_P_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) & 0xff;//正限位
|
||||
m_cSendData[5] = ((int)(m_P_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) >> 8) & 0xff;
|
||||
m_cSendData[6] = ((int)(m_P_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) >> 16) & 0xff;
|
||||
m_cSendData[7] = ((int)(m_P_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) >> 24) & 0xff;
|
||||
|
||||
m_cSendData[8] = (int)(m_N_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) & 0xff;
|
||||
m_cSendData[8] = (int)(m_N_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) & 0xff; //负限位
|
||||
m_cSendData[9] = ((int)(m_N_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) >> 8) & 0xff;
|
||||
m_cSendData[10] = ((int)(m_N_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) >> 16) & 0xff;
|
||||
m_cSendData[11] = ((int)(m_N_Work_Limit[AxisNumber] / m_Resolution[AxisNumber]) >> 24) & 0xff;
|
||||
@@ -1221,7 +1220,7 @@ HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
||||
}
|
||||
else
|
||||
{
|
||||
//无效软限位
|
||||
//无效软限位
|
||||
m_cSendData[0] = CT_MOTOR;
|
||||
m_cSendData[1] = CT_MOTOR_SET;
|
||||
m_cSendData[2] = AxisTypes;
|
||||
@@ -1254,7 +1253,7 @@ HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
||||
{
|
||||
if (AxisTypes == AXIS_X && m_motorType & 0x01)
|
||||
{
|
||||
if (!bJOGDir)//负方向
|
||||
if (!bJOGDir)//负方向
|
||||
{
|
||||
RemainPul = (int)(now_pos[1] / m_Resolution[1]) - (int)(m_N_Work_Limit[1] / m_Resolution[1]);
|
||||
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
||||
@@ -1285,7 +1284,7 @@ HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
||||
}
|
||||
else if (AxisTypes == AXIS_Y && m_motorType & 0x02)
|
||||
{
|
||||
if (!bJOGDir)//负方向
|
||||
if (!bJOGDir)//负方向
|
||||
{
|
||||
RemainPul = (int)(now_pos[2] / m_Resolution[2]) - (int)(m_N_Work_Limit[2] / m_Resolution[2]);
|
||||
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
||||
@@ -1316,7 +1315,7 @@ HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
||||
}
|
||||
if (AxisTypes == AXIS_Z && m_motorType & 0x04)
|
||||
{
|
||||
if (!bJOGDir)//负方向
|
||||
if (!bJOGDir)//负方向
|
||||
{
|
||||
RemainPul = (int)(now_pos[3] / m_Resolution[3]) - (int)(m_N_Work_Limit[3] / m_Resolution[3]);
|
||||
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
||||
@@ -1347,7 +1346,7 @@ HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
||||
}
|
||||
if (AxisTypes == AXIS_U && m_motorType & 0x08)
|
||||
{
|
||||
if (!bJOGDir)//负方向
|
||||
if (!bJOGDir)//负方向
|
||||
{
|
||||
RemainPul = (int)(now_pos[4] / m_Resolution[4]) - (int)(m_N_Work_Limit[4] / m_Resolution[4]);
|
||||
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
||||
@@ -1426,7 +1425,7 @@ HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
||||
m_cSendData[0] = CT_MOTOR;
|
||||
if (AxisNumber == 1 || AxisNumber == 2)
|
||||
{
|
||||
if (!bJOGDir)//方向
|
||||
if (!bJOGDir)//方向
|
||||
{
|
||||
m_cSendData[1] = CT_START_JOG_NEG;
|
||||
}
|
||||
@@ -1437,7 +1436,7 @@ HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (bJOGDir)//方向
|
||||
if (bJOGDir)//方向
|
||||
{
|
||||
m_cSendData[1] = CT_START_JOG_POS;
|
||||
}
|
||||
@@ -1455,7 +1454,7 @@ HSI_STATUS HSI_Motion::Jog(UINT AxisTypes, double Speed)
|
||||
}
|
||||
return rStatus;
|
||||
}
|
||||
//JOG模式
|
||||
//JOG模式
|
||||
//===========================================================================
|
||||
HSI_STATUS HSI_Motion::JoyStick(UINT AxisTypes, long Speed)
|
||||
{
|
||||
@@ -1500,7 +1499,7 @@ HSI_STATUS HSI_Motion::JoyStick(UINT AxisTypes, long Speed)
|
||||
}
|
||||
else
|
||||
{
|
||||
//无效软限位
|
||||
//无效软限位
|
||||
m_cSendData[0] = CT_MOTOR;
|
||||
m_cSendData[1] = CT_MOTOR_SET;
|
||||
m_cSendData[2] = AxisTypes;
|
||||
@@ -1537,7 +1536,7 @@ HSI_STATUS HSI_Motion::JoyStick(UINT AxisTypes, long Speed)
|
||||
{
|
||||
if (AxisTypes == AXIS_X && m_motorType & 0x01)
|
||||
{
|
||||
if (!bJOGDir)//负方向
|
||||
if (!bJOGDir)//负方向
|
||||
{
|
||||
RemainPul = (int)(now_pos[1] / m_Resolution[1]) - (int)(m_N_Work_Limit[1] / m_Resolution[1]);
|
||||
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
||||
@@ -1568,7 +1567,7 @@ HSI_STATUS HSI_Motion::JoyStick(UINT AxisTypes, long Speed)
|
||||
}
|
||||
else if (AxisTypes == AXIS_Y && m_motorType & 0x02)
|
||||
{
|
||||
if (!bJOGDir)//负方向
|
||||
if (!bJOGDir)//负方向
|
||||
{
|
||||
RemainPul = (int)(now_pos[2] / m_Resolution[2]) - (int)(m_N_Work_Limit[2] / m_Resolution[2]);
|
||||
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
||||
@@ -1599,7 +1598,7 @@ HSI_STATUS HSI_Motion::JoyStick(UINT AxisTypes, long Speed)
|
||||
}
|
||||
if (AxisTypes == AXIS_Z && m_motorType & 0x04)
|
||||
{
|
||||
if (!bJOGDir)//负方向
|
||||
if (!bJOGDir)//负方向
|
||||
{
|
||||
RemainPul = (int)(now_pos[3] / m_Resolution[3]) - (int)(m_N_Work_Limit[3] / m_Resolution[3]);
|
||||
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
||||
@@ -1630,7 +1629,7 @@ HSI_STATUS HSI_Motion::JoyStick(UINT AxisTypes, long Speed)
|
||||
}
|
||||
if (AxisTypes == AXIS_U && m_motorType & 0x08)
|
||||
{
|
||||
if (!bJOGDir)//负方向
|
||||
if (!bJOGDir)//负方向
|
||||
{
|
||||
RemainPul = (int)(now_pos[4] / m_Resolution[4]) - (int)(m_N_Work_Limit[4] / m_Resolution[4]);
|
||||
limitSDPul = (DriveSpeed - StartSpeed) * 13;
|
||||
@@ -1709,7 +1708,7 @@ HSI_STATUS HSI_Motion::JoyStick(UINT AxisTypes, long Speed)
|
||||
m_cSendData[0] = CT_MOTOR;
|
||||
if (AxisNumber == 1 || AxisNumber == 2)
|
||||
{
|
||||
if (!bJOGDir)//方向
|
||||
if (!bJOGDir)//方向
|
||||
{
|
||||
m_cSendData[1] = CT_START_JOG_NEG;
|
||||
}
|
||||
@@ -1720,7 +1719,7 @@ HSI_STATUS HSI_Motion::JoyStick(UINT AxisTypes, long Speed)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (bJOGDir)//方向
|
||||
if (bJOGDir)//方向
|
||||
{
|
||||
m_cSendData[1] = CT_START_JOG_POS;
|
||||
}
|
||||
@@ -1849,7 +1848,7 @@ int HSI_Motion::P2P(short AxisNumber, long Pos, double Speed, double Acc)
|
||||
return 0;
|
||||
}
|
||||
|
||||
//运动控制部分
|
||||
//运动控制部分
|
||||
//===========================================================================
|
||||
HSI_STATUS HSI_Motion::GetPositionEncPrfMulti(UINT AxisTypes, double *EncPos, double *PrfPos, int Count)
|
||||
{
|
||||
@@ -1919,7 +1918,7 @@ HSI_STATUS HSI_Motion::GetPositionXyz(UINT AxisTypes, double &PositionX, double
|
||||
{
|
||||
auto rStatus = HSI_STATUS_NORMAL;
|
||||
UNREFERENCED_PARAMETER(AxisTypes);
|
||||
//读取3个轴的位置
|
||||
//读取3个轴的位置
|
||||
CString tempStr;
|
||||
if (g_pHSI_Motion)
|
||||
{
|
||||
@@ -1980,7 +1979,7 @@ HSI_STATUS HSI_Motion::GetPositionXyz(UINT AxisTypes, double &PositionX, double
|
||||
HSI_STATUS HSI_Motion::GetEncoderXyz(long *lEncoderVal)
|
||||
{
|
||||
auto rStatus = HSI_STATUS_NORMAL;
|
||||
//读取3个轴的编码器值
|
||||
//读取3个轴的编码器值
|
||||
if (g_pHSI_Motion)
|
||||
{
|
||||
if (m_SO7_Serial.m_RecvData[0] == 2)
|
||||
@@ -2112,19 +2111,19 @@ HSI_STATUS HSI_Motion::SetPositionXyz(UINT AxisTypes, double PositionX, double
|
||||
Pos_t[4] = NowPos[4] = (int)(m_EncPos[4] / m_Resolution[4]);
|
||||
}
|
||||
|
||||
if (m_motorType & 0x01) //步进电机
|
||||
if (m_motorType & 0x01) //步进电机
|
||||
Pos[1] = (int)(PositionX / m_Resolution[1]) - NowPos[1];
|
||||
else
|
||||
Pos[1] = (int)(PositionX / m_Resolution[1]) - Pos_t[1];
|
||||
if (m_motorType & 0x02) //步进电机
|
||||
if (m_motorType & 0x02) //步进电机
|
||||
Pos[2] = (int)(PositionX / m_Resolution[2]) - NowPos[2];
|
||||
else
|
||||
Pos[2] = (int)(PositionY / m_Resolution[2]) - Pos_t[2];
|
||||
if (m_motorType & 0x04) //步进电机
|
||||
if (m_motorType & 0x04) //步进电机
|
||||
Pos[3] = (int)(PositionX / m_Resolution[3]) - NowPos[3];
|
||||
else
|
||||
Pos[3] = (int)(PositionZ / m_Resolution[3]) - Pos_t[3];
|
||||
if (m_motorType & 0x08) //步进电机
|
||||
if (m_motorType & 0x08) //步进电机
|
||||
Pos[4] = (int)(PositionX / m_Resolution[4]) - NowPos[4];
|
||||
else
|
||||
Pos[4] = (int)(m_PositionA / m_Resolution[4]) - Pos_t[4];
|
||||
@@ -2454,7 +2453,7 @@ HSI_STATUS HSI_Motion::SetPositionXyz(UINT AxisTypes, double PositionX, double
|
||||
}
|
||||
|
||||
Sleep(10);
|
||||
//启动插补和定位功能
|
||||
//启动插补和定位功能
|
||||
/* if (m_motorType == 1)
|
||||
{
|
||||
send_pos_data[0] = CT_MOTOR;
|
||||
@@ -2617,7 +2616,7 @@ HSI_STATUS HSI_Motion::SetCircleInterpolate(double PositionX, double PositionY
|
||||
return rStatus;
|
||||
}
|
||||
|
||||
//探针接口
|
||||
//探针接口
|
||||
//===========================================================================
|
||||
void HSI_Motion::ProbeRetractManDist(int RetractManDist)
|
||||
{
|
||||
@@ -2750,7 +2749,7 @@ HSI_STATUS HSI_Motion::JogProbe(UINT AxisTypes, double Speed)
|
||||
return rStatus;
|
||||
}
|
||||
|
||||
//读取配置
|
||||
//读取配置
|
||||
//===========================================================================
|
||||
HSI_STATUS HSI_Motion::Load_EF3_Motion_Inifile(CString GoogolIniFile)
|
||||
{
|
||||
@@ -2762,7 +2761,7 @@ HSI_STATUS HSI_Motion::Load_EF3_Motion_Inifile(CString GoogolIniFile)
|
||||
CString temp = L"";
|
||||
CString strGear[5] = { L"GEAR0_", L"GEAR1_", L"GEAR2_", L"GEAR3_", L"GEAR4_" };
|
||||
CString axisNum[5] = { L"0", L"1", L"2", L"3", L"4" };
|
||||
//判断Log目录是否存在,不存在就创建
|
||||
//判断Log目录是否存在,不存在就创建
|
||||
if (CreateDirectory(m_AppPath + L"\\Log", NULL))
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[Load_EF3_Motion_Inifile] Create Log Directory\n");
|
||||
@@ -2775,7 +2774,7 @@ HSI_STATUS HSI_Motion::Load_EF3_Motion_Inifile(CString GoogolIniFile)
|
||||
sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||
sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "EF3_Motion.ini文件不存在!");
|
||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "EF3_Motion.ini文件不存在!");
|
||||
EventCallback(sEvenProp);
|
||||
return HSI_STATUS_FAILED;
|
||||
}
|
||||
@@ -2836,7 +2835,7 @@ HSI_STATUS HSI_Motion::Load_EF3_Motion_Inifile(CString GoogolIniFile)
|
||||
m_setPositionPrecision = GetPrivateProfileInt(L"SETPOSITION", L"SETPPSITION_PRECISION", 1, csAppPath);
|
||||
m_setPositionNum = GetPrivateProfileInt(L"SETPOSITION", L"SETPOSITION_NUMBER", 1, csAppPath);
|
||||
|
||||
//两块四路光源板
|
||||
//两块四路光源板
|
||||
m_isUseAport = GetPrivateProfileInt(L"COMPORT", L"IS_COM_PORT_A", 0, csAppPath);
|
||||
m_portAnum = GetPrivateProfileInt(L"COMPORT", L"COM_PORT_A", 0, csAppPath);
|
||||
m_isUseBport = GetPrivateProfileInt(L"COMPORT", L"IS_COM_PORT_B", 0, csAppPath);
|
||||
@@ -2909,7 +2908,7 @@ HSI_STATUS HSI_Motion::Load_EF3_Config_Inifile(CString GoogolIniFile)
|
||||
sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||
sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "EF3_Config.ini文件不存在!");
|
||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "EF3_Config.ini文件不存在!");
|
||||
EventCallback(sEvenProp);
|
||||
return HSI_STATUS_FAILED;
|
||||
}
|
||||
@@ -2977,7 +2976,7 @@ HSI_STATUS HSI_Motion::Load_EF3_Config_Inifile(CString GoogolIniFile)
|
||||
return rStatus;
|
||||
}
|
||||
|
||||
//读取/设置光栅尺精度
|
||||
//读取/设置光栅尺精度
|
||||
//===========================================================================
|
||||
HSI_STATUS HSI_Motion::GetScaleResolution(double &_ScaleX, double &_ScaleY, double &_ScaleZ)
|
||||
{
|
||||
@@ -3003,7 +3002,7 @@ HSI_STATUS HSI_Motion::SetScaleResolution(double _ScaleX, double _ScaleY, double
|
||||
return rStatus;
|
||||
}
|
||||
|
||||
//回调定位完成
|
||||
//回调定位完成
|
||||
//===========================================================================
|
||||
void HSI_Motion::SendMsgMotionFinished()
|
||||
{
|
||||
@@ -3014,7 +3013,7 @@ void HSI_Motion::SendMsgMotionFinished()
|
||||
EventCallback(sEvenProp);
|
||||
}
|
||||
|
||||
//回调探针运行
|
||||
//回调探针运行
|
||||
//===========================================================================
|
||||
void HSI_Motion::SendMsgProbeFinished()
|
||||
{
|
||||
@@ -3095,7 +3094,7 @@ void HSI_Motion::UpdateMotionState()
|
||||
// double ProPulse[5] = { 0.0 };
|
||||
if (interpolationflag&&m_motorType)
|
||||
{
|
||||
while (Count < m_SetPotion_Count[1])//到位次数判断
|
||||
while (Count < m_SetPotion_Count[1])//到位次数判断
|
||||
{
|
||||
Sleep(2);
|
||||
GetPositionXyz(HSI_MOTION_AXIS_ALL, prfpos[1], prfpos[2], prfpos[3], prfpos[0]);
|
||||
@@ -3122,7 +3121,7 @@ void HSI_Motion::UpdateMotionState()
|
||||
Count++;
|
||||
g_pLogger->SendAndFlushWithTime(L"[UpdateMotionState] m_SetPotion_Count = %d\n", Count);
|
||||
}
|
||||
//if (Count == m_SetPotion_Count[1]) //超时退出
|
||||
//if (Count == m_SetPotion_Count[1]) //超时退出
|
||||
//{
|
||||
// if (g_IsClose == false)
|
||||
// {
|
||||
@@ -3131,7 +3130,7 @@ void HSI_Motion::UpdateMotionState()
|
||||
// sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||
// sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||
// sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||
// strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "Nowait_HSI定位超时!");
|
||||
// strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "Nowait_HSI定位超时!");
|
||||
// EventCallback(sEvenProp);
|
||||
// }
|
||||
// else
|
||||
@@ -3164,25 +3163,25 @@ void HSI_Motion::UpdateMotionState()
|
||||
sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||
sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "Nowait_EF3定位超时!");
|
||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "Nowait_EF3定位超时!");
|
||||
EventCallback(sEvenProp);
|
||||
}
|
||||
switch (CurrentMotionState)
|
||||
{
|
||||
case E_SO7_MOTION_MOVETO:
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[UpdateMotionState] Nowait CurrentMotionState E_SO7_MOTION_MOVETO\n");
|
||||
m_Thread_State = HSI_THREAD_PAUSED;
|
||||
CurrentMotionState = E_SO7_MOTION_NONE;
|
||||
m_IsExMotion = 2;
|
||||
SendMsgMotionFinished();
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[UpdateMotionState] Nowait CurrentMotionState default\n");
|
||||
break;
|
||||
}
|
||||
case E_SO7_MOTION_MOVETO:
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[UpdateMotionState] Nowait CurrentMotionState E_SO7_MOTION_MOVETO\n");
|
||||
m_Thread_State = HSI_THREAD_PAUSED;
|
||||
CurrentMotionState = E_SO7_MOTION_NONE;
|
||||
m_IsExMotion = 2;
|
||||
SendMsgMotionFinished();
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[UpdateMotionState] Nowait CurrentMotionState default\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
g_pLogger->SendAndFlushWithTime(L"[UpdateMotionState] Out\n");
|
||||
@@ -3207,7 +3206,7 @@ void HSI_Motion::UpdateMotionStateIO()
|
||||
UINT recvData = 0;
|
||||
while (m_Thread_StateIO == HSI_THREAD_RUNNING)
|
||||
{
|
||||
//1个脚踏开关
|
||||
//1个脚踏开关
|
||||
Sleep(3);
|
||||
GetDIO(HSI_MOTION_INPUT_CH1, m_InputStatus);
|
||||
if (m_IsStartInput == 1)
|
||||
@@ -3371,7 +3370,7 @@ void HSI_Motion::DoEvents()
|
||||
sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||
sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "DoEvents_异常");
|
||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "DoEvents_异常");
|
||||
EventCallback(sEvenProp);
|
||||
}
|
||||
if (g_IsClose)
|
||||
@@ -3445,12 +3444,12 @@ HSI_STATUS HSI_Motion::GetDIO(UINT IOChannel, UINT& _Status)
|
||||
{
|
||||
_Status = m_SO7_Serial.m_RecvData[40];
|
||||
}
|
||||
if (IOChannel == HSI_MOTION_INPUT_CH1) //获取通用输入
|
||||
if (IOChannel == HSI_MOTION_INPUT_CH1) //获取通用输入
|
||||
{
|
||||
_Status = m_SO7_Serial.m_RecvData[34];
|
||||
_Status = (m_SO7_Serial.m_RecvData[35] | (_Status << 8)) & 0xffff;
|
||||
}
|
||||
if (IOChannel == HSI_MOTION_OUTPUT_CH1) //获取通用输出
|
||||
if (IOChannel == HSI_MOTION_OUTPUT_CH1) //获取通用输出
|
||||
{
|
||||
_Status = m_SO7_Serial.m_RecvData[36];
|
||||
_Status = (m_SO7_Serial.m_RecvData[37] | (_Status << 8)) & 0xffff;
|
||||
@@ -3549,7 +3548,7 @@ HSI_STATUS HSI_Motion::GetAxisStatus(int* _Status)
|
||||
}
|
||||
//===========================================================================
|
||||
|
||||
//暂停和关闭
|
||||
//暂停和关闭
|
||||
HSI_STATUS HSI_Motion::AbortMotion()
|
||||
{
|
||||
auto rStatus = HSI_STATUS_NORMAL;
|
||||
@@ -3653,7 +3652,7 @@ HSI_STATUS HSI_Motion::Shutdown()
|
||||
}
|
||||
//===========================================================================
|
||||
|
||||
//触发灯光
|
||||
//触发灯光
|
||||
HSI_STATUS HSI_Motion::SetTriggerLight(int triggleNum, int delayLighting, int delayLightBefor, int triggleMode, double* Intensities)
|
||||
{
|
||||
auto rStatus = HSI_STATUS_NORMAL;
|
||||
@@ -3715,7 +3714,7 @@ HSI_STATUS HSI_Motion::SetTriggerLight(int triggleNum, int delayLighting, int de
|
||||
return rStatus;
|
||||
}
|
||||
|
||||
//硬件触发拍照
|
||||
//硬件触发拍照
|
||||
//===========================================================================
|
||||
HSI_STATUS HSI_Motion::DCCPPStartPoint(double *startPoint)
|
||||
{
|
||||
@@ -3736,7 +3735,7 @@ HSI_STATUS HSI_Motion::DCCScanSetData(UINT AxisTypes, HSI_SCAN_MOTION_TYPE eType
|
||||
auto rStatus = HSI_STATUS_NORMAL;
|
||||
if (g_pHSI_Motion)
|
||||
{
|
||||
//触发的位置为相对位置,用法一般是移动到起点位置,再开始设置触发位置(相对位置),最终设置终点位置
|
||||
//触发的位置为相对位置,用法一般是移动到起点位置,再开始设置触发位置(相对位置),最终设置终点位置
|
||||
g_pLogger->SendAndFlushWithTime(L"[DCCScanSetData] In\n");
|
||||
int axisNum;
|
||||
unsigned char m_SendDCCData[64] = { 0 };
|
||||
@@ -4272,7 +4271,7 @@ HSI_STATUS HSI_Motion::DCCForLightPlate()
|
||||
return rStatus;
|
||||
}
|
||||
|
||||
//转盘
|
||||
//转盘
|
||||
//===========================================================================
|
||||
HSI_STATUS HSI_Motion::StartPlcJob(int* CamerasDis, int* BinsDis, int SubArea, int filterTime1, int filterTime2, int pluseSumDis)
|
||||
{
|
||||
@@ -4287,7 +4286,7 @@ HSI_STATUS HSI_Motion::StartPlcJob(int* CamerasDis, int* BinsDis, int SubArea, i
|
||||
sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||
sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "开始前请确认当前位置大于零!");
|
||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "开始前请确认当前位置大于零!");
|
||||
EventCallback(sEvenProp);
|
||||
return HSI_STATUS_FAILED;
|
||||
}
|
||||
@@ -4387,7 +4386,7 @@ HSI_STATUS HSI_Motion::GetTriggleCount(int *nCount, int& nArea)
|
||||
return rStatus;
|
||||
}
|
||||
//===========================================================================
|
||||
//点胶
|
||||
//点胶
|
||||
HSI_STATUS HSI_Motion::GluePPSpnts(int* ppsDir, double* gluePPSPos, int* delayLightBefore, int* lightTime, double* lightData, int num)
|
||||
{
|
||||
auto rStatus = HSI_STATUS_NORMAL;
|
||||
@@ -4395,20 +4394,20 @@ HSI_STATUS HSI_Motion::GluePPSpnts(int* ppsDir, double* gluePPSPos, int* delayLi
|
||||
{
|
||||
unsigned char send_gluePPS_data[64] = { 0 };
|
||||
send_gluePPS_data[0] = CT_GLUEDISPENSER;
|
||||
send_gluePPS_data[1] = 0x01; //擦除指令
|
||||
send_gluePPS_data[1] = 0x01; //擦除指令
|
||||
m_WriteByte = Send_Command(0, (const char*)send_gluePPS_data, m_SendDataLength);
|
||||
Sleep(200);
|
||||
int posIndex = 0;
|
||||
int loadFeet[4];
|
||||
int j = 0;
|
||||
int c = 0; //触发计数
|
||||
int c = 0; //触发计数
|
||||
int dirType = 0;
|
||||
int saveDir = 0;
|
||||
int duanNum = 0;
|
||||
double triggerPnt[4];
|
||||
double savePPSPnt[4];
|
||||
GlueDispenserindexNum = 0;
|
||||
#pragma region 拍照点
|
||||
#pragma region 拍照点
|
||||
for (size_t i = 0; i < num; i++)
|
||||
{
|
||||
if (i == 0)
|
||||
@@ -5214,7 +5213,7 @@ HSI_STATUS HSI_Motion::GlueDispenserStart(double xOffset, double yOffset, double
|
||||
}
|
||||
return rStatus;
|
||||
}
|
||||
void HSI_Motion::GluedispenserDone()
|
||||
void HSI_Motion::GluedispenserDone()//涂胶机完成
|
||||
{
|
||||
if (bRunGlueDispenser == HSI_THREAD_RUNNING)
|
||||
{
|
||||
@@ -5231,7 +5230,7 @@ void HSI_Motion::GluedispenserDone()
|
||||
{
|
||||
if ((m_SO7_Serial.m_RecvData[60] & 0x0f))
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[GluedispenserDone] Run End Normal\n");
|
||||
g_pLogger->SendAndFlushWithTime(L"[GluedispenserDone] Run End Normal\n");//涂胶机完成
|
||||
m_SO7_Serial.m_RecvData[60] = 0;
|
||||
break;
|
||||
}
|
||||
@@ -5274,7 +5273,7 @@ HSI_STATUS HSI_Motion::GetPntsDistance(double& pDistance, int& spTimeCount)
|
||||
return rStatus;
|
||||
}
|
||||
//===========================================================================
|
||||
//运动控制参数读取及设置
|
||||
//运动控制参数读取及设置
|
||||
//===========================================================================
|
||||
int HSI_Motion::SpeedPercent(int AxisNum, double &Speed, int &DirveSpeed, int &StartSpeed, int &AccLine, int &DecLine, int &AccCurve, int &DecCurve)
|
||||
{
|
||||
@@ -5338,7 +5337,7 @@ int HSI_Motion::SpeedPercent(int AxisNum, double &Speed, int &DirveSpeed, int &S
|
||||
return (int)Speed;
|
||||
}
|
||||
//===========================================================================
|
||||
//JoyStick运动控制参数读取及设置
|
||||
//JoyStick运动控制参数读取及设置
|
||||
//===========================================================================
|
||||
bool HSI_Motion::SpeedPercentJoyStick(int AxisNum, long &Speed, int &DirveSpeed, int &StartSpeed, int &AccLine, int &DecLine, int &AccCurve, int &DecCurve)
|
||||
{
|
||||
@@ -5505,7 +5504,7 @@ double HSI_Motion::LimitOver(UINT AxisTypes, double &LimitPos)
|
||||
{
|
||||
switch (AxisNumber)
|
||||
{
|
||||
case 1: //轴1
|
||||
case 1: //轴1
|
||||
{
|
||||
if (LimitPos >= m_P_Work_Limit[1])
|
||||
{
|
||||
@@ -6180,7 +6179,7 @@ unsigned __stdcall HSI_Motion::m_ThreadData(LPVOID pThis)
|
||||
case HSI_THREAD_RUNNING:
|
||||
{
|
||||
TRACE("HSI_THREAD_RUNNING.\r\n");
|
||||
_This->UpdateMotionStateData();
|
||||
_This->UpdateMotionStateData();//获取最新位置命令
|
||||
break;
|
||||
}
|
||||
case HSI_THREAD_PAUSED:
|
||||
@@ -6201,7 +6200,7 @@ unsigned __stdcall HSI_Motion::m_ThreadData(LPVOID pThis)
|
||||
}
|
||||
//===========================================================================
|
||||
|
||||
//JOG运行到软限位的运动调节
|
||||
//JOG运行到软限位的运动调节
|
||||
//===========================================================================
|
||||
void HSI_Motion::UpdateMotionStateJOGStop()
|
||||
{
|
||||
@@ -6311,7 +6310,7 @@ void HSI_Motion::UpdateMotionStateJOGStop()
|
||||
case 4:
|
||||
{
|
||||
|
||||
//第四轴未添加
|
||||
//第四轴未添加
|
||||
} break;
|
||||
default:
|
||||
break;
|
||||
@@ -6321,7 +6320,7 @@ void HSI_Motion::UpdateMotionStateJOGStop()
|
||||
}
|
||||
}
|
||||
//===========================================================================
|
||||
void HSI_Motion::CreateThreadJOGStop()
|
||||
void HSI_Motion::CreateThreadJOGStop() //JOG运行到软限位的运动调节
|
||||
{
|
||||
if (m_Thread_IdJOGStop == NULL)
|
||||
{
|
||||
@@ -6365,7 +6364,7 @@ void HSI_Motion::CloseThreadJOGStop()
|
||||
|
||||
}
|
||||
//===========================================================================
|
||||
unsigned __stdcall HSI_Motion::m_ThreadJOGStop(LPVOID pThis)
|
||||
unsigned __stdcall HSI_Motion::m_ThreadJOGStop(LPVOID pThis) //JOG运行到软限位的运动调节
|
||||
{
|
||||
HSI_Motion* _This = (HSI_Motion*)pThis;
|
||||
for (;;)
|
||||
@@ -6399,7 +6398,7 @@ unsigned __stdcall HSI_Motion::m_ThreadJOGStop(LPVOID pThis)
|
||||
}
|
||||
}
|
||||
//===========================================================================
|
||||
//无用
|
||||
//无用
|
||||
HSI_STATUS HSI_Motion::IOStep(bool RunSts)
|
||||
{
|
||||
auto rStatus = HSI_STATUS_NORMAL;
|
||||
@@ -6465,7 +6464,7 @@ BOOL HSI_Motion::Send_Command(int com, const char* _SendData, DWORD SendDataLeng
|
||||
sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||
sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "EF3控制器已断开连接");
|
||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "EF3控制器已断开连接");
|
||||
EventCallback(sEvenProp);
|
||||
}
|
||||
}
|
||||
@@ -6481,7 +6480,7 @@ BOOL HSI_Motion::Send_Command(int com, const char* _SendData, DWORD SendDataLeng
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
#pragma region //网口通信8路 26路光源板通信
|
||||
#pragma region //网口通信8路 26路光源板通信
|
||||
|
||||
#pragma warning(disable:4996)
|
||||
TCPIP_RETURN_CODE HSI_Motion::TCPConnect(int index, char* Address, u_short port)
|
||||
@@ -6505,7 +6504,7 @@ TCPIP_RETURN_CODE HSI_Motion::TCPConnect(int index, char* Address, u_short port)
|
||||
{
|
||||
int iMode = 1;
|
||||
int i = 0;
|
||||
int retVal = ioctlsocket(m_socket[index], FIONBIO, (u_long FAR*)&iMode);//非阻塞连接
|
||||
int retVal = ioctlsocket(m_socket[index], FIONBIO, (u_long FAR*)&iMode);//非阻塞连接
|
||||
if (retVal == SOCKET_ERROR)
|
||||
{
|
||||
closesocket(m_socket[index]);
|
||||
@@ -6545,7 +6544,7 @@ TCPIP_RETURN_CODE HSI_Motion::TCPConnect(int index, char* Address, u_short port)
|
||||
}
|
||||
}
|
||||
iMode = 0;
|
||||
retVal = ioctlsocket(m_socket[index], FIONBIO, (u_long FAR*)&iMode);//设置阻塞
|
||||
retVal = ioctlsocket(m_socket[index], FIONBIO, (u_long FAR*)&iMode);//设置阻塞
|
||||
if (retVal == SOCKET_ERROR)
|
||||
{
|
||||
closesocket(m_socket[index]);
|
||||
@@ -6680,7 +6679,7 @@ TCPIP_RETURN_CODE HSI_Motion::TCPSend()
|
||||
sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||
sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "光源板已断开连接");
|
||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "光源板已断开连接");
|
||||
EventCallback(sEvenProp);
|
||||
m_ThreadTCP_State = TCPIP_THREAD_EXIT;
|
||||
closesocket(m_socket[m_selectedIndex]);
|
||||
@@ -6723,7 +6722,7 @@ TCPIP_RETURN_CODE HSI_Motion::TCPSend()
|
||||
sEvenProp.EventType = HSI_EVENT_ERROR;
|
||||
sEvenProp.EventID = HSI_EVENT_MOTION;
|
||||
sEvenProp.EventResponse = HSI_EVENT_RESPONSE_OK;
|
||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "光源板已断开连接");
|
||||
strcpy_s(sEvenProp.EventData, HSI_MaxStringLength, "光源板已断开连接");
|
||||
EventCallback(sEvenProp);
|
||||
m_ThreadTCP_State = TCPIP_THREAD_EXIT;
|
||||
closesocket(m_socket[m_selectedIndex]);
|
||||
@@ -6845,7 +6844,7 @@ HSI_STATUS HSI_Motion::SetAllGears()
|
||||
unsigned char send_glue_data[64] = { 0 };
|
||||
send_glue_data[0] = 0x01;
|
||||
send_glue_data[1] = 0x01;
|
||||
send_glue_data[2] = 0x01 << (i - 1); //轴号
|
||||
send_glue_data[2] = 0x01 << (i - 1); //轴号
|
||||
send_glue_data[3] = 0x08;
|
||||
|
||||
for (size_t j = 0; j < 5; j++)
|
||||
|
||||
+107
-107
@@ -16,7 +16,7 @@
|
||||
const double SCALE_UNITS = 1000.0;
|
||||
static CLogger* g_pLogger;
|
||||
static CLogger* g_pLogger2;
|
||||
static bool g_IsClose;//用于DoEvents()的退出,而不异常
|
||||
static bool g_IsClose;//用于DoEvents()的退出,而不异常
|
||||
|
||||
enum E_SO7_MOTION_TYPE
|
||||
{
|
||||
@@ -27,23 +27,23 @@ enum E_SO7_MOTION_TYPE
|
||||
};
|
||||
enum E_EF3_HOME_STATUS
|
||||
{
|
||||
E_EF3_HOME_NONE,//0表示从未回过回原点
|
||||
E_EF3_HOME_ING,//1表示正在回原点
|
||||
E_EF3_HOME_FINISHED,//2表示已经回过原点
|
||||
E_EF3_HOME_NONE,//0表示从未回过回原点
|
||||
E_EF3_HOME_ING,//1表示正在回原点
|
||||
E_EF3_HOME_FINISHED,//2表示已经回过原点
|
||||
};
|
||||
|
||||
enum FUN_CMD //第一级指令
|
||||
enum FUN_CMD //第一级指令
|
||||
{
|
||||
CT_MOTOR = 0x01, //MOTOR
|
||||
CT_LIGHT, //LIGHT
|
||||
CT_PORT, //PORT
|
||||
CT_ORDER, //ORDER
|
||||
CT_SOFTSTOP, //STOP
|
||||
CT_GLUEDISPENSER, //点胶
|
||||
CT_GLUEDISPENSER, //点胶
|
||||
CT_TURNTABLE,
|
||||
};
|
||||
|
||||
enum MOTOR_CMD //第二级指令
|
||||
enum MOTOR_CMD //第二级指令
|
||||
{
|
||||
CT_MOTOR_SET = 0x01,
|
||||
CT_START_JOG_POS, //
|
||||
@@ -63,7 +63,7 @@ enum MOTOR_CMD //第二级指令
|
||||
CT_GLUEDISPENSER_CLEAR,
|
||||
CT_GLUEDISPENSER_START,
|
||||
CT_GLUEDISPENSER_STOP,
|
||||
//转盘时启用
|
||||
//转盘时启用
|
||||
CT_RTSET,
|
||||
CT_BINSDATA,
|
||||
CT_RTSTOP,
|
||||
@@ -72,13 +72,13 @@ enum MOTOR_CMD //第二级指令
|
||||
|
||||
enum MOTOR_START_POSOTION //
|
||||
{
|
||||
INTERPOLATION = 0x61,//插补
|
||||
GANGED = 0x41,//独立
|
||||
INTERPOLATION = 0x61,//插补
|
||||
GANGED = 0x41,//独立
|
||||
CIRCLER = 0x64,
|
||||
CIRCLEL = 0x65,
|
||||
};
|
||||
|
||||
enum MOTOR_AXISCHOOES_CMD //第三级指令
|
||||
enum MOTOR_AXISCHOOES_CMD //第三级指令
|
||||
{
|
||||
AXIS_X = 0x01,
|
||||
AXIS_Y = 0x02,
|
||||
@@ -97,7 +97,7 @@ enum MOTOR_AXISCHOOES_CMD //第三级指令
|
||||
AXIS_XYZU = 0x0f,
|
||||
};
|
||||
|
||||
enum MOTOR_SET_KIND //第四级指令
|
||||
enum MOTOR_SET_KIND //第四级指令
|
||||
{
|
||||
JOG_SPEED_ACC_DEC,
|
||||
POSITION_SPEED_ACC_DEC_POS,
|
||||
@@ -235,28 +235,28 @@ public:
|
||||
static HANDLE m_Thread_Id;
|
||||
static HANDLE m_Thread_Mutex;
|
||||
static HANDLE m_hTriggerEvent;
|
||||
//用于IO发消息的线程
|
||||
//用于IO发消息的线程
|
||||
static int m_Thread_StateIO;
|
||||
static HANDLE m_Thread_IdIO;
|
||||
static HANDLE m_Thread_MutexIO;
|
||||
static HANDLE m_hTriggerEventIO;
|
||||
|
||||
//读取EF3的数据状态
|
||||
//读取EF3的数据状态
|
||||
static int m_Thread_StateData;
|
||||
static HANDLE m_Thread_IdData;
|
||||
static HANDLE m_Thread_MutexData;
|
||||
static HANDLE m_hTriggerEventData;
|
||||
|
||||
//读取EF3的探针状态
|
||||
//读取EF3的探针状态
|
||||
static int m_Thread_StateProbe;
|
||||
static HANDLE m_Thread_IdProbe;
|
||||
static HANDLE m_Thread_MutexProbe;
|
||||
static HANDLE m_hTriggerEventProbe;
|
||||
|
||||
//点胶运行状态
|
||||
//点胶运行状态
|
||||
static int bRunGlueDispenser;
|
||||
|
||||
//读取EF3的JOG stop的状态
|
||||
//读取EF3的JOG stop的状态
|
||||
static int m_Thread_StateJOGStop;
|
||||
static HANDLE m_Thread_IdJOGStop;
|
||||
static HANDLE m_Thread_MutexJOGStop;
|
||||
@@ -266,16 +266,16 @@ public:
|
||||
static HANDLE g_WR_ToMove_Mutex;
|
||||
static HANDLE g_Lock_JogAndTrigger;
|
||||
|
||||
double m_Resolution[5];//从1开始,0不用
|
||||
double m_N_Work_Limit[5]; //负限位
|
||||
double m_P_Work_Limit[5]; //正限位
|
||||
double m_Resolution[5];//从1开始,0不用
|
||||
double m_N_Work_Limit[5]; //负限位
|
||||
double m_P_Work_Limit[5]; //正限位
|
||||
|
||||
int m_Home_AddJogGears[5];
|
||||
int m_Home_DecJogGears[5];
|
||||
int m_Home_Time[5];
|
||||
int m_SetPotion_Count[5];
|
||||
|
||||
//定位参数
|
||||
//定位参数
|
||||
int m_SetPotion_StartSpeed[5];
|
||||
int m_SetPotion_DriveSpeed[5];
|
||||
int m_SetPotion_Line[5];
|
||||
@@ -288,129 +288,129 @@ public:
|
||||
int m_stepPosition_H_speed[10];
|
||||
int m_stepPosition_Load[10];
|
||||
int m_stepPosition_acc[10];
|
||||
double m_PositionA;//第四轴的地位位置
|
||||
double m_PositionA;//第四轴的地位位置
|
||||
|
||||
//jog参数
|
||||
int m_JogDriveSpeed[5][5];//5:轴号,从1开始;5:档位
|
||||
//jog参数
|
||||
int m_JogDriveSpeed[5][5];//5:轴号,从1开始;5:档位
|
||||
int m_JogStartSpeed[5][5];
|
||||
int m_JogAccLine[5][5];
|
||||
int m_JogDecLine[5][5];
|
||||
int m_JogAccCurve[5][5];
|
||||
int m_JogDecCurve[5][5];
|
||||
int m_Jog_Auto_Focus;//变焦使用的速度
|
||||
int m_Jog_Auto_Focus;//变焦使用的速度
|
||||
|
||||
int m_LogIsOpen[5];//是否打开记录,0为打开,非0为关闭
|
||||
int m_LogIsOpen[5];//是否打开记录,0为打开,非0为关闭
|
||||
|
||||
unsigned int m_precisionCount[5];
|
||||
unsigned int m_precisionTime[5];
|
||||
int m_StopJogMode[5];//JOG模式采用急停还是平滑停止
|
||||
double m_PosThread[5];//SetpositionXyz的目标位置
|
||||
int m_PosNow[5];//调用SetpositionXyz时,读取当前位置
|
||||
int m_StopJogMode[5];//JOG模式采用急停还是平滑停止
|
||||
double m_PosThread[5];//SetpositionXyz的目标位置
|
||||
int m_PosNow[5];//调用SetpositionXyz时,读取当前位置
|
||||
|
||||
double targetpos_n[5];
|
||||
double targetpos_l[5];
|
||||
|
||||
short m_AxisThread;
|
||||
int m_IsExMotion; //0是xyz用的,1是单轴用的,2都不用
|
||||
int m_Home_Machine_Axis[5];//用于启动时需要回原点的轴号选择
|
||||
int m_Home_Pos_Axis[5];//记住关闭电源时的位置,用于判断是否还需要回原点
|
||||
int m_IsHomeEncPos; //是否启动实际位置判断是否回家,默认0,1启用,0关闭
|
||||
int m_IsHomePrfPos; //是否启动规划位置判断是否回家,默认1,1启用,0关闭
|
||||
int m_IsExMotion; //0是xyz用的,1是单轴用的,2都不用
|
||||
int m_Home_Machine_Axis[5];//用于启动时需要回原点的轴号选择
|
||||
int m_Home_Pos_Axis[5];//记住关闭电源时的位置,用于判断是否还需要回原点
|
||||
int m_IsHomeEncPos; //是否启动实际位置判断是否回家,默认0,1启用,0关闭
|
||||
int m_IsHomePrfPos; //是否启动规划位置判断是否回家,默认1,1启用,0关闭
|
||||
|
||||
int m_IsIOFuntion;//是否启动IO功能,1为打开,0为关闭
|
||||
int m_IsStartInput;//是否启用脚踏开关功能,1为启用,0为关闭,默认0
|
||||
UINT m_StartInputPort;//外部输入按钮启动程序
|
||||
int m_IsIOFuntion;//是否启动IO功能,1为打开,0为关闭
|
||||
int m_IsStartInput;//是否启用脚踏开关功能,1为启用,0为关闭,默认0
|
||||
UINT m_StartInputPort;//外部输入按钮启动程序
|
||||
UINT m_InputStatus;
|
||||
UINT m_ForStatus;
|
||||
int m_Set_XYZA_Reserve;//XYZA轴方向
|
||||
int m_motorType;//电机类型 1为伺服电机 0为步进电机
|
||||
int m_setPositionDelay;//设置定位超时
|
||||
int m_setPositionPrecision;//设置定位精度
|
||||
int m_Set_XYZA_Reserve;//XYZA轴方向
|
||||
int m_motorType;//电机类型 1为伺服电机 0为步进电机
|
||||
int m_setPositionDelay;//设置定位超时
|
||||
int m_setPositionPrecision;//设置定位精度
|
||||
int m_setPositionNum;
|
||||
CString m_AppPath;
|
||||
//MST软件运行标志,trueMST软件已经启动,falseMST软件停止
|
||||
//MST软件运行标志,trueMST软件已经启动,falseMST软件停止
|
||||
bool m_MSTRunFlag;
|
||||
int m_IsUse_HSICompensation;//是否启用HSI进行定位补偿 0为不启用 1为启用 默认为0
|
||||
int m_Compensation_Pluse;//补偿脉冲数
|
||||
int m_IsHardLimit; //设备轴硬限位设置 为0表示所有轴都为软限位 1为X轴为硬限位 2为Y轴 3为XY轴 4为Z轴 7为XYZ轴 默认为7
|
||||
int m_IsEnableAxis; //设备启用轴设置 为0表示所有轴不启用 1为X轴启用 2为Y轴启用 3为XY轴启用 4为Z轴启用 7为XYZ轴启用 默认为7
|
||||
int m_IsUseExternalTrigger; //是否启用外触发功能 0为不启用 1为启用 默认为1
|
||||
int m_IsUseSixRingEightArea; //是否启用六环八区灯功能 0为不启用 1为启用 2为二环八区灯 默认为0
|
||||
int m_SixEightSubArea[8]; //六环八区分区功能
|
||||
int m_IsUseTwentySixLight;//是否启用26路灯光 0为不启用 1位启用 默认为0
|
||||
int m_IsUseEF3;//是否启用EF3
|
||||
int m_DeviceType;//设备类型,0为通用设备,1为三激光, 2为大视野,3为转盘设备 默认为0
|
||||
int m_UseAxisNum;//转盘设备使用轴号
|
||||
int m_IbinCount;//记录获取到的分bin数
|
||||
int m_IsUse_HSICompensation;//是否启用HSI进行定位补偿 0为不启用 1为启用 默认为0
|
||||
int m_Compensation_Pluse;//补偿脉冲数
|
||||
int m_IsHardLimit; //设备轴硬限位设置 为0表示所有轴都为软限位 1为X轴为硬限位 2为Y轴 3为XY轴 4为Z轴 7为XYZ轴 默认为7
|
||||
int m_IsEnableAxis; //设备启用轴设置 为0表示所有轴不启用 1为X轴启用 2为Y轴启用 3为XY轴启用 4为Z轴启用 7为XYZ轴启用 默认为7
|
||||
int m_IsUseExternalTrigger; //是否启用外触发功能 0为不启用 1为启用 默认为1
|
||||
int m_IsUseSixRingEightArea; //是否启用六环八区灯功能 0为不启用 1为启用 2为二环八区灯 默认为0
|
||||
int m_SixEightSubArea[8]; //六环八区分区功能
|
||||
int m_IsUseTwentySixLight;//是否启用26路灯光 0为不启用 1位启用 默认为0
|
||||
int m_IsUseEF3;//是否启用EF3
|
||||
int m_DeviceType;//设备类型,0为通用设备,1为三激光, 2为大视野,3为转盘设备 默认为0
|
||||
int m_UseAxisNum;//转盘设备使用轴号
|
||||
int m_IbinCount;//记录获取到的分bin数
|
||||
bool m_IsUsePPS;
|
||||
int m_iJoyStick;//遥感类型:0:无 1:老式摇杆
|
||||
int m_iJoyStick;//遥感类型:0:无 1:老式摇杆
|
||||
int m_bISUseMoreLights;
|
||||
int m_EF3LightType;
|
||||
int m_LightType;
|
||||
int m_IsUseFourthSpeed;
|
||||
CString m_IsOpenTCPIP[4];//可提供的tcp通信的ip
|
||||
CString m_IsOpenTCPIP[4];//可提供的tcp通信的ip
|
||||
bool m_tcpCntFlag[4];
|
||||
int m_selectedIndex;
|
||||
bool m_Led8MotionFlag[4];//是否为8路光源板
|
||||
int m_IsHavePattern;//是否有光栅
|
||||
int m_AxisHomeDirection;//轴回家时的方向
|
||||
int m_IsUseJerk;//是否启用急停 0为不启用 1为启用
|
||||
DWORD t_start;//获取jog运行的开始时间
|
||||
DWORD t_end;//获取jog运行的结束时间
|
||||
DWORD set_start;//获取定位运行开始时间
|
||||
DWORD set_end;//获取定位运行结束时间
|
||||
//是否启用探针捕获功能,1启用,默认0关闭
|
||||
bool m_Led8MotionFlag[4];//是否为8路光源板
|
||||
int m_IsHavePattern;//是否有光栅
|
||||
int m_AxisHomeDirection;//轴回家时的方向
|
||||
int m_IsUseJerk;//是否启用急停 0为不启用 1为启用
|
||||
DWORD t_start;//获取jog运行的开始时间
|
||||
DWORD t_end;//获取jog运行的结束时间
|
||||
DWORD set_start;//获取定位运行开始时间
|
||||
DWORD set_end;//获取定位运行结束时间
|
||||
//是否启用探针捕获功能,1启用,默认0关闭
|
||||
int m_IsProbe;
|
||||
//探针触发时,锁存的轴号,默认3表示锁存XYZ共3轴,4表示XYZA共4轴
|
||||
//探针触发时,锁存的轴号,默认3表示锁存XYZ共3轴,4表示XYZA共4轴
|
||||
int m_ProbeAllAxis;
|
||||
long m_ProbeCapturePos[5];//锁存各轴的位置
|
||||
double m_ProbeReturnPos;//探针触发时,调试时返回的距离mm,点击启动按钮时不起作用,默认10.0mm
|
||||
int m_ProbeReturnSpeed;//探针触发后,轴的回退速度
|
||||
int m_isOKGlint; //是否开启ok/ng闪烁
|
||||
int m_ETIPort;//外部触发拍照输入端口号
|
||||
int m_axisStatus;//运动各轴的状态
|
||||
int m_axisAlarmStatus;//轴报警状态
|
||||
int m_EF3COMPort;//EF3板com口,默认为2
|
||||
int m_ForSoft;//针对使用软件 0为MST 1为Metus
|
||||
int m_IsUseManualRunin;//是否开启手动插补(只针对步进电机)
|
||||
long m_ProbeCapturePos[5];//锁存各轴的位置
|
||||
double m_ProbeReturnPos;//探针触发时,调试时返回的距离mm,点击启动按钮时不起作用,默认10.0mm
|
||||
int m_ProbeReturnSpeed;//探针触发后,轴的回退速度
|
||||
int m_isOKGlint; //是否开启ok/ng闪烁
|
||||
int m_ETIPort;//外部触发拍照输入端口号
|
||||
int m_axisStatus;//运动各轴的状态
|
||||
int m_axisAlarmStatus;//轴报警状态
|
||||
int m_EF3COMPort;//EF3板com口,默认为2
|
||||
int m_ForSoft;//针对使用软件 0为MST 1为Metus
|
||||
int m_IsUseManualRunin;//是否开启手动插补(只针对步进电机)
|
||||
|
||||
int m_IsUseRocker; //是否启用摇杆 0为不启用 1为启用旧摇杆,2为新摇杆, 默认为0
|
||||
int m_IsCollectPos; //是否通过串口打印位置,与摇杆2互斥
|
||||
int m_IsUseRocker; //是否启用摇杆 0为不启用 1为启用旧摇杆,2为新摇杆, 默认为0
|
||||
int m_IsCollectPos; //是否通过串口打印位置,与摇杆2互斥
|
||||
int m_IsCloseRocker;
|
||||
int m_IsLightDebug;//是否不回家也能调试灯光 0为不启用 1为启用 默认为0
|
||||
int m_rockerHStartSpeed[4];//摇杆XYZ轴高初始速度
|
||||
int m_rockerHDriveSpeed[4];//摇杆XYZ轴高驱动速度
|
||||
int m_rockerLStartSpeed[4];//摇杆XYZ轴低初始速度
|
||||
int m_rockerLDriveSpeed[4];//摇杆XYZ轴低驱动速度
|
||||
int m_rockerASpeed[4]; //XYZ轴加减速1
|
||||
int m_rockerDSpeed[4]; //XYZ轴加减速2
|
||||
int m_SaveAxisNum;//保存轴号
|
||||
int m_SaveAxisSpeed;//保存速度
|
||||
int m_IsLightDebug;//是否不回家也能调试灯光 0为不启用 1为启用 默认为0
|
||||
int m_rockerHStartSpeed[4];//摇杆XYZ轴高初始速度
|
||||
int m_rockerHDriveSpeed[4];//摇杆XYZ轴高驱动速度
|
||||
int m_rockerLStartSpeed[4];//摇杆XYZ轴低初始速度
|
||||
int m_rockerLDriveSpeed[4];//摇杆XYZ轴低驱动速度
|
||||
int m_rockerASpeed[4]; //XYZ轴加减速1
|
||||
int m_rockerDSpeed[4]; //XYZ轴加减速2
|
||||
int m_SaveAxisNum;//保存轴号
|
||||
int m_SaveAxisSpeed;//保存速度
|
||||
bool bSaveSpeedFlag;
|
||||
bool fourthAxisFlag;
|
||||
bool bCircleRun;//圆弧插补
|
||||
int iCircleRunPnt[5];//圆弧插补时的圆心位置
|
||||
int jogAxisNum;//jog运动的轴号
|
||||
bool bCircleRun;//圆弧插补
|
||||
int iCircleRunPnt[5];//圆弧插补时的圆心位置
|
||||
int jogAxisNum;//jog运动的轴号
|
||||
int jogspeed;
|
||||
bool jogMoving;
|
||||
bool jogDirFlag;
|
||||
bool m_bEmergencyState;
|
||||
bool bUseGlueDispenser;//是否开启点胶
|
||||
bool bUseGlueDispenser;//是否开启点胶
|
||||
int m_iGlueStartSpeed;
|
||||
int m_iGlueDriveSpeed;
|
||||
int m_iGlueAccSpeed;
|
||||
int GlueDispenserindexNum;//点胶段数
|
||||
int GlueDispenserindexNum;//点胶段数
|
||||
int GluerunCount;
|
||||
|
||||
int m_iSpeedType;
|
||||
int m_axisDirX;//探针运动时X轴的运动方向
|
||||
int m_axisDirY;//探针运动时Y轴的运动方向
|
||||
int m_axisDirZ;//探针运动时Z轴的运动方向
|
||||
int m_axisDirX;//探针运动时X轴的运动方向
|
||||
int m_axisDirY;//探针运动时Y轴的运动方向
|
||||
int m_axisDirZ;//探针运动时Z轴的运动方向
|
||||
int m_probeSeekSpeed;
|
||||
|
||||
int m_isUseAport;//A串口
|
||||
int m_isUseAport;//A串口
|
||||
int m_portAnum;
|
||||
int m_isUseBport;//B串口
|
||||
int m_isUseBport;//B串口
|
||||
int m_portBnum;
|
||||
|
||||
int SpCompleteTStart;
|
||||
@@ -426,7 +426,7 @@ public:
|
||||
|
||||
double m_EncPos[5];
|
||||
double m_PrfPos[5];
|
||||
double m_PosForAllAxis[5];//记录4轴位置
|
||||
double m_PosForAllAxis[5];//记录4轴位置
|
||||
bool m_bConnected;
|
||||
int m_SendDataLength;
|
||||
unsigned char m_cSendData[64];
|
||||
@@ -442,13 +442,13 @@ public:
|
||||
DWORD m_RecvDataSize;
|
||||
E_EF3_HOME_STATUS CurrentHomeMachineState;
|
||||
|
||||
//刷新探针状态
|
||||
//刷新探针状态
|
||||
static unsigned __stdcall m_ThreadProbe(LPVOID pThis);
|
||||
void CreateThreadProbe();
|
||||
void CloseThreadProbe();
|
||||
void UpdateMotionStateProbe();
|
||||
|
||||
//刷新位置状态
|
||||
//刷新位置状态
|
||||
static unsigned __stdcall m_Thread(LPVOID pThis);
|
||||
void CreateThread();
|
||||
void CloseThread();
|
||||
@@ -456,19 +456,19 @@ public:
|
||||
void UpdateMotionStateEx();
|
||||
void GluedispenserDone();
|
||||
|
||||
//IO发消息使用
|
||||
//IO发消息使用
|
||||
static unsigned __stdcall m_ThreadIO(LPVOID pThis);
|
||||
void CreateThreadIO();
|
||||
void CloseThreadIO();
|
||||
void UpdateMotionStateIO();
|
||||
|
||||
//读取EF3的数据状态
|
||||
//读取EF3的数据状态
|
||||
static unsigned __stdcall m_ThreadData(LPVOID pThis);
|
||||
void CreateThreadData();
|
||||
void CloseThreadData();
|
||||
void UpdateMotionStateData();
|
||||
|
||||
//读取EF3的JOG位置 以便停止JOG运动
|
||||
//读取EF3的JOG位置 以便停止JOG运动
|
||||
static unsigned __stdcall m_ThreadJOGStop(LPVOID pThis);
|
||||
void CreateThreadJOGStop();
|
||||
void CloseThreadJOGStop();
|
||||
@@ -496,12 +496,12 @@ private:
|
||||
int iScanMotionType;
|
||||
int iTriggleNum;
|
||||
int iMotionDirection;
|
||||
int begin_position[5]; //外触发到初始点需要发送的脉冲数
|
||||
int begin_position[5]; //外触发到初始点需要发送的脉冲数
|
||||
HINSTANCE m_Hinst;
|
||||
E_SO7_MOTION_TYPE CurrentMotionState;
|
||||
E_SO7_MOTION_READ_TYPE CurrentReadDataType;
|
||||
|
||||
//网口通信添加
|
||||
//网口通信添加
|
||||
private:
|
||||
TCPIP_RETURN_CODE TCPConnect(int index,char* Address, u_short port);
|
||||
void DisConnect();
|
||||
@@ -525,9 +525,9 @@ private:
|
||||
unsigned char lightdata[64];
|
||||
int LightSend;
|
||||
public:
|
||||
HSI_STATUS CollectPos(bool isEnable, MOTOR_AXISCHOOES_CMD axis, short cycle); //位置采集打开/关闭
|
||||
HSI_STATUS CollectPos(bool isEnable, MOTOR_AXISCHOOES_CMD axis, short cycle); //位置采集打开/关闭
|
||||
private:
|
||||
HSI_STATUS SetAllGears(); //下发所有档位数据
|
||||
HSI_STATUS SetAllGears(); //下发所有档位数据
|
||||
};
|
||||
|
||||
extern HSI_Motion *g_pHSI_Motion;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// HSI_Sevenocean_EF3.cpp : 定义 DLL 的初始化例程。
|
||||
// HSI_Sevenocean_EF3.cpp : 定义 DLL 的初始化例程。
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
@@ -30,10 +30,10 @@ HSI_Sevenocean_EF3::~HSI_Sevenocean_EF3()
|
||||
}
|
||||
//===========================================================================
|
||||
/**
|
||||
* HSI 初始化
|
||||
* HSI 初始化
|
||||
*
|
||||
* \param _hWnd :消息传输句柄
|
||||
* \param _bOfflineOnly :暂无用,默认 False
|
||||
* \param _hWnd :消息传输句柄
|
||||
* \param _bOfflineOnly :暂无用,默认 False
|
||||
* \return
|
||||
*/
|
||||
HSI_STATUS HSI_Sevenocean_EF3::Startup(HWND _hWnd, bool _bOfflineOnly)
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
// HSI_Sevenocean_EF3.h : HSI_Sevenocean_EF3 DLL 的主头文件
|
||||
// HSI_Sevenocean_EF3.h : HSI_Sevenocean_EF3 DLL 的主头文件
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef __AFXWIN_H__
|
||||
#error "在包含此文件之前包含“stdafx.h”以生成 PCH 文件"
|
||||
#error "在包含此文件之前包含“stdafx.h”以生成 PCH 文件"
|
||||
#endif
|
||||
|
||||
#include "resource.h" // 主符号
|
||||
#include "resource.h" // 主符号
|
||||
#include <cstring>
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include "stdafx.h"
|
||||
#include "../stdafx.h"
|
||||
|
||||
|
||||
#include "cmmio_base.h"
|
||||
#ifdef _WIN64
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "stdafx.h"
|
||||
#include "../stdafx.h"
|
||||
|
||||
#include <process.h>
|
||||
|
||||
@@ -170,7 +170,7 @@ DWORD CPSerial::Open()
|
||||
if( SetCommMask( m_PortHandle, EV_RXCHAR | EV_TXEMPTY | EV_BREAK |
|
||||
EV_CTS | EV_DSR | EV_ERR | EV_RLSD ) )
|
||||
{
|
||||
// Initialise the Overlapping structures and start the
|
||||
// Initialize the Overlapping structures and start the
|
||||
// monitoring task
|
||||
m_ReceiveOLap.hEvent = CreateEvent( NULL, TRUE, FALSE, NULL );
|
||||
m_TransmitOLap.hEvent = CreateEvent( NULL, TRUE, FALSE, NULL );
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#include "logger.h"
|
||||
#include <atltime.h>
|
||||
#include <sys/timeb.h>
|
||||
|
||||
void CLogger::SendAtTime(const TCHAR* buffer)
|
||||
{
|
||||
EnterCriticalSection(&m_lockLogger);
|
||||
|
||||
@@ -50,7 +50,7 @@ public:
|
||||
void SendAndFlush(LPCTSTR, ...);
|
||||
void SendAndFlushPerMode(LPCTSTR, ...);
|
||||
void SendAndFlushWithTime(LPCTSTR, ...);
|
||||
bool IsEnabledLog/* = false*/;//是否启用日志
|
||||
bool IsEnabledLog/* = false*/;//�Ƿ�������־
|
||||
CString m_FileName;
|
||||
long m_lLogMask;
|
||||
FILE *m_File;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by HSI_Sevenocean_EF3.rc
|
||||
|
||||
// 新对象的下一组默认值
|
||||
// 新对象的下一组默认值
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
// stdafx.cpp : 只包括标准包含文件的源文件
|
||||
// HSI_Sevenocean_EF3.pch 将作为预编译头
|
||||
// stdafx.obj 将包含预编译类型信息
|
||||
// stdafx.cpp : 只包括标准包含文件的源文件
|
||||
// HSI_Sevenocean_EF3.pch 将作为预编译头
|
||||
// stdafx.obj 将包含预编译类型信息
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
// TODO: 在 STDAFX.H 中
|
||||
// 引用任何所需的附加头文件,而不是在此文件中引用
|
||||
// TODO: 在 STDAFX.H 中
|
||||
// 引用任何所需的附加头文件,而不是在此文件中引用
|
||||
|
||||
@@ -1,17 +1,14 @@
|
||||
// stdafx.h : 标准系统包含文件的包含文件,
|
||||
// 或是经常使用但不常更改的
|
||||
// 特定于项目的包含文件
|
||||
// stdafx.h : 标准系统包含文件的包含文件,
|
||||
// 或是经常使用但不常更改的
|
||||
// 特定于项目的包含文件
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "targetver.h"
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN // 从 Windows 头文件中排除极少使用的信息
|
||||
// Windows 头文件:
|
||||
#define WIN32_LEAN_AND_MEAN // 从 Windows 头文件中排除极少使用的信息
|
||||
// Windows 头文件:
|
||||
//#include <windows.h>
|
||||
#include <afxwin.h>
|
||||
|
||||
|
||||
|
||||
// TODO: 在此处引用程序需要的其他头文件
|
||||
// TODO: 在此处引用程序需要的其他头文件
|
||||
|
||||
@@ -12,5 +12,5 @@
|
||||
#define HSI_VERSION_REVNUM
|
||||
#define HSI_VERSION_BUILD_DATE _T(__DATE__ )
|
||||
#define HSI_VERSION_BUILD_TIME _T(__TIME__ )
|
||||
#define HSI_FILE_DESCRIPTION "2022.09.30 / 10:33 "
|
||||
#define HSI_FILE_CSDESCRIPTION _T("2022.09.30 / 10:33 ")
|
||||
#define HSI_FILE_DESCRIPTION "2022.10.10 / 9:43 "
|
||||
#define HSI_FILE_CSDESCRIPTION _T("2022.10.10 / 9:43 ")
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,2 +1,2 @@
|
||||
#TargetFrameworkVersion=:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native64Bit:WindowsTargetPlatformVersion=10.0.19041.0
|
||||
#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.19041.0
|
||||
Debug|x64|E:\HexagonProjects\2022-05-直线电机平台\LM-Middleware\|
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -106,7 +106,9 @@ namespace WPFSerialAssistant
|
||||
}
|
||||
}
|
||||
|
||||
private void AutoSendData()
|
||||
|
||||
|
||||
private void AutoSendData()
|
||||
{
|
||||
bool ret = SendData();
|
||||
|
||||
|
||||
@@ -435,11 +435,6 @@
|
||||
Header="功能按键">
|
||||
<StackPanel>
|
||||
|
||||
<TextBox
|
||||
x:Name="textVersion"
|
||||
Margin="5"
|
||||
Padding="10" />
|
||||
|
||||
<Button
|
||||
x:Name="getVersionButton"
|
||||
Margin="5"
|
||||
|
||||
@@ -25,55 +25,137 @@ namespace WPFSerialAssistant
|
||||
InitializeComponent();
|
||||
InitCore();
|
||||
}
|
||||
// 单次锁存
|
||||
// 单次锁存 可以通过单次锁存,读取当前的位置值
|
||||
private void SingleLatch_Checked(object sender, RoutedEventArgs e)
|
||||
{
|
||||
//1 清空缓存
|
||||
string cmd = "01 06";
|
||||
SerialPortWrite(cmd);
|
||||
Utilities.sleep(5);
|
||||
|
||||
//2 设置单次模式
|
||||
cmd = "01 01 01";
|
||||
SerialPortWrite(cmd);
|
||||
Utilities.sleep(5);
|
||||
|
||||
//3 开始锁存
|
||||
cmd = "01 02";
|
||||
SerialPortWrite(cmd);
|
||||
Utilities.sleep(5);
|
||||
|
||||
//4 读取锁存值
|
||||
cmd = "01 09";
|
||||
SerialPortWrite(cmd);
|
||||
Utilities.sleep(5);
|
||||
|
||||
}
|
||||
//定时锁存
|
||||
//定时锁存 每10ms(1000*10us),即100HZ,锁存一次位置的值,发一个脉冲
|
||||
private void TimingLatches_Checked(object sender, RoutedEventArgs e)
|
||||
{
|
||||
//1 清空缓存
|
||||
string cmd = "01 06";
|
||||
SerialPortWrite(cmd);
|
||||
Utilities.sleep(5);
|
||||
|
||||
//2 设置定时模式
|
||||
cmd = "01 01 02 03 e8";
|
||||
SerialPortWrite(cmd);
|
||||
Utilities.sleep(5);
|
||||
|
||||
//3 开始锁存
|
||||
cmd = "01 02";
|
||||
SerialPortWrite(cmd);
|
||||
Utilities.sleep(5);
|
||||
|
||||
//4 停止锁存
|
||||
cmd = "01 03";
|
||||
SerialPortWrite(cmd);
|
||||
Utilities.sleep(5);
|
||||
|
||||
//5 读取锁存值
|
||||
cmd = "01 09";
|
||||
SerialPortWrite(cmd);
|
||||
Utilities.sleep(5);
|
||||
|
||||
//6 清空数据与flash
|
||||
cmd = "01 04";
|
||||
SerialPortWrite(cmd);
|
||||
Utilities.sleep(5);
|
||||
}
|
||||
//分频锁存
|
||||
//分频锁存 以X轴为基准,每20个脉冲锁存一次,并发送一次脉冲
|
||||
private void FreDivsionRadioButton_Checked(object sender, RoutedEventArgs e)
|
||||
{
|
||||
//1 清空缓存
|
||||
string cmd = "01 06";
|
||||
SerialPortWrite(cmd);
|
||||
Utilities.sleep(5);
|
||||
|
||||
//2 设置定时模式
|
||||
cmd = "01 01 03 00 00 14 01";
|
||||
SerialPortWrite(cmd);
|
||||
Utilities.sleep(5);
|
||||
|
||||
//3 开始锁存
|
||||
cmd = "01 02";
|
||||
SerialPortWrite(cmd);
|
||||
Utilities.sleep(5);
|
||||
|
||||
//4 停止锁存
|
||||
cmd = "01 03";
|
||||
SerialPortWrite(cmd);
|
||||
Utilities.sleep(5);
|
||||
|
||||
//5 读取锁存值
|
||||
cmd = "01 09";
|
||||
SerialPortWrite(cmd);
|
||||
Utilities.sleep(5);
|
||||
|
||||
//6 清空数据与flash
|
||||
cmd = "01 04";
|
||||
SerialPortWrite(cmd);
|
||||
Utilities.sleep(5);
|
||||
}
|
||||
//获取固件版本
|
||||
private void GetVersionButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
|
||||
string cmd = "01 08";
|
||||
SerialPortWrite(cmd);
|
||||
}
|
||||
//设置归零
|
||||
//设置归零,表示XYZ轴的清零,把当前的位置读数重置为0.
|
||||
private void SetZeroButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
|
||||
string cmd = "01 06";
|
||||
SerialPortWrite(cmd);
|
||||
}
|
||||
//开始锁存
|
||||
private void StartRecordButtion_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
|
||||
string cmd = "01 02";
|
||||
SerialPortWrite(cmd);
|
||||
}
|
||||
//停止锁存
|
||||
private void StopRecordButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
|
||||
string cmd = "01 03";
|
||||
SerialPortWrite(cmd);
|
||||
}
|
||||
//获取锁存值
|
||||
private void GetRecordButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
|
||||
string cmd = "01 09";
|
||||
SerialPortWrite(cmd);
|
||||
}
|
||||
//清除Flash区
|
||||
private void ClearFlashButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
|
||||
string cmd = "01 04";
|
||||
SerialPortWrite(cmd);
|
||||
}
|
||||
//获得锁存点数量
|
||||
private void GetPointsButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
|
||||
string cmd = "01 05";
|
||||
SerialPortWrite(cmd);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,12 +2,13 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
//using System.Windows;
|
||||
//using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace WPFSerialAssistant
|
||||
{
|
||||
public static class Utilities
|
||||
public static class Utilities
|
||||
{
|
||||
public static double m_Resolution = 0.0001; //分辨率设置 0.1um
|
||||
public static string BytesToText(List<byte> bytesBuffer, ReceiveMode mode, Encoding encoding)
|
||||
@@ -117,5 +118,28 @@ namespace WPFSerialAssistant
|
||||
return result.Trim();
|
||||
}
|
||||
|
||||
}
|
||||
public static void sleep(int milliSecond)
|
||||
{
|
||||
int start = Environment.TickCount;
|
||||
while (Math.Abs(Environment.TickCount - start) < milliSecond)
|
||||
{
|
||||
Application.DoEvents();
|
||||
}
|
||||
}
|
||||
|
||||
public static bool Delay(int delayTime)
|
||||
{
|
||||
DateTime now = DateTime.Now;
|
||||
int s;
|
||||
do
|
||||
{
|
||||
TimeSpan spand = DateTime.Now - now;
|
||||
s = spand.Seconds;
|
||||
Application.DoEvents();
|
||||
}
|
||||
while (s < delayTime);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,6 +63,7 @@
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Core" />
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user