LGES-2170-ACW_CCW-Welder/AuroraDevices/AuroraChiller/UCSMCChillerDeviceViewModel.cs
2026-03-30 17:09:29 +09:00

293 lines
16 KiB
C#

using Aurora;
using Aurora.Api.Manager;
using Aurora.View;
using System;
using System.Windows.Input;
using System.Windows.Threading;
namespace AuroraChiller
{
public class UCSMCChillerDeviceViewModel : NotifyPropertyChangedBase
{
private eTemperatureStatus _TemperatureStatus;
public eTemperatureStatus TemperatureStatus { get => _TemperatureStatus; set => SetProperty(ref _TemperatureStatus, value); }
public double CurrentTemp { get => _CurrentTemp; set => SetProperty(ref _CurrentTemp, value); }
private double _CurrentTemp;
public double SettingTemp { get => _SettingTemp; set => SetProperty(ref _SettingTemp, value); }
private double _SettingTemp;
private int _Status;
public int Status { get => _Status; set => SetProperty(ref _Status, value); }
public double ChillerSetTemp { get => _ChillerSetTemp; set => SetProperty(ref _ChillerSetTemp, value); }
private double _ChillerSetTemp;
private bool _IsChillerStatusRun;
public bool IsChillerStatusRun { get => _IsChillerStatusRun; set => SetProperty(ref _IsChillerStatusRun, value); }
private bool _IsChillerStatusHeavyAlarm;
public bool IsChillerStatusHeavyAlarm { get => _IsChillerStatusHeavyAlarm; set => SetProperty(ref _IsChillerStatusHeavyAlarm, value); }
private bool _IsChillerStatusLightAlarm;
public bool IsChillerStatusLightAlarm { get => _IsChillerStatusLightAlarm; set => SetProperty(ref _IsChillerStatusLightAlarm, value); }
//private bool _IsChillerStatusTempReadyCH1;
//public bool IsChillerStatusTempReadyCH1 { get => _IsChillerStatusTempReadyCH1; set => SetProperty(ref _IsChillerStatusTempReadyCH1, value); }
private bool _IsChillerStatusTempReady;
public bool IsChillerStatusTempReady { get => _IsChillerStatusTempReady; set => SetProperty(ref _IsChillerStatusTempReady, value); }
public bool AlarmFlagOne0 { get => _AlarmFlagOne0; set => SetProperty(ref _AlarmFlagOne0, value); }
private bool _AlarmFlagOne0;
public bool AlarmFlagOne1 { get => _AlarmFlagOne1; set => SetProperty(ref _AlarmFlagOne1, value); }
private bool _AlarmFlagOne1;
public bool AlarmFlagOne2 { get => _AlarmFlagOne2; set => SetProperty(ref _AlarmFlagOne2, value); }
private bool _AlarmFlagOne2;
public bool AlarmFlagOne3 { get => _AlarmFlagOne3; set => SetProperty(ref _AlarmFlagOne3, value); }
private bool _AlarmFlagOne3;
public bool AlarmFlagOne4 { get => _AlarmFlagOne4; set => SetProperty(ref _AlarmFlagOne4, value); }
private bool _AlarmFlagOne4;
public bool AlarmFlagOne5 { get => _AlarmFlagOne5; set => SetProperty(ref _AlarmFlagOne5, value); }
private bool _AlarmFlagOne5;
public bool AlarmFlagOne6 { get => _AlarmFlagOne6; set => SetProperty(ref _AlarmFlagOne6, value); }
private bool _AlarmFlagOne6;
public bool AlarmFlagOne7 { get => _AlarmFlagOne7; set => SetProperty(ref _AlarmFlagOne7, value); }
private bool _AlarmFlagOne7;
public bool AlarmFlagOne8 { get => _AlarmFlagOne8; set => SetProperty(ref _AlarmFlagOne8, value); }
private bool _AlarmFlagOne8;
public bool AlarmFlagOne9 { get => _AlarmFlagOne9; set => SetProperty(ref _AlarmFlagOne9, value); }
private bool _AlarmFlagOne9;
public bool AlarmFlagOne10 { get => _AlarmFlagOne10; set => SetProperty(ref _AlarmFlagOne10, value); }
private bool _AlarmFlagOne10;
public bool AlarmFlagOne11 { get => _AlarmFlagOne11; set => SetProperty(ref _AlarmFlagOne11, value); }
private bool _AlarmFlagOne11;
public bool AlarmFlagOne12 { get => _AlarmFlagOne12; set => SetProperty(ref _AlarmFlagOne12, value); }
private bool _AlarmFlagOne12;
public bool AlarmFlagOne14 { get => _AlarmFlagOne14; set => SetProperty(ref _AlarmFlagOne14, value); }
private bool _AlarmFlagOne14;
public bool AlarmFlagOne15 { get => _AlarmFlagOne15; set => SetProperty(ref _AlarmFlagOne15, value); }
private bool _AlarmFlagOne15;
public bool AlarmFlagTwo0 { get => _AlarmFlagTwo0; set => SetProperty(ref _AlarmFlagTwo0, value); }
private bool _AlarmFlagTwo0;
public bool AlarmFlagTwo1 { get => _AlarmFlagTwo1; set => SetProperty(ref _AlarmFlagTwo1, value); }
private bool _AlarmFlagTwo1;
public bool AlarmFlagTwo2 { get => _AlarmFlagTwo2; set => SetProperty(ref _AlarmFlagTwo2, value); }
private bool _AlarmFlagTwo2;
public bool AlarmFlagTwo3 { get => _AlarmFlagTwo3; set => SetProperty(ref _AlarmFlagTwo3, value); }
private bool _AlarmFlagTwo3;
public bool AlarmFlagTwo4 { get => _AlarmFlagTwo4; set => SetProperty(ref _AlarmFlagTwo4, value); }
private bool _AlarmFlagTwo4;
public bool AlarmFlagTwo5 { get => _AlarmFlagTwo5; set => SetProperty(ref _AlarmFlagTwo5, value); }
private bool _AlarmFlagTwo5;
public bool AlarmFlagTwo6 { get => _AlarmFlagTwo6; set => SetProperty(ref _AlarmFlagTwo6, value); }
private bool _AlarmFlagTwo6;
public bool AlarmFlagTwo7 { get => _AlarmFlagTwo7; set => SetProperty(ref _AlarmFlagTwo7, value); }
private bool _AlarmFlagTwo7;
public bool AlarmFlagTwo8 { get => _AlarmFlagTwo8; set => SetProperty(ref _AlarmFlagTwo8, value); }
private bool _AlarmFlagTwo8;
public bool AlarmFlagTwo9 { get => _AlarmFlagTwo9; set => SetProperty(ref _AlarmFlagTwo9, value); }
private bool _AlarmFlagTwo9;
public bool AlarmFlagTwo10 { get => _AlarmFlagTwo10; set => SetProperty(ref _AlarmFlagTwo10, value); }
private bool _AlarmFlagTwo10;
public bool AlarmFlagTwo11 { get => _AlarmFlagTwo11; set => SetProperty(ref _AlarmFlagTwo11, value); }
private bool _AlarmFlagTwo11;
public bool AlarmFlagTwo12 { get => _AlarmFlagTwo12; set => SetProperty(ref _AlarmFlagTwo12, value); }
private bool _AlarmFlagTwo12;
public bool AlarmFlagTwo13 { get => _AlarmFlagTwo13; set => SetProperty(ref _AlarmFlagTwo13, value); }
private bool _AlarmFlagTwo13;
public bool AlarmFlagTwo14 { get => _AlarmFlagTwo14; set => SetProperty(ref _AlarmFlagTwo14, value); }
private bool _AlarmFlagTwo14;
public bool AlarmFlagTwo15 { get => _AlarmFlagTwo15; set => SetProperty(ref _AlarmFlagTwo15, value); }
private bool _AlarmFlagTwo15;
public bool AlarmFlagThree4 { get => _AlarmFlagThree4; set => SetProperty(ref _AlarmFlagThree4, value); }
private bool _AlarmFlagThree4;
public bool AlarmFlagThree5 { get => _AlarmFlagThree5; set => SetProperty(ref _AlarmFlagThree5, value); }
private bool _AlarmFlagThree5;
public bool AlarmFlagThree7 { get => _AlarmFlagThree7; set => SetProperty(ref _AlarmFlagThree7, value); }
private bool _AlarmFlagThree7;
public bool AlarmFlagThree8 { get => _AlarmFlagThree8; set => SetProperty(ref _AlarmFlagThree8, value); }
private bool _AlarmFlagThree8;
public bool AlarmFlagThree9 { get => _AlarmFlagThree9; set => SetProperty(ref _AlarmFlagThree9, value); }
private bool _AlarmFlagThree9;
public bool AlarmFlagThree10 { get => _AlarmFlagThree10; set => SetProperty(ref _AlarmFlagThree10, value); }
private bool _AlarmFlagThree10;
public bool AlarmFlagThree12 { get => _AlarmFlagThree12; set => SetProperty(ref _AlarmFlagThree12, value); }
private bool _AlarmFlagThree12;
public bool AlarmFlagThree14 { get => _AlarmFlagThree14; set => SetProperty(ref _AlarmFlagThree14, value); }
private bool _AlarmFlagThree14;
public bool AlarmFlagFour0 { get => _AlarmFlagFour0; set => SetProperty(ref _AlarmFlagFour0, value); }
private bool _AlarmFlagFour0;
public bool AlarmFlagFour1 { get => _AlarmFlagFour1; set => SetProperty(ref _AlarmFlagFour1, value); }
private bool _AlarmFlagFour1;
public bool AlarmFlagFour2 { get => _AlarmFlagFour2; set => SetProperty(ref _AlarmFlagFour2, value); }
private bool _AlarmFlagFour2;
private readonly IDeviceManager _deviceManager;
private readonly SmcChiller _SCMChiller;
private readonly SmcChiller.Config _Config;
//private string CurrentChannel;
public ICommand CMD_ChannelChanged { get; }
public ICommand CMD_ChillerChangeTemp { get; }
public ICommand CMD_ChillerOn { get; }
public ICommand CMD_ChillerOff { get; }
public DispatcherTimer MonitorTimer { get; }
public ICommand CMD_VisibleChanged { get; }
public UCSMCChillerDeviceViewModel(IAuroraEnvironment aurora, string deviceId)
{
_deviceManager = aurora.DeviceManager;
_SCMChiller = _deviceManager[deviceId] as SmcChiller;
_Config = _deviceManager.GetDeviceConfig(_SCMChiller.DeviceId) as SmcChiller.Config;
CMD_VisibleChanged = new DelegateCommand(VisibleChanged);
CMD_ChillerChangeTemp = new DelegateCommand(ChillerChangeTemp);
CMD_ChillerOn = new DelegateCommand(ChillerOn);
CMD_ChillerOff = new DelegateCommand(ChillerOff);
//CMD_ChannelChanged = new DelegateCommand(ChannelChanged);
MonitorTimer = new DispatcherTimer();
MonitorTimer.Tick += OnMonitoring;
MonitorTimer.Interval = TimeSpan.FromMilliseconds(1000);
IsChillerStatusRun = false;
//CurrentChannel = "CH1";
}
private void OnMonitoring(object sender, EventArgs e)
{
_SCMChiller.UpdateMonitoringItems();
var monitoringItems = _SCMChiller.GetMonitoringItems() as SmcChillerMonitoringItems;
//if (CurrentChannel == "CH1") {
// CurrentTemp = monitoringItems.CurrentTempCH1;
// SettingTemp = monitoringItems.TargetTempCH1;
//} else if (CurrentChannel == "CH2") {
// CurrentTemp = monitoringItems.CurrentTemp;
// SettingTemp = monitoringItems.TargetTemp;
//}
CurrentTemp = monitoringItems.CurrentTemp;
SettingTemp = monitoringItems.TargetTemp;
TemperatureStatus = monitoringItems.TempStatus;
Status = monitoringItems.Status;
IsChillerStatusRun = ((Status & (1 << 0)) > 0) ? true : false;
IsChillerStatusHeavyAlarm = ((Status & (1 << 1)) > 0) ? true : false;
IsChillerStatusLightAlarm = ((Status & (1 << 2)) > 0) ? true : false;
//IsChillerStatusTempReadyCH1 = ((Status & (1 << 4)) > 0) ? true : false;
IsChillerStatusTempReady = ((Status & (1 << 9)) > 0) ? true : false;
//예시로 만들어 둠
//switch (TemperatureStatus)
//{
// case eTemperatureStatus.OK:
// IsChillerStatusRun = true;
// break;
// case eTemperatureStatus.ERROR_HIGH:
// IsChillerStatusHeavyAlarm = true;
// break;
// case eTemperatureStatus.WARNING_HIGH:
// IsChillerStatusLightAlarm = true;
// break;
// default:
// IsChillerStatusRun = false;
// IsChillerStatusHeavyAlarm = false;
// IsChillerStatusLightAlarm = false;
// break;
//}
AlarmFlagOne0 = ((monitoringItems.AlamSt1 & (1 << 0)) > 0) ? true : false;
AlarmFlagOne1 = ((monitoringItems.AlamSt1 & (1 << 1)) > 0) ? true : false;
AlarmFlagOne2 = ((monitoringItems.AlamSt1 & (1 << 2)) > 0) ? true : false;
AlarmFlagOne3 = ((monitoringItems.AlamSt1 & (1 << 3)) > 0) ? true : false;
AlarmFlagOne4 = ((monitoringItems.AlamSt1 & (1 << 4)) > 0) ? true : false;
AlarmFlagOne5 = ((monitoringItems.AlamSt1 & (1 << 5)) > 0) ? true : false;
AlarmFlagOne6 = ((monitoringItems.AlamSt1 & (1 << 6)) > 0) ? true : false;
AlarmFlagOne7 = ((monitoringItems.AlamSt1 & (1 << 7)) > 0) ? true : false;
AlarmFlagOne8 = ((monitoringItems.AlamSt1 & (1 << 8)) > 0) ? true : false;
AlarmFlagOne9 = ((monitoringItems.AlamSt1 & (1 << 9)) > 0) ? true : false;
AlarmFlagOne10 = ((monitoringItems.AlamSt1 & (1 << 10)) > 0) ? true : false;
AlarmFlagOne11 = ((monitoringItems.AlamSt1 & (1 << 11)) > 0) ? true : false;
AlarmFlagOne12 = ((monitoringItems.AlamSt1 & (1 << 12)) > 0) ? true : false;
AlarmFlagOne14 = ((monitoringItems.AlamSt1 & (1 << 14)) > 0) ? true : false;
AlarmFlagOne15 = ((monitoringItems.AlamSt1 & (1 << 15)) > 0) ? true : false;
AlarmFlagTwo0 = ((monitoringItems.AlamSt2 & (1 << 0)) > 0) ? true : false;
AlarmFlagTwo1 = ((monitoringItems.AlamSt2 & (1 << 1)) > 0) ? true : false;
AlarmFlagTwo2 = ((monitoringItems.AlamSt2 & (1 << 2)) > 0) ? true : false;
AlarmFlagTwo3 = ((monitoringItems.AlamSt2 & (1 << 3)) > 0) ? true : false;
AlarmFlagTwo4 = ((monitoringItems.AlamSt2 & (1 << 4)) > 0) ? true : false;
AlarmFlagTwo5 = ((monitoringItems.AlamSt2 & (1 << 5)) > 0) ? true : false;
AlarmFlagTwo6 = ((monitoringItems.AlamSt2 & (1 << 6)) > 0) ? true : false;
AlarmFlagTwo7 = ((monitoringItems.AlamSt2 & (1 << 7)) > 0) ? true : false;
AlarmFlagTwo8 = ((monitoringItems.AlamSt2 & (1 << 8)) > 0) ? true : false;
AlarmFlagTwo9 = ((monitoringItems.AlamSt2 & (1 << 9)) > 0) ? true : false;
AlarmFlagTwo10 = ((monitoringItems.AlamSt2 & (1 << 10)) > 0) ? true : false;
AlarmFlagTwo11 = ((monitoringItems.AlamSt2 & (1 << 11)) > 0) ? true : false;
AlarmFlagTwo12 = ((monitoringItems.AlamSt2 & (1 << 12)) > 0) ? true : false;
AlarmFlagTwo13 = ((monitoringItems.AlamSt2 & (1 << 13)) > 0) ? true : false;
AlarmFlagTwo14 = ((monitoringItems.AlamSt2 & (1 << 14)) > 0) ? true : false;
AlarmFlagTwo15 = ((monitoringItems.AlamSt2 & (1 << 15)) > 0) ? true : false;
AlarmFlagThree4 = ((monitoringItems.AlamSt3 & (1 << 4)) > 0) ? true : false;
AlarmFlagThree5 = ((monitoringItems.AlamSt3 & (1 << 5)) > 0) ? true : false;
AlarmFlagThree7 = ((monitoringItems.AlamSt3 & (1 << 7)) > 0) ? true : false;
AlarmFlagThree8 = ((monitoringItems.AlamSt3 & (1 << 8)) > 0) ? true : false;
AlarmFlagThree9 = ((monitoringItems.AlamSt3 & (1 << 9)) > 0) ? true : false;
AlarmFlagThree10 = ((monitoringItems.AlamSt3 & (1 << 10)) > 0) ? true : false;
AlarmFlagThree12 = ((monitoringItems.AlamSt3 & (1 << 12)) > 0) ? true : false;
AlarmFlagThree14 = ((monitoringItems.AlamSt3 & (1 << 14)) > 0) ? true : false;
AlarmFlagFour0 = ((monitoringItems.AlamSt4 & (1 << 0)) > 0) ? true : false;
AlarmFlagFour1 = ((monitoringItems.AlamSt4 & (1 << 1)) > 0) ? true : false;
AlarmFlagFour2 = ((monitoringItems.AlamSt4 & (1 << 2)) > 0) ? true : false;
//IsChillerErrorAirExhaustFanStopPage = ((monitoringItems.AlamSt4 & (1 << 0)) > 0) ? true : false;
}
private void VisibleChanged(object obj)
{
bool visible = (bool)obj;
if (visible) {
MonitorTimer.Start();
} else {
MonitorTimer.Stop();
}
}
private void ChillerChangeTemp(object obj)
{
//_SCMChiller.SetTargetTemp(CurrentChannel, ChillerSetTemp);
_SCMChiller.SetTargetTemp(ChillerSetTemp);
}
private void ChillerOn(object obj)
{
_SCMChiller.SetRunStart(true);
}
private void ChillerOff(object obj)
{
_SCMChiller.SetRunStart(false);
}
//private void ChannelChanged(object obj)
//{
// CurrentChannel = (string)obj;
// ChillerSetTemp = 0.0;
//}
}
}