2026-06-05 13:44:39 +09:00

53 lines
2.1 KiB
C#

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<double> 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
}
}