using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Aurora; using Aurora.Api.Manager; using AuroraLaser.Coherent; namespace AuroraLaser.IPG.Views { public class LaserIPG_MonitoringViewModel { //LaserIPG_YLS _laser; private readonly IDeviceManager _deviceManger; private readonly LaserIPG_YLS _laser; LaserIPG_YLS laser; public LaserIPG_MonitoringViewModel(IAuroraEnvironment aurora, string deviceId) { _deviceManger = aurora.DeviceManager; _laser = _deviceManger as LaserIPG_YLS; } public Dictionary GetStatusStatesFromLaser() { var states = new Dictionary(); if (_laser == null) { var keys = new[] { "Laser power supply ON", "Internal control disabled", "Emission enabled", "External control", "Analog control", "Guide laser ON", "Rear door closed", "Front door closed" }; foreach (var k in keys) states[k] = false; return states; } var activeStatusList = new HashSet(_laser.StatusString()); states["Laser power supply ON"] = activeStatusList.Contains("Laser power supply ON"); states["Internal control disabled"] = activeStatusList.Contains("Internal control disabled"); states["Emission enabled"] = activeStatusList.Contains("Emission enabled"); states["External control"] = activeStatusList.Contains("External control"); states["Analog control"] = activeStatusList.Contains("Analog control"); states["Guide laser ON"] = activeStatusList.Contains("Guide laser ON"); states["Rear door closed"] = activeStatusList.Contains("Rear door closed"); states["Front door closed"] = activeStatusList.Contains("Front door closed"); return states; } public Dictionary GetAlarmStatesFromLaser() { var alarms = new Dictionary(); if (_laser == null) { // 모든 알람을 false로 초기화 var allAlarmKeys = new[] { "E-Stop", "Laser overheating", "Feeding fiber interlock", "High back reflection", "Laser module", "Laser module disconnected", "Combiner", "Water in laser", "Power supply", "Unexpected pump current", "Fiber coupler photodiode 1", "Fiber coupler photodiode 2" }; foreach (var key in allAlarmKeys) alarms[key] = false; return alarms; } alarms["E-Stop"] = _laser.GetEStop(); alarms["Laser overheating"] = _laser.GetLaserOverheatingAlarm(); alarms["Feeding fiber interlock"] = _laser.GetFeedingFierInterlockAlarm(); alarms["High back reflection"] = _laser.GetHighBackreflectionAlarm(); alarms["Laser module"] = _laser.GetLaserModuleAlarm(); alarms["Laser module disconnected"] = _laser.GetLaserModuleDisconnectedAlarm(); alarms["Combiner"] = _laser.GetCombinerAlarm(); alarms["Water in laser"] = _laser.GetWaterInLaserAlarm(); alarms["Power supply"] = _laser.GetPowerSupplyAlarm(); alarms["Unexpected pump current"] = _laser.GetUnexpectedPumpCurrentAlarm(); alarms["Fiber coupler photodiode 1"] = _laser.GetFiberCouplerPhotodiode1Alarm(); alarms["Fiber coupler photodiode 2"] = _laser.GetFiberCouplerPhotodiode2Alarm(); return alarms; } } }