From 7fd31b19dc4a836230bed3e4c38f5cc94e5d0a37 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Tue, 13 Feb 2018 17:28:44 +0200 Subject: Implemented Digital In. --- .../ViewModels/MachineTechViewVM.cs | 93 +++++++++++++--------- 1 file changed, 57 insertions(+), 36 deletions(-) (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs') diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs index c886c2345..c6f72be3e 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs @@ -212,17 +212,6 @@ namespace Tango.MachineStudio.Technician.ViewModels } } } - else if (item.GetType() == typeof(DigitalOutItem)) - { - DigitalOutItem digitalOutItem = item as DigitalOutItem; - - var digitalPin = data.DigitalPins.SingleOrDefault(x => x.Port == digitalOutItem.TechIo.Port); - - if (digitalPin != null) - { - digitalOutItem.EffectiveValue = digitalPin.Value; - } - } else if (item.GetType() == typeof(MeterItem)) { MeterItem meterItem = item as MeterItem; @@ -269,6 +258,28 @@ namespace Tango.MachineStudio.Technician.ViewModels } } } + else if (item.GetType() == typeof(DigitalOutItem)) + { + DigitalOutItem digitalOutItem = item as DigitalOutItem; + + var digitalPin = data.DigitalPins.SingleOrDefault(x => x.Port == digitalOutItem.TechIo.Port); + + if (digitalPin != null) + { + digitalOutItem.EffectiveValue = digitalPin.Value; + } + } + else if (item.GetType() == typeof(DigitalInItem)) + { + DigitalInItem digitalInItem = item as DigitalInItem; + + var digitalPin = data.DigitalPins.SingleOrDefault(x => x.Port == digitalInItem.TechIo.Port); + + if (digitalPin != null) + { + digitalInItem.Value = digitalPin.Value; + } + } } } } @@ -358,11 +369,6 @@ namespace Tango.MachineStudio.Technician.ViewModels var editor = CreateElement(bounds, Adapter.TechDispensers.FirstOrDefault()); InitDispenserItem(editor.DispenserItem); } - else if (item is DigitalOutItem) - { - var editor = CreateElement(bounds, Adapter.TechIos.Where(x => x.Type == IOType.DigitalOutput.ToInt32()).FirstOrDefault()); - InitDigitalOutItem(editor.DigitalOutItem); - } else if (item is ThreadMotionItem) { var editor = CreateElement(bounds, null); @@ -373,6 +379,15 @@ namespace Tango.MachineStudio.Technician.ViewModels var editor = CreateElement(bounds, null); InitMotorGroupItem(editor.MotorGroupItem); } + else if (item is DigitalOutItem) + { + var editor = CreateElement(bounds, Adapter.TechIos.Where(x => x.Type == IOType.DigitalOutput.ToInt32()).FirstOrDefault()); + InitDigitalOutItem(editor.DigitalOutItem); + } + else if (item is DigitalInItem) + { + CreateElement(bounds, Adapter.TechIos.Where(x => x.Type == IOType.DigitalInput.ToInt32()).FirstOrDefault()); + } } private Editor CreateElement(Rect bounds, Value value) where Editor : IElementEditor where Tech : TechItem @@ -426,11 +441,6 @@ namespace Tango.MachineStudio.Technician.ViewModels var editor = CreateElement(item); InitDispenserItem(editor.DispenserItem); } - else if (item is DigitalOutItem) - { - var editor = CreateElement(item); - InitDigitalOutItem(editor.DigitalOutItem); - } else if (item is ThreadMotionItem) { var editor = CreateElement(item); @@ -441,6 +451,17 @@ namespace Tango.MachineStudio.Technician.ViewModels var editor = CreateElement(item); InitMotorGroupItem(editor.MotorGroupItem); } + else if (item is DigitalOutItem) + { + (item as DigitalOutItem).TechIo = Adapter.TechIos.FirstOrDefault(x => x.Guid == item.ItemGuid); + var editor = CreateElement(item); + InitDigitalOutItem(editor.DigitalOutItem); + } + else if (item is DigitalInItem) + { + (item as DigitalInItem).TechIo = Adapter.TechIos.FirstOrDefault(x => x.Guid == item.ItemGuid); + CreateElement(item); + } } public void OnElementsRemoved(List elements) @@ -672,21 +693,6 @@ namespace Tango.MachineStudio.Technician.ViewModels }; } - private void InitDigitalOutItem(DigitalOutItem item) - { - item.ValueChanged += async (x, value) => - { - try - { - await MachineOperator.SetDigitalOut(new SetDigitalOutRequest() { Port = item.TechIo.Port, Value = value }); - } - catch (Exception ex) - { - //TODO: Show Exception. - } - }; - } - private void InitSingleGraphitem(SingleGraphItem item, SingleGraphElementEditor editor) { editor.InnerGraph.InnerGraph.MaxPoints = Common.Helpers.GraphsHelper.GetMaxPoints(item.TechMonitor.PointsPerFrame); @@ -815,6 +821,21 @@ namespace Tango.MachineStudio.Technician.ViewModels }; } + private void InitDigitalOutItem(DigitalOutItem item) + { + item.ValueChanged += async (x, value) => + { + try + { + await MachineOperator.SetDigitalOut(new SetDigitalOutRequest() { Port = item.TechIo.Port, Value = value }); + } + catch (Exception ex) + { + //TODO: Show Exception. + } + }; + } + #endregion #region Public Methods -- cgit v1.3.1