diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-10-17 13:00:31 +0300 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-10-17 13:00:31 +0300 |
| commit | 997eee30e7bf9d9a91d8c3c65e2d3206e83a7b2d (patch) | |
| tree | 545a338ca5741c480b07f6203eab452c2971c22b /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs | |
| parent | 41d9ff70aa37ee31fcd99803ba87cb638d3f26f7 (diff) | |
| download | Tango-997eee30e7bf9d9a91d8c3c65e2d3206e83a7b2d.tar.gz Tango-997eee30e7bf9d9a91d8c3c65e2d3206e83a7b2d.zip | |
Implemented partial hw config upload in techboard.
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 | 75 |
1 files changed, 75 insertions, 0 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..b0dac90f1 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 @@ -2278,6 +2283,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) |
