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; //} } }