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.

55 lines
1.7 KiB
C++

#pragma once
#include "module.h"
#include "CommPortMgr.h"
enum OPTO_LASER_STATE//激光器状态
{
_STATE_COM_ERR = 0,//串口连接失败
_STATE_NOT_CONNECT,//未连接
_STATE_NOT_INI,//未初始化
_STATE_WAITING,//待机中
_STATE_STARTING,//启动中
_STATE_WORK//工作中
};
//光谱物理激光器管理类
class COptoWaveLaserMgr :public CModule
{
public:
COptoWaveLaserMgr(void);
~COptoWaveLaserMgr(void);
virtual CMFCPropertyGridProperty *CreatGridProperty();
virtual void ExportPar(ofstream *pFile);
virtual MODULE GetModuleType(){return _OPTO_WAVE_LASER_PROP;};
virtual void WriteWorkFileExt(vector<CLab> &LabVec);
virtual void ReadWorkFile(CLabVecRang &LabVecRang);
virtual void Ini();
bool IniLaserDevice();
void SwitchDiode(bool b);
void CloseLaserDevice();
void SetPowerCurr(double p){m_PowerCurr = p;};
void SetFre(int n){m_Fre = n;};
double GetPowerCurr(){return m_PowerCurr;};
double GetLaserPower();
int GetFre(){return m_Fre;};
void SetFrequencyCurrent();
CString GetDeviceStateStr(OPTO_LASER_STATE state);
OPTO_LASER_STATE ReadDeviceState();
COLORREF GetColor(OPTO_LASER_STATE state);
private:
void CtrlIni();
private:
int m_Com;//通信用com 口编号
CCommPortMgr m_ComMgr;//串口管理
double m_PowerCurr;//电流A
int m_Fre;//激光频率khz
int m_SendDelay;//指令发送延时
int m_CurrUpTime;//初始化激光器时电流上升等待时间(秒)
};
extern COptoWaveLaserMgr *gOptoWaveLaserMgr;