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

62 lines
1.9 KiB
C#

using System.Collections.Generic;
namespace AuroraLaser.Coherent
{
public enum eLaserCoherentModel
{
//None,
CompactMini,
// etc
}
// Compact 시리즈를 Coherent 제조사로 묶을 수 있을까?
interface ILaserCompact
{
#region Common
double LaserTargetPower { get; set; }
bool NeedConfigSave { get; set; }
#endregion
#region 통신 상태
int Connect(LaserCompactMiniConfig conn);
int Disconnect();
int Reconnect();
bool IsConnected();
bool IsNetworkError { get; }
#endregion
#region 레이저 관련, 통신 R/W API 포함
bool IsLaserError { get; }
void ErrorReset();
bool SetOutputPower(double powerPerc); // [0, 1000]
#region Power calibration
void LoadLaserCalibrationData();
List<(double perc, double watt)> GetPowerCalData();
double Watt2Power(double watt);
double Watt2Power(double watt, eModelType calibType);
double Power2Watt(double powerPerc); // For Simul Only
void SetLaserPowerCalibMethod(string powerCalibMethod);
string GetLaserPowerCalibMethod();
#endregion
//---- Compact 시리즈에 공통으로 쓰일 수 있을까? 공통 불가이면, 개별 장치 기능으로 분리 검토
STRUCT_LASER_MODE_REGISTER GetLaserModeInfo();
STRUCT_STATUS_REGISTER GetLaserStatusInfo();
STRUCT_ERROR_REGISTER GetLaserErrMsgInfo();
//======================================================
void Update(); // 모니터링 & 주기적 업데이트
#endregion
}
public class LaserEvent
{
// 대문자로만 하니 가독성이 떨어짐 (띄우쓰기를 하면 길이가 길어지고)
public const string EVENT_ID_SerialNumberUpdate = "EVENT_ID_SerialNumberUpdate";
}
}