using Aurora.Api; using Hermes; using System.Collections.Generic; namespace AuroraLaser { public abstract class LaserObj { protected Logger Log = new Logger("Laser"); #region abstract method public abstract int Open(LaserConfig Config); public abstract void Close(); public abstract bool GetConnected(); public abstract double GetTemperature(int diode); public abstract void SetError(int errorCode, string errorMsg); public abstract bool GetLastError(ref int ErrorCode, ref string ErrorMsg); public abstract int SetData(int nTarget, int value); public abstract string GetData(int nTarget); public abstract bool RunLaser(); public abstract bool StartBurstShot(); // LaserOn 함수와 통일 public abstract bool StopLaser(); // Laser 상태를 Stop public abstract bool StopShot(); // 쏘고있는 Laser를 Stop, LaserOff 함수와 통일 public abstract bool ResetFault(); public abstract void GetLaserPower(out List lsPower); // Laser 종류마다 source 개수가 다를수 있으므로 list 로 처리한다. public abstract int GetLaserError(); public abstract bool SetPumpLevel(double dValue); public abstract bool SetBurstCount(int nBurst); public abstract bool SetBurstMode(int nFireMode); public abstract bool SetRepetitionRate(int nRepetition); public abstract bool SetEnergyLevel(int nMod); public abstract bool SetWaveLength(int nWaveLength); public abstract bool SetAttenuator(double dValue); public abstract bool SetSyncMode(int nMode); //public abstract bool SetOutputControl(int nValue); // SetEnergyLevel과 중복. 삭제 public abstract bool SetLaserParam(int nIndex, double dValue); public abstract bool GetLaserParam(int nIndex); public abstract void CheckLaserParmeter(int nSynMode, int nBurstMode, int nBurstCount, int nWaveLength, int nRepetitionRate, double dAtt); public virtual int Initialize(LaserConfig config) { return E1.OK; } #endregion } }