#0002: 新增GetEncoderXyz 接口,用于白光扫描功能,向Metus传输底层编码器值,Metus将编码器值发送到白光控制器,再由白光控制器触发扫描
This commit is contained in:
+19
-19
@@ -79,7 +79,7 @@ enum HSI_STATUS
|
||||
HSI_STATUS_VP_TIMEOUT = 350,
|
||||
HSI_STATUS_VP_IMAGEPROCESS_FAIL,
|
||||
|
||||
HSI_ACS_OK=400,// ACS命令成功
|
||||
HSI_ACS_OK=400,// ACS����ɹ�
|
||||
HSI_ACS_ERROR
|
||||
};
|
||||
|
||||
@@ -357,22 +357,22 @@ enum HSI_MOTION_IO_TYPE
|
||||
HSI_MOTION_INPUT = 0x0001,
|
||||
HSI_MOTION_INPUT_LIMIT_SWITCH,
|
||||
HSI_MOTION_INPUT_CH1,
|
||||
//固高、众为兴、EF1输入
|
||||
//固高、众为兴、EF1输入
|
||||
HSI_MOTION_INPUT_CH2,
|
||||
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输出
|
||||
//固高、众为兴、EF1输出
|
||||
HSI_MOTION_OUTPUT_CH2,
|
||||
HSI_MOTION_OUTPUT_CH3,
|
||||
//串口控制器输出
|
||||
HSI_MOTION_OUTPUT_CH4 //众为兴运动控制卡测试输出
|
||||
//串口控制器输出
|
||||
HSI_MOTION_OUTPUT_CH4 //众为兴运动控制卡测试输出
|
||||
};
|
||||
|
||||
//const UINT HSI_MOTION_AXIS_ALL = HSI_MOTION_AXIS_X | HSI_MOTION_AXIS_Y | HSI_MOTION_AXIS_Z;
|
||||
@@ -406,10 +406,10 @@ enum HSI_SCAN_MOTION_TYPE
|
||||
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_MANUAL_TEST //测试使用
|
||||
};
|
||||
|
||||
enum HSI_ZOOM_TYPE
|
||||
@@ -427,7 +427,7 @@ using Point = struct
|
||||
const int HSI_MAX_POSITIONS_STORED = 500;
|
||||
|
||||
// >>>> In Interfaces
|
||||
// 第一阶段需要重写的API 函数
|
||||
// 第一阶段需要重写的API 函数
|
||||
|
||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_STARTUP(bool bHome);
|
||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_FIREWAREVERION(byte* verion);
|
||||
@@ -445,16 +445,16 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_HOMED(bool& bHomed);
|
||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_DIO(UINT IOChannel, UINT& _Status);
|
||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_DIO(UINT IOChannel, UINT _Status);
|
||||
|
||||
//扫描相关函数
|
||||
//扫描相关函数
|
||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_SCAN_SET_DATA(UINT AxisTypes, HSI_SCAN_MOTION_TYPE eType, UINT lTrigNumber,
|
||||
double* dTrigDis); //扫描配置
|
||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_SCAN_START(); //开始扫描
|
||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_DCC_SCAN_STOP(); //停止扫描
|
||||
double* dTrigDis); //扫描配置
|
||||
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_GET_POSITION_XYZ_CACHE(unsigned char* CacheData, int& DataCount);
|
||||
// 第一阶段结束
|
||||
// 第一阶段结束
|
||||
|
||||
|
||||
// 第二阶段需要重写的API 函数
|
||||
// 第二阶段需要重写的API 函数
|
||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_SUPPORTED(UINT& Types);
|
||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_SPEED_XYZ(double& Speed);
|
||||
HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_SPEED_XYZ(double Speed);
|
||||
@@ -493,7 +493,7 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_ACCELERATION_EX(UINT AxisTypes, double&
|
||||
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);
|
||||
|
||||
@@ -2906,12 +2906,13 @@ HSI_STATUS HSI_Motion::GetPositionXyz(UINT AxisTypes, double& PositionX, double&
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
HSI_STATUS HSI_Motion::GetEncoderXyz(long* lEncoderVal)//原读取编码器值使用串口获取EF3的光栅尺读数,待测试
|
||||
HSI_STATUS HSI_Motion::GetEncoderXyzOld(long* lEncoderVal)//原读取编码器值使用串口获取EF3的光栅尺读数,待测试
|
||||
{
|
||||
auto rStatus = HSI_STATUS_NORMAL;
|
||||
//读取3个轴的编码器值
|
||||
if (g_pHSI_Motion)
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetEncoderXyz] In\n");
|
||||
if (m_SO7_Serial.m_RecvData[0] == 2)
|
||||
{
|
||||
if (m_DeviceType != 1)
|
||||
@@ -2969,6 +2970,32 @@ HSI_STATUS HSI_Motion::GetEncoderXyz(long* lEncoderVal)//原读取编码器值
|
||||
auto rStatus = HSI_STATUS_FAILED;
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetEncoderXyz] failed\n");
|
||||
}
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetEncoderXyz] Out\n");
|
||||
}
|
||||
return rStatus;
|
||||
}
|
||||
|
||||
HSI_STATUS HSI_Motion::GetEncoderXyz(long* lEncoderVal)//原读取编码器值使用串口获取EF3的光栅尺读数,待测试
|
||||
{
|
||||
auto rStatus = HSI_STATUS_NORMAL;
|
||||
//读取3个轴的编码器值
|
||||
if (g_pHSI_Motion)
|
||||
{
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetEncoderXyz] In\n");
|
||||
|
||||
{
|
||||
lEncoderVal[0] = m_EncPos[1] / m_Resolution[1];//PositionX
|
||||
lEncoderVal[1] = m_EncPos[2] / m_Resolution[1];// PositionY;
|
||||
lEncoderVal[2] = m_EncPos[3]/ m_Resolution[1]; // PositionZ;
|
||||
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetEncoderXyz] lEncoderVal[0]= %ld,EncoderVal[1]= %ld,,EncoderVal[2]= %ld, \n", lEncoderVal[0], lEncoderVal[1], lEncoderVal[2]);
|
||||
}
|
||||
//else
|
||||
//{
|
||||
// auto rStatus = HSI_STATUS_FAILED;
|
||||
// g_pLogger->SendAndFlushWithTime(L"[GetEncoderXyz] failed\n");
|
||||
//}
|
||||
g_pLogger->SendAndFlushWithTime(L"[GetEncoderXyz] Out\n");
|
||||
}
|
||||
return rStatus;
|
||||
}
|
||||
|
||||
+149
-148
@@ -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
|
||||
{
|
||||
@@ -28,23 +28,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_SET,
|
||||
CT_GLUEDISPENSER_CLEAR,
|
||||
CT_GLUEDISPENSER_START,
|
||||
CT_GLUEDISPENSER_STOP,//转盘时启用
|
||||
CT_GLUEDISPENSER_STOP,//转盘时启用
|
||||
CT_RTSET,
|
||||
CT_BINSDATA,
|
||||
CT_RTSTOP,//
|
||||
@@ -73,14 +73,14 @@ enum MOTOR_CMD //
|
||||
enum MOTOR_START_POSOTION //
|
||||
{
|
||||
INTERPOLATION = 0x61,
|
||||
//插补
|
||||
//插补
|
||||
GANGED = 0x41,
|
||||
//独立
|
||||
//独立
|
||||
CIRCLER = 0x64,
|
||||
CIRCLEL = 0x65,
|
||||
};
|
||||
|
||||
enum MOTOR_AXISCHOOES_CMD //第三级指令
|
||||
enum MOTOR_AXISCHOOES_CMD //第三级指令
|
||||
{
|
||||
AXIS_X = 0x01,
|
||||
AXIS_Y = 0x00,
|
||||
@@ -99,7 +99,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,
|
||||
@@ -147,13 +147,13 @@ public:
|
||||
HSI_STATUS IsSupported(UINT& Types) override;
|
||||
HSI_STATUS Startup(HWND _hWnd, bool _bOfflineOnly) override;
|
||||
/**
|
||||
* \brief 获取EF3固件版本
|
||||
* \brief 获取EF3固件版本
|
||||
* \param version
|
||||
* \return
|
||||
*/
|
||||
HSI_STATUS GetFirmwareVersion(byte* version);
|
||||
/**
|
||||
* \brief 判断机台是否回家,如果没有,则执行回家动作
|
||||
* \brief 判断机台是否回家,如果没有,则执行回家动作
|
||||
* \param bHomed
|
||||
* \return
|
||||
*/
|
||||
@@ -164,14 +164,14 @@ public:
|
||||
HSI_STATUS ZeroPos(bool bZeroPos);
|
||||
|
||||
/**
|
||||
* \brief 判断机台是否回家,仅获取是否回家的状态
|
||||
* \param bHomed 是否回家标志位
|
||||
* \brief 判断机台是否回家,仅获取是否回家的状态
|
||||
* \param bHomed 是否回家标志位
|
||||
* \return
|
||||
*/
|
||||
HSI_STATUS IsHomed(bool& bHomed);
|
||||
HSI_STATUS IsHomedOld(bool& bHomed);
|
||||
/**
|
||||
* \brief 获取单轴运动速度
|
||||
* \brief 获取单轴运动速度
|
||||
* \param AxisNum
|
||||
* \param Speed
|
||||
* \return
|
||||
@@ -190,7 +190,7 @@ public:
|
||||
HSI_STATUS GetDeadBand(double& DeadbandX, double& DeadbandY, double& DeadbandZ, double& DeadbandR);
|
||||
HSI_STATUS GetRefreshDeadBand(double& Deadband);
|
||||
/**
|
||||
* \brief Jog运动,挡位只有在JOG才有,CNC运行的速度是合成速度
|
||||
* \brief Jog运动,挡位只有在JOG才有,CNC运行的速度是合成速度
|
||||
* \param AxisTypes
|
||||
* \param Speed
|
||||
* \return
|
||||
@@ -216,11 +216,11 @@ public:
|
||||
HSI_STATUS GetPositionEncPrfMulti(UINT AxisTypes, double* EncPos, double* PrfPos, int Count);
|
||||
HSI_STATUS GetPositionEncPrfMultiOld(UINT AxisTypes, double* EncPos, double* PrfPos, int Count);
|
||||
/**
|
||||
* \brief 获取轴当前位置
|
||||
* \param AxisTypes 轴号
|
||||
* \param PositionX X坐标
|
||||
* \param PositionY Y坐标
|
||||
* \param PositionZ Z坐标
|
||||
* \brief 获取轴当前位置
|
||||
* \param AxisTypes 轴号
|
||||
* \param PositionX X坐标
|
||||
* \param PositionY Y坐标
|
||||
* \param PositionZ Z坐标
|
||||
* \param Time
|
||||
* \return
|
||||
*/
|
||||
@@ -228,12 +228,13 @@ public:
|
||||
HSI_STATUS GetPositionXyzOld(UINT AxisTypes, double& PositionX, double& PositionY, double& PositionZ, double& Time);
|
||||
HSI_STATUS GetPositionXyzaProbe(UINT AxisTypes, double& PositionX, double& PositionY, double& PositionZ,
|
||||
double& PositionA);
|
||||
HSI_STATUS GetEncoderXyz(long* lEncoderVal);
|
||||
HSI_STATUS GetEncoderXyz(long* lEncoderVal);//获取编码器位置
|
||||
HSI_STATUS GetEncoderXyzOld(long* lEncoderVal);
|
||||
HSI_STATUS JogProbe(UINT AxisTypes, double Speed);
|
||||
void ProbeRetractManDist(int RetractManDist);
|
||||
int CaculateStepMotorACC(int pos, int maxacc, int minacc);
|
||||
/**
|
||||
* \brief 求各轴运动配置参数
|
||||
* \brief 求各轴运动配置参数
|
||||
* \param AXIS
|
||||
* \param motionParam
|
||||
* \return
|
||||
@@ -241,12 +242,12 @@ public:
|
||||
HSI_STATUS HSI_Motion::GetSingleAxisParam(int AXIS, double motionParam[5]);
|
||||
HSI_STATUS HSI_Motion::SetSingleAxisParam(int AXIS, double motionParam[5]);
|
||||
/**
|
||||
* \brief 运行到指定位置
|
||||
* \param AxisTypes 轴号
|
||||
* \param PositionX X坐标
|
||||
* \param PositionY Y坐标
|
||||
* \param PositionZ Z坐标
|
||||
* \param eType 运动模式,
|
||||
* \brief 运行到指定位置
|
||||
* \param AxisTypes 轴号
|
||||
* \param PositionX X坐标
|
||||
* \param PositionY Y坐标
|
||||
* \param PositionZ Z坐标
|
||||
* \param eType 运动模式,
|
||||
* \param dFlyRadius
|
||||
* \return
|
||||
*/
|
||||
@@ -260,7 +261,7 @@ public:
|
||||
HSI_STATUS GetPositionXyzCache(unsigned char* CacheData, int& DataCount);
|
||||
HSI_STATUS GetPositionR(UINT AxisTypes, double& PositionR, double& Time);
|
||||
HSI_STATUS SetPositionR(UINT AxisTypes, double PositionR, HSI_MOTION_AXIS_R_MOVE_TYPE DirectionType, bool bWait);
|
||||
HSI_STATUS SetCircleInterpolate(double PositionX, double PositionY, double PositionZ); //圆弧插补
|
||||
HSI_STATUS SetCircleInterpolate(double PositionX, double PositionY, double PositionZ); //圆弧插补
|
||||
HSI_STATUS Load_EF3_Motion_Inifile(CString GoogolIniFile);
|
||||
HSI_STATUS Load_EF3_Config_Inifile(CString GoogolIniFile);
|
||||
/**
|
||||
@@ -301,7 +302,7 @@ public:
|
||||
HSI_STATUS SetPositionEx(UINT AxisTypes, double Position, HSI_MOTION_MOVE_TYPE eType, double dSpeedGear);
|
||||
HSI_STATUS GetSpeedEx(UINT AxisTypes, double& Speed);
|
||||
/**
|
||||
* \brief 设置单轴运动速度
|
||||
* \brief 设置单轴运动速度
|
||||
* \param AxisTypes
|
||||
* \param Speed
|
||||
* \return
|
||||
@@ -314,23 +315,23 @@ public:
|
||||
double* Intensities);
|
||||
HSI_STATUS DCCPPStartPoint(double* startPoint);
|
||||
/**
|
||||
* \brief 下发触发间距
|
||||
* \param AxisTypes 轴
|
||||
* \param eType 等间距或者等时间
|
||||
* \param lTrigNumber 触发数量
|
||||
* \param dTrigDis 间距
|
||||
* \brief 下发触发间距
|
||||
* \param AxisTypes 轴
|
||||
* \param eType 等间距或者等时间
|
||||
* \param lTrigNumber 触发数量
|
||||
* \param dTrigDis 间距
|
||||
* \return
|
||||
*/
|
||||
HSI_STATUS DCCScanSetData(UINT AxisTypes, HSI_SCAN_MOTION_TYPE eType, UINT lTrigNumber, double* dTrigDis);
|
||||
HSI_STATUS DCCScanSetDataOld(UINT AxisTypes, HSI_SCAN_MOTION_TYPE eType, UINT lTrigNumber, double* dTrigDis);
|
||||
/**
|
||||
* \brief 开始扫描
|
||||
* \brief 开始扫描
|
||||
* \return
|
||||
*/
|
||||
HSI_STATUS DCCScanStart();
|
||||
HSI_STATUS DCCScanStartOld();
|
||||
/**
|
||||
* \brief 停止扫描
|
||||
* \brief 停止扫描
|
||||
* \return
|
||||
*/
|
||||
HSI_STATUS DCCScanStop();
|
||||
@@ -356,28 +357,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;
|
||||
@@ -387,16 +388,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];
|
||||
@@ -409,134 +410,134 @@ 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_LogIsOpen[5]; //是否打开记录,0为打开,非0为关闭
|
||||
int m_Jog_Auto_Focus; //变焦使用的速度
|
||||
int m_LogIsOpen[5]; //是否打开记录,0为打开,非0为关闭
|
||||
|
||||
unsigned int m_precisionCount[5]; //回家误差脉冲个数
|
||||
unsigned int m_precisionTime[5]; //超时时间(0.1ms)
|
||||
int m_StopJogMode[5]; //JOG模式采用急停还是平滑停止
|
||||
double m_PosThread[5]; //SetpositionXyz的目标位置
|
||||
int m_PosNow[5]; //调用SetpositionXyz时,读取当前位置
|
||||
unsigned int m_precisionCount[5]; //回家误差脉冲个数
|
||||
unsigned int m_precisionTime[5]; //超时时间(0.1ms)
|
||||
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[10]; //用于启动时需要回原点的轴号选择
|
||||
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[10]; //用于启动时需要回原点的轴号选择
|
||||
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软件停止
|
||||
CString m_AppPath;//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_IsUseACS; //是否用ACS运动控制
|
||||
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_IsUseACS; //是否用ACS运动控制
|
||||
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_bISUseMoreLights; //更多灯光
|
||||
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关闭
|
||||
int m_IsProbe;//探针触发时,锁存的轴号,默认3表示锁存XYZ共3轴,4表示XYZA共4轴
|
||||
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轴
|
||||
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; //是否开启手动插补(只针对步进电机)
|
||||
int m_axisLatchFrequency; //轴锁存频率
|
||||
int m_IsUseRocker; //是否启用摇杆 0为不启用 1为启用旧摇杆,2为新摇杆, 默认为0
|
||||
int m_IsCollectPos; //是否通过串口打印位置,与摇杆2互斥
|
||||
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_axisLatchFrequency; //轴锁存频率
|
||||
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运动的轴号
|
||||
int jogspeed; //jog 运动的速度
|
||||
bool bCircleRun; //圆弧插补
|
||||
int iCircleRunPnt[5]; //圆弧插补时的圆心位置
|
||||
int jogAxisNum; //jog运动的轴号
|
||||
int jogspeed; //jog 运动的速度
|
||||
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;
|
||||
int SpCompleteTEnd;
|
||||
int SpTimeCount;
|
||||
bool SetPotionRunEnd;
|
||||
double PntToPntDistance; //欧氏距离
|
||||
double PntToPntDistance; //欧氏距离
|
||||
|
||||
double m_LockPos[5];
|
||||
double m_ijk[5];
|
||||
@@ -545,9 +546,9 @@ public:
|
||||
|
||||
double m_EncPos[5];
|
||||
double m_PrfPos[5];
|
||||
double m_PosForAllAxis[5]; //记录4轴位置
|
||||
double m_PosForAllAxis[5]; //记录4轴位置
|
||||
bool m_bConnected;
|
||||
bool m_bACSConnected; // ACS是否连接成功
|
||||
bool m_bACSConnected; // ACS是否连接成功
|
||||
int m_SendDataLength;
|
||||
unsigned char m_cSendData[64];
|
||||
unsigned char m_direct_pos;
|
||||
@@ -556,20 +557,20 @@ public:
|
||||
CPSerial m_SO7_Serial;
|
||||
DWORD m_WriteByte;
|
||||
BOOL Send_Command(int com, const char* _SendData, DWORD _SendDataLength);
|
||||
BOOL Send_Command(int com, const char* _SendData, DWORD SendDataLength, int expectType);// 带期望返回值的发送命令
|
||||
BOOL Send_Command(int com, const char* _SendData, DWORD SendDataLength, int expectType);// 带期望返回值的发送命令
|
||||
BOOL Receive_Data();
|
||||
bool PortInit(int iSerialComPort, int iBuadRate);
|
||||
char m_RecvData[MAX_RECIEVE_BUFFER_SIZE];
|
||||
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();
|
||||
@@ -578,19 +579,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();
|
||||
@@ -600,7 +601,7 @@ public:
|
||||
void SendMsgProbeFinished();
|
||||
VOID EventCallback(sHSIEventProperties& sEventProp);
|
||||
/**
|
||||
* \brief 界面挡位获取速度
|
||||
* \brief 界面挡位获取速度
|
||||
* \param AxisNum
|
||||
* \param Speed
|
||||
* \param DriveSpeed
|
||||
@@ -614,7 +615,7 @@ public:
|
||||
int SpeedPercent(int AxisNum, double& Speed, int& DriveSpeed, int& StartSpeed, int& AccLine, int& DecLine,
|
||||
int& AccCurve, int& DecCurve);
|
||||
/**
|
||||
* \brief 摇杆切换的运动速度, 与上面那个互锁,动了界面的 摇杆就会失能;
|
||||
* \brief 摇杆切换的运动速度, 与上面那个互锁,动了界面的 摇杆就会失能;
|
||||
* \param AxisNum
|
||||
* \param Speed
|
||||
* \param DriveSpeed
|
||||
@@ -652,12 +653,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_TYPE CurrentMotionState; //当前运动状态
|
||||
E_SO7_MOTION_READ_TYPE CurrentReadDataType;
|
||||
|
||||
//网口通信添加
|
||||
//网口通信添加
|
||||
private:
|
||||
TCPIP_RETURN_CODE TCPConnect(int index, char* Address, u_short port);
|
||||
void DisConnect();
|
||||
@@ -681,12 +682,12 @@ public:
|
||||
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;
|
||||
//extern void ErrorsHandler(const char* ErrorMessage, BOOL fCloseComm); //ACS 错误打印
|
||||
//extern void ErrorsHandler(const char* ErrorMessage, BOOL fCloseComm); //ACS 错误打印
|
||||
|
||||
#endif
|
||||
|
||||
@@ -222,7 +222,7 @@ void CMMIO::LineReceive(char* s, int nbCharAvail, BOOL ignoreDelimiter /*= FALSE
|
||||
c = s[i];
|
||||
m_InputBuffer[CurrentPointer++] = c;
|
||||
|
||||
// only add a packet if we have a delimiter 分隔符
|
||||
// only add a packet if we have a delimiter 分隔符
|
||||
if ((!m_usesTerminator && i == nbCharAvail - 1) || (m_usesTerminator && c == m_terminator) ||
|
||||
ignoreDelimiter)
|
||||
{
|
||||
|
||||
@@ -38,7 +38,7 @@ protected:
|
||||
CString m_lastErrMsg;
|
||||
int m_iNbMsgWaiting;
|
||||
BOOL m_UseBuffferedSend;
|
||||
CRITICAL_SECTION m_QueueLock; //临界区
|
||||
CRITICAL_SECTION m_QueueLock; //临界区
|
||||
CRITICAL_SECTION m_ReadLock;
|
||||
CRITICAL_SECTION m_WriteLock;
|
||||
|
||||
|
||||
@@ -128,7 +128,7 @@ public:
|
||||
// Convert ascii hex into an int
|
||||
int HexToInt(char* Data, int Bytes);
|
||||
void hex2str(char* pszDest, byte* pbSrc, int nLen);
|
||||
//字节数据转换为16进制字符串
|
||||
//字节数据转换为16进制字符串
|
||||
CString HexToStr(const char* pData, int nLen);
|
||||
int Receive(void* buf, int maxlen, bool sync);
|
||||
|
||||
@@ -191,11 +191,11 @@ public:
|
||||
|
||||
// BV Nov 2001: Made public
|
||||
// CRITICAL_SECTION m_QueueLock;
|
||||
BOOL m_iRecvState; //接收状态
|
||||
INT m_iRecvBytes; //接收字节数
|
||||
INT m_iRecvCount; //接收计数
|
||||
INT m_iExpectBytes = 0; //定义期望接收的数据长度
|
||||
BOOL m_bDebug = true; //调试模式,默认关闭
|
||||
BOOL m_iRecvState; //接收状态
|
||||
INT m_iRecvBytes; //接收字节数
|
||||
INT m_iRecvCount; //接收计数
|
||||
INT m_iExpectBytes = 0; //定义期望接收的数据长度
|
||||
BOOL m_bDebug = true; //调试模式,默认关闭
|
||||
unsigned char m_RecvData[MAX_RECIEVE_BUFFER_SIZE];
|
||||
};
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ void CLogger::SendAndFlush(LPCTSTR format, ...)
|
||||
}
|
||||
|
||||
//vswprintf_s()
|
||||
//参考连接:https://www.educative.io/answers/what-is-vswprintfs-in-c
|
||||
//参考连接:https://www.educative.io/answers/what-is-vswprintfs-in-c
|
||||
void CLogger::SendAndFlushWithTime(LPCTSTR format, ...)
|
||||
{
|
||||
EnterCriticalSection(&m_lockLogger);
|
||||
@@ -76,20 +76,20 @@ void CLogger::SendAndFlushWithTime(LPCTSTR format, ...)
|
||||
}
|
||||
if (!m_File)
|
||||
{
|
||||
m_File = _wfsopen(m_FileName, _T("at"), _SH_DENYNO); //追加
|
||||
m_File = _wfsopen(m_FileName, _T("at"), _SH_DENYNO); //追加
|
||||
}
|
||||
if (m_File)
|
||||
{
|
||||
int length = 0;
|
||||
va_list list;
|
||||
//在C中,当无法列出传递函数的所有实参的类型和数目时,可以用省略号指定参数表
|
||||
//在C中,当无法列出传递函数的所有实参的类型和数目时,可以用省略号指定参数表
|
||||
va_start(list, format);
|
||||
//vswprintf()函数将宽字符串写入宽字符串缓冲区
|
||||
//vswprintf()函数将宽字符串写入宽字符串缓冲区
|
||||
|
||||
//ws:指定指向给定宽字符串缓冲区的指针,该缓冲区将存储结果
|
||||
//len : 指定写回缓冲区的宽字符的最大长度,包括终止的空字符
|
||||
//format : 指定指向空终止的宽字符串的指针
|
||||
//arg : 指定标识变量参数列表的值
|
||||
//ws:指定指向给定宽字符串缓冲区的指针,该缓冲区将存储结果
|
||||
//len : 指定写回缓冲区的宽字符的最大长度,包括终止的空字符
|
||||
//format : 指定指向空终止的宽字符串的指针
|
||||
//arg : 指定标识变量参数列表的值
|
||||
length = vswprintf(m_Str2, 5000, format, list);
|
||||
CTime _cTime = CTime::GetCurrentTime();
|
||||
CString csTime = _cTime.Format("[%Y/%m/%d %H:%M:%S");
|
||||
@@ -111,10 +111,10 @@ void CLogger::SendAndFlushWithTime(LPCTSTR format, ...)
|
||||
|
||||
va_end(list);
|
||||
}
|
||||
/*放弃当前线程对锁定部分的所有权。一旦锁定部分的所有权被放弃,那么请求访问临界区的下一个线程,将可以对锁定部分进行操作。每一个调用EnterCriticalSection的线程,都应该调用一次LeaveCriticalSection。
|
||||
/*放弃当前线程对锁定部分的所有权。一旦锁定部分的所有权被放弃,那么请求访问临界区的下一个线程,将可以对锁定部分进行操作。每一个调用EnterCriticalSection的线程,都应该调用一次LeaveCriticalSection。
|
||||
|
||||
使一个线程可以使用一个临界段对象来进行互斥同步。这个过程需要优先创建一个临界区结构体变量(分配使用内存)。在使用临界区之前, 待操作临界区的进程必须调用InitializeCriticalSection 或者 InitializeCriticalSectionAndSpinCount函数来初始化临界区。
|
||||
一个线程使用EnterCriticalSection 或TryEnterCriticalSection函数来获得关键部分对象的所有权时,该线程必须在离开临界区时调用LeaveCriticalSection。*/
|
||||
使一个线程可以使用一个临界段对象来进行互斥同步。这个过程需要优先创建一个临界区结构体变量(分配使用内存)。在使用临界区之前, 待操作临界区的进程必须调用InitializeCriticalSection 或者 InitializeCriticalSectionAndSpinCount函数来初始化临界区。
|
||||
一个线程使用EnterCriticalSection 或TryEnterCriticalSection函数来获得关键部分对象的所有权时,该线程必须在离开临界区时调用LeaveCriticalSection。*/
|
||||
|
||||
LeaveCriticalSection(&m_lockLogger);
|
||||
}
|
||||
@@ -151,7 +151,7 @@ string ConvertCharToString(char* a, int size)
|
||||
return s;
|
||||
}
|
||||
|
||||
//删除指定目录以及目录下的所有文件
|
||||
//删除指定目录以及目录下的所有文件
|
||||
#include <iostream>
|
||||
#include <io.h>
|
||||
#include <direct.h>
|
||||
@@ -160,17 +160,17 @@ using namespace std;
|
||||
|
||||
void DelFiles(string path)
|
||||
{
|
||||
//在目录后面加上"\\*.*"进行第一次搜索
|
||||
//在目录后面加上"\\*.*"进行第一次搜索
|
||||
string newDir = path + "\\*.*";
|
||||
//用于查找的句柄
|
||||
//用于查找的句柄
|
||||
intptr_t handle;
|
||||
struct _finddata_t fileinfo;
|
||||
//第一次查找
|
||||
//第一次查找
|
||||
handle = _findfirst(newDir.c_str(), &fileinfo);
|
||||
|
||||
if (handle == -1)
|
||||
{
|
||||
cout << "无文件" << endl;
|
||||
cout << "无文件" << endl;
|
||||
system("pause");
|
||||
return;
|
||||
}
|
||||
@@ -179,17 +179,17 @@ void DelFiles(string path)
|
||||
{
|
||||
if (fileinfo.attrib & _A_SUBDIR)
|
||||
{
|
||||
//如果为文件夹,加上文件夹路径,再次遍历
|
||||
//如果为文件夹,加上文件夹路径,再次遍历
|
||||
if (strcmp(fileinfo.name, ".") == 0 || strcmp(fileinfo.name, "..") == 0)
|
||||
continue;
|
||||
|
||||
// 在目录后面加上"\\"和搜索到的目录名进行下一次搜索
|
||||
// 在目录后面加上"\\"和搜索到的目录名进行下一次搜索
|
||||
newDir = path + "\\" + fileinfo.name;
|
||||
DelFiles(newDir.c_str()); //先遍历删除文件夹下的文件,再删除空的文件夹
|
||||
DelFiles(newDir.c_str()); //先遍历删除文件夹下的文件,再删除空的文件夹
|
||||
cout << newDir.c_str() << endl;
|
||||
if (_rmdir(newDir.c_str()) == 0)
|
||||
{
|
||||
//删除空文件夹
|
||||
//删除空文件夹
|
||||
cout << "delete empty dir success" << endl;
|
||||
}
|
||||
else
|
||||
@@ -203,7 +203,7 @@ void DelFiles(string path)
|
||||
cout << file_path.c_str() << endl;
|
||||
if (remove(file_path.c_str()) == 0)
|
||||
{
|
||||
//删除文件
|
||||
//删除文件
|
||||
cout << "delete file success" << endl;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -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 "2024.04.01 / 19:06 "
|
||||
#define HSI_FILE_CSDESCRIPTION _T("2024.04.01 / 19:06 ")
|
||||
#define HSI_FILE_DESCRIPTION "周四 2.24.05 / 18:55 "
|
||||
#define HSI_FILE_CSDESCRIPTION _T("周四 2.24.05 / 18:55 ")
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user