62 lines
1.9 KiB
C#
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";
|
|
}
|
|
}
|