aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-05-16 14:35:04 +0300
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-05-16 14:35:04 +0300
commit78395f3cc37b263640ad4d0228b9172ebe0ac0e3 (patch)
treecf7fc569308b1df2236560ef99ac6e3c808bbd1f /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels
parent5dba4e859e2806ce74d806fbd5dda37b7fa628d5 (diff)
downloadTango-78395f3cc37b263640ad4d0228b9172ebe0ac0e3.tar.gz
Tango-78395f3cc37b263640ad4d0228b9172ebe0ac0e3.zip
Implemented new Hardware Speed Sensor !
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.HardwareDesigner/ViewModels/MainViewVM.cs222
1 files changed, 140 insertions, 82 deletions
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 ee5e0e39c..305d7a37f 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
@@ -81,6 +81,20 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels
set { _selectedWinderTypes = value; RaisePropertyChangedAuto(); }
}
+ private SelectedObjectCollection<HardwareSpeedSensorType> _speedSensorTypes;
+ public SelectedObjectCollection<HardwareSpeedSensorType> SpeedSensorTypes
+ {
+ get { return _speedSensorTypes; }
+ set { _speedSensorTypes = value; RaisePropertyChangedAuto(); }
+ }
+
+ private ObservableCollection<HardwareSpeedSensorType> _selectedSpeedSensorTypes;
+ public ObservableCollection<HardwareSpeedSensorType> SelectedSpeedSensorTypes
+ {
+ get { return _selectedSpeedSensorTypes; }
+ set { _selectedSpeedSensorTypes = value; RaisePropertyChangedAuto(); }
+ }
+
private HardwareVersion _selectedVersion;
public HardwareVersion SelectedVersion
{
@@ -209,6 +223,22 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels
SelectedHardwareObject = hardwareObj;
}
}
+ else if (SelectedHardwareObjectType is SelectedObject<HardwareSpeedSensorType>)
+ {
+ var type = (SelectedHardwareObjectType as SelectedObject<HardwareSpeedSensorType>).Data;
+ var hardwareObj = CurrentVersion.HardwareSpeedSensors.SingleOrDefault(x => x.HardwareSpeedSensorType == type);
+
+ if (hardwareObj != null)
+ {
+ SelectedHardwareObject = hardwareObj;
+ }
+ else
+ {
+ hardwareObj = new HardwareSpeedSensor() { HardwareSpeedSensorType = type };
+ CurrentVersion.HardwareSpeedSensors.Add(hardwareObj);
+ SelectedHardwareObject = hardwareObj;
+ }
+ }
}
}
@@ -220,6 +250,7 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels
SelectedDancerTypes = new ObservableCollection<HardwareDancerType>();
SelectedPidControlTypes = new ObservableCollection<HardwarePidControlType>();
SelectedWinderTypes = new ObservableCollection<HardwareWinderType>();
+ SelectedSpeedSensorTypes = new ObservableCollection<HardwareSpeedSensorType>();
}
else
{
@@ -227,12 +258,14 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels
SelectedDancerTypes = version.HardwareDancers.Select(x => x.HardwareDancerType).ToObservableCollection();
SelectedPidControlTypes = version.HardwarePidControls.Select(x => x.HardwarePidControlType).ToObservableCollection();
SelectedWinderTypes = version.HardwareWinders.Select(x => x.HardwareWinderType).ToObservableCollection();
+ SelectedSpeedSensorTypes = version.HardwareSpeedSensors.Select(x => x.HardwareSpeedSensorType).ToObservableCollection();
}
MotorTypes = new SelectedObjectCollection<HardwareMotorType>(Adapter.HardwareMotorTypes, SelectedMotorTypes);
DancerTypes = new SelectedObjectCollection<HardwareDancerType>(Adapter.HardwareDancerTypes, SelectedDancerTypes);
PidControlTypes = new SelectedObjectCollection<HardwarePidControlType>(Adapter.HardwarePidControlTypes, SelectedPidControlTypes);
WinderTypes = new SelectedObjectCollection<HardwareWinderType>(Adapter.HardwareWinderTypes, SelectedWinderTypes);
+ SpeedSensorTypes = new SelectedObjectCollection<HardwareSpeedSensorType>(Adapter.HardwareSpeedSensorTypes, SelectedSpeedSensorTypes);
}
private void OnSelectedVersionChanged()
@@ -280,116 +313,141 @@ namespace Tango.MachineStudio.HardwareDesigner.ViewModels
{
using (_notification.PushTaskItem("Saving hardware version..."))
{
- HardwareVersion realVersion = null;
-
- if (_isNew)
+ await Task.Factory.StartNew(() =>
{
- realVersion = CurrentVersion.Clone();
+ HardwareVersion realVersion = null;
- realVersion.HardwareMotors.ToList().Where(x => !SelectedMotorTypes.Contains(x.HardwareMotorType)).ToList().ForEach(x => realVersion.HardwareMotors.Remove(x));
- realVersion.HardwareDancers.ToList().Where(x => !SelectedDancerTypes.Contains(x.HardwareDancerType)).ToList().ForEach(x => realVersion.HardwareDancers.Remove(x));
- 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));
- }
- else
- {
- realVersion = Adapter.HardwareVersions.SingleOrDefault(x => x.Guid == SelectedVersion.Guid);
+ if (_isNew)
+ {
+ realVersion = CurrentVersion.Clone();
- realVersion.Version = CurrentVersion.Version;
- realVersion.Name = CurrentVersion.Name;
- realVersion.HardwareDancers.ToList().ForEach(x => x.DefferedDelete(Adapter.Context));
- realVersion.HardwareMotors.ToList().ForEach(x => x.DefferedDelete(Adapter.Context));
- realVersion.HardwarePidControls.ToList().ForEach(x => x.DefferedDelete(Adapter.Context));
- realVersion.HardwareWinders.ToList().ForEach(x => x.DefferedDelete(Adapter.Context));
+ realVersion.HardwareMotors.ToList().Where(x => !SelectedMotorTypes.Contains(x.HardwareMotorType)).ToList().ForEach(x => realVersion.HardwareMotors.Remove(x));
+ realVersion.HardwareDancers.ToList().Where(x => !SelectedDancerTypes.Contains(x.HardwareDancerType)).ToList().ForEach(x => realVersion.HardwareDancers.Remove(x));
+ 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));
+ }
+ else
+ {
+ realVersion = Adapter.HardwareVersions.SingleOrDefault(x => x.Guid == SelectedVersion.Guid);
- realVersion.HardwareDancers.Clear();
- realVersion.HardwareMotors.Clear();
- realVersion.HardwarePidControls.Clear();
- realVersion.HardwareWinders.Clear();
+ realVersion.Version = CurrentVersion.Version;
+ realVersion.Name = CurrentVersion.Name;
- foreach (var type in SelectedDancerTypes)
- {
- var item = CurrentVersion.HardwareDancers.SingleOrDefault(x => x.HardwareDancerType == type);
- if (item != null)
- {
- item.HardwareVersionGuid = realVersion.Guid;
- realVersion.HardwareDancers.Add(item);
- }
- else
+ realVersion.HardwareDancers.ToList().ForEach(x => x.DefferedDelete(Adapter.Context));
+ realVersion.HardwareMotors.ToList().ForEach(x => x.DefferedDelete(Adapter.Context));
+ 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.HardwareDancers.Clear();
+ realVersion.HardwareMotors.Clear();
+ realVersion.HardwarePidControls.Clear();
+ realVersion.HardwareWinders.Clear();
+ realVersion.HardwareSpeedSensors.Clear();
+
+ foreach (var type in SelectedDancerTypes)
{
- realVersion.HardwareDancers.Add(new HardwareDancer()
+ var item = CurrentVersion.HardwareDancers.SingleOrDefault(x => x.HardwareDancerType == type);
+ if (item != null)
+ {
+ item.HardwareVersionGuid = realVersion.Guid;
+ realVersion.HardwareDancers.Add(item);
+ }
+ else
{
- HardwareVersionGuid = realVersion.Guid,
- HardwareDancerType = type
- });
+ realVersion.HardwareDancers.Add(new HardwareDancer()
+ {
+ HardwareVersionGuid = realVersion.Guid,
+ HardwareDancerType = type
+ });
+ }
}
- }
- foreach (var type in SelectedMotorTypes)
- {
- var item = CurrentVersion.HardwareMotors.SingleOrDefault(x => x.HardwareMotorType == type);
- if (item != null)
+ foreach (var type in SelectedMotorTypes)
{
- item.HardwareVersionGuid = realVersion.Guid;
- realVersion.HardwareMotors.Add(item);
- }
- else
- {
- realVersion.HardwareMotors.Add(new HardwareMotor()
+ var item = CurrentVersion.HardwareMotors.SingleOrDefault(x => x.HardwareMotorType == type);
+ if (item != null)
+ {
+ item.HardwareVersionGuid = realVersion.Guid;
+ realVersion.HardwareMotors.Add(item);
+ }
+ else
{
- HardwareVersionGuid = realVersion.Guid,
- HardwareMotorType = type
- });
+ realVersion.HardwareMotors.Add(new HardwareMotor()
+ {
+ HardwareVersionGuid = realVersion.Guid,
+ HardwareMotorType = type
+ });
+ }
}
- }
- foreach (var type in SelectedPidControlTypes)
- {
- var item = CurrentVersion.HardwarePidControls.SingleOrDefault(x => x.HardwarePidControlType == type);
- if (item != null)
- {
- item.HardwareVersionGuid = realVersion.Guid;
- realVersion.HardwarePidControls.Add(item);
- }
- else
+ foreach (var type in SelectedPidControlTypes)
{
- realVersion.HardwarePidControls.Add(new HardwarePidControl()
+ var item = CurrentVersion.HardwarePidControls.SingleOrDefault(x => x.HardwarePidControlType == type);
+ if (item != null)
{
- HardwareVersionGuid = realVersion.Guid,
- HardwarePidControlType = type
- });
+ item.HardwareVersionGuid = realVersion.Guid;
+ realVersion.HardwarePidControls.Add(item);
+ }
+ else
+ {
+ realVersion.HardwarePidControls.Add(new HardwarePidControl()
+ {
+ HardwareVersionGuid = realVersion.Guid,
+ HardwarePidControlType = type
+ });
+ }
}
- }
- foreach (var type in SelectedWinderTypes)
- {
- var item = CurrentVersion.HardwareWinders.SingleOrDefault(x => x.HardwareWinderType == type);
- if (item != null)
+ foreach (var type in SelectedWinderTypes)
{
- item.HardwareVersionGuid = realVersion.Guid;
- realVersion.HardwareWinders.Add(item);
+ var item = CurrentVersion.HardwareWinders.SingleOrDefault(x => x.HardwareWinderType == type);
+ if (item != null)
+ {
+ item.HardwareVersionGuid = realVersion.Guid;
+ realVersion.HardwareWinders.Add(item);
+ }
+ else
+ {
+ realVersion.HardwareWinders.Add(new HardwareWinder()
+ {
+ HardwareVersionGuid = realVersion.Guid,
+ HardwareWinderType = type
+ });
+ }
}
- else
+
+ foreach (var type in SelectedSpeedSensorTypes)
{
- realVersion.HardwareWinders.Add(new HardwareWinder()
+ var item = CurrentVersion.HardwareSpeedSensors.SingleOrDefault(x => x.HardwareSpeedSensorType == type);
+ if (item != null)
{
- HardwareVersionGuid = realVersion.Guid,
- HardwareWinderType = type
- });
+ item.HardwareVersionGuid = realVersion.Guid;
+ realVersion.HardwareSpeedSensors.Add(item);
+ }
+ else
+ {
+ realVersion.HardwareSpeedSensors.Add(new HardwareSpeedSensor()
+ {
+ HardwareVersionGuid = realVersion.Guid,
+ HardwareSpeedSensorType = type
+ });
+ }
}
}
- }
- if (_isNew)
- {
- Adapter.Context.HardwareVersions.Add(realVersion);
- }
+ if (_isNew)
+ {
+ Adapter.Context.HardwareVersions.Add(realVersion);
+ }
- await realVersion.SaveAsync(Adapter.Context);
+ realVersion.Save(Adapter.Context);
- SelectedVersion = Adapter.HardwareVersions.SingleOrDefault(x => x.Guid == realVersion.Guid);
+ SelectedVersion = Adapter.HardwareVersions.SingleOrDefault(x => x.Guid == realVersion.Guid);
+ });
}
}
}