From e2ae3a8f203d149094aa48ef576f7f0bc241fc8e Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Thu, 26 Jul 2018 14:08:27 +0300 Subject: Fixed several bugs with machine studio. --- .../Tango.MachineStudio.Common/Controls/RealTimeGraphControl.xaml | 2 +- .../Tango.MachineStudio.Common/Controls/RealTimeGraphMultiControl.xaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common') diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphControl.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphControl.xaml index f12a433df..33755f909 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphControl.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphControl.xaml @@ -63,7 +63,7 @@ - + diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphMultiControl.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphMultiControl.xaml index 1e1a5b123..45b4aa9fb 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphMultiControl.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Controls/RealTimeGraphMultiControl.xaml @@ -63,7 +63,7 @@ - + -- cgit v1.3.1 From fb2359a8bba44df4f0731eb0e1ce75d461015bab Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Thu, 26 Jul 2018 16:12:42 +0300 Subject: Machine Studio v2.1.10 --- .../Modules/Tango.MachineStudio.Developer/Properties/AssemblyInfo.cs | 2 +- .../Modules/Tango.MachineStudio.Technician/Properties/AssemblyInfo.cs | 2 +- .../MachineStudio/Tango.MachineStudio.Common/Properties/AssemblyInfo.cs | 2 +- .../Tango.MachineStudio.Publisher/Properties/AssemblyInfo.cs | 2 +- .../MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs | 2 +- Software/Visual_Studio/PPC/Tango.PPC.Common/Properties/AssemblyInfo.cs | 2 +- Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs | 2 +- Software/Visual_Studio/Tango.BL/Properties/AssemblyInfo.cs | 2 +- Software/Visual_Studio/Tango.Emulations/Properties/AssemblyInfo.cs | 2 +- Software/Visual_Studio/Tango.PMR/Properties/AssemblyInfo.cs | 2 +- Software/Visual_Studio/Tango.Protobuf/Properties/AssemblyInfo.cs | 2 +- .../Visual_Studio/Utilities/Tango.ILMerge.UI/Properties/AssemblyInfo.cs | 2 +- .../Utilities/Tango.RemoteRunner.UI/Properties/AssemblyInfo.cs | 2 +- .../Visual_Studio/Utilities/Tango.Stubs.UI/Properties/AssemblyInfo.cs | 2 +- .../Visual_Studio/Utilities/Tango.UITests/Properties/AssemblyInfo.cs | 2 +- 15 files changed, 15 insertions(+), 15 deletions(-) (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common') diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Properties/AssemblyInfo.cs index 87753b6c6..7b0f13657 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Machine Studio Developer Module")] -[assembly: AssemblyVersion("2.0.6.1407")] +[assembly: AssemblyVersion("2.0.7.1608")] [assembly: ComVisible(false)] diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Properties/AssemblyInfo.cs index ed3f8dfb8..15619a3ab 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Machine Studio Technician Module")] -[assembly: AssemblyVersion("2.0.6.1407")] +[assembly: AssemblyVersion("2.0.7.1608")] [assembly: ComVisible(false)] diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Properties/AssemblyInfo.cs index e62d12b87..e641c8bf3 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Machine Studio Common Components")] -[assembly: AssemblyVersion("2.0.11.1411")] +[assembly: AssemblyVersion("2.0.12.1608")] [assembly: ComVisible(false)] [assembly:ThemeInfo( diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/Properties/AssemblyInfo.cs index 404cc4ae4..8dea9cb7b 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/Properties/AssemblyInfo.cs @@ -4,5 +4,5 @@ using System.Runtime.InteropServices; [assembly: System.Windows.ThemeInfo(System.Windows.ResourceDictionaryLocation.None, System.Windows.ResourceDictionaryLocation.SourceAssembly)] [assembly: AssemblyTitle("Tango - Machine Studio Publish Utility")] -[assembly: AssemblyVersion("2.0.2.1411")] +[assembly: AssemblyVersion("2.0.4.1608")] [assembly: ComVisible(false)] \ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs index 5f541f597..0ed9a1eae 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs @@ -4,5 +4,5 @@ using System.Runtime.InteropServices; [assembly: System.Windows.ThemeInfo(System.Windows.ResourceDictionaryLocation.None, System.Windows.ResourceDictionaryLocation.SourceAssembly)] [assembly: AssemblyTitle("Tango - Machine Studio")] -[assembly: AssemblyVersion("2.0.9.18206")] +[assembly: AssemblyVersion("2.1.11.18207")] [assembly: ComVisible(false)] \ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Properties/AssemblyInfo.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Properties/AssemblyInfo.cs index 3f5a630f6..c72734dfe 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Properties/AssemblyInfo.cs @@ -8,7 +8,7 @@ using System.Windows; // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("Tango Panel PC Common Library")] -[assembly: AssemblyVersion("2.0.4.1407")] +[assembly: AssemblyVersion("2.0.6.1608")] [assembly:ThemeInfo( ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs index 8554905d2..1e4318ff4 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs @@ -8,4 +8,4 @@ using System.Windows; // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("Tango Panel PC Application")] -[assembly: AssemblyVersion("2.0.1.1407")] +[assembly: AssemblyVersion("2.0.3.1608")] diff --git a/Software/Visual_Studio/Tango.BL/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.BL/Properties/AssemblyInfo.cs index 03f7c9da5..db222c791 100644 --- a/Software/Visual_Studio/Tango.BL/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.BL/Properties/AssemblyInfo.cs @@ -4,4 +4,4 @@ using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Business logic components")] [assembly: ComVisible(false)] -[assembly: AssemblyVersion("2.0.15.1411")] \ No newline at end of file +[assembly: AssemblyVersion("2.0.16.1608")] \ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Emulations/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.Emulations/Properties/AssemblyInfo.cs index f4385784a..714659401 100644 --- a/Software/Visual_Studio/Tango.Emulations/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.Emulations/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Emulation Components")] -[assembly: AssemblyVersion("2.0.6.1407")] +[assembly: AssemblyVersion("2.0.7.1608")] [assembly: ComVisible(false)] \ No newline at end of file diff --git a/Software/Visual_Studio/Tango.PMR/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.PMR/Properties/AssemblyInfo.cs index 3dedad62c..7f155cd13 100644 --- a/Software/Visual_Studio/Tango.PMR/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.PMR/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Protobuf Message Repository")] -[assembly: AssemblyVersion("2.0.16.1411")] +[assembly: AssemblyVersion("2.0.17.1608")] [assembly: ComVisible(false)] \ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Protobuf/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.Protobuf/Properties/AssemblyInfo.cs index 21be4e283..b34d8addd 100644 --- a/Software/Visual_Studio/Tango.Protobuf/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.Protobuf/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Protobuf Components")] -[assembly: AssemblyVersion("2.0.15.1411")] +[assembly: AssemblyVersion("2.0.16.1608")] [assembly: ComVisible(false)] \ No newline at end of file diff --git a/Software/Visual_Studio/Utilities/Tango.ILMerge.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Utilities/Tango.ILMerge.UI/Properties/AssemblyInfo.cs index e701b6cbf..0958ffa7d 100644 --- a/Software/Visual_Studio/Utilities/Tango.ILMerge.UI/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Utilities/Tango.ILMerge.UI/Properties/AssemblyInfo.cs @@ -44,4 +44,4 @@ using System.Windows; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.0.1.1407")] +[assembly: AssemblyVersion("2.0.2.1608")] diff --git a/Software/Visual_Studio/Utilities/Tango.RemoteRunner.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Utilities/Tango.RemoteRunner.UI/Properties/AssemblyInfo.cs index f166d9b1a..e732e97c6 100644 --- a/Software/Visual_Studio/Utilities/Tango.RemoteRunner.UI/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Utilities/Tango.RemoteRunner.UI/Properties/AssemblyInfo.cs @@ -44,4 +44,4 @@ using System.Windows; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.0.1.1407")] +[assembly: AssemblyVersion("2.0.3.1608")] diff --git a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Properties/AssemblyInfo.cs index e3fc56565..afc6713b9 100644 --- a/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Utilities/Tango.Stubs.UI/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Stubs execution GUI utility")] -[assembly: AssemblyVersion("3.1.1.1407")] +[assembly: AssemblyVersion("3.1.3.1608")] diff --git a/Software/Visual_Studio/Utilities/Tango.UITests/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Utilities/Tango.UITests/Properties/AssemblyInfo.cs index a635cd768..5346a2b05 100644 --- a/Software/Visual_Studio/Utilities/Tango.UITests/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Utilities/Tango.UITests/Properties/AssemblyInfo.cs @@ -51,5 +51,5 @@ using System.Windows; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.1.1407")] +[assembly: AssemblyVersion("1.0.3.1608")] [assembly: AssemblyFileVersion("1.0.0.0")] -- cgit v1.3.1 From 1e3777f0813b2ac26ae0b52e89c171955a949563 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Sun, 29 Jul 2018 09:54:44 +0300 Subject: Moved external bridge classes to ExternalBridge namespace. --- .../ViewModels/MainViewVM.cs | 2 +- .../ViewModels/MainViewVM.cs | 2 +- .../ViewModels/DirectSynchronizationViewVM.cs | 2 +- .../ViewModels/MachineTechViewVM.cs | 2 +- .../Diagnostics/DefaultDiagnosticsFrameProvider.cs | 2 +- .../EventLogging/DefaultEventLogger.cs | 2 +- .../Messages/MachineConnectionChangedMessage.cs | 2 +- .../StudioApplication/IStudioApplicationManager.cs | 2 +- .../DefaultStudioApplicationManager.cs | 2 +- .../Tango.MachineStudio.UI/ViewModelLocator.cs | 2 +- .../ViewModels/MachineConnectionViewVM.cs | 2 +- .../ViewModels/MainViewVM.cs | 2 +- .../Views/ConnectedMachineView.xaml | 2 +- .../Views/MachineConnectionView.xaml | 2 +- .../Views/ReportIssueView.xaml | 2 +- .../Views/ResolvedIssuesView.xaml | 2 +- .../Application/IPPCApplicationManager.cs | 2 +- .../Connection/DefaultMachineProvider.cs | 2 +- .../Diagnostics/DefaultDiagnosticsFrameProvider.cs | 2 +- .../EventLogging/DefaultEventLogger.cs | 2 +- .../PPC/Tango.PPC.UI/ViewModelLocator.cs | 2 +- .../IExternalBridgeClientExtensions.cs | 2 +- .../ExternalBridge/ExternalBridgeScanner.cs | 166 +++++++++++++++++++++ .../ExternalBridge/ExternalBridgeService.cs | 119 +++++++++++++++ .../ExternalBridge/ExternalBridgeTcpClient.cs | 103 +++++++++++++ .../ExternalBridge/ExternalBridgeUsbClient.cs | 114 ++++++++++++++ .../ExternalBridge/IExternalBridgeClient.cs | 30 ++++ .../ExternalBridge/IExternalBridgeSecureClient.cs | 22 +++ .../ExternalBridge/IExternalBridgeService.cs | 21 +++ .../Services/ExternalBridgeScanner.cs | 166 --------------------- .../Services/ExternalBridgeService.cs | 119 --------------- .../Services/ExternalBridgeTcpClient.cs | 103 ------------- .../Services/ExternalBridgeUsbClient.cs | 114 -------------- .../Services/IExternalBridgeClient.cs | 30 ---- .../Services/IExternalBridgeSecureClient.cs | 22 --- .../Services/IExternalBridgeService.cs | 21 --- .../Tango.Integration/Tango.Integration.csproj | 14 +- 37 files changed, 604 insertions(+), 604 deletions(-) create mode 100644 Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeScanner.cs create mode 100644 Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs create mode 100644 Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpClient.cs create mode 100644 Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeUsbClient.cs create mode 100644 Software/Visual_Studio/Tango.Integration/ExternalBridge/IExternalBridgeClient.cs create mode 100644 Software/Visual_Studio/Tango.Integration/ExternalBridge/IExternalBridgeSecureClient.cs create mode 100644 Software/Visual_Studio/Tango.Integration/ExternalBridge/IExternalBridgeService.cs delete mode 100644 Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeScanner.cs delete mode 100644 Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeService.cs delete mode 100644 Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeTcpClient.cs delete mode 100644 Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeUsbClient.cs delete mode 100644 Software/Visual_Studio/Tango.Integration/Services/IExternalBridgeClient.cs delete mode 100644 Software/Visual_Studio/Tango.Integration/Services/IExternalBridgeSecureClient.cs delete mode 100644 Software/Visual_Studio/Tango.Integration/Services/IExternalBridgeService.cs (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common') diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/ViewModels/MainViewVM.cs index 5bd6ff809..9876dca9e 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/ViewModels/MainViewVM.cs @@ -14,7 +14,7 @@ using Tango.Core.Commands; using Tango.Core.Helpers; using Tango.Integration.Diagnostics; using Tango.Integration.Operation; -using Tango.Integration.Services; +using Tango.Integration.ExternalBridge; using Tango.MachineStudio.Common.Diagnostics; using Tango.MachineStudio.Common.EventLogging; using Tango.MachineStudio.Common.Notifications; diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs index 0a033b118..a58757633 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/ViewModels/MainViewVM.cs @@ -10,7 +10,7 @@ using System.Windows.Media; using Tango.Core.Commands; using Tango.BL.Entities; using Tango.Integration.Operation; -using Tango.Integration.Services; +using Tango.Integration.ExternalBridge; using Tango.Logging; using Tango.MachineStudio.Common.Authentication; using Tango.MachineStudio.Common.Controls; diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/DirectSynchronizationViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/DirectSynchronizationViewVM.cs index b2175b46c..a09e698e3 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/DirectSynchronizationViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/ViewModels/DirectSynchronizationViewVM.cs @@ -11,7 +11,7 @@ using System.Threading.Tasks; using Tango.Core.Commands; using Tango.Core.Helpers; using Tango.BL.Entities; -using Tango.Integration.Services; +using Tango.Integration.ExternalBridge; using Tango.MachineStudio.Common.Notifications; using Tango.MachineStudio.Common.StudioApplication; using Tango.MachineStudio.Synchronization.Navigation; 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 0c09850c1..d403223ec 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 @@ -25,7 +25,7 @@ using Tango.MachineStudio.Technician.TechItems; using Tango.PMR.Diagnostics; using Tango.Settings; using Tango.SharedUI; -using Tango.Integration.Services; +using Tango.Integration.ExternalBridge; using Tango.BL.Enumerations; using Tango.BL; using Tango.MachineStudio.Common.EventLogging; diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Diagnostics/DefaultDiagnosticsFrameProvider.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Diagnostics/DefaultDiagnosticsFrameProvider.cs index d34ef4b96..957648536 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Diagnostics/DefaultDiagnosticsFrameProvider.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Diagnostics/DefaultDiagnosticsFrameProvider.cs @@ -5,7 +5,7 @@ using System.Text; using System.Threading.Tasks; using Tango.Core; using Tango.Integration.Operation; -using Tango.Integration.Services; +using Tango.Integration.ExternalBridge; using Tango.MachineStudio.Common.StudioApplication; using Tango.PMR.Diagnostics; diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/EventLogging/DefaultEventLogger.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/EventLogging/DefaultEventLogger.cs index b33b771ae..c5b9c63cb 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/EventLogging/DefaultEventLogger.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/EventLogging/DefaultEventLogger.cs @@ -10,7 +10,7 @@ using Tango.BL; using Tango.BL.Entities; using Tango.BL.Enumerations; using Tango.Core; -using Tango.Integration.Services; +using Tango.Integration.ExternalBridge; using Tango.Logging; using Tango.MachineStudio.Common.Authentication; using Tango.MachineStudio.Common.Diagnostics; diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Messages/MachineConnectionChangedMessage.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Messages/MachineConnectionChangedMessage.cs index 90820ed47..af36f2edf 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Messages/MachineConnectionChangedMessage.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Messages/MachineConnectionChangedMessage.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; -using Tango.Integration.Services; +using Tango.Integration.ExternalBridge; namespace Tango.MachineStudio.Common.Messages { diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs index 00e67ff3b..464f932f6 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs @@ -5,7 +5,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; -using Tango.Integration.Services; +using Tango.Integration.ExternalBridge; namespace Tango.MachineStudio.Common.StudioApplication { diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs index debeccded..d6a832c8a 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs @@ -15,7 +15,7 @@ using Tango.MachineStudio.Common.Modules; using Tango.MachineStudio.Common; using Tango.Settings; using System.Windows; -using Tango.Integration.Services; +using Tango.Integration.ExternalBridge; using Tango.MachineStudio.Common.EventLogging; using Tango.BL.Enumerations; using Tango.Core.DI; diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs index 8a5ce3d8b..2c816eb6c 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModelLocator.cs @@ -1,6 +1,6 @@ using System; using Tango.Core.DI; -using Tango.Integration.Services; +using Tango.Integration.ExternalBridge; using Tango.Logging; using Tango.MachineStudio.Common.Authentication; using Tango.MachineStudio.Common.Diagnostics; diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineConnectionViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineConnectionViewVM.cs index 3cd3fb5f9..60447f37a 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineConnectionViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MachineConnectionViewVM.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.Core.Commands; -using Tango.Integration.Services; +using Tango.Integration.ExternalBridge; using Tango.MachineStudio.Common.Notifications; using Tango.SharedUI; diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs index 278926de9..d209e3f27 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs @@ -13,7 +13,7 @@ using System.Windows.Media; using Tango.BL.Entities; using Tango.Core.Commands; using Tango.Core.DI; -using Tango.Integration.Services; +using Tango.Integration.ExternalBridge; using Tango.Logging; using Tango.MachineStudio.Common; using Tango.MachineStudio.Common.Authentication; diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ConnectedMachineView.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ConnectedMachineView.xaml index 39c42392d..bb8b65f6a 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ConnectedMachineView.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ConnectedMachineView.xaml @@ -4,7 +4,7 @@ xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls" xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" - xmlns:integration="clr-namespace:Tango.Integration.Services;assembly=Tango.Integration" + xmlns:integration="clr-namespace:Tango.Integration.ExternalBridge;assembly=Tango.Integration" xmlns:integ="clr-namespace:Tango.Integration.Operation;assembly=Tango.Integration" xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI" diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MachineConnectionView.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MachineConnectionView.xaml index 6f0a74805..3a8baf7e5 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MachineConnectionView.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/MachineConnectionView.xaml @@ -5,7 +5,7 @@ xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls" xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" - xmlns:integration="clr-namespace:Tango.Integration.Services;assembly=Tango.Integration" + xmlns:integration="clr-namespace:Tango.Integration.ExternalBridge;assembly=Tango.Integration" xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" xmlns:local="clr-namespace:Tango.MachineStudio.UI.Views" mc:Ignorable="d" diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ReportIssueView.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ReportIssueView.xaml index 37cd0b793..2a6228eda 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ReportIssueView.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ReportIssueView.xaml @@ -6,7 +6,7 @@ xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete" - xmlns:integration="clr-namespace:Tango.Integration.Services;assembly=Tango.Integration" + xmlns:integration="clr-namespace:Tango.Integration.ExternalBridge;assembly=Tango.Integration" xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" xmlns:vm="clr-namespace:Tango.MachineStudio.UI.ViewModels" xmlns:tfs="clr-namespace:Tango.TFS;assembly=Tango.TFS" diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ResolvedIssuesView.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ResolvedIssuesView.xaml index 4fb457f87..3b5affbbf 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ResolvedIssuesView.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ResolvedIssuesView.xaml @@ -6,7 +6,7 @@ xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:autoComplete="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete" - xmlns:integration="clr-namespace:Tango.Integration.Services;assembly=Tango.Integration" + xmlns:integration="clr-namespace:Tango.Integration.ExternalBridge;assembly=Tango.Integration" xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" xmlns:vm="clr-namespace:Tango.MachineStudio.UI.ViewModels" xmlns:tfs="clr-namespace:Tango.TFS;assembly=Tango.TFS" diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Application/IPPCApplicationManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Application/IPPCApplicationManager.cs index 1ac70c650..50bceb3e1 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Application/IPPCApplicationManager.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Application/IPPCApplicationManager.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; using System.Windows; using Tango.BL.Entities; using Tango.Integration.Operation; -using Tango.Integration.Services; +using Tango.Integration.ExternalBridge; namespace Tango.PPC.Common.Application { diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs index 160029222..8b0098eb8 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Connection/DefaultMachineProvider.cs @@ -7,7 +7,7 @@ using Tango.BL; using Tango.BL.Entities; using Tango.Core; using Tango.Integration.Operation; -using Tango.Integration.Services; +using Tango.Integration.ExternalBridge; using Tango.PMR.Connection; using Tango.Transport.Adapters; diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Diagnostics/DefaultDiagnosticsFrameProvider.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Diagnostics/DefaultDiagnosticsFrameProvider.cs index 28255820c..bff64feb7 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Diagnostics/DefaultDiagnosticsFrameProvider.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Diagnostics/DefaultDiagnosticsFrameProvider.cs @@ -5,7 +5,7 @@ using System.Text; using System.Threading.Tasks; using Tango.Core; using Tango.Integration.Operation; -using Tango.Integration.Services; +using Tango.Integration.ExternalBridge; using Tango.PMR.Diagnostics; using Tango.PPC.Common.Application; using Tango.PPC.Common.Connection; diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/EventLogging/DefaultEventLogger.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/EventLogging/DefaultEventLogger.cs index da904b74e..d981723be 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/EventLogging/DefaultEventLogger.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/EventLogging/DefaultEventLogger.cs @@ -10,7 +10,7 @@ using Tango.BL; using Tango.BL.Entities; using Tango.BL.Enumerations; using Tango.Core; -using Tango.Integration.Services; +using Tango.Integration.ExternalBridge; using Tango.PMR.Diagnostics; using Tango.Integration.Operation; using Tango.PPC.Common.Application; diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModelLocator.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModelLocator.cs index d396920ab..a56b9bd4c 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModelLocator.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModelLocator.cs @@ -1,7 +1,7 @@ using System; using System.Windows; using Tango.Core.DI; -using Tango.Integration.Services; +using Tango.Integration.ExternalBridge; using Tango.Logging; using Tango.PPC.Common.Application; using Tango.PPC.Common.Authentication; diff --git a/Software/Visual_Studio/Tango.Integration/ExtensionMethods/IExternalBridgeClientExtensions.cs b/Software/Visual_Studio/Tango.Integration/ExtensionMethods/IExternalBridgeClientExtensions.cs index 62a7c1523..3e9546983 100644 --- a/Software/Visual_Studio/Tango.Integration/ExtensionMethods/IExternalBridgeClientExtensions.cs +++ b/Software/Visual_Studio/Tango.Integration/ExtensionMethods/IExternalBridgeClientExtensions.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; -using Tango.Integration.Services; +using Tango.Integration.ExternalBridge; /// /// Contains extension methods. diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeScanner.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeScanner.cs new file mode 100644 index 000000000..f9d103de2 --- /dev/null +++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeScanner.cs @@ -0,0 +1,166 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.IO.Ports; +using System.Linq; +using System.Management; +using System.Net; +using System.Net.NetworkInformation; +using System.Net.Sockets; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Tango.Core; +using Tango.Core.Helpers; +using Tango.Logging; +using Tango.PMR; +using Tango.PMR.Common; +using Tango.PMR.Integration; +using Tango.Settings; +using Tango.Transport.Adapters; + +namespace Tango.Integration.ExternalBridge +{ + /// + /// Scans for available machines on the local area network and physically connected via USB. + /// + /// + public class ExternalBridgeScanner : ExtendedObject + { + private Thread _tcpDiscoveryThread; + private Thread _usbDiscoveryThread; + private UdpClient _server; + private IntegrationSettings _settings; + + private ObservableCollection _availableMachines; + /// + /// Gets the available machines. + /// + public ObservableCollection AvailableMachines + { + get { return _availableMachines; } + private set { _availableMachines = value; RaisePropertyChangedAuto(); } + } + + private bool _isStarted; + /// + /// Gets or sets a value indicating whether this instance is started. + /// + public bool IsStarted + { + get { return _isStarted; } + private set { _isStarted = value; RaisePropertyChangedAuto(); } + } + + /// + /// Initializes a new instance of the class. + /// + public ExternalBridgeScanner() + { + _settings = SettingsManager.Default.GetOrCreate(); + _server = new UdpClient(_settings.ExternalBridgeServiceDiscoveryPort); + AvailableMachines = new ObservableCollection(); + } + + /// + /// Start scanning. (Results will be available through ). + /// + public void Start() + { + if (!IsStarted) + { + LogManager.Log("External bridge scanner started..."); + + IsStarted = true; + + _tcpDiscoveryThread = new Thread(TcpDiscoveryThreadMethod); + _tcpDiscoveryThread.IsBackground = true; + _tcpDiscoveryThread.Start(); + + _usbDiscoveryThread = new Thread(UsbDiscoveryThreadMethod); + _usbDiscoveryThread.IsBackground = true; + _usbDiscoveryThread.Start(); + } + } + + /// + /// Stops this instance. + /// + public void Stop() + { + if (IsStarted) + { + IsStarted = false; + LogManager.Log("External bridge scanner stopped."); + } + } + + /// + /// USB discovery thread method. + /// + private void UsbDiscoveryThreadMethod() + { + while (IsStarted) + { + foreach (var device in Transport.Components.ComPortEnumerator.EnumerateComPorts()) + { + if (device.Description.Contains(_settings.EmbeddedDeviceName) || !_settings.FilterExternalBridgeUsbMachines) + { + if (!AvailableMachines.OfType().ToList().Exists(x => x.ComPort == device.Port)) + { + LogManager.Log("Found a new machine via USB " + device.Description); + ThreadsHelper.InvokeUINow(() => + { + AvailableMachines.Add(new ExternalBridgeUsbClient(device.Port, device.Description, _settings.EmbeddedSerialBaudRate)); + }); + } + } + } + + Thread.Sleep(2000); + } + } + + /// + /// TCP discovery thread method. + /// + private void TcpDiscoveryThreadMethod() + { + while (IsStarted) + { + var ClientEp = new IPEndPoint(IPAddress.Any, 0); + var ClientRequestData = _server.Receive(ref ClientEp); + + ExternalBridgeUdpDiscoveryPacket packet = ExternalBridgeUdpDiscoveryPacket.Parser.ParseFrom(ClientRequestData); + + if (!AvailableMachines.OfType().ToList().Exists(x => x.SerialNumber == packet.SerialNumber)) + { + ExternalBridgeTcpClient newMachine = new ExternalBridgeTcpClient(packet.SerialNumber, ClientEp.Address.ToString()); + + LogManager.Log("Found a new machine via TCP " + newMachine.SerialNumber); + + ThreadsHelper.InvokeUINow(() => + { + AvailableMachines.Add(newMachine); + }); + } + + Thread.Sleep(1000); + } + } + + /// + /// Handles the available machines component state changed event. + /// + /// The sender. + /// The e. + private void Client_StateChanged(object sender, Transport.TransportComponentState e) + { + if (e == Transport.TransportComponentState.Failed || e == Transport.TransportComponentState.Disposed) + { + LogManager.Log("External bridge client failed or disposed. Removing from available machines..."); + AvailableMachines.Remove(sender as IExternalBridgeClient); + } + } + } +} diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs new file mode 100644 index 000000000..8408d33af --- /dev/null +++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs @@ -0,0 +1,119 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Google.Protobuf; +using Tango.BL.Entities; +using Tango.Integration.Operation; +using Tango.PMR; +using Tango.PMR.Common; +using Tango.Transport; +using Tango.Transport.Transporters; +using Tango.PMR.Integration; +using Tango.Transport.Discovery; +using Tango.Transport.Servers; +using Tango.Transport.Adapters; + +namespace Tango.Integration.ExternalBridge +{ + public class ExternalBridgeService : BasicTransporter, IExternalBridgeService + { + private UdpDiscoveryService _discoverySevice; + private TcpServer _tcpServer; + + public IMachineOperator MachineOperator { get; private set; } + + public Machine Machine { get; private set; } + + public bool IsStarted { get; private set; } + + public ExternalBridgeService(IMachineOperator machineOperator, Machine machine) + { + Machine = machine; + MachineOperator = machineOperator; + + _tcpServer = new TcpServer(1984); + _tcpServer.ClientConnected += _tcpServer_ClientConnected; + + _discoverySevice = new UdpDiscoveryService(8888, new ExternalBridgeUdpDiscoveryPacket() + { + SerialNumber = Machine.SerialNumber, + }); + } + + private async void _tcpServer_ClientConnected(object sender, ClientConnectedEventArgs e) + { + Adapter = new TcpTransportAdapter(e.Socket); + await Connect(); + } + + public void Start() + { + if (!IsStarted) + { + _tcpServer.Start(); + _discoverySevice.Start(); + + IsStarted = true; + } + } + + public void Stop() + { + if (IsStarted) + { + _tcpServer.Stop(); + _discoverySevice.Stop(); + + IsStarted = false; + } + } + + protected async override void OnRequestReceived(MessageContainer container) + { + base.OnRequestReceived(container); + + if (container.Type == MessageType.ExternalClientLoginRequest) + { + var request = MessageFactory.ParseTangoMessageFromContainer(container); + + var response = new ExternalClientLoginResponse(); + response.Authenticated = false; + + if (request.Message.Password == "1234") + { + response.Authenticated = true; + response.SerialNumber = Machine.SerialNumber; + } + + await SendResponse(response, container.Token); + } + else + { + MachineOperator.RequestTimeout = TimeSpan.FromSeconds(60); + + if (!container.Continuous) + { + var response = await MachineOperator.SendRequest(container); + await SendResponse(response); + } + else + { + MachineOperator.SendContinuousRequest(container).Subscribe((response) => + { + + SendResponse(response); + + },(ex) => + { + if (ex is ResponseErrorException) + { + SendResponse((ex as ResponseErrorException).Container); + } + }); + } + } + } + } +} diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpClient.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpClient.cs new file mode 100644 index 000000000..a81e64c02 --- /dev/null +++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpClient.cs @@ -0,0 +1,103 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL; +using Tango.BL.Entities; +using Tango.Integration.Operation; +using Tango.PMR.Integration; +using Tango.Settings; +using Tango.Transport.Adapters; +using Tango.Transport.Transporters; + +namespace Tango.Integration.ExternalBridge +{ + /// + /// Represents a secure external bridge TCP client. + /// + /// + /// + public class ExternalBridgeTcpClient : MachineOperator, IExternalBridgeSecureClient + { + private String _serialNumber; + /// + /// Gets the machine serial number. + /// + public String SerialNumber + { + get { return _serialNumber; } + set + { + _serialNumber = value; + RaisePropertyChangedAuto(); + + Machine = ObservablesEntitiesAdapter.Instance.Machines.SingleOrDefault(x => x.SerialNumber == _serialNumber); + } + } + + private String _ipAddress; + /// + /// Gets or sets the machine IP address. + /// + public String IPAddress + { + get { return _ipAddress; } + set { _ipAddress = value; RaisePropertyChangedAuto(); } + } + + /// + /// Gets a value indicating whether this client requires authentication. + /// + public bool RequiresAuthentication => true; + + /// + /// Connects the transport component. + /// + /// + public override async Task Connect() + { + await Disconnect(); + Adapter = new TcpTransportAdapter(IPAddress, SettingsManager.Default.GetOrCreate().ExternalBridgeServicePort); + await base.Connect(); + } + + /// + /// Authenticates with the service using the specified password. + /// + /// The password. + /// + public async Task Authenticate(String password) + { + var response = await SendRequest(new ExternalClientLoginRequest() + { + Password = password + }); + return response.Message.Authenticated; + } + + /// + /// Initializes a new instance of the class. + /// + /// The machine serial number. + /// The machine IP address. + public ExternalBridgeTcpClient(String serialNumber, String ipAddress) + { + SerialNumber = serialNumber; + IPAddress = ipAddress; + UseKeepAlive = true; + EnableDiagnostics = true; + } + + /// + /// Returns a that represents this instance. + /// + /// + /// A that represents this instance. + /// + public override string ToString() + { + return SerialNumber; + } + } +} diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeUsbClient.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeUsbClient.cs new file mode 100644 index 000000000..0e5dca2d0 --- /dev/null +++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeUsbClient.cs @@ -0,0 +1,114 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL; +using Tango.BL.Entities; +using Tango.Integration.Operation; +using Tango.PMR.Integration; +using Tango.Settings; +using Tango.Transport.Adapters; +using Tango.Transport.Transporters; + +namespace Tango.Integration.ExternalBridge +{ + /// + /// Represents an external bridge USB client. + /// + /// + /// This isn't really an external bridge client, but merely a transporter for communicating with a Tango machine embedded device. + /// + /// + /// + public class ExternalBridgeUsbClient : MachineOperator, IExternalBridgeClient + { + private String _serialNumber; + /// + /// Gets the machine serial number. + /// + public String SerialNumber + { + get { return _serialNumber; } + set + { + _serialNumber = value; + RaisePropertyChangedAuto(); + + Machine = ObservablesEntitiesAdapter.Instance.Machines.SingleOrDefault(x => x.SerialNumber == _serialNumber); + RaisePropertyChanged(nameof(Machine)); + } + } + + private String _comPort; + /// + /// Gets or sets the serial COM port. + /// + public String ComPort + { + get { return _comPort; } + set { _comPort = value; RaisePropertyChangedAuto(); } + } + + private UsbSerialBaudRates _baudRate; + /// + /// Gets or sets the baud rate. + /// + public UsbSerialBaudRates BaudRate + { + get { return _baudRate; } + set { _baudRate = value; RaisePropertyChangedAuto(); } + } + + private String _Device; + /// + /// Gets or sets the USB device name. + /// + public String Device + { + get { return _Device; } + set { _Device = value; RaisePropertyChangedAuto(); } + } + + /// + /// Connects the transport component. + /// + /// + public override async Task Connect() + { + await Disconnect(); + Adapter = new UsbTransportAdapter(ComPort) { BaudRate = BaudRate }; + await base.Connect(); + } + + /// + /// Gets a value indicating whether this client requires authentication. + /// + public bool RequiresAuthentication => false; + + /// + /// Initializes a new instance of the class. + /// + /// The COM port. + /// The device. + public ExternalBridgeUsbClient(String comPort, String device,UsbSerialBaudRates baudRate = UsbSerialBaudRates.BR_115200) + { + ComPort = comPort; + Device = device; + BaudRate = baudRate; + UseKeepAlive = false; + EnableDiagnostics = true; + } + + /// + /// Returns a that represents this instance. + /// + /// + /// A that represents this instance. + /// + public override string ToString() + { + return Device; + } + } +} diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/IExternalBridgeClient.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/IExternalBridgeClient.cs new file mode 100644 index 000000000..b1d084cfa --- /dev/null +++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/IExternalBridgeClient.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Sockets; +using System.Text; +using System.Threading.Tasks; +using Tango.BL.Entities; +using Tango.Integration.Operation; +using Tango.Transport; +using Tango.Transport.Transporters; + +namespace Tango.Integration.ExternalBridge +{ + /// + /// Represents a Tango machine external bridge service client. + /// + /// + public interface IExternalBridgeClient : IMachineOperator + { + /// + /// Gets a value indicating whether this client requires authentication. + /// + bool RequiresAuthentication { get; } + + /// + /// Gets or sets the machine serial number. + /// + String SerialNumber { get; set; } + } +} diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/IExternalBridgeSecureClient.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/IExternalBridgeSecureClient.cs new file mode 100644 index 000000000..e109837fb --- /dev/null +++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/IExternalBridgeSecureClient.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.Integration.ExternalBridge +{ + /// + /// Represents a secure external bridge client which requires authentication. + /// + /// + public interface IExternalBridgeSecureClient : IExternalBridgeClient + { + /// + /// Authenticates with the service using the specified password. + /// + /// The password. + /// + Task Authenticate(String password); + } +} diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/IExternalBridgeService.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/IExternalBridgeService.cs new file mode 100644 index 000000000..d8e106ac4 --- /dev/null +++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/IExternalBridgeService.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.BL.Entities; +using Tango.Integration.Operation; +using Tango.Transport; +using Tango.Transport.Transporters; + +namespace Tango.Integration.ExternalBridge +{ + public interface IExternalBridgeService : ITransporter + { + IMachineOperator MachineOperator { get; } + Machine Machine { get; } + bool IsStarted { get; } + void Start(); + void Stop(); + } +} diff --git a/Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeScanner.cs b/Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeScanner.cs deleted file mode 100644 index 8aca73e46..000000000 --- a/Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeScanner.cs +++ /dev/null @@ -1,166 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.IO.Ports; -using System.Linq; -using System.Management; -using System.Net; -using System.Net.NetworkInformation; -using System.Net.Sockets; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using Tango.Core; -using Tango.Core.Helpers; -using Tango.Logging; -using Tango.PMR; -using Tango.PMR.Common; -using Tango.PMR.Integration; -using Tango.Settings; -using Tango.Transport.Adapters; - -namespace Tango.Integration.Services -{ - /// - /// Scans for available machines on the local area network and physically connected via USB. - /// - /// - public class ExternalBridgeScanner : ExtendedObject - { - private Thread _tcpDiscoveryThread; - private Thread _usbDiscoveryThread; - private UdpClient _server; - private IntegrationSettings _settings; - - private ObservableCollection _availableMachines; - /// - /// Gets the available machines. - /// - public ObservableCollection AvailableMachines - { - get { return _availableMachines; } - private set { _availableMachines = value; RaisePropertyChangedAuto(); } - } - - private bool _isStarted; - /// - /// Gets or sets a value indicating whether this instance is started. - /// - public bool IsStarted - { - get { return _isStarted; } - private set { _isStarted = value; RaisePropertyChangedAuto(); } - } - - /// - /// Initializes a new instance of the class. - /// - public ExternalBridgeScanner() - { - _settings = SettingsManager.Default.GetOrCreate(); - _server = new UdpClient(_settings.ExternalBridgeServiceDiscoveryPort); - AvailableMachines = new ObservableCollection(); - } - - /// - /// Start scanning. (Results will be available through ). - /// - public void Start() - { - if (!IsStarted) - { - LogManager.Log("External bridge scanner started..."); - - IsStarted = true; - - _tcpDiscoveryThread = new Thread(TcpDiscoveryThreadMethod); - _tcpDiscoveryThread.IsBackground = true; - _tcpDiscoveryThread.Start(); - - _usbDiscoveryThread = new Thread(UsbDiscoveryThreadMethod); - _usbDiscoveryThread.IsBackground = true; - _usbDiscoveryThread.Start(); - } - } - - /// - /// Stops this instance. - /// - public void Stop() - { - if (IsStarted) - { - IsStarted = false; - LogManager.Log("External bridge scanner stopped."); - } - } - - /// - /// USB discovery thread method. - /// - private void UsbDiscoveryThreadMethod() - { - while (IsStarted) - { - foreach (var device in Transport.Components.ComPortEnumerator.EnumerateComPorts()) - { - if (device.Description.Contains(_settings.EmbeddedDeviceName) || !_settings.FilterExternalBridgeUsbMachines) - { - if (!AvailableMachines.OfType().ToList().Exists(x => x.ComPort == device.Port)) - { - LogManager.Log("Found a new machine via USB " + device.Description); - ThreadsHelper.InvokeUINow(() => - { - AvailableMachines.Add(new ExternalBridgeUsbClient(device.Port, device.Description, _settings.EmbeddedSerialBaudRate)); - }); - } - } - } - - Thread.Sleep(2000); - } - } - - /// - /// TCP discovery thread method. - /// - private void TcpDiscoveryThreadMethod() - { - while (IsStarted) - { - var ClientEp = new IPEndPoint(IPAddress.Any, 0); - var ClientRequestData = _server.Receive(ref ClientEp); - - ExternalBridgeUdpDiscoveryPacket packet = ExternalBridgeUdpDiscoveryPacket.Parser.ParseFrom(ClientRequestData); - - if (!AvailableMachines.OfType().ToList().Exists(x => x.SerialNumber == packet.SerialNumber)) - { - ExternalBridgeTcpClient newMachine = new ExternalBridgeTcpClient(packet.SerialNumber, ClientEp.Address.ToString()); - - LogManager.Log("Found a new machine via TCP " + newMachine.SerialNumber); - - ThreadsHelper.InvokeUINow(() => - { - AvailableMachines.Add(newMachine); - }); - } - - Thread.Sleep(1000); - } - } - - /// - /// Handles the available machines component state changed event. - /// - /// The sender. - /// The e. - private void Client_StateChanged(object sender, Transport.TransportComponentState e) - { - if (e == Transport.TransportComponentState.Failed || e == Transport.TransportComponentState.Disposed) - { - LogManager.Log("External bridge client failed or disposed. Removing from available machines..."); - AvailableMachines.Remove(sender as IExternalBridgeClient); - } - } - } -} diff --git a/Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeService.cs b/Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeService.cs deleted file mode 100644 index 408ec2822..000000000 --- a/Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeService.cs +++ /dev/null @@ -1,119 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Google.Protobuf; -using Tango.BL.Entities; -using Tango.Integration.Operation; -using Tango.PMR; -using Tango.PMR.Common; -using Tango.Transport; -using Tango.Transport.Transporters; -using Tango.PMR.Integration; -using Tango.Transport.Discovery; -using Tango.Transport.Servers; -using Tango.Transport.Adapters; - -namespace Tango.Integration.Services -{ - public class ExternalBridgeService : BasicTransporter, IExternalBridgeService - { - private UdpDiscoveryService _discoverySevice; - private TcpServer _tcpServer; - - public IMachineOperator MachineOperator { get; private set; } - - public Machine Machine { get; private set; } - - public bool IsStarted { get; private set; } - - public ExternalBridgeService(IMachineOperator machineOperator, Machine machine) - { - Machine = machine; - MachineOperator = machineOperator; - - _tcpServer = new TcpServer(1984); - _tcpServer.ClientConnected += _tcpServer_ClientConnected; - - _discoverySevice = new UdpDiscoveryService(8888, new ExternalBridgeUdpDiscoveryPacket() - { - SerialNumber = Machine.SerialNumber, - }); - } - - private async void _tcpServer_ClientConnected(object sender, ClientConnectedEventArgs e) - { - Adapter = new TcpTransportAdapter(e.Socket); - await Connect(); - } - - public void Start() - { - if (!IsStarted) - { - _tcpServer.Start(); - _discoverySevice.Start(); - - IsStarted = true; - } - } - - public void Stop() - { - if (IsStarted) - { - _tcpServer.Stop(); - _discoverySevice.Stop(); - - IsStarted = false; - } - } - - protected async override void OnRequestReceived(MessageContainer container) - { - base.OnRequestReceived(container); - - if (container.Type == MessageType.ExternalClientLoginRequest) - { - var request = MessageFactory.ParseTangoMessageFromContainer(container); - - var response = new ExternalClientLoginResponse(); - response.Authenticated = false; - - if (request.Message.Password == "1234") - { - response.Authenticated = true; - response.SerialNumber = Machine.SerialNumber; - } - - await SendResponse(response, container.Token); - } - else - { - MachineOperator.RequestTimeout = TimeSpan.FromSeconds(60); - - if (!container.Continuous) - { - var response = await MachineOperator.SendRequest(container); - await SendResponse(response); - } - else - { - MachineOperator.SendContinuousRequest(container).Subscribe((response) => - { - - SendResponse(response); - - },(ex) => - { - if (ex is ResponseErrorException) - { - SendResponse((ex as ResponseErrorException).Container); - } - }); - } - } - } - } -} diff --git a/Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeTcpClient.cs b/Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeTcpClient.cs deleted file mode 100644 index 9dc44dbf9..000000000 --- a/Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeTcpClient.cs +++ /dev/null @@ -1,103 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Tango.BL; -using Tango.BL.Entities; -using Tango.Integration.Operation; -using Tango.PMR.Integration; -using Tango.Settings; -using Tango.Transport.Adapters; -using Tango.Transport.Transporters; - -namespace Tango.Integration.Services -{ - /// - /// Represents a secure external bridge TCP client. - /// - /// - /// - public class ExternalBridgeTcpClient : MachineOperator, IExternalBridgeSecureClient - { - private String _serialNumber; - /// - /// Gets the machine serial number. - /// - public String SerialNumber - { - get { return _serialNumber; } - set - { - _serialNumber = value; - RaisePropertyChangedAuto(); - - Machine = ObservablesEntitiesAdapter.Instance.Machines.SingleOrDefault(x => x.SerialNumber == _serialNumber); - } - } - - private String _ipAddress; - /// - /// Gets or sets the machine IP address. - /// - public String IPAddress - { - get { return _ipAddress; } - set { _ipAddress = value; RaisePropertyChangedAuto(); } - } - - /// - /// Gets a value indicating whether this client requires authentication. - /// - public bool RequiresAuthentication => true; - - /// - /// Connects the transport component. - /// - /// - public override async Task Connect() - { - await Disconnect(); - Adapter = new TcpTransportAdapter(IPAddress, SettingsManager.Default.GetOrCreate().ExternalBridgeServicePort); - await base.Connect(); - } - - /// - /// Authenticates with the service using the specified password. - /// - /// The password. - /// - public async Task Authenticate(String password) - { - var response = await SendRequest(new ExternalClientLoginRequest() - { - Password = password - }); - return response.Message.Authenticated; - } - - /// - /// Initializes a new instance of the class. - /// - /// The machine serial number. - /// The machine IP address. - public ExternalBridgeTcpClient(String serialNumber, String ipAddress) - { - SerialNumber = serialNumber; - IPAddress = ipAddress; - UseKeepAlive = true; - EnableDiagnostics = true; - } - - /// - /// Returns a that represents this instance. - /// - /// - /// A that represents this instance. - /// - public override string ToString() - { - return SerialNumber; - } - } -} diff --git a/Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeUsbClient.cs b/Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeUsbClient.cs deleted file mode 100644 index 7a901ccf2..000000000 --- a/Software/Visual_Studio/Tango.Integration/Services/ExternalBridgeUsbClient.cs +++ /dev/null @@ -1,114 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Tango.BL; -using Tango.BL.Entities; -using Tango.Integration.Operation; -using Tango.PMR.Integration; -using Tango.Settings; -using Tango.Transport.Adapters; -using Tango.Transport.Transporters; - -namespace Tango.Integration.Services -{ - /// - /// Represents an external bridge USB client. - /// - /// - /// This isn't really an external bridge client, but merely a transporter for communicating with a Tango machine embedded device. - /// - /// - /// - public class ExternalBridgeUsbClient : MachineOperator, IExternalBridgeClient - { - private String _serialNumber; - /// - /// Gets the machine serial number. - /// - public String SerialNumber - { - get { return _serialNumber; } - set - { - _serialNumber = value; - RaisePropertyChangedAuto(); - - Machine = ObservablesEntitiesAdapter.Instance.Machines.SingleOrDefault(x => x.SerialNumber == _serialNumber); - RaisePropertyChanged(nameof(Machine)); - } - } - - private String _comPort; - /// - /// Gets or sets the serial COM port. - /// - public String ComPort - { - get { return _comPort; } - set { _comPort = value; RaisePropertyChangedAuto(); } - } - - private UsbSerialBaudRates _baudRate; - /// - /// Gets or sets the baud rate. - /// - public UsbSerialBaudRates BaudRate - { - get { return _baudRate; } - set { _baudRate = value; RaisePropertyChangedAuto(); } - } - - private String _Device; - /// - /// Gets or sets the USB device name. - /// - public String Device - { - get { return _Device; } - set { _Device = value; RaisePropertyChangedAuto(); } - } - - /// - /// Connects the transport component. - /// - /// - public override async Task Connect() - { - await Disconnect(); - Adapter = new UsbTransportAdapter(ComPort) { BaudRate = BaudRate }; - await base.Connect(); - } - - /// - /// Gets a value indicating whether this client requires authentication. - /// - public bool RequiresAuthentication => false; - - /// - /// Initializes a new instance of the class. - /// - /// The COM port. - /// The device. - public ExternalBridgeUsbClient(String comPort, String device,UsbSerialBaudRates baudRate = UsbSerialBaudRates.BR_115200) - { - ComPort = comPort; - Device = device; - BaudRate = baudRate; - UseKeepAlive = false; - EnableDiagnostics = true; - } - - /// - /// Returns a that represents this instance. - /// - /// - /// A that represents this instance. - /// - public override string ToString() - { - return Device; - } - } -} diff --git a/Software/Visual_Studio/Tango.Integration/Services/IExternalBridgeClient.cs b/Software/Visual_Studio/Tango.Integration/Services/IExternalBridgeClient.cs deleted file mode 100644 index 00cfdeace..000000000 --- a/Software/Visual_Studio/Tango.Integration/Services/IExternalBridgeClient.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net.Sockets; -using System.Text; -using System.Threading.Tasks; -using Tango.BL.Entities; -using Tango.Integration.Operation; -using Tango.Transport; -using Tango.Transport.Transporters; - -namespace Tango.Integration.Services -{ - /// - /// Represents a Tango machine external bridge service client. - /// - /// - public interface IExternalBridgeClient : IMachineOperator - { - /// - /// Gets a value indicating whether this client requires authentication. - /// - bool RequiresAuthentication { get; } - - /// - /// Gets or sets the machine serial number. - /// - String SerialNumber { get; set; } - } -} diff --git a/Software/Visual_Studio/Tango.Integration/Services/IExternalBridgeSecureClient.cs b/Software/Visual_Studio/Tango.Integration/Services/IExternalBridgeSecureClient.cs deleted file mode 100644 index 56eb1976d..000000000 --- a/Software/Visual_Studio/Tango.Integration/Services/IExternalBridgeSecureClient.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Tango.Integration.Services -{ - /// - /// Represents a secure external bridge client which requires authentication. - /// - /// - public interface IExternalBridgeSecureClient : IExternalBridgeClient - { - /// - /// Authenticates with the service using the specified password. - /// - /// The password. - /// - Task Authenticate(String password); - } -} diff --git a/Software/Visual_Studio/Tango.Integration/Services/IExternalBridgeService.cs b/Software/Visual_Studio/Tango.Integration/Services/IExternalBridgeService.cs deleted file mode 100644 index 66fab6fdc..000000000 --- a/Software/Visual_Studio/Tango.Integration/Services/IExternalBridgeService.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Tango.BL.Entities; -using Tango.Integration.Operation; -using Tango.Transport; -using Tango.Transport.Transporters; - -namespace Tango.Integration.Services -{ - public interface IExternalBridgeService : ITransporter - { - IMachineOperator MachineOperator { get; } - Machine Machine { get; } - bool IsStarted { get; } - void Start(); - void Stop(); - } -} diff --git a/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj b/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj index 9e386c9c2..f5d1c587f 100644 --- a/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj +++ b/Software/Visual_Studio/Tango.Integration/Tango.Integration.csproj @@ -95,14 +95,14 @@ - - - - - + + + + + - - + + -- cgit v1.3.1 From d62b12aab4f521ff287da135b6e66e92629a50dd Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Sun, 29 Jul 2018 10:56:41 +0300 Subject: Added data source in about dialog in machine studio. Added last monitor in machine studio settings. --- Software/DB/Tango.mdf | Bin 75497472 -> 75497472 bytes Software/DB/Tango_log.ldf | Bin 1835008 -> 1835008 bytes .../MachineStudioSettings.cs | 8 + .../Tango.MachineStudio.UI/MainWindow.xaml | 2 +- .../Tango.MachineStudio.UI/MainWindow.xaml.cs | 20 ++- .../DefaultStudioApplicationManager.cs | 114 ++++++++------- .../ViewModels/AboutViewVM.cs | 5 + .../Tango.MachineStudio.UI/Views/AboutView.xaml | 4 +- .../PPC/Modules/Tango.PPC.MachineSettings/App.xaml | 11 ++ .../Images/ppc-module.png | Bin 0 -> 1748 bytes .../MachineSettingsModule.cs | 84 +++++++++++ .../Properties/AssemblyInfo.cs | 20 +++ .../Properties/Resources.Designer.cs | 71 +++++++++ .../Properties/Resources.resx | 117 +++++++++++++++ .../Properties/Settings.Designer.cs | 30 ++++ .../Properties/Settings.settings | 7 + .../Tango.PPC.MachineSettings.csproj | 161 +++++++++++++++++++++ .../Tango.PPC.MachineSettings/ViewModelLocator.cs | 32 ++++ .../ViewModels/MainViewVM.cs | 24 +++ .../Tango.PPC.MachineSettings/Views/MainView.xaml | 14 ++ .../Views/MainView.xaml.cs | 28 ++++ .../Modules/Tango.PPC.MachineSettings/app.config | 61 ++++++++ .../Tango.PPC.MachineSettings/packages.config | 7 + Software/Visual_Studio/Tango.sln | 55 ++++++- 24 files changed, 817 insertions(+), 58 deletions(-) create mode 100644 Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/App.xaml create mode 100644 Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Images/ppc-module.png create mode 100644 Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/MachineSettingsModule.cs create mode 100644 Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Properties/AssemblyInfo.cs create mode 100644 Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Properties/Resources.Designer.cs create mode 100644 Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Properties/Resources.resx create mode 100644 Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Properties/Settings.Designer.cs create mode 100644 Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Properties/Settings.settings create mode 100644 Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Tango.PPC.MachineSettings.csproj create mode 100644 Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModelLocator.cs create mode 100644 Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModels/MainViewVM.cs create mode 100644 Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Views/MainView.xaml create mode 100644 Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Views/MainView.xaml.cs create mode 100644 Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/app.config create mode 100644 Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/packages.config (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common') diff --git a/Software/DB/Tango.mdf b/Software/DB/Tango.mdf index c88505833..163460bb9 100644 Binary files a/Software/DB/Tango.mdf and b/Software/DB/Tango.mdf differ diff --git a/Software/DB/Tango_log.ldf b/Software/DB/Tango_log.ldf index 665a0d93e..44c77937d 100644 Binary files a/Software/DB/Tango_log.ldf and b/Software/DB/Tango_log.ldf differ diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs index b12d9a580..d63e07594 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Windows; using Tango.Logging; using Tango.Settings; @@ -40,13 +41,20 @@ namespace Tango.MachineStudio.Common /// public List LoggingCategories { get; set; } + /// + /// Gets or sets the last bounds. + /// + public Rect LastBounds { get; set; } + /// /// Initializes a new instance of the class. /// public MachineStudioSettings() { + LastBounds = new Rect(); LoggingCategories = new List(); UpdateServiceAddress = "http://twine01/MachineStudioUpdateService/MachineStudioUpdateService.svc"; + } } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/MainWindow.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/MainWindow.xaml index 1dfe4c18f..b8a6cd1c0 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/MainWindow.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/MainWindow.xaml @@ -8,7 +8,7 @@ xmlns:views="clr-namespace:Tango.MachineStudio.UI.Views" xmlns:sharedControls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI" mc:Ignorable="d" - Title="Tango" Height="800" Width="1280" WindowStartupLocation="CenterOwner" WindowState="Maximized" Foreground="#494949" BorderThickness="1" BorderBrush="{StaticResource AccentColorBrush}"> + Title="Tango" Height="800" Width="1280" Foreground="#494949" BorderThickness="1" BorderBrush="{StaticResource AccentColorBrush}"> diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/MainWindow.xaml.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/MainWindow.xaml.cs index 9901d3b80..f0f93a867 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/MainWindow.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/MainWindow.xaml.cs @@ -18,7 +18,9 @@ using System.Windows.Shapes; using Tango.Core.DI; using Tango.Core.Helpers; using Tango.Logging; +using Tango.MachineStudio.Common; using Tango.MachineStudio.Common.StudioApplication; +using Tango.Settings; namespace Tango.MachineStudio.UI { @@ -37,10 +39,20 @@ namespace Tango.MachineStudio.UI try { InitializeComponent(); + + WindowStartupLocation = WindowStartupLocation.Manual; + + var r = SettingsManager.Default.GetOrCreate().LastBounds; + + if (r.Width > 0 && r.Height > 0) + { + Left = r.Left; + } + Instance = this; ThreadsHelper.SetDisptacher(Dispatcher); - this.Closing += MainWindow_Closing; + Closing += MainWindow_Closing; } catch (Exception ex) { @@ -49,6 +61,12 @@ namespace Tango.MachineStudio.UI this.Loaded += MainWindow_Loaded; this.SizeChanged += MainWindow_SizeChanged; + ContentRendered += MainWindow_ContentRendered; + } + + private void MainWindow_ContentRendered(object sender, EventArgs e) + { + WindowState = WindowState.Maximized; } private void MainWindow_SizeChanged(object sender, SizeChangedEventArgs e) diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs index d6a832c8a..c7ac60ace 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/StudioApplication/DefaultStudioApplicationManager.cs @@ -148,76 +148,92 @@ namespace Tango.MachineStudio.UI.StudioApplication IsShuttingDown = true; - await Task.Factory.StartNew(async () => + try { + Rect r = new Rect( + MainWindow.Instance.Left, + MainWindow.Instance.Top, + MainWindow.Instance.Width, + MainWindow.Instance.Height); + + await Task.Factory.StartNew(async () => + { //Do Shutdown Procedures... foreach (var vm in TangoIOC.Default.GetAllInstancesByBase()) - { - try { - var result = await vm.OnShutdownRequest(); - if (!result) + try + { + var result = await vm.OnShutdownRequest(); + if (!result) + { + IsShuttingDown = false; + return; + } + } + catch (Exception ex) { - IsShuttingDown = false; - return; + LogManager.Log(ex, "Error on shutdown request with " + vm.GetType().Name); } } - catch (Exception ex) + + foreach (var vm in TangoIOC.Default.GetAllInstancesByBase()) { - LogManager.Log(ex, "Error on shutdown request with " + vm.GetType().Name); + vm.OnShuttingDown(); } - } - foreach (var vm in TangoIOC.Default.GetAllInstancesByBase()) - { - vm.OnShuttingDown(); - } + SettingsManager.Default.GetOrCreate().LastBounds = r; - try - { - SettingsManager.Default.Save(); - } - catch (Exception ex) - { - LogManager.Log(ex, "Error saving settings."); - } + try + { + SettingsManager.Default.Save(); + } + catch (Exception ex) + { + LogManager.Log(ex, "Error saving settings."); + } - _navigationManager.NavigateTo(NavigationView.ShutdownView); + _navigationManager.NavigateTo(NavigationView.ShutdownView); - Thread.Sleep(1500); + Thread.Sleep(1500); - foreach (var window in _openedWindows) - { - ThreadsHelper.InvokeUI(() => + foreach (var window in _openedWindows) { - window.Close(); - }); - } + ThreadsHelper.InvokeUI(() => + { + window.Close(); + }); + } - try - { - if (ConnectedMachine != null) + try { - ConnectedMachine.Disconnect().Wait(); + if (ConnectedMachine != null) + { + ConnectedMachine.Disconnect().Wait(); + } + } + catch (Exception ex) + { + LogManager.Log(ex, "Error disconnecting from machine."); } - } - catch (Exception ex) - { - LogManager.Log(ex, "Error disconnecting from machine."); - } - var eventLogger = TangoIOC.Default.GetInstance(); - if (eventLogger != null) - { - eventLogger.Log(EventTypes.ApplicationTerminated, "Application Terminated!"); - eventLogger.FlushAll(); - } + var eventLogger = TangoIOC.Default.GetInstance(); + if (eventLogger != null) + { + eventLogger.Log(EventTypes.ApplicationTerminated, "Application Terminated!"); + eventLogger.FlushAll(); + } - Thread.Sleep(1500); + Thread.Sleep(1500); - Environment.Exit(0); + Environment.Exit(0); - }); + }); + } + catch (Exception ex) + { + IsShuttingDown = false; + LogManager.Log(ex,"An error occurred while shutting down machine studio."); + } } /// @@ -264,7 +280,7 @@ namespace Tango.MachineStudio.UI.StudioApplication { get { - return typeof(ExtendedObject).Assembly.GetName().Version.ToString(3); + return typeof(ExtendedObject).Assembly.GetName().Version.ToString(3); } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/AboutViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/AboutViewVM.cs index 5fe3b06b8..0b8a205f7 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/AboutViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/AboutViewVM.cs @@ -3,7 +3,9 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Tango.Core; using Tango.MachineStudio.Common.StudioApplication; +using Tango.Settings; using Tango.SharedUI; namespace Tango.MachineStudio.UI.ViewModels @@ -12,9 +14,12 @@ namespace Tango.MachineStudio.UI.ViewModels { public IStudioApplicationManager ApplicationManager { get; set; } + public CoreSettings Settings { get; set; } + public AboutViewVM(IStudioApplicationManager applicationManager) { ApplicationManager = applicationManager; + Settings = SettingsManager.Default.GetOrCreate(); } } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/AboutView.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/AboutView.xaml index 2ac0df9de..0f8bceac7 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/AboutView.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/AboutView.xaml @@ -36,13 +36,15 @@ - + Machine Studio: v Core Libraries: v Build Date: + Data Source: + diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/App.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/App.xaml new file mode 100644 index 000000000..e3b2c28f8 --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/App.xaml @@ -0,0 +1,11 @@ + + + + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Images/ppc-module.png b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Images/ppc-module.png new file mode 100644 index 000000000..6f27f49be Binary files /dev/null and b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Images/ppc-module.png differ diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/MachineSettingsModule.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/MachineSettingsModule.cs new file mode 100644 index 000000000..0d6f7c75f --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/MachineSettingsModule.cs @@ -0,0 +1,84 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Media.Imaging; +using Tango.BL.Enumerations; +using Tango.PPC.Common; +using Tango.PPC.MachineSettings.Views; +using Tango.SharedUI.Helpers; + +namespace Tango.PPC.MachineSettings +{ + /// + /// Represents a PPC . + /// + /// + [PPCModule(2)] + public class MachineSettingsModule : PPCModuleBase + { + /// + /// Gets the module name. + /// + public override string Name + { + get + { + return "Settings"; + } + } + + /// + /// Gets the module description. + /// + public override string Description + { + get + { + return "Local Machine Settings"; + } + } + + /// + /// Gets the module cover image. + /// + public override BitmapSource Image + { + get + { + return ResourceHelper.GetImageFromResources("Images/ppc-module.png"); + } + } + + /// + /// Gets the module entry point view type. + /// + public override Type MainViewType + { + get + { + return typeof(MainView); + } + } + + /// + /// Gets the permission required to see and load this module. + /// + public override Permissions Permission + { + get + { + return Permissions.RunMachineStudio; + } + } + + /// + /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + /// + public override void Dispose() + { + //Dispose module here... + } + } +} diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Properties/AssemblyInfo.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..52774bee8 --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Properties/AssemblyInfo.cs @@ -0,0 +1,20 @@ +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Tango Module")] +[assembly: AssemblyVersion("2.0.1.1407")] + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Properties/Resources.Designer.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Properties/Resources.Designer.cs new file mode 100644 index 000000000..05abad8e0 --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Tango.PPC.MachineSettings.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Tango.PPC.MachineSettings.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Properties/Resources.resx b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Properties/Resources.resx new file mode 100644 index 000000000..af7dbebba --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Properties/Settings.Designer.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Properties/Settings.Designer.cs new file mode 100644 index 000000000..b16d01807 --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Tango.PPC.MachineSettings.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Properties/Settings.settings b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Properties/Settings.settings new file mode 100644 index 000000000..033d7a5e9 --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Tango.PPC.MachineSettings.csproj b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Tango.PPC.MachineSettings.csproj new file mode 100644 index 000000000..d0fccad96 --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Tango.PPC.MachineSettings.csproj @@ -0,0 +1,161 @@ + + + + + Debug + AnyCPU + {91B70E9B-66A7-4873-AE10-400E71CF404F} + library + Tango.PPC.MachineSettings + Tango.PPC.MachineSettings + v4.6 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + + + true + full + false + ..\..\..\Build\Debug\PPC\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\Build\Release\PPC\ + TRACE + prompt + 4 + + + + ..\..\..\packages\EntityFramework.6.0.0\lib\net45\EntityFramework.dll + True + + + ..\..\..\packages\EntityFramework.6.0.0\lib\net45\EntityFramework.SqlServer.dll + + + ..\..\..\packages\FontAwesome.WPF.4.7.0.9\lib\net40\FontAwesome.WPF.dll + + + ..\..\..\packages\Google.Protobuf.3.4.1\lib\net45\Google.Protobuf.dll + + + + + + ..\..\..\packages\Expression.Blend.Sdk.1.0.2\lib\net45\System.Windows.Interactivity.dll + + + + + + + + + 4.0 + + + + + + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + + + GlobalVersionInfo.cs + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + MainView.xaml + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + {f441feee-322a-4943-b566-110e12fd3b72} + Tango.BL + + + {a34ee0f0-649d-41c8-8489-b6f1cc6924ee} + Tango.Core + + + {b112d89a-a106-41ae-a0c1-4abc84c477f5} + Tango.DragAndDrop + + + {bc932dbd-7cdb-488c-99e4-f02cf441f55e} + Tango.Logging + + + {e4927038-348d-4295-aaf4-861c58cb3943} + Tango.PMR + + + {d8f1ad85-526a-4f50-b6dc-d437af63d8d8} + Tango.Settings + + + {8491d07b-c1f6-4b62-a412-41b9fd2d6538} + Tango.SharedUI + + + {fd86424c-6e84-491b-8df9-3d0f5c236a2a} + Tango.Touch + + + {74e700b0-1156-4126-be40-ee450d3c3026} + Tango.Transport + + + {0be74eee-22cb-4dba-b896-793b9e1a3ac0} + Tango.PPC.Common + + + + + + + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModelLocator.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModelLocator.cs new file mode 100644 index 000000000..5d3e101cd --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModelLocator.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Core.DI; +using Tango.PPC.MachineSettings.ViewModels; + +namespace Tango.PPC.MachineSettings +{ + public static class ViewModelLocator + { + /// + /// Initializes a new instance of the ViewModelLocator class. + /// + static ViewModelLocator() + { + TangoIOC.Default.Register(); + } + + /// + /// Gets the main view VM. + /// + public static MainViewVM MainViewVM + { + get + { + return TangoIOC.Default.GetInstance(); + } + } + } +} diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModels/MainViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModels/MainViewVM.cs new file mode 100644 index 000000000..877374a40 --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/ViewModels/MainViewVM.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.PPC.Common; + +namespace Tango.PPC.MachineSettings.ViewModels +{ + /// + /// Represents the main view VM and entry point for . + /// + /// + public class MainViewVM : PPCViewModel + { + /// + /// Called when the application has been started + /// + public override void OnApplicationStarted() + { + //Start initializing here rather then in the constructor. + } + } +} diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Views/MainView.xaml b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Views/MainView.xaml new file mode 100644 index 000000000..ff27b26f3 --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Views/MainView.xaml @@ -0,0 +1,14 @@ + + + + + diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Views/MainView.xaml.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Views/MainView.xaml.cs new file mode 100644 index 000000000..4a9e38e05 --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Views/MainView.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.PPC.MachineSettings.Views +{ + /// + /// Interaction logic for MainView.xaml + /// + public partial class MainView : UserControl + { + public MainView() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/app.config b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/app.config new file mode 100644 index 000000000..77b7003e2 --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/app.config @@ -0,0 +1,61 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/packages.config b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/packages.config new file mode 100644 index 000000000..80367fdd2 --- /dev/null +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/packages.config @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Software/Visual_Studio/Tango.sln b/Software/Visual_Studio/Tango.sln index 9fed570ea..ed2b5f28e 100644 --- a/Software/Visual_Studio/Tango.sln +++ b/Software/Visual_Studio/Tango.sln @@ -208,6 +208,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.CatalogGenerator", "U EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.AnimatedGif", "Tango.AnimatedGif\Tango.AnimatedGif.csproj", "{D129789C-3096-4D0B-8DD7-FE24A4DF4B21}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.PPC.MachineSettings", "PPC\Modules\Tango.PPC.MachineSettings\Tango.PPC.MachineSettings.csproj", "{91B70E9B-66A7-4873-AE10-400E71CF404F}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution AppVeyor|Any CPU = AppVeyor|Any CPU @@ -3607,6 +3609,46 @@ Global {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Release|x64.Build.0 = Release|Any CPU {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Release|x86.ActiveCfg = Release|Any CPU {D129789C-3096-4D0B-8DD7-FE24A4DF4B21}.Release|x86.Build.0 = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.AppVeyor|Any CPU.ActiveCfg = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.AppVeyor|Any CPU.Build.0 = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.AppVeyor|ARM.ActiveCfg = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.AppVeyor|ARM.Build.0 = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.AppVeyor|ARM64.ActiveCfg = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.AppVeyor|ARM64.Build.0 = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.AppVeyor|x64.ActiveCfg = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.AppVeyor|x64.Build.0 = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.AppVeyor|x86.ActiveCfg = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.AppVeyor|x86.Build.0 = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Debug|ARM.ActiveCfg = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Debug|ARM.Build.0 = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Debug|ARM64.Build.0 = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Debug|x64.ActiveCfg = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Debug|x64.Build.0 = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Debug|x86.ActiveCfg = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Debug|x86.Build.0 = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Release|Any CPU.Build.0 = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Release|ARM.ActiveCfg = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Release|ARM.Build.0 = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Release|ARM64.ActiveCfg = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Release|ARM64.Build.0 = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Release|x64.ActiveCfg = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Release|x64.Build.0 = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Release|x86.ActiveCfg = Release|Any CPU + {91B70E9B-66A7-4873-AE10-400E71CF404F}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -3670,14 +3712,15 @@ Global {729455D4-C384-4497-AF5D-0A598F86DAC6} = {0048447D-1D94-4E60-9DAD-7349C777CB4E} {0440A135-0DF0-4232-AB3C-98B9283123B3} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} {808E47B6-BAA7-4D23-83CB-40C53DC4B38A} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} + {91B70E9B-66A7-4873-AE10-400E71CF404F} = {0048447D-1D94-4E60-9DAD-7349C777CB4E} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {7986F7F4-A86A-4994-B1B6-0988D7F057B6} - BuildVersion_BuildVersioningStyle = None.None.Increment.DeltaBaseYearDayOfYear - BuildVersion_UpdateAssemblyVersion = True - BuildVersion_UpdateFileVersion = False - BuildVersion_StartDate = 2000/1/1 - BuildVersion_AssemblyInfoFilename = Properties\AssemblyInfo.cs BuildVersion_UseGlobalSettings = False + BuildVersion_AssemblyInfoFilename = Properties\AssemblyInfo.cs + BuildVersion_StartDate = 2000/1/1 + BuildVersion_UpdateFileVersion = False + BuildVersion_UpdateAssemblyVersion = True + BuildVersion_BuildVersioningStyle = None.None.Increment.DeltaBaseYearDayOfYear + SolutionGuid = {7986F7F4-A86A-4994-B1B6-0988D7F057B6} EndGlobalSection EndGlobal -- cgit v1.3.1 From 86919dc24020229cbd1d8c59f29a4a36895f5b7a Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Sun, 29 Jul 2018 13:03:22 +0300 Subject: Implemented diagnostics frame rate monitor on IDiagnosticsFrameProvider. Added diagnostics frame rate to connected machine dialog. Implemented dynamic graphs max points using frame rate on tech board!. Implemented speed control on DIagnosticsFilePlayer & Data Capture module. Implemented graphs duration control on tech board. --- Software/DB/Tango.mdf | Bin 75497472 -> 75497472 bytes Software/DB/Tango_log.ldf | Bin 1835008 -> 1835008 bytes .../Tango.MachineStudio.DataCapture.csproj | 6 +- .../Views/MainView.xaml | 201 +++++++++++---------- .../Views/TimelineView.xaml.cs | 6 +- .../Helpers/GraphsHelper.cs | 2 +- .../TechnicianModuleSettings.cs | 4 +- .../ViewModels/MachineTechViewVM.cs | 98 +++++++++- .../Views/MachineTechView.xaml | 17 ++ .../Diagnostics/DefaultDiagnosticsFrameProvider.cs | 47 ++++- .../Diagnostics/IDiagnosticsFrameProvider.cs | 5 + .../ViewModels/ConnectedMachineViewVM.cs | 13 +- .../Views/ConnectedMachineView.xaml | 16 +- .../Diagnostics/DiagnosticsFilePlayer.cs | 27 ++- 14 files changed, 325 insertions(+), 117 deletions(-) (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common') diff --git a/Software/DB/Tango.mdf b/Software/DB/Tango.mdf index 163460bb9..4c31e0729 100644 Binary files a/Software/DB/Tango.mdf and b/Software/DB/Tango.mdf differ diff --git a/Software/DB/Tango_log.ldf b/Software/DB/Tango_log.ldf index 44c77937d..104f4ed58 100644 Binary files a/Software/DB/Tango_log.ldf and b/Software/DB/Tango_log.ldf differ diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/Tango.MachineStudio.DataCapture.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/Tango.MachineStudio.DataCapture.csproj index 24241bd14..7c7c8c272 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/Tango.MachineStudio.DataCapture.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/Tango.MachineStudio.DataCapture.csproj @@ -154,6 +154,10 @@ {9652f972-2bd1-4283-99cb-fc6240434c17} Tango.Video + + {cf7c0ff4-9440-42cf-83b8-c060772792d4} + Tango.Visuals + {cb0b0aa2-bb24-4bca-a720-45e397684e12} Tango.MachineStudio.Common @@ -184,7 +188,7 @@ - + \ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/Views/MainView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/Views/MainView.xaml index 37f92dea7..1ef3c1769 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/Views/MainView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/Views/MainView.xaml @@ -6,6 +6,7 @@ xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls" + xmlns:visuals="clr-namespace:Tango.Visuals;assembly=Tango.Visuals" xmlns:converters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" xmlns:vm="clr-namespace:Tango.MachineStudio.DataCapture.ViewModels" xmlns:logging="clr-namespace:Tango.MachineStudio.Logging.Views;assembly=Tango.MachineStudio.Logging" @@ -182,110 +183,118 @@ - - - - - - - - - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Speed + + x + + - - + + Total Frames: - - + + File Size: - - - - - - - - - - - - - - + + + + + + + + + + + + + + @@ -316,7 +325,7 @@ - + diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Views/TimelineView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Views/TimelineView.xaml.cs index 8004ef154..92d176671 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Views/TimelineView.xaml.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Views/TimelineView.xaml.cs @@ -44,7 +44,11 @@ namespace Tango.MachineStudio.Logging.Views private void ItemsControl_SizeChanged(object sender, SizeChangedEventArgs e) { TimelineEventGroup group = (sender as FrameworkElement).DataContext as TimelineEventGroup; - group.Height = e.NewSize.Height; + + if (group != null) + { + group.Height = e.NewSize.Height; + } } private void scrollViewer_ScrollChanged(object sender, ScrollChangedEventArgs e) diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Helpers/GraphsHelper.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Helpers/GraphsHelper.cs index 0cd14f917..fa80f90dd 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Helpers/GraphsHelper.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Helpers/GraphsHelper.cs @@ -23,7 +23,7 @@ namespace Tango.MachineStudio.Technician.Helpers try { var settings = SettingsManager.Default.GetOrCreate(); - double seconds = settings.GraphsViewDurationSeconds; + double seconds = settings.GraphsDuration; double pullRate = settings.DiagnosticsResponseIntervalMilli; return (int)(((pullRate * pointsPerFrame * 10 * seconds) * (10 / pullRate)) * 0.65); } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechnicianModuleSettings.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechnicianModuleSettings.cs index 12acaf3ee..65ff8d537 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechnicianModuleSettings.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/TechnicianModuleSettings.cs @@ -12,7 +12,7 @@ namespace Tango.MachineStudio.Technician /// /// Gets or sets the graphs view duration in seconds. /// - public int GraphsViewDurationSeconds { get; set; } + public int GraphsDuration { get; set; } /// /// Gets or sets the diagnostics response interval in milliseconds. @@ -29,7 +29,7 @@ namespace Tango.MachineStudio.Technician /// public TechnicianModuleSettings() { - GraphsViewDurationSeconds = 10; + GraphsDuration = 10; DiagnosticsResponseIntervalMilli = 30; } } 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 d403223ec..3dff65fbc 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 @@ -43,6 +43,7 @@ namespace Tango.MachineStudio.Technician.ViewModels public class MachineTechViewVM : StudioViewModel { private List _diagnoticsMonitorsDataProperties; + private IDiagnosticsFrameProvider _diagnosticsFrameProvider; private Dictionary _singleControllers; private Dictionary _multiControllers; private static object _elementsLock = new object(); @@ -149,6 +150,28 @@ namespace Tango.MachineStudio.Technician.ViewModels set { _currentDiagnosticsResponseSize = value; RaisePropertyChanged(nameof(CurrentDiagnosticsResponseSize)); } } + private int _graphsDurationSeconds; + /// + /// Gets or sets the graphs duration seconds. + /// + public int GraphsDurationSeconds + { + get { return _graphsDurationSeconds; } + set { _graphsDurationSeconds = value; RaisePropertyChangedAuto(); } + } + + private int _tempGraphsDurationSeconds; + /// + /// Gets or sets the temporary graphs duration seconds. + /// + public int TempGraphsDurationSeconds + { + get { return _tempGraphsDurationSeconds; } + set { _tempGraphsDurationSeconds = value; RaisePropertyChangedAuto(); } + } + + + #endregion #region Commands @@ -183,6 +206,8 @@ namespace Tango.MachineStudio.Technician.ViewModels ///
public RelayCommand ResetHardwareConfigurationCommand { get; set; } + public RelayCommand UpdateGraphsDurationCommand { get; set; } + #endregion #region Constructors @@ -192,10 +217,13 @@ namespace Tango.MachineStudio.Technician.ViewModels /// /// The application manager. /// The notification provider. - public MachineTechViewVM(IStudioApplicationManager applicationManager, INotificationProvider notificationProvider, IDiagnosticsFrameProvider _diagnosticsFrameProvider, IEventLogger eventLogger) + public MachineTechViewVM(IStudioApplicationManager applicationManager, INotificationProvider notificationProvider, IDiagnosticsFrameProvider diagnosticsFrameProvider, IEventLogger eventLogger) { _settings = SettingsManager.Default.GetOrCreate(); + GraphsDurationSeconds = _settings.GraphsDuration; + TempGraphsDurationSeconds = GraphsDurationSeconds; + _notification = notificationProvider; _eventLogger = eventLogger; _singleControllers = new Dictionary(); @@ -217,14 +245,28 @@ namespace Tango.MachineStudio.Technician.ViewModels if (File.Exists(_lastTechProjectFile)) { - OpenProjectFile(_lastTechProjectFile); + try + { + OpenProjectFile(_lastTechProjectFile); + } + catch (Exception ex) + { + LogManager.Log(ex, "Error loading last project file."); + } } + _diagnosticsFrameProvider = diagnosticsFrameProvider; _diagnosticsFrameProvider.FrameReceived += DiagnosticsFrameProvider_FrameReceived; UploadHardwareConfigurationCommand = new RelayCommand(UploadHardwareConfiguration); SyncHardwareConfigurationCommand = new RelayCommand(SyncHardwareConfiguration); ResetHardwareConfigurationCommand = new RelayCommand(() => ResetHardwareConfiguration()); + UpdateGraphsDurationCommand = new RelayCommand(() => + { + GraphsDurationSeconds = TempGraphsDurationSeconds; + _settings.GraphsDuration = GraphsDurationSeconds; + ClearAllGraphs(); + }); } #endregion @@ -320,7 +362,16 @@ namespace Tango.MachineStudio.Technician.ViewModels if (_singleControllers.TryGetValue(graphItem, out controller)) { - controller.PushData(GetDataArray(graphItem.TechMonitor, prop.GetValue(data.Monitors))); + var points = GetDataArray(graphItem.TechMonitor, prop.GetValue(data.Monitors)); + + int maxPoints = (int)(_diagnosticsFrameProvider.FrameRate * GraphsDurationSeconds * points.Count); + + InvokeUI(() => + { + graphItem.Editor.InnerGraph.InnerGraph.MaxPoints = maxPoints; + }); + + controller.PushData(points); } } } @@ -336,7 +387,19 @@ namespace Tango.MachineStudio.Technician.ViewModels if (_multiControllers.TryGetValue(graphItem, out controller)) { - controller.PushData(GetDataMatrix(graphItem.TechMonitor, prop.GetValue(data.Monitors))); + var points = GetDataMatrix(graphItem.TechMonitor, prop.GetValue(data.Monitors)); + + if (points.Count > 0) + { + int maxPoints = (int)(_diagnosticsFrameProvider.FrameRate * GraphsDurationSeconds * points[0].Count); + + InvokeUI(() => + { + graphItem.Editor.InnerGraph.InnerGraph.MaxPoints = maxPoints; + }); + } + + controller.PushData(points); } } } @@ -1179,7 +1242,7 @@ namespace Tango.MachineStudio.Technician.ViewModels catch (Exception ex) { String msg = "Error uploading process parameters:" + Environment.NewLine + parameters.ToJsonString(); - _eventLogger.Log(ex,msg); + _eventLogger.Log(ex, msg); LogManager.Log(ex, msg); _notification.ShowError("Could not upload process parameters." + Environment.NewLine + ex.Message); } @@ -1199,7 +1262,7 @@ namespace Tango.MachineStudio.Technician.ViewModels /// private void InitJobRunnerItem(JobRunnerItem item) { - item.StartJob += () => + item.StartJob += () => { try { @@ -1209,12 +1272,12 @@ namespace Tango.MachineStudio.Technician.ViewModels item.JobHandler = handler; - handler.StatusChanged += (x, status) => + handler.StatusChanged += (x, status) => { item.RunningJobStatus = status; }; - handler.Stopped += (x,e) => + handler.Stopped += (x, e) => { item.IsJobStarted = false; }; @@ -1226,7 +1289,7 @@ namespace Tango.MachineStudio.Technician.ViewModels } }; - item.StopJob += () => + item.StopJob += () => { if (item.JobHandler != null) { @@ -1597,5 +1660,22 @@ namespace Tango.MachineStudio.Technician.ViewModels } #endregion + + #region Graphs + + public void ClearAllGraphs() + { + foreach (var controller in _singleControllers) + { + controller.Value.Clear(); + } + + foreach (var controller in _multiControllers) + { + controller.Value.Clear(); + } + } + + #endregion } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Views/MachineTechView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Views/MachineTechView.xaml index 29ba98cd3..c11dbc525 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Views/MachineTechView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Views/MachineTechView.xaml @@ -4,6 +4,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:vm="clr-namespace:Tango.MachineStudio.Technician.ViewModels" xmlns:global="clr-namespace:Tango.MachineStudio.Technician" + xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:fa="http://schemas.fontawesome.io/icons/" xmlns:editors="clr-namespace:Tango.Editors;assembly=Tango.Editors" @@ -176,6 +177,22 @@ + + + + GRAPHS DURATION: + + sec + + + + + + + + + + diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Diagnostics/DefaultDiagnosticsFrameProvider.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Diagnostics/DefaultDiagnosticsFrameProvider.cs index 957648536..477332ad9 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Diagnostics/DefaultDiagnosticsFrameProvider.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Diagnostics/DefaultDiagnosticsFrameProvider.cs @@ -8,6 +8,7 @@ using Tango.Integration.Operation; using Tango.Integration.ExternalBridge; using Tango.MachineStudio.Common.StudioApplication; using Tango.PMR.Diagnostics; +using System.Diagnostics; namespace Tango.MachineStudio.Common.Diagnostics { @@ -18,6 +19,10 @@ namespace Tango.MachineStudio.Common.Diagnostics public class DefaultDiagnosticsFrameProvider : ExtendedObject, IDiagnosticsFrameProvider { private IStudioApplicationManager _application; + private Stopwatch _watch; + private List _rates; + private DateTime _last_measure; + private const int _min_rate_change = 4; private bool _disable; /// @@ -32,10 +37,27 @@ namespace Tango.MachineStudio.Common.Diagnostics } } + private double _frameRate; + /// + /// Gets the current diagnostics frame rate. + /// + public double FrameRate + { + get + { + return _frameRate; + } + private set + { + _frameRate = value; + RaisePropertyChangedAuto(); + } + } + /// /// Occurs when a new data frame is available. /// - public event EventHandler FrameReceived; + public event EventHandler FrameReceived; /// /// Initializes a new instance of the class. @@ -43,6 +65,8 @@ namespace Tango.MachineStudio.Common.Diagnostics /// The application manager. public DefaultDiagnosticsFrameProvider(IStudioApplicationManager applicationManager) { + _rates = new List(); + _watch = new Stopwatch(); _application = applicationManager; applicationManager.ConnectedMachineChanged += ApplicationManager_ConnectedMachineChanged; } @@ -56,6 +80,9 @@ namespace Tango.MachineStudio.Common.Diagnostics { if (machine != null) { + _last_measure = DateTime.Now; + _rates = new List(); + _watch = new Stopwatch(); machine.DiagnosticsDataAvailable += DefaultDiagnosticsFrameProvider_DiagnosticsDataAvailable; } } @@ -91,6 +118,24 @@ namespace Tango.MachineStudio.Common.Diagnostics /// The frame. protected virtual void OnFrameReceived(StartDiagnosticsResponse frame) { + if (DateTime.Now > _last_measure.AddSeconds(1) && _rates.Count > 0) + { + _last_measure = DateTime.Now; + + var rate = Math.Round(1000d / _rates.Average(), 2); + + if (rate > FrameRate + _min_rate_change || rate < FrameRate - _min_rate_change) + { + FrameRate = rate; + } + + _rates.Clear(); + } + + _rates.Add(_watch.ElapsedMilliseconds); + + _watch.Restart(); + FrameReceived?.Invoke(this, frame); } } diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Diagnostics/IDiagnosticsFrameProvider.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Diagnostics/IDiagnosticsFrameProvider.cs index 3944fe8cb..eb1033c29 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Diagnostics/IDiagnosticsFrameProvider.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Diagnostics/IDiagnosticsFrameProvider.cs @@ -18,6 +18,11 @@ namespace Tango.MachineStudio.Common.Diagnostics /// event EventHandler FrameReceived; + /// + /// Gets the current diagnostics frame rate. + /// + double FrameRate { get; } + /// /// Disables the frame delivery from the current connected machine and enables the manual push frame method. /// diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/ConnectedMachineViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/ConnectedMachineViewVM.cs index 8034ceb69..35a4b0e9d 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/ConnectedMachineViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/ConnectedMachineViewVM.cs @@ -5,6 +5,7 @@ using System.Text; using System.Threading.Tasks; using Tango.BL.Entities; using Tango.Core.Commands; +using Tango.MachineStudio.Common.Diagnostics; using Tango.MachineStudio.Common.Notifications; using Tango.MachineStudio.Common.StudioApplication; using Tango.SharedUI; @@ -30,18 +31,28 @@ namespace Tango.MachineStudio.UI.ViewModels public ConnectedMachineVMResult Result { get; set; } + private IDiagnosticsFrameProvider _diagnosticsFrameProvider; + public IDiagnosticsFrameProvider DiagnosticsFrameProvider + { + get { return _diagnosticsFrameProvider; } + set { _diagnosticsFrameProvider = value; RaisePropertyChangedAuto(); } + } + + public RelayCommand DisconnectCommand { get; set; } public RelayCommand UploadHardwareConfigurationCommand { get; set; } public RelayCommand ResetCommand { get; set; } - public ConnectedMachineViewVM(IStudioApplicationManager application) + public ConnectedMachineViewVM(IStudioApplicationManager application, IDiagnosticsFrameProvider frameProvider) { ApplicationManager = application; DisconnectCommand = new RelayCommand(Disconnect); UploadHardwareConfigurationCommand = new RelayCommand(UploadHardwareConfiguration); ResetCommand = new RelayCommand(Reset); + + DiagnosticsFrameProvider = frameProvider; } private void Reset() diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ConnectedMachineView.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ConnectedMachineView.xaml index bb8b65f6a..aa2b014fe 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ConnectedMachineView.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Views/ConnectedMachineView.xaml @@ -11,7 +11,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:Tango.MachineStudio.UI.Views" mc:Ignorable="d" - d:DesignHeight="300" d:DesignWidth="300" Width="600" Height="400" Background="White" DataContext="{Binding ConnectedMachineViewVM, Source={StaticResource Locator}}"> + d:DesignHeight="300" d:DesignWidth="300" Width="600" Height="420" Background="White" DataContext="{Binding ConnectedMachineViewVM, Source={StaticResource Locator}}"> @@ -73,7 +73,12 @@ - + + + + + + @@ -103,7 +108,12 @@ - + + + + + + diff --git a/Software/Visual_Studio/Tango.Integration/Diagnostics/DiagnosticsFilePlayer.cs b/Software/Visual_Studio/Tango.Integration/Diagnostics/DiagnosticsFilePlayer.cs index 7b3cf9859..80a19c296 100644 --- a/Software/Visual_Studio/Tango.Integration/Diagnostics/DiagnosticsFilePlayer.cs +++ b/Software/Visual_Studio/Tango.Integration/Diagnostics/DiagnosticsFilePlayer.cs @@ -124,6 +124,28 @@ namespace Tango.Integration.Diagnostics set { _machineEvents = value; RaisePropertyChangedAuto(); } } + private double _speed; + /// + /// Gets or sets the player speed (default 1.0). + /// + public double Speed + { + get { return _speed; } + set { _speed = value; RaisePropertyChangedAuto(); } + } + + #endregion + + #region Constructors + + /// + /// Initializes a new instance of the class. + /// + public DiagnosticsFilePlayer() + { + Speed = 1.0; + } + #endregion #region Public Methods @@ -321,11 +343,12 @@ namespace Tango.Integration.Diagnostics if (CurrentFrame > 0) { - Thread.Sleep(_timeCodeChannel.Frames[CurrentFrame].Milliseconds - _timeCodeChannel.Frames[CurrentFrame - 1].Milliseconds); + double sleep = _timeCodeChannel.Frames[CurrentFrame].Milliseconds - _timeCodeChannel.Frames[CurrentFrame - 1].Milliseconds; + Thread.Sleep((int)(sleep / Speed)); } else { - Thread.Sleep(10); + Thread.Sleep((int)(10d / Speed)); } } -- cgit v1.3.1 From e9c55f4d18b0aac54e1a726ffca0c3c10d2c23ff Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Sun, 29 Jul 2018 13:54:10 +0300 Subject: Machine Studio v2.1.12 --- .../Tango.MachineStudio.DataCapture/Properties/AssemblyInfo.cs | 2 +- .../Modules/Tango.MachineStudio.Developer/Properties/AssemblyInfo.cs | 2 +- .../Tango.MachineStudio.Synchronization/Properties/AssemblyInfo.cs | 2 +- .../Modules/Tango.MachineStudio.Technician/Properties/AssemblyInfo.cs | 2 +- .../Tango.MachineStudio.Common/Properties/AssemblyInfo.cs | 2 +- .../MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs | 2 +- .../PPC/Modules/Tango.PPC.MachineSettings/Properties/AssemblyInfo.cs | 2 +- .../Tango.PPC.MachineSettings/Tango.PPC.MachineSettings.csproj | 4 ++-- .../Visual_Studio/PPC/Tango.PPC.Common/Properties/AssemblyInfo.cs | 2 +- Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs | 2 +- Software/Visual_Studio/Tango.Integration/Properties/AssemblyInfo.cs | 2 +- Software/Visual_Studio/Tango.Logging/Properties/AssemblyInfo.cs | 2 +- Software/Visual_Studio/Tango.PMR/Properties/AssemblyInfo.cs | 2 +- Software/Visual_Studio/Tango.Transport/Properties/AssemblyInfo.cs | 2 +- .../Utilities/Tango.ILMerge.UI/Properties/AssemblyInfo.cs | 2 +- .../Visual_Studio/Utilities/Tango.UITests/Properties/AssemblyInfo.cs | 2 +- 16 files changed, 17 insertions(+), 17 deletions(-) (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common') diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/Properties/AssemblyInfo.cs index 309c4922e..68ae9f9bc 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DataCapture/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Machine Studio Data Capturing Module")] -[assembly: AssemblyVersion("2.0.6.1407")] +[assembly: AssemblyVersion("2.0.7.1304")] [assembly: ComVisible(false)] diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Properties/AssemblyInfo.cs index 7b0f13657..81868f7a8 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Developer/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Machine Studio Developer Module")] -[assembly: AssemblyVersion("2.0.7.1608")] +[assembly: AssemblyVersion("2.0.8.1304")] [assembly: ComVisible(false)] diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Properties/AssemblyInfo.cs index 2370d4b01..6a34bd5ad 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Synchronization/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Machine Studio Synchronization Module")] -[assembly: AssemblyVersion("2.0.6.1407")] +[assembly: AssemblyVersion("2.0.7.1304")] [assembly: ComVisible(false)] diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Properties/AssemblyInfo.cs index 15619a3ab..f19848756 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Machine Studio Technician Module")] -[assembly: AssemblyVersion("2.0.7.1608")] +[assembly: AssemblyVersion("2.0.8.1304")] [assembly: ComVisible(false)] diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Properties/AssemblyInfo.cs index e641c8bf3..2c48de076 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Properties/AssemblyInfo.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; using System.Windows; [assembly: AssemblyTitle("Tango - Machine Studio Common Components")] -[assembly: AssemblyVersion("2.0.12.1608")] +[assembly: AssemblyVersion("2.0.13.1304")] [assembly: ComVisible(false)] [assembly:ThemeInfo( diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs index 0ed9a1eae..121d4ab07 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs @@ -4,5 +4,5 @@ using System.Runtime.InteropServices; [assembly: System.Windows.ThemeInfo(System.Windows.ResourceDictionaryLocation.None, System.Windows.ResourceDictionaryLocation.SourceAssembly)] [assembly: AssemblyTitle("Tango - Machine Studio")] -[assembly: AssemblyVersion("2.1.11.18207")] +[assembly: AssemblyVersion("2.1.12.18210")] [assembly: ComVisible(false)] \ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Properties/AssemblyInfo.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Properties/AssemblyInfo.cs index 52774bee8..89afda26c 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Properties/AssemblyInfo.cs @@ -8,7 +8,7 @@ using System.Windows; // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("Tango Module")] -[assembly: AssemblyVersion("2.0.1.1407")] +[assembly: AssemblyVersion("2.0.2.1304")] [assembly: ThemeInfo( ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Tango.PPC.MachineSettings.csproj b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Tango.PPC.MachineSettings.csproj index d0fccad96..3bbba737c 100644 --- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Tango.PPC.MachineSettings.csproj +++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.MachineSettings/Tango.PPC.MachineSettings.csproj @@ -74,7 +74,7 @@ - + GlobalVersionInfo.cs @@ -155,7 +155,7 @@ - + \ No newline at end of file diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Properties/AssemblyInfo.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Properties/AssemblyInfo.cs index c72734dfe..f8ec20184 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Properties/AssemblyInfo.cs @@ -8,7 +8,7 @@ using System.Windows; // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("Tango Panel PC Common Library")] -[assembly: AssemblyVersion("2.0.6.1608")] +[assembly: AssemblyVersion("2.0.7.1304")] [assembly:ThemeInfo( ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs index 1e4318ff4..71dca288e 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Properties/AssemblyInfo.cs @@ -8,4 +8,4 @@ using System.Windows; // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("Tango Panel PC Application")] -[assembly: AssemblyVersion("2.0.3.1608")] +[assembly: AssemblyVersion("2.0.4.1304")] diff --git a/Software/Visual_Studio/Tango.Integration/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.Integration/Properties/AssemblyInfo.cs index 4bdd97f00..fa528d630 100644 --- a/Software/Visual_Studio/Tango.Integration/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.Integration/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Logging Library")] -[assembly: AssemblyVersion("2.0.13.1411")] +[assembly: AssemblyVersion("2.0.14.1304")] [assembly: ComVisible(false)] \ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Logging/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.Logging/Properties/AssemblyInfo.cs index 834fd5419..a34091bb5 100644 --- a/Software/Visual_Studio/Tango.Logging/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.Logging/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Logging Library")] -[assembly: AssemblyVersion("2.0.19.1411")] +[assembly: AssemblyVersion("2.0.20.1304")] [assembly: ComVisible(false)] \ No newline at end of file diff --git a/Software/Visual_Studio/Tango.PMR/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.PMR/Properties/AssemblyInfo.cs index 7f155cd13..ddf3cb254 100644 --- a/Software/Visual_Studio/Tango.PMR/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.PMR/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Protobuf Message Repository")] -[assembly: AssemblyVersion("2.0.17.1608")] +[assembly: AssemblyVersion("2.0.18.1304")] [assembly: ComVisible(false)] \ No newline at end of file diff --git a/Software/Visual_Studio/Tango.Transport/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Tango.Transport/Properties/AssemblyInfo.cs index 6dcf62316..fc6a0e393 100644 --- a/Software/Visual_Studio/Tango.Transport/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Tango.Transport/Properties/AssemblyInfo.cs @@ -3,5 +3,5 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("Tango - Transport Components")] -[assembly: AssemblyVersion("2.0.13.1411")] +[assembly: AssemblyVersion("2.0.14.1304")] [assembly: ComVisible(false)] \ No newline at end of file diff --git a/Software/Visual_Studio/Utilities/Tango.ILMerge.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Utilities/Tango.ILMerge.UI/Properties/AssemblyInfo.cs index 0958ffa7d..28a6d28e0 100644 --- a/Software/Visual_Studio/Utilities/Tango.ILMerge.UI/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Utilities/Tango.ILMerge.UI/Properties/AssemblyInfo.cs @@ -44,4 +44,4 @@ using System.Windows; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.0.2.1608")] +[assembly: AssemblyVersion("2.0.4.1305")] diff --git a/Software/Visual_Studio/Utilities/Tango.UITests/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Utilities/Tango.UITests/Properties/AssemblyInfo.cs index 5346a2b05..75ec7e590 100644 --- a/Software/Visual_Studio/Utilities/Tango.UITests/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Utilities/Tango.UITests/Properties/AssemblyInfo.cs @@ -51,5 +51,5 @@ using System.Windows; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.3.1608")] +[assembly: AssemblyVersion("1.0.5.1305")] [assembly: AssemblyFileVersion("1.0.0.0")] -- cgit v1.3.1