#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 &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;