aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Integration/ExternalBridge
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2020-08-19 01:45:02 +0300
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2020-08-19 01:45:02 +0300
commit4e216a0ca8ad3608b845fa445b73034e1a67b8af (patch)
tree67e0ea698cfe5a8320aa81d8c13579e8ae6a6860 /Software/Visual_Studio/Tango.Integration/ExternalBridge
parentf4c418cced4c6fb25ec5d4cb2bcb4ce0f766efd0 (diff)
downloadTango-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')
-rw-r--r--Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeScanner.cs6
-rw-r--r--Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeService.cs8
-rw-r--r--Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeSignalRClient.cs14
-rw-r--r--Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeTcpClient.cs21
-rw-r--r--Software/Visual_Studio/Tango.Integration/ExternalBridge/ExternalBridgeUsbClient.cs5
-rw-r--r--Software/Visual_Studio/Tango.Integration/ExternalBridge/IExternalBridgeClient.cs5
-rw-r--r--Software/Visual_Studio/Tango.Integration/ExternalBridge/IExternalBridgeService.cs5
-rw-r--r--Software/Visual_Studio/Tango.Integration/ExternalBridge/Web/MachineInfo.cs1
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()
{