diff --git a/Machines/ILSOS_CCW_H52A/EquipmentSetup.cs b/Machines/ILSOS_CCW_H52A/EquipmentSetup.cs index 5d4afdc..8c548b3 100644 --- a/Machines/ILSOS_CCW_H52A/EquipmentSetup.cs +++ b/Machines/ILSOS_CCW_H52A/EquipmentSetup.cs @@ -91,10 +91,18 @@ namespace ILSOS_CCW_H52A { seq.RunStateChanged += AutoRunSeq_RunStateChanged; } + private const ushort LogOut = 65535; // CMY - 급해서 해두긴 했는데 더 좋은 방향으로 바꾸어야함 private void AutoRunSeq_RunStateChanged(object sender, (string sequenceId, SequenceRunState state) e) { + //AutoRun 상황에서 Recipe Save Lock - AuroraEnv.RecipeManager.SaveLock(CommonRecipeIds.ScannerObjectTeaching, e.state != SequenceRunState.Idle); + bool RecipeLockEnable = e.state != SequenceRunState.Idle; + if (ApplicationExt.PermissionLevel == LogOut) { + AuroraEnv.RecipeManager.SaveLock(CommonRecipeIds.ScannerObjectTeaching, true); + RecipeLockEnable = true; // CMY - LogOut 되어 있으면 무조건 락 + } else + AuroraEnv.RecipeManager.SaveLock(CommonRecipeIds.ScannerObjectTeaching, RecipeLockEnable); + bool AutoRunState = e.state == SequenceRunState.Running; Application.Current.Dispatcher.Invoke(() => { if (AutoRunState) @@ -102,17 +110,17 @@ namespace ILSOS_CCW_H52A { else WeldingRecipeManager.ReloadWeldingRecipe(WeldingRecipeManager.SelectedRecipe.name); - _UCRecipe.IsEnabled = e.state != SequenceRunState.Running; + if (RecipeLockEnable == false || e.state == SequenceRunState.Running) { + _UCRecipe.IsEnabled = e.state != SequenceRunState.Running; // CMY - Recipe Lock을 풀 조건이 아니면 Enable은 건드리지 않는다. + } - }); - - Application.Current.Dispatcher.Invoke(() => { - if (AutoRunState) + if (RecipeLockEnable) Log.E($"AutoRun Start. Recipe Lock Enable True"); else Log.E("AutoRun End. Recipe Lock Enable False"); }); } + private void OnPermissionChanged(EventMessage message) { bool permissionOn = ApplicationExt.PermissionLevel <= (ushort)PermissionLevel.LEVEL3;