aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2018-10-24 09:58:14 +0300
committerShlomo Hecht <shlomo@twine-s.com>2018-10-24 09:58:14 +0300
commit63fec02910da55db999402121559e20d9bc2ab56 (patch)
treedecc3dacd47b42a6fdf3efaa9aceb544e388ed0e /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/ViewModels/MachineTechViewVM.cs
parent8e9c53625339326ef5477c4a9222ffbbf01b5d50 (diff)
parent0f2a4cf2802adc0dc177656dc1f27967bb436a9f (diff)
downloadTango-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.cs81
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)