80 lines
2.7 KiB
C#
80 lines
2.7 KiB
C#
using Aurora;
|
|
using Aurora.Api;
|
|
using AuroraDeviceCommon.Views;
|
|
using System;
|
|
using System.Windows.Threading;
|
|
|
|
namespace AuroraLaser.Coherent
|
|
{
|
|
public class UCCoherentHyperRapidResourceMonitoringViewModel : BaseDeviceViewModel
|
|
{
|
|
public double SeederDiodeElapsedTime { get => _SeederDiodeElapsedTime; set => SetProperty(ref _SeederDiodeElapsedTime, value); }
|
|
public double Diode1ElapsedTime { get => _Diode1ElapsedTime; set => SetProperty(ref _Diode1ElapsedTime, value); }
|
|
public double Diode2ElapsedTime { get => _Diode2ElapsedTime; set => SetProperty(ref _Diode2ElapsedTime, value); }
|
|
public double Diode3ElapsedTime { get => _Diode3ElapsedTime; set => SetProperty(ref _Diode3ElapsedTime, value); }
|
|
public double ThgElapsedTime { get => _ThgElapsedTime; set => SetProperty(ref _ThgElapsedTime, value); }
|
|
|
|
private double _SeederDiodeElapsedTime;
|
|
private double _Diode1ElapsedTime;
|
|
private double _Diode2ElapsedTime;
|
|
private double _Diode3ElapsedTime;
|
|
private double _ThgElapsedTime;
|
|
private readonly DispatcherTimer MonitorTimer;
|
|
|
|
public UCCoherentHyperRapidResourceMonitoringViewModel(IAuroraEnvironment aurora, Device laser)
|
|
: base(aurora, laser)
|
|
{
|
|
_SeederDiodeElapsedTime = 0.0;
|
|
_Diode1ElapsedTime = 0.0;
|
|
_Diode2ElapsedTime = 0.0;
|
|
_Diode3ElapsedTime = 0.0;
|
|
_ThgElapsedTime = 0.0;
|
|
|
|
UpdateElapsedTimes();
|
|
|
|
MonitorTimer = new DispatcherTimer();
|
|
MonitorTimer.Tick += OnMonitoring;
|
|
MonitorTimer.Interval = TimeSpan.FromMilliseconds(1000);
|
|
}
|
|
|
|
private void UpdateElapsedTimes()
|
|
{
|
|
var laser = _Device as HyperRapidLaser;
|
|
|
|
// -- 1. SEED DIODE
|
|
SeederDiodeElapsedTime = laser.GetSeederDiode();
|
|
|
|
// -- 2. AMPLIFIER 1 DIODE
|
|
Diode1ElapsedTime = laser.GetDiodeOperatingHours(1);
|
|
|
|
// -- 3. AMPLIFIER 2 DIODE
|
|
Diode2ElapsedTime = laser.GetDiodeOperatingHours(2);
|
|
|
|
// -- 4. AMPLIFIER 3 DIODE
|
|
Diode3ElapsedTime = laser.GetDiodeOperatingHours(3);
|
|
|
|
// -- 5. THG
|
|
ThgElapsedTime = laser.GetModuleOperatingHours();
|
|
}
|
|
|
|
protected override void VisibleChanged(object obj)
|
|
{
|
|
bool visible = (bool)obj;
|
|
if (visible) {
|
|
MonitorTimer.Start();
|
|
} else {
|
|
MonitorTimer.Stop();
|
|
}
|
|
}
|
|
|
|
private void OnMonitoring(object sender, EventArgs e)
|
|
{
|
|
if (!_Device.IsActivated) {
|
|
return;
|
|
}
|
|
|
|
UpdateElapsedTimes();
|
|
}
|
|
}
|
|
}
|