From df9efa378c7741e325b0de775cf7b33634b9f8b3 Mon Sep 17 00:00:00 2001 From: Roy Ben Shabat Date: Sat, 4 Aug 2018 15:27:45 +0300 Subject: Implemented Blowers, Break Sensors in Machine Versions Module. Removed all unnecessary Observable entities extension methods. --- .../Images/blower.png | Bin 0 -> 1575 bytes .../Images/break.png | Bin 0 -> 1388 bytes .../Tango.MachineStudio.HardwareDesigner.csproj | 8 +- .../ViewModels/MainViewVM.cs | 126 ++++++++++++++++++++- .../Views/MainView.xaml | 76 +++++++++++++ 5 files changed, 207 insertions(+), 3 deletions(-) create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Images/blower.png create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Images/break.png (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner') diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Images/blower.png b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Images/blower.png new file mode 100644 index 000000000..a3797b514 Binary files /dev/null and b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Images/blower.png differ diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Images/break.png b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Images/break.png new file mode 100644 index 000000000..67bd5982e Binary files /dev/null and b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Images/break.png differ diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Tango.MachineStudio.HardwareDesigner.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Tango.MachineStudio.HardwareDesigner.csproj index 270915bd2..13f075684 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Tango.MachineStudio.HardwareDesigner.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Tango.MachineStudio.HardwareDesigner.csproj @@ -166,10 +166,16 @@ + + + + + + - + \ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs index f91badebe..3dd4e62a3 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs @@ -96,6 +96,34 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels set { _selectedSpeedSensorTypes = value; RaisePropertyChangedAuto(); } } + private SelectedObjectCollection _blowerTypes; + public SelectedObjectCollection BlowerTypes + { + get { return _blowerTypes; } + set { _blowerTypes = value; RaisePropertyChangedAuto(); } + } + + private ObservableCollection _selectedBlowerTypes; + public ObservableCollection SelectedBlowerTypes + { + get { return _selectedBlowerTypes; } + set { _selectedBlowerTypes = value; RaisePropertyChangedAuto(); } + } + + private SelectedObjectCollection _breakSensorTypes; + public SelectedObjectCollection BreakSensorTypes + { + get { return _breakSensorTypes; } + set { _breakSensorTypes = value; RaisePropertyChangedAuto(); } + } + + private ObservableCollection _selectedBreakSensorTypes; + public ObservableCollection SelectedBreakSensorTypes + { + get { return _selectedBreakSensorTypes; } + set { _selectedBreakSensorTypes = value; RaisePropertyChangedAuto(); } + } + private HardwareVersion _selectedVersion; public HardwareVersion SelectedVersion { @@ -159,7 +187,7 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels CurrentVersion = new HardwareVersion(); CreateTemplate(CurrentVersion); - CopyParametersCommand = new RelayCommand(CopyParameters,(x) => SelectedVersion != null && SelectedHardwareObjectType != null); + CopyParametersCommand = new RelayCommand(CopyParameters, (x) => SelectedVersion != null && SelectedHardwareObjectType != null); CloneCommand = new RelayCommand(CloneCurrentVersion, () => SelectedVersion != null); } @@ -188,6 +216,14 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels { target = CurrentVersion.HardwareSpeedSensors.SingleOrDefault(x => x.HardwareSpeedSensorType == source); } + else if (source is HardwareBlowerType) + { + target = CurrentVersion.HardwareBlowers.SingleOrDefault(x => x.HardwareBlowerType == source); + } + else if (source is HardwareBreakSensorType) + { + target = CurrentVersion.HardwareBreakSensors.SingleOrDefault(x => x.HardwareBreakSensorType == source); + } target.MapPrimitivesTo(SelectedHardwareObject); } @@ -276,6 +312,38 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels SelectedHardwareObject = hardwareObj; } } + else if (SelectedHardwareObjectType is SelectedObject) + { + var type = (SelectedHardwareObjectType as SelectedObject).Data; + var hardwareObj = CurrentVersion.HardwareBlowers.SingleOrDefault(x => x.HardwareBlowerType == type); + + if (hardwareObj != null) + { + SelectedHardwareObject = hardwareObj; + } + else + { + hardwareObj = new HardwareBlower() { HardwareBlowerType = type }; + CurrentVersion.HardwareBlowers.Add(hardwareObj); + SelectedHardwareObject = hardwareObj; + } + } + else if (SelectedHardwareObjectType is SelectedObject) + { + var type = (SelectedHardwareObjectType as SelectedObject).Data; + var hardwareObj = CurrentVersion.HardwareBreakSensors.SingleOrDefault(x => x.HardwareBreakSensorType == type); + + if (hardwareObj != null) + { + SelectedHardwareObject = hardwareObj; + } + else + { + hardwareObj = new HardwareBreakSensor() { HardwareBreakSensorType = type }; + CurrentVersion.HardwareBreakSensors.Add(hardwareObj); + SelectedHardwareObject = hardwareObj; + } + } } } @@ -288,6 +356,8 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels SelectedPidControlTypes = new ObservableCollection(); SelectedWinderTypes = new ObservableCollection(); SelectedSpeedSensorTypes = new ObservableCollection(); + SelectedBlowerTypes = new ObservableCollection(); + SelectedBreakSensorTypes = new ObservableCollection(); } else { @@ -296,6 +366,8 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels SelectedPidControlTypes = version.HardwarePidControls.Select(x => x.HardwarePidControlType).ToObservableCollection(); SelectedWinderTypes = version.HardwareWinders.Select(x => x.HardwareWinderType).ToObservableCollection(); SelectedSpeedSensorTypes = version.HardwareSpeedSensors.Select(x => x.HardwareSpeedSensorType).ToObservableCollection(); + SelectedBlowerTypes = version.HardwareBlowers.Select(x => x.HardwareBlowerType).ToObservableCollection(); + SelectedBreakSensorTypes = version.HardwareBreakSensors.Select(x => x.HardwareBreakSensorType).ToObservableCollection(); } MotorTypes = new SelectedObjectCollection(Adapter.HardwareMotorTypes, SelectedMotorTypes); @@ -303,6 +375,8 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels PidControlTypes = new SelectedObjectCollection(Adapter.HardwarePidControlTypes, SelectedPidControlTypes); WinderTypes = new SelectedObjectCollection(Adapter.HardwareWinderTypes, SelectedWinderTypes); SpeedSensorTypes = new SelectedObjectCollection(Adapter.HardwareSpeedSensorTypes, SelectedSpeedSensorTypes); + BlowerTypes = new SelectedObjectCollection(Adapter.HardwareBlowerTypes, SelectedBlowerTypes); + BreakSensorTypes = new SelectedObjectCollection(Adapter.HardwareBreakSensorTypes, SelectedBreakSensorTypes); } private void OnSelectedVersionChanged() @@ -363,6 +437,8 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels realVersion.HardwarePidControls.ToList().Where(x => !SelectedPidControlTypes.Contains(x.HardwarePidControlType)).ToList().ForEach(x => realVersion.HardwarePidControls.Remove(x)); realVersion.HardwareWinders.ToList().Where(x => !SelectedWinderTypes.Contains(x.HardwareWinderType)).ToList().ForEach(x => realVersion.HardwareWinders.Remove(x)); realVersion.HardwareSpeedSensors.ToList().Where(x => !SelectedSpeedSensorTypes.Contains(x.HardwareSpeedSensorType)).ToList().ForEach(x => realVersion.HardwareSpeedSensors.Remove(x)); + realVersion.HardwareBlowers.ToList().Where(x => !SelectedBlowerTypes.Contains(x.HardwareBlowerType)).ToList().ForEach(x => realVersion.HardwareBlowers.Remove(x)); + realVersion.HardwareBreakSensors.ToList().Where(x => !SelectedBreakSensorTypes.Contains(x.HardwareBreakSensorType)).ToList().ForEach(x => realVersion.HardwareBreakSensors.Remove(x)); } else { @@ -376,12 +452,16 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels realVersion.HardwarePidControls.ToList().ForEach(x => x.DefferedDelete(Adapter.Context)); realVersion.HardwareWinders.ToList().ForEach(x => x.DefferedDelete(Adapter.Context)); realVersion.HardwareSpeedSensors.ToList().ForEach(x => x.DefferedDelete(Adapter.Context)); + realVersion.HardwareBlowers.ToList().ForEach(x => x.DefferedDelete(Adapter.Context)); + realVersion.HardwareBreakSensors.ToList().ForEach(x => x.DefferedDelete(Adapter.Context)); realVersion.HardwareDancers.Clear(); realVersion.HardwareMotors.Clear(); realVersion.HardwarePidControls.Clear(); realVersion.HardwareWinders.Clear(); realVersion.HardwareSpeedSensors.Clear(); + realVersion.HardwareBlowers.Clear(); + realVersion.HardwareBreakSensors.Clear(); foreach (var type in SelectedDancerTypes) { @@ -472,6 +552,42 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels }); } } + + foreach (var type in SelectedBlowerTypes) + { + var item = CurrentVersion.HardwareBlowers.SingleOrDefault(x => x.HardwareBlowerType == type); + if (item != null) + { + item.HardwareVersionGuid = realVersion.Guid; + realVersion.HardwareBlowers.Add(item); + } + else + { + realVersion.HardwareBlowers.Add(new HardwareBlower() + { + HardwareVersionGuid = realVersion.Guid, + HardwareBlowerType = type + }); + } + } + + foreach (var type in SelectedBreakSensorTypes) + { + var item = CurrentVersion.HardwareBreakSensors.SingleOrDefault(x => x.HardwareBreakSensorType == type); + if (item != null) + { + item.HardwareVersionGuid = realVersion.Guid; + realVersion.HardwareBreakSensors.Add(item); + } + else + { + realVersion.HardwareBreakSensors.Add(new HardwareBreakSensor() + { + HardwareVersionGuid = realVersion.Guid, + HardwareBreakSensorType = type + }); + } + } } @@ -499,7 +615,7 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels { using (_notification.PushTaskItem("Cloning hardware configuration...")) { - await Task.Factory.StartNew(() => + await Task.Factory.StartNew(() => { var realVersion = CurrentVersion.Clone(); realVersion.Name = name; @@ -510,18 +626,24 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels realVersion.HardwarePidControls.ToList().Where(x => !SelectedPidControlTypes.Contains(x.HardwarePidControlType)).ToList().ForEach(x => realVersion.HardwarePidControls.Remove(x)); realVersion.HardwareWinders.ToList().Where(x => !SelectedWinderTypes.Contains(x.HardwareWinderType)).ToList().ForEach(x => realVersion.HardwareWinders.Remove(x)); realVersion.HardwareSpeedSensors.ToList().Where(x => !SelectedSpeedSensorTypes.Contains(x.HardwareSpeedSensorType)).ToList().ForEach(x => realVersion.HardwareSpeedSensors.Remove(x)); + realVersion.HardwareBlowers.ToList().Where(x => !SelectedBlowerTypes.Contains(x.HardwareBlowerType)).ToList().ForEach(x => realVersion.HardwareBlowers.Remove(x)); + realVersion.HardwareBreakSensors.ToList().Where(x => !SelectedBreakSensorTypes.Contains(x.HardwareBreakSensorType)).ToList().ForEach(x => realVersion.HardwareBreakSensors.Remove(x)); realVersion.HardwareMotors.ToList().ForEach(x => x.HardwareVersionGuid = realVersion.Guid); realVersion.HardwareDancers.ToList().ForEach(x => x.HardwareVersionGuid = realVersion.Guid); realVersion.HardwarePidControls.ToList().ForEach(x => x.HardwareVersionGuid = realVersion.Guid); realVersion.HardwareWinders.ToList().ForEach(x => x.HardwareVersionGuid = realVersion.Guid); realVersion.HardwareSpeedSensors.ToList().ForEach(x => x.HardwareVersionGuid = realVersion.Guid); + realVersion.HardwareBlowers.ToList().ForEach(x => x.HardwareVersionGuid = realVersion.Guid); + realVersion.HardwareBreakSensors.ToList().ForEach(x => x.HardwareVersionGuid = realVersion.Guid); realVersion.HardwareMotors.ToList().ForEach(x => x.HardwareVersion = realVersion); realVersion.HardwareDancers.ToList().ForEach(x => x.HardwareVersion = realVersion); realVersion.HardwarePidControls.ToList().ForEach(x => x.HardwareVersion = realVersion); realVersion.HardwareWinders.ToList().ForEach(x => x.HardwareVersion = realVersion); realVersion.HardwareSpeedSensors.ToList().ForEach(x => x.HardwareVersion = realVersion); + realVersion.HardwareBlowers.ToList().ForEach(x => x.HardwareVersion = realVersion); + realVersion.HardwareBreakSensors.ToList().ForEach(x => x.HardwareVersion = realVersion); Adapter.Context.HardwareVersions.Add(realVersion); realVersion.Save(Adapter.Context); diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Views/MainView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Views/MainView.xaml index e22b0e71a..86e0da5b5 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Views/MainView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/Views/MainView.xaml @@ -263,6 +263,82 @@ + + + + BLOWERS + + + + + + + + + + + + + + + + + + BREAK SENSORS + + + + + + + + + + + + + + -- cgit v1.3.1