aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs75
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)