diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-08-19 01:45:02 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-08-19 01:45:02 +0300 |
| commit | 4e216a0ca8ad3608b845fa445b73034e1a67b8af (patch) | |
| tree | 67e0ea698cfe5a8320aa81d8c13579e8ae6a6860 /Software/Visual_Studio/Tango.Integration/ExternalBridge | |
| parent | f4c418cced4c6fb25ec5d4cb2bcb4ce0f766efd0 (diff) | |
| download | Tango-4e216a0ca8ad3608b845fa445b73034e1a67b8af.tar.gz Tango-4e216a0ca8ad3608b845fa445b73034e1a67b8af.zip | |
DB: Changed TechMonitors HeadZone5_6HeaterCurrent => HeadZone56HeaterCurrent
Working on insights and insights annotations.
Added insights events.
Added insights settings to PPC advanced settings.
Added compression support for transport adapters.
Implemented compression support on TCP/SignalR/WebRTC.
Added Compression flag to ExternalBridge discovery packet.
Added compression setting to PPC advanced settings.
Refactored transport layer to use Bson instead of Json for Generic Messages.
Added all SciChart referenced assemblies.
Registered EF Extensions license for FSE.
Added support for FSE PushTask notification cancel button.
Diffstat (limited to 'Software/Visual_Studio/Tango.Integration/ExternalBridge')
8 files changed, 56 insertions, 9 deletions
diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeScanner.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeScanner.cs index 5cb899bc9..58487985b 100644 --- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeScanner.cs +++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeScanner.cs @@ -245,11 +245,11 @@ namespace Tango.Integration.ExternalBridge if (knownMachine == null) { - newMachine = new ExternalBridgeTcpClient(packet.SerialNumber, address); + newMachine = new ExternalBridgeTcpClient(packet.SerialNumber, address, packet.CompressionEnabled); } else { - newMachine = new ExternalBridgeTcpClient(knownMachine, address); + newMachine = new ExternalBridgeTcpClient(knownMachine, address, packet.CompressionEnabled); } LogManager.Log("Found a new machine via TCP " + newMachine.SerialNumber); @@ -302,7 +302,7 @@ namespace Tango.Integration.ExternalBridge } else { - newMachine = new ExternalBridgeSignalRClient(SignalRConfiguration.Address, SignalRConfiguration.Hub, knownMachine,machine); + newMachine = new ExternalBridgeSignalRClient(SignalRConfiguration.Address, SignalRConfiguration.Hub, knownMachine, machine); } ThreadsHelper.InvokeUINow(() => diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs index e1d23685a..438e475a8 100644 --- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs +++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs @@ -170,6 +170,10 @@ namespace Tango.Integration.ExternalBridge private set { _fullControlSessionReceiver = value; RaisePropertyChangedAuto(); } } + /// <summary> + /// Gets or sets a value indicating whether to broadcast that compression on connected ITransportAdapter is enabled. + /// </summary> + public bool EnableTransportCompression { get; set; } #endregion @@ -235,6 +239,7 @@ namespace Tango.Integration.ExternalBridge _discoveryService = new UdpDiscoveryService<ExternalBridgeUdpDiscoveryPacket>(_discovery_port, new ExternalBridgeUdpDiscoveryPacket() { SerialNumber = Machine.SerialNumber, + CompressionEnabled = EnableTransportCompression, }); _discoveryService.BeforeBroadcasting -= _discoverySevice_BeforeBroadcasting; @@ -273,6 +278,7 @@ namespace Tango.Integration.ExternalBridge { LogManager.Log("External bridge TCP client connected from: " + e.Socket.GetIPAddress()); ExternalBridgeReceiver receiver = new ExternalBridgeReceiver(e.Socket, MachineOperator); + receiver.Adapter.EnableCompression = EnableTransportCompression; (receiver.Adapter as TcpTransportAdapter).WriteMode = TcpTransportAdapterWriteMode; receiver.LoginRequest += Receiver_LoginRequest; receiver.ColorProfileRequest += Receiver_ColorProfileRequest; @@ -290,6 +296,7 @@ namespace Tango.Integration.ExternalBridge LogManager.Log("External bridge SignalR client connected."); var adapter = new SignalRTransportAdapter(SignalRConfiguration.Address, SignalRConfiguration.Hub, SignalRTransportAdapterMode.JoinSession, Machine.SerialNumber, sessionID); ; + adapter.EnableCompression = EnableTransportCompression; ExternalBridgeReceiver receiver = new ExternalBridgeReceiver(adapter, MachineOperator); receiver.LoginRequest += Receiver_LoginRequest; @@ -604,6 +611,7 @@ namespace Tango.Integration.ExternalBridge { SerialNumber = Machine.SerialNumber, Organization = Machine.Organization.Name, + CompressionEnabled = EnableTransportCompression }); _isSignalRConnected = true; diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeSignalRClient.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeSignalRClient.cs index df612ed96..7c5fc5053 100644 --- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeSignalRClient.cs +++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeSignalRClient.cs @@ -19,12 +19,17 @@ namespace Tango.Integration.ExternalBridge { public ExternalBridgeSignalRClient(String url, String hub, MachineInfo machineInfo) { + CompressionEnabled = machineInfo.CompressionEnabled; + ComponentName = $"External Bridge SignalR Client {_component_counter++}"; SerialNumber = machineInfo.SerialNumber; IPAddress = machineInfo.IPAddress; Machine = ObservablesStaticCollections.Instance.Machines.SingleOrDefault(x => x.SerialNumber == SerialNumber); - Adapter = new SignalRTransportAdapter(url, hub, SignalRTransportAdapterMode.CreateSession, SerialNumber, null, IPAddress); + Adapter = new SignalRTransportAdapter(url, hub, SignalRTransportAdapterMode.CreateSession, SerialNumber, null, IPAddress) + { + EnableCompression = CompressionEnabled + }; KeepAliveTimeout = TimeSpan.FromSeconds(5); KeepAliveRetries = 2; @@ -33,12 +38,17 @@ namespace Tango.Integration.ExternalBridge public ExternalBridgeSignalRClient(String url, String hub, Machine machine, MachineInfo machineInfo) { + CompressionEnabled = machineInfo.CompressionEnabled; + ComponentName = $"External Bridge SignalR Client {_component_counter++}"; SerialNumber = machine.SerialNumber; IPAddress = machineInfo.IPAddress; Machine = machine; - Adapter = new SignalRTransportAdapter(url, hub, SignalRTransportAdapterMode.CreateSession, SerialNumber, null, IPAddress); + Adapter = new SignalRTransportAdapter(url, hub, SignalRTransportAdapterMode.CreateSession, SerialNumber, null, IPAddress) + { + EnableCompression = CompressionEnabled + }; KeepAliveTimeout = TimeSpan.FromSeconds(5); KeepAliveRetries = 2; diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpClient.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpClient.cs index 086b2bc7c..2a6fa1aad 100644 --- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpClient.cs +++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpClient.cs @@ -59,6 +59,11 @@ namespace Tango.Integration.ExternalBridge set { _ipAddress = value; RaisePropertyChangedAuto(); } } + /// <summary> + /// Gets or sets a value indicating whether transport compression is required by the remote machine. + /// </summary> + public bool CompressionEnabled { get; set; } + private bool _enableApplicationLogs; /// <summary> /// Gets or sets a value indicating whether to enable receiving application logs. @@ -281,10 +286,11 @@ namespace Tango.Integration.ExternalBridge /// </summary> /// <param name="serialNumber">The machine serial number.</param> /// <param name="ipAddress">The machine IP address.</param> - public ExternalBridgeTcpClient(String serialNumber, String ipAddress) + public ExternalBridgeTcpClient(String serialNumber, String ipAddress, bool enableCompression) { ComponentName = $"External Bridge TCP Client {_component_counter++}"; SerialNumber = serialNumber; + CompressionEnabled = enableCompression; if (ObservablesStaticCollections.Instance.IsInitialized) { @@ -296,21 +302,28 @@ namespace Tango.Integration.ExternalBridge UseKeepAlive = false; EnableDiagnostics = true; - Adapter = new TcpTransportAdapter(IPAddress, SettingsManager.Default.GetOrCreate<IntegrationSettings>().ExternalBridgeServicePort); + Adapter = new TcpTransportAdapter(IPAddress, SettingsManager.Default.GetOrCreate<IntegrationSettings>().ExternalBridgeServicePort) + { + EnableCompression = CompressionEnabled + }; } - public ExternalBridgeTcpClient(Machine machine, String ipAddress) + public ExternalBridgeTcpClient(Machine machine, String ipAddress, bool enableCompression) { ComponentName = $"External Bridge TCP Client {_component_counter++}"; Machine = machine; SerialNumber = Machine.SerialNumber; + CompressionEnabled = enableCompression; IPAddress = ipAddress; KeepAliveTimeout = TimeSpan.FromSeconds(5); KeepAliveRetries = 2; UseKeepAlive = false; EnableDiagnostics = true; - Adapter = new TcpTransportAdapter(IPAddress, SettingsManager.Default.GetOrCreate<IntegrationSettings>().ExternalBridgeServicePort); + Adapter = new TcpTransportAdapter(IPAddress, SettingsManager.Default.GetOrCreate<IntegrationSettings>().ExternalBridgeServicePort) + { + EnableCompression = CompressionEnabled + }; } /// <summary> diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeUsbClient.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeUsbClient.cs index 57944b8d2..d7246fe7b 100644 --- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeUsbClient.cs +++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeUsbClient.cs @@ -68,6 +68,11 @@ namespace Tango.Integration.ExternalBridge } /// <summary> + /// Gets or sets a value indicating whether transport compression is required by the remote machine. + /// </summary> + public bool CompressionEnabled { get; set; } + + /// <summary> /// Connects the transport component. /// </summary> /// <returns></returns> diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/IExternalBridgeClient.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/IExternalBridgeClient.cs index d336b6b70..563ef9418 100644 --- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/IExternalBridgeClient.cs +++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/IExternalBridgeClient.cs @@ -28,6 +28,11 @@ namespace Tango.Integration.ExternalBridge String SerialNumber { get; set; } /// <summary> + /// Gets or sets a value indicating whether transport compression is required by the remote machine. + /// </summary> + bool CompressionEnabled { get; set; } + + /// <summary> /// Gets the database machine associated with this client. /// </summary> Machine Machine { get; } diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/IExternalBridgeService.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/IExternalBridgeService.cs index c7d2c8d5c..f6a4ca110 100644 --- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/IExternalBridgeService.cs +++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/IExternalBridgeService.cs @@ -62,6 +62,11 @@ namespace Tango.Integration.ExternalBridge TcpTransportAdapterWriteMode TcpTransportAdapterWriteMode { get; set; } /// <summary> + /// Gets or sets a value indicating whether to broadcast that compression on connected ITransportAdapter is enabled. + /// </summary> + bool EnableTransportCompression { get; set; } + + /// <summary> /// Gets a value indicating whether this instance is started. /// </summary> bool IsStarted { get; } diff --git a/Software/Visual_Studio/Tango.Integration/ExternalBridge/Web/MachineInfo.cs b/Software/Visual_Studio/Tango.Integration/ExternalBridge/Web/MachineInfo.cs index a33d073d1..578dd9640 100644 --- a/Software/Visual_Studio/Tango.Integration/ExternalBridge/Web/MachineInfo.cs +++ b/Software/Visual_Studio/Tango.Integration/ExternalBridge/Web/MachineInfo.cs @@ -11,6 +11,7 @@ namespace Tango.Integration.ExternalBridge.Web public String SerialNumber { get; set; } public String Organization { get; set; } public String IPAddress { get; set; } + public bool CompressionEnabled { get; set; } public MachineInfo() { |
