From f52f72812a4ca3f95a768a1bc9fba1d9dfd42ee6 Mon Sep 17 00:00:00 2001 From: choieigun Date: Mon, 16 Mar 2026 21:54:28 +0900 Subject: [PATCH] =?UTF-8?q?Auto=20Run=20=EC=A7=84=ED=96=89=20=EC=A0=84,=20?= =?UTF-8?q?Recipe=20View=20Enable/Disable=20=EA=B4=80=EB=A0=A8=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Machines/ILSOS_CCW_H52A/EquipmentSetup.cs | 40 +++++ .../Views/Main/UCMainAutoRunViewModel.cs | 20 --- .../LASA/GUI/Dialog/WeldingParamDlg.cs | 166 +++++++++--------- 3 files changed, 123 insertions(+), 103 deletions(-) diff --git a/Machines/ILSOS_CCW_H52A/EquipmentSetup.cs b/Machines/ILSOS_CCW_H52A/EquipmentSetup.cs index f1b6cbc..0a7fcb3 100644 --- a/Machines/ILSOS_CCW_H52A/EquipmentSetup.cs +++ b/Machines/ILSOS_CCW_H52A/EquipmentSetup.cs @@ -39,6 +39,9 @@ using WeldingCommon.Utils; using WeldingCommon.Views; using WeldingCommon.Vision.Factory; using static WeldingCommon.Vision.Factory.VisionFactory; +using System.Reactive.Linq; +using System; +using System.Windows; namespace ILSOS_CCW_H52A { @@ -79,6 +82,43 @@ namespace ILSOS_CCW_H52A AuroraEnv.SequenceEntry[SequenceIds.AlarmMonitoring].Start(); AuroraEnv.GetProcessManager().Init(AuroraEnv); + + // 최초에 permission에 대한 값을 적용해줌 + OnPermissionChanged(null); + AuroraEnv.EventObservable.AsObservable(AuroraSysEvent.SYS_PERMISSION_CHANGED) + .Subscribe(OnPermissionChanged); + + var seq = AuroraEnv.SequenceEntry[SequenceIds.SeqAutoRunCCWH52A] as ISequence; + seq.RunStateChanged += AutoRunSeq_RunStateChanged; + } + private void AutoRunSeq_RunStateChanged(object sender, (string sequenceId, SequenceRunState state) e) + { + //AutoRun 상황에서 Recipe Save Lock + AuroraEnv.RecipeManager.SaveLock(CommonRecipeIds.ScannerObjectTeaching, e.state != SequenceRunState.Idle); + //AutoRun 상황에서 Reicpe 화면 수정할 수 없도록 함 + Application.Current.Dispatcher.Invoke(() => { + // Running으로 변경되면 Active된 레시피로 변경하도록 함 + if (e.state == SequenceRunState.Running) { + WeldingRecipeManager.OnActiveReloaded(); + } + + _UCRecipe.IsEnabled = e.state != SequenceRunState.Running; + }); + } + private void OnPermissionChanged(EventMessage message) + { + bool LoginState = ApplicationExt.PermissionLevel <= (ushort)PermissionLevel.LEVEL3; + if (LoginState == false) { + // Login 권한이 없어지면 Active된 레시피로 변경하도록 함 + Application.Current.Dispatcher.Invoke(() => { + WeldingRecipeManager.OnActiveReloaded(); + }); + } + + //LogOut 상황에서 Recipe Save Lock + AuroraEnv.RecipeManager.SaveLock(CommonRecipeIds.ScannerObjectTeaching, !LoginState); + //LogOut 상황에서 Reicpe 화면 수정할 수 없도록 함 + Application.Current.Dispatcher.Invoke(() => { _UCRecipe.IsEnabled = LoginState; }); } // For Selection LaserDevice diff --git a/Machines/ILSOS_CCW_H52A/Views/Main/UCMainAutoRunViewModel.cs b/Machines/ILSOS_CCW_H52A/Views/Main/UCMainAutoRunViewModel.cs index d5295b1..f83df86 100644 --- a/Machines/ILSOS_CCW_H52A/Views/Main/UCMainAutoRunViewModel.cs +++ b/Machines/ILSOS_CCW_H52A/Views/Main/UCMainAutoRunViewModel.cs @@ -78,7 +78,6 @@ namespace ILSOS_CCW_H52A.Views _Plc = _Aurora.DeviceManager[CommonDeviceIds.PLCDevice] as PLCControllerCCWH52A; _SeqAutoRun = _Aurora.SequenceEntry[SequenceIds.SeqAutoRunCCWH52A]; - _SeqAutoRun.RunStateChanged += AutoRunSeq_RunStateChanged; InitVariable(); @@ -253,24 +252,5 @@ namespace ILSOS_CCW_H52A.Views return; } } - - private void AutoRunSeq_RunStateChanged(object sender, (string sequenceId, SequenceRunState state) e) - { - //AutoRun 상황에서 Recipe Save Lock - _RecipeManager.SaveLock( - CommonRecipeIds.ScannerObjectTeaching, - e.state != SequenceRunState.Idle); - //AutoRun 상황에서 Reicpe 화면 수정할 수 없도록 함 - if (e.state == SequenceRunState.Running) { - Application.Current.Dispatcher.InvokeAsync(() => { - _UCRecipe.IsEnabled = false; - }); - } else { - Application.Current.Dispatcher.InvokeAsync(() => { - _UCRecipe.IsEnabled = true; - }); - } - } - } } diff --git a/WeldingComponents/LASA/GUI/Dialog/WeldingParamDlg.cs b/WeldingComponents/LASA/GUI/Dialog/WeldingParamDlg.cs index fcd6aab..3a46490 100644 --- a/WeldingComponents/LASA/GUI/Dialog/WeldingParamDlg.cs +++ b/WeldingComponents/LASA/GUI/Dialog/WeldingParamDlg.cs @@ -86,103 +86,103 @@ namespace CoreUnit.Scanner.UserControl.Canvas.Dialog btnOk.Enabled = false; btnCancel.Enabled = true; } - if(_MachineName == eMachineName.H52A_CCW || _MachineName == eMachineName.H52A_ACW || _MachineName == eMachineName.CIT) { - label58.Text = "(0~4000)"; - label31.Text = "(0~4000)"; - label32.Text = "(0~10000)"; - label17.Text = "(1~8000)"; + //if(_MachineName == eMachineName.H52A_CCW || _MachineName == eMachineName.H52A_ACW || _MachineName == eMachineName.CIT) { + label58.Text = _MachineName == eMachineName.H52A_CCW ? "(0~1500)" : "(0~4000)"; + label31.Text = _MachineName == eMachineName.H52A_CCW ? "(0~2500)" : "(0~4000)"; + label32.Text = "(0~10000)"; + label17.Text = "(1~8000)"; - label22.Enabled = false; - tbLaserPower2.Enabled = false; - label29.Enabled = false; - label31.Enabled = false; + label22.Enabled = _MachineName == eMachineName.H52A_CCW; + tbLaserPower2.Enabled = _MachineName == eMachineName.H52A_CCW; + label29.Enabled = _MachineName == eMachineName.H52A_CCW; + label31.Enabled = _MachineName == eMachineName.H52A_CCW; - // Ramping Start, End 구분 후 사용한다. Power 2번은 여전히 막아둠 - //label68.Enabled = false; - //label69.Enabled = false; - //label71.Enabled = false; - //label72.Enabled = false; - //label73.Enabled = false; - //label70.Enabled = false; + // Ramping Start, End 구분 후 사용한다. Power 2번은 여전히 막아둠 + //label68.Enabled = false; + //label69.Enabled = false; + //label71.Enabled = false; + //label72.Enabled = false; + //label73.Enabled = false; + //label70.Enabled = false; - nudRampingStartPower2.Enabled = false; + nudRampingStartPower2.Enabled = false; - nudRampingEndPower2.Enabled = false; + nudRampingEndPower2.Enabled = false; - #region Permission Checking - // Engineer 이상 등급만 사용 가능 - bool PermissionCheck = ApplicationExt.PermissionLevel <= (ushort)Aurora.Api.PermissionLevel.LEVEL3; - label15.Enabled = PermissionCheck; - label14.Enabled = PermissionCheck; - label13.Enabled = PermissionCheck; - label12.Enabled = PermissionCheck; - label11.Enabled = PermissionCheck; - label10.Enabled = PermissionCheck; - label57.Enabled = PermissionCheck; - label63.Enabled = PermissionCheck; - label46.Enabled = PermissionCheck; - label36.Enabled = PermissionCheck; - label45.Enabled = PermissionCheck; - label41.Enabled = PermissionCheck; - nudRampingStartDist.Enabled = PermissionCheck; - tbMarkDelay.Enabled = PermissionCheck; - label62.Enabled = PermissionCheck; + #region Permission Checking + // Engineer 이상 등급만 사용 가능 + bool PermissionCheck = ApplicationExt.PermissionLevel <= (ushort)Aurora.Api.PermissionLevel.LEVEL3; + label15.Enabled = PermissionCheck; + label14.Enabled = PermissionCheck; + label13.Enabled = PermissionCheck; + label12.Enabled = PermissionCheck; + label11.Enabled = PermissionCheck; + label10.Enabled = PermissionCheck; + label57.Enabled = PermissionCheck; + label63.Enabled = PermissionCheck; + label46.Enabled = PermissionCheck; + label36.Enabled = PermissionCheck; + label45.Enabled = PermissionCheck; + label41.Enabled = PermissionCheck; + nudRampingStartDist.Enabled = PermissionCheck; + tbMarkDelay.Enabled = PermissionCheck; + label62.Enabled = PermissionCheck; - //label22.Enabled = PermissionCheck; - //tbLaserPower2.Enabled = PermissionCheck; - //label29.Enabled = PermissionCheck; - //label31.Enabled = PermissionCheck; + //label22.Enabled = PermissionCheck; + //tbLaserPower2.Enabled = PermissionCheck; + //label29.Enabled = PermissionCheck; + //label31.Enabled = PermissionCheck; - label16.Enabled = PermissionCheck; - label17.Enabled = PermissionCheck; - label18.Enabled = PermissionCheck; - label23.Enabled = PermissionCheck; - label24.Enabled = PermissionCheck; - label25.Enabled = PermissionCheck; - label58.Enabled = PermissionCheck; - label42.Enabled = PermissionCheck; - label35.Enabled = PermissionCheck; - label34.Enabled = PermissionCheck; - label51.Enabled = PermissionCheck; - nudRampingEndDist.Enabled = PermissionCheck; + label16.Enabled = PermissionCheck; + label17.Enabled = PermissionCheck; + label18.Enabled = PermissionCheck; + label23.Enabled = PermissionCheck; + label24.Enabled = PermissionCheck; + label25.Enabled = PermissionCheck; + label58.Enabled = PermissionCheck; + label42.Enabled = PermissionCheck; + label35.Enabled = PermissionCheck; + label34.Enabled = PermissionCheck; + label51.Enabled = PermissionCheck; + nudRampingEndDist.Enabled = PermissionCheck; - tbDrawSpeed.Enabled = PermissionCheck; - tbJumpSpeed.Enabled = PermissionCheck; - tbLaserOnDelay.Enabled = PermissionCheck; - tbLaserOffDelay.Enabled = PermissionCheck; - tbJumpDelay.Enabled = PermissionCheck; - tbPolygonDelay.Enabled = PermissionCheck; - tbLaserPower1.Enabled = PermissionCheck; - nudRampingStartPower1.Enabled = PermissionCheck; - nudRampingEndPower1.Enabled = PermissionCheck; + tbDrawSpeed.Enabled = PermissionCheck; + tbJumpSpeed.Enabled = PermissionCheck; + tbLaserOnDelay.Enabled = PermissionCheck; + tbLaserOffDelay.Enabled = PermissionCheck; + tbJumpDelay.Enabled = PermissionCheck; + tbPolygonDelay.Enabled = PermissionCheck; + tbLaserPower1.Enabled = PermissionCheck; + nudRampingStartPower1.Enabled = PermissionCheck; + nudRampingEndPower1.Enabled = PermissionCheck; - nudRampingStartAPower1.Enabled = PermissionCheck; - nudRampingStartAPower2.Enabled = PermissionCheck; - nudRampingStartADist.Enabled = PermissionCheck; - label74.Enabled = PermissionCheck; - label77.Enabled = PermissionCheck; - label76.Enabled = PermissionCheck; - label81.Enabled = PermissionCheck; - label75.Enabled = PermissionCheck; - label80.Enabled = PermissionCheck; + nudRampingStartAPower1.Enabled = PermissionCheck; + nudRampingStartAPower2.Enabled = PermissionCheck; + nudRampingStartADist.Enabled = PermissionCheck; + label74.Enabled = PermissionCheck; + label77.Enabled = PermissionCheck; + label76.Enabled = PermissionCheck; + label81.Enabled = PermissionCheck; + label75.Enabled = PermissionCheck; + label80.Enabled = PermissionCheck; - label68.Enabled = PermissionCheck; - label69.Enabled = PermissionCheck; - label71.Enabled = PermissionCheck; - label72.Enabled = PermissionCheck; - //label73.Enabled = PermissionCheck; - //label70.Enabled = PermissionCheck; + label68.Enabled = PermissionCheck; + label69.Enabled = PermissionCheck; + label71.Enabled = PermissionCheck; + label72.Enabled = PermissionCheck; + //label73.Enabled = PermissionCheck; + //label70.Enabled = PermissionCheck; - label79.Enabled = PermissionCheck; - label65.Enabled = PermissionCheck; - label78.Enabled = PermissionCheck; + label79.Enabled = PermissionCheck; + label65.Enabled = PermissionCheck; + label78.Enabled = PermissionCheck; - nudRampingStartPower2.Visible = false; - nudRampingEndPower2.Visible = false; + nudRampingStartPower2.Visible = false; + nudRampingEndPower2.Visible = false; - #endregion - } + #endregion + //} //Welding Paramter 색 지정 //rbParam1.ForeColor = Color.FromName(((WeldingParameterIDEditor.eWeldingColor)1).ToString());