104 lines
3.8 KiB
C#
104 lines
3.8 KiB
C#
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<string, bool> GetStatusStatesFromLaser()
|
|
{
|
|
var states = new Dictionary<string, bool>();
|
|
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<string>(_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<string, bool> GetAlarmStatesFromLaser()
|
|
{
|
|
var alarms = new Dictionary<string, bool>();
|
|
|
|
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;
|
|
}
|
|
|
|
}
|
|
}
|