namespace AuroraLaser.Coherent { #region param public struct STRUCT_ERROR_REGISTER { public bool bPeltier_Cooler_Over_Temp; public bool bPeltier_Cooler_Under_Temp; public bool bFiber_Over_Temp; public bool bFiber_Plug_Control_Error; public bool bError_During_Laser_On; public bool bPeltier_Cooler_Temp_Upper_40; public bool bPeltier_Cooler_Temp_Under_10; public bool bOver_Temp_Diode; public bool bUnder_Temp_Diode; public bool bUSB_Interface_Broken; public string ErrMsg; } public struct STRUCT_STATUS_REGISTER { public bool bPowerOn; public bool bLaserOn; public bool bErrorStatus; public bool bFatalError; public bool bEmission; public int PowerValue; public int Temp; public string SerialNumber; } public struct STRUCT_LASER_MODE_REGISTER { public bool bPeltierCooler_HeatingCooling; public bool bCurrent_Set_External; public bool bLaser_Control_External; public bool bPulserOn; public bool bVT100On; } public enum eModelType { LUT = 0, // 원본: LookUp Table Lin1Seg, // Linear model with 1 segment Lin2Seg // Linear model with 2 segments } public struct STRUCT_LASER_POWERMODEL { public eModelType _modelType; public double[] _paramA; public double[] _paramB; public STRUCT_LASER_POWERMODEL(eModelType modelType, double[] paramA = null, double[] paramB = null) { _modelType = modelType; _paramA = new double[2]; _paramB = new double[2]; for (int i = 0; i < 2; i++) { if (paramA is null) { _paramA[i] = 0.0; } else { _paramA[i] = paramA[i]; } if (paramB is null) { _paramB[i] = 0.0; } else { _paramB[i] = paramB[i]; } } } } #endregion }