diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2018-10-24 09:58:14 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2018-10-24 09:58:14 +0300 |
| commit | 63fec02910da55db999402121559e20d9bc2ab56 (patch) | |
| tree | decc3dacd47b42a6fdf3efaa9aceb544e388ed0e /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs | |
| parent | 8e9c53625339326ef5477c4a9222ffbbf01b5d50 (diff) | |
| parent | 0f2a4cf2802adc0dc177656dc1f27967bb436a9f (diff) | |
| download | Tango-63fec02910da55db999402121559e20d9bc2ab56.tar.gz Tango-63fec02910da55db999402121559e20d9bc2ab56.zip | |
merge
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs | 81 |
1 files changed, 79 insertions, 2 deletions
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 46d745139..a02e09e9a 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 @@ -277,6 +277,10 @@ namespace Tango.MachineStudio.Technician.ViewModels /// </value> public RelayCommand ImportProjectTabsCommand { get; set; } + /// <summary> + /// Gets or sets the upload partial hardware configuration command. + /// </summary> + public RelayCommand UploadPartialHardwareConfigurationCommand { get; set; } #endregion #region Constructors @@ -351,6 +355,7 @@ namespace Tango.MachineStudio.Technician.ViewModels NewProjectCommand = new RelayCommand(CreateNewProject); RenameTabCommand = new RelayCommand(RenameTab); ImportProjectTabsCommand = new RelayCommand(ImportProjectTabs); + UploadPartialHardwareConfigurationCommand = new RelayCommand(UploadPartialHardwareConfiguration); } #endregion @@ -1257,7 +1262,7 @@ namespace Tango.MachineStudio.Technician.ViewModels MotorType = (PMR.Hardware.HardwareMotorType)item.HardwareMotorType.Code, }); } - else if (action == MotorActionType.HomingStarted) + else if (action == MotorActionType.HomingForwardStarted || action == MotorActionType.HomingBackwardStarted) { item.HomingProgress = 0; item.IsHoming = true; @@ -1267,6 +1272,7 @@ namespace Tango.MachineStudio.Technician.ViewModels { MotorType = (PMR.Hardware.HardwareMotorType)item.HardwareMotorType.Code, Speed = item.Speed, + Direction = action == MotorActionType.HomingBackwardStarted ? MotorDirection.Backward : MotorDirection.Forward }) .Subscribe((response) => { @@ -1348,7 +1354,7 @@ namespace Tango.MachineStudio.Technician.ViewModels Index = item.TechDispenser.Code, }); } - else if (action == MotorActionType.HomingStarted) + else if (action == MotorActionType.HomingForwardStarted || action == MotorActionType.HomingBackwardStarted) { item.HomingProgress = 0; item.IsHoming = true; @@ -1358,6 +1364,7 @@ namespace Tango.MachineStudio.Technician.ViewModels { Index = item.TechDispenser.Code, Speed = item.Speed, + Direction = action == MotorActionType.HomingBackwardStarted ? MotorDirection.Backward : MotorDirection.Forward }) .Subscribe((response) => { @@ -2278,6 +2285,76 @@ namespace Tango.MachineStudio.Technician.ViewModels } } + private async void UploadPartialHardwareConfiguration() + { + if (MachineOperator != null) + { + if (_notification.ShowQuestion("This will upload only visible elements across all tabs as a hardware configuration package. Are you sure?")) + { + using (_notification.PushTaskItem("Uploading partial hardware configuration...")) + { + try + { + HardwareVersion hw = new HardwareVersion(); + hw.Name = "Partial HW Configuration"; + hw.Version = 1; + + Configuration config = null; + + foreach (var element in Tabs.SelectMany(x => x.Elements).ToList()) + { + var item = element.HostedElement as TechItem; + + if (item is MotorItem) + { + hw.HardwareMotors.Add((item as MotorItem).HardwareMotor); + } + else if (item is DancerItem) + { + hw.HardwareDancers.Add((item as DancerItem).HardwareDancer); + } + else if (item is PidItem) + { + hw.HardwarePidControls.Add((item as PidItem).HardwarePid); + } + else if (item is BlowerItem) + { + hw.HardwareBlowers.Add((item as BlowerItem).HardwareBlower); + } + else if (item is BreakSensorItem) + { + hw.HardwareBreakSensors.Add((item as BreakSensorItem).HardwareBreakSensor); + } + else if (item is SpeedSensorItem) + { + hw.HardwareSpeedSensors.Add((item as SpeedSensorItem).HardwareSpeedSensor); + } + else if (item is WinderItem) + { + hw.HardwareWinders.Add((item as WinderItem).HardwareWinder); + } + } + + await Task.Factory.StartNew(() => + { + using (ObservablesContext db = ObservablesContext.CreateDefault()) + { + config = db.Adapter.GetConfiguration(x => x.Guid == ApplicationManager.Machine.ConfigurationGuid).Clone(); + } + }); + + await MachineOperator.UploadHardwareConfiguration(hw, config); + } + catch (Exception ex) + { + LogManager.Log(ex, "Error uploading partial hardware configuration."); + _notification.ShowError("An error occurred while trying to upload the partial hardware configuration." + Environment.NewLine + ex.Message); + } + } + } + } + } + private async void ResetHardwareConfiguration(bool showMessage = true) { if (MachineOperator != null) |
