From 6a57fbce8bf9931ecfd03c6e91f2fb25be4e7d9f Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Thu, 23 Aug 2018 10:23:17 +0300 Subject: Implemented new hardware components "Active" on machine operator upload hardware configuration. Improved and tested global exception trapper on async task. Fixed a weird issue on navigation control toAnimation complete's twice. --- .../Tango.Integration/Operation/MachineOperator.cs | 14 ++++++------ .../Tango.Logging/GlobalExceptionTrapper.cs | 5 +++-- .../Tango.SharedUI/Controls/NavigationControl.cs | 25 ++++++++++++++-------- 3 files changed, 26 insertions(+), 18 deletions(-) (limited to 'Software/Visual_Studio') diff --git a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs index 4675c8017..5e942fe36 100644 --- a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs +++ b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs @@ -969,7 +969,7 @@ namespace Tango.Integration.Operation { HardwareConfiguration hardwareConfiguration = new HardwareConfiguration(); - foreach (var dancer in hardwareVersion.HardwareDancers) + foreach (var dancer in hardwareVersion.HardwareDancers.Where(x => x.Active)) { PMR.Hardware.HardwareDancer item = new PMR.Hardware.HardwareDancer(); dancer.MapPrimitivesTo(item); @@ -977,7 +977,7 @@ namespace Tango.Integration.Operation hardwareConfiguration.Dancers.Add(item); } - foreach (var motor in hardwareVersion.HardwareMotors) + foreach (var motor in hardwareVersion.HardwareMotors.Where(x => x.Active)) { PMR.Hardware.HardwareMotor item = new PMR.Hardware.HardwareMotor(); motor.MapPrimitivesTo(item); @@ -985,7 +985,7 @@ namespace Tango.Integration.Operation hardwareConfiguration.Motors.Add(item); } - foreach (var pid in hardwareVersion.HardwarePidControls) + foreach (var pid in hardwareVersion.HardwarePidControls.Where(x => x.Active)) { PMR.Hardware.HardwarePidControl item = new PMR.Hardware.HardwarePidControl(); pid.MapPrimitivesTo(item); @@ -993,7 +993,7 @@ namespace Tango.Integration.Operation hardwareConfiguration.PidControls.Add(item); } - foreach (var winder in hardwareVersion.HardwareWinders) + foreach (var winder in hardwareVersion.HardwareWinders.Where(x => x.Active)) { PMR.Hardware.HardwareWinder item = new PMR.Hardware.HardwareWinder(); winder.MapPrimitivesTo(item); @@ -1001,7 +1001,7 @@ namespace Tango.Integration.Operation hardwareConfiguration.Winders.Add(item); } - foreach (var sensor in hardwareVersion.HardwareSpeedSensors) + foreach (var sensor in hardwareVersion.HardwareSpeedSensors.Where(x => x.Active)) { PMR.Hardware.HardwareSpeedSensor item = new PMR.Hardware.HardwareSpeedSensor(); sensor.MapPrimitivesTo(item); @@ -1009,7 +1009,7 @@ namespace Tango.Integration.Operation hardwareConfiguration.SpeedSensors.Add(item); } - foreach (var blower in hardwareVersion.HardwareBlowers) + foreach (var blower in hardwareVersion.HardwareBlowers.Where(x => x.Active)) { PMR.Hardware.HardwareBlower item = new PMR.Hardware.HardwareBlower(); blower.MapPrimitivesTo(item); @@ -1017,7 +1017,7 @@ namespace Tango.Integration.Operation hardwareConfiguration.Blowers.Add(item); } - foreach (var breakSensor in hardwareVersion.HardwareBreakSensors) + foreach (var breakSensor in hardwareVersion.HardwareBreakSensors.Where(x => x.Active)) { PMR.Hardware.HardwareBreakSensor item = new PMR.Hardware.HardwareBreakSensor(); breakSensor.MapPrimitivesTo(item); diff --git a/Software/Visual_Studio/Tango.Logging/GlobalExceptionTrapper.cs b/Software/Visual_Studio/Tango.Logging/GlobalExceptionTrapper.cs index 5b917992e..5ee714cb6 100644 --- a/Software/Visual_Studio/Tango.Logging/GlobalExceptionTrapper.cs +++ b/Software/Visual_Studio/Tango.Logging/GlobalExceptionTrapper.cs @@ -15,7 +15,7 @@ namespace Tango.Logging /// public class WpfGlobalExceptionTrapper : IGlobalExceptionTrapper { - private DateTime _lastGlobalExceptionTime = DateTime.Now; + private DateTime _lastGlobalExceptionTime = DateTime.Now.AddMinutes(-1); /// /// Occurs when the global exception trapper has detected an unhandled exception. @@ -81,8 +81,9 @@ namespace Tango.Logging /// The error. private bool OnApplicationCrash(Exception exception) { - if (DateTime.Now - _lastGlobalExceptionTime > TimeSpan.FromSeconds(1)) + if (DateTime.Now < _lastGlobalExceptionTime.AddSeconds(1)) { + LogManager.Default.Log(exception, LogCategory.Critical); _lastGlobalExceptionTime = DateTime.Now; return true; } diff --git a/Software/Visual_Studio/Tango.SharedUI/Controls/NavigationControl.cs b/Software/Visual_Studio/Tango.SharedUI/Controls/NavigationControl.cs index c8b6d3afb..d21a562fd 100644 --- a/Software/Visual_Studio/Tango.SharedUI/Controls/NavigationControl.cs +++ b/Software/Visual_Studio/Tango.SharedUI/Controls/NavigationControl.cs @@ -378,21 +378,28 @@ namespace Tango.SharedUI.Controls fromElement.Deactivate(!KeepElementsAttached); }; + bool completed = false; + toAnimation.Completed += (_, __) => { - INavigationView navigationView = toElement.Element as INavigationView; - if (navigationView != null) + if (!completed) { - navigationView.OnNavigated(); - } + completed = true; + + INavigationView navigationView = toElement.Element as INavigationView; + if (navigationView != null) + { + navigationView.OnNavigated(); + } - INavigationViewModel fromVM = fromElement.Element.DataContext as INavigationViewModel; - INavigationViewModel toVM = toElement.Element.DataContext as INavigationViewModel; + INavigationViewModel fromVM = fromElement.Element.DataContext as INavigationViewModel; + INavigationViewModel toVM = toElement.Element.DataContext as INavigationViewModel; - if (fromVM != null && fromVM != toVM) fromVM.OnNavigatedFrom(); - if (toVM != null) toVM.OnNavigatedTo(); + if (fromVM != null && fromVM != toVM) fromVM.OnNavigatedFrom(); + if (toVM != null) toVM.OnNavigatedTo(); - _onCompleted?.Invoke(); + _onCompleted?.Invoke(); + } }; switch (TransitionType) -- cgit v1.3.1