You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

96 lines
3.6 KiB
C

#pragma once
#include "module.h"
#include "CommPortMgr.h"
#include "WorkTime.h"
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
enum LASER_DEVICE_TYPE
{
_LASER_SPECTRA_PHYSICS=0,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
_LASER_INNOLASE,//<2F>¹<EFBFBD>innolase
};
enum INNOLAS_LASER_OP_TYPE
{
_INNOLAS_NULL = 0,
_INNOLAS_FRE,//Ƶ<><C6B5>
_INNOLAS_CURRENT,//<2F><><EFBFBD><EFBFBD>
_INNOLAS_SYS_STATE,//<2F>豸״̬
_INNOLAS_SYS_ENABLE,//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>ʽ
class CInnolasOpPar
{
public:
INNOLAS_LASER_OP_TYPE Type;
bool bSet;
double SetVal;
double GetVal1;
double GetVal2;
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
class CLaserDeviceMgr :public CModule
{
public:
CLaserDeviceMgr(void);
~CLaserDeviceMgr(void);
virtual CMFCPropertyGridProperty *CreatGridProperty();
virtual void ExportPar(ofstream *pFile);
virtual MODULE GetModuleType(){return _SPECTRA_PHYSICS_LASER_PROP;};
virtual void Ini();
virtual void WriteWorkFileExt(vector<CLab> &LabVec);
virtual void ReadWorkFile(CLabVecRang &LabVecRang);
virtual void OnWorkStart();//<2F><>ʼ<EFBFBD>ӹ<EFBFBD>֮ǰ<D6AE>IJ<EFBFBD><C4B2><EFBFBD>
virtual void OnWorkEnd();//<2F>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
virtual void OnExitApp();
CString GetWarmTime();
void TurnOnEmission();
void TurnOffEmission();
void SetParToLaserDevice(bool bException);
double GetPower(){return m_Power;};
void SetPower(double val){m_Power = val;};
int GetLaserFre(){return m_Fre;};
void SetFre(int val){m_Fre = val;};
CString GetLaserState();
double SendMsgToDevice(INNOLAS_LASER_OP_TYPE type,bool bSet,double val,bool bException);
double GetCurLaserCurr(){return m_CurLaserCurr;};
double GetCurLaserFre(){return m_CurLaserFre;};
void ReadLaserPar();
void StartLaserSleepTime();
void StopLaserSleepTime();
void LaserSleepTimeExt();
CString GetCurLeftTimes(){return m_CurLeftTimes;};
void StartReadInfo();
void ReadInfoExt();
private:
void SendMsgToDeviceExt(CCommPortMgr&Comm,CInnolasOpPar &OpPar);
unsigned char GetMsgID(INNOLAS_LASER_OP_TYPE Type);
unsigned char GetOpType(bool bSet);
unsigned char GetOpCode1(INNOLAS_LASER_OP_TYPE Type);
unsigned char GetOpCode2(INNOLAS_LASER_OP_TYPE Type);
double GetLaserUnit(INNOLAS_LASER_OP_TYPE Type);
unsigned char GetLenOfCmd(INNOLAS_LASER_OP_TYPE Type);
void CheckInnolaseLaserPar(double Power,double Fre,bool bException);
void SetParToLaserSpectraPhysics();
void SetParToLaserInnolase(bool bException);
private:
LASER_DEVICE_TYPE m_DeviceType;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool m_bUse;//<2F>Ƿ񴮿ڿ<F1B4AEBF><DABF>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD>
bool m_bExitAppCloseLaser;//<2F>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>رռ<D8B1><D5BC><EFBFBD><EFBFBD><EFBFBD>
CCommPortMgr m_ComMgr;
int m_ComPort;//ͨ<><CDA8><EFBFBD><EFBFBD>com <20>ڱ<EFBFBD><DAB1><EFBFBD>
int m_ComBaudrate;//ͨ<>Ų<EFBFBD><C5B2><EFBFBD><EFBFBD><EFBFBD>(innolase 19200)(SpectraPhysics 9600)
double m_Power;//<2F><><EFBFBD><EFBFBD> (<28>¹<EFBFBD>innolase Ϊ<>ٷֱ<D9B7>% ) (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD>ֵ)
int m_Fre;//<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>hz
double m_CurLaserCurr;//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>
double m_CurLaserFre;//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
CWorkTime m_LaserSleepTime;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int m_LaserSleepTimeMinutes;//<2F>̹⼤<CCB9><E2BCA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߼<EFBFBD>ʱ(<28><><EFBFBD><EFBFBD>)
bool m_bStopLaserSleepTime;//<2F><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD>߳<EFBFBD>
CString m_CurLeftTimes;//<2F><>ǰʣ<C7B0><CAA3>ʱ<EFBFBD><CAB1>
};
extern CLaserDeviceMgr *gCLaserDeviceMgr;