aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2020-03-04 14:09:45 +0200
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2020-03-04 14:09:45 +0200
commit565e48de649d3d14e6b82012b6aa2e3819a3c82c (patch)
tree16e766f6bd45e62c48d6046a21841526aafaed73 /Software/Visual_Studio
parentb0ccae10fa6025838195c42fa6c9dd72b4321579 (diff)
downloadTango-565e48de649d3d14e6b82012b6aa2e3819a3c82c.tar.gz
Tango-565e48de649d3d14e6b82012b6aa2e3819a3c82c.zip
Improved BitmapCliper.
Implemented auto throw when max differences reached. Implemented fallback TurboJpeg encoder. Fixed issue with UpdateMachine.xml script removing DISPENSERS before IDS_PACKS. Added GlobalHost.Configuration.MaxIncomingWebSocketMessageSize for WebSockets support for large messages on SignalR.
Diffstat (limited to 'Software/Visual_Studio')
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteDesktop/DefaultRemoteDesktopService.cs40
-rw-r--r--Software/Visual_Studio/Tango.RemoteDesktop/Clipping/BitmapCliper.cs16
-rw-r--r--Software/Visual_Studio/Tango.RemoteDesktop/Comparers/RasterBitmapComparer.cs15
-rw-r--r--Software/Visual_Studio/Tango.RemoteDesktop/Comparers/VectorBitmapComparer.cs13
-rw-r--r--Software/Visual_Studio/Tango.RemoteDesktop/Encoders/JpegEncoder.cs6
-rw-r--r--Software/Visual_Studio/Tango.RemoteDesktop/Encoders/TurboJpegEncoder.cs62
-rw-r--r--Software/Visual_Studio/Tango.RemoteDesktop/Frame.cs4
-rw-r--r--Software/Visual_Studio/Tango.RemoteDesktop/FrameEncoder.cs2
-rw-r--r--Software/Visual_Studio/Tango.RemoteDesktop/IBitmapComparer.cs7
-rw-r--r--Software/Visual_Studio/Tango.RemoteDesktop/IFrame.cs2
-rw-r--r--Software/Visual_Studio/Tango.RemoteDesktop/MaxDifferencesReachedException.cs16
-rw-r--r--Software/Visual_Studio/Tango.RemoteDesktop/ScreenCaptureEngine.cs17
-rw-r--r--Software/Visual_Studio/Tango.RemoteDesktop/Tango.RemoteDesktop.csproj24
-rw-r--r--Software/Visual_Studio/Tango.RemoteDesktop/packages.config4
-rw-r--r--Software/Visual_Studio/Tango.RemoteDesktop/win7-x64/turbojpeg.dllbin0 -> 573440 bytes
-rw-r--r--Software/Visual_Studio/Tango.RemoteDesktop/win7-x64/turbojpeg.dll.meta87
-rw-r--r--Software/Visual_Studio/Tango.RemoteDesktop/win7-x86/turbojpeg.dllbin0 -> 533504 bytes
-rw-r--r--Software/Visual_Studio/Tango.RemoteDesktop/win7-x86/turbojpeg.dll.meta87
-rw-r--r--Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateMachine.xmlbin55002 -> 55002 bytes
-rw-r--r--Software/Visual_Studio/Tango.Transport/Adapters/SignalRTransportAdapter.cs2
-rw-r--r--Software/Visual_Studio/Tango.Transport/Adapters/TcpTransportAdapter.cs2
-rw-r--r--Software/Visual_Studio/Web/Tango.MachineService/Startup.cs4
22 files changed, 373 insertions, 37 deletions
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteDesktop/DefaultRemoteDesktopService.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteDesktop/DefaultRemoteDesktopService.cs
index 9099e6346..67d0b85de 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteDesktop/DefaultRemoteDesktopService.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/RemoteDesktop/DefaultRemoteDesktopService.cs
@@ -67,6 +67,8 @@ namespace Tango.PPC.Common.RemoteDesktop
_engine.CaptureMethod = new GdiScreenCapture();
#endif
+ _engine.Comparer.MaxDifferencesThrow = _engine.CaptureRegion.Width * _engine.CaptureRegion.Height / 2;
+
if (_settings.EnableRemoteDesktop)
{
Start();
@@ -119,7 +121,7 @@ namespace Tango.PPC.Common.RemoteDesktop
FrameRate = _engine.FrameRate
}, token, new TransportResponseConfig()
{
- Immediate = true,
+ Immediate = false,
});
}
@@ -139,7 +141,7 @@ namespace Tango.PPC.Common.RemoteDesktop
Packet = _initialPacket,
}, client.Token, new TransportResponseConfig()
{
- Immediate = true,
+ Immediate = false,
});
client.InitialPacketSent = true;
@@ -150,19 +152,35 @@ namespace Tango.PPC.Common.RemoteDesktop
}
}
- if (e.Frame.DifferenceAvailable && e.Frame.DifferenceCount > 0)
+ if (e.Frame.DifferenceCount > 0)
{
- var diffFrame = e.Frame.ToDifference();
- diffFrame = diffFrame.OptimizeBounds();
+ RemoteDesktopPacket packet = null;
- RemoteDesktopPacket packet = new RemoteDesktopPacket()
+ if (!e.Frame.DifferenceAvailable)
{
- Bitmap = diffFrame.ToEncoder<PngEncoder>().ToArray(),
- IsPartial = true,
- PartialRegion = new CaptureRegion(diffFrame.Left, diffFrame.Top, diffFrame.Width, diffFrame.Height),
- };
+ Debug.WriteLine("Using Jpeg...");
+ packet = new RemoteDesktopPacket()
+ {
+ Bitmap = e.Frame.ToEncoder<TurboJpegEncoder>().ToArray(30)
+ };
+ }
+ else
+ {
+ var diffFrame = e.Frame.ToDifference();
+ diffFrame = diffFrame.OptimizeBounds();
+
+ packet = new RemoteDesktopPacket()
+ {
+ Bitmap = diffFrame.ToEncoder<PngEncoder>().ToArray(),
+ IsPartial = true,
+ PartialRegion = new CaptureRegion(diffFrame.Left, diffFrame.Top, diffFrame.Width, diffFrame.Height),
+ };
+
+ diffFrame.Dispose();
+ }
+
+ Debug.WriteLine($"Bitmap Size: {packet.Bitmap.Length / 1000} kb");
- diffFrame.Dispose();
e.Frame.Dispose();
foreach (var client in _clients.ToList().Where(x => x.InitialPacketSent))
diff --git a/Software/Visual_Studio/Tango.RemoteDesktop/Clipping/BitmapCliper.cs b/Software/Visual_Studio/Tango.RemoteDesktop/Clipping/BitmapCliper.cs
index 8866f6d9a..f2e500e4e 100644
--- a/Software/Visual_Studio/Tango.RemoteDesktop/Clipping/BitmapCliper.cs
+++ b/Software/Visual_Studio/Tango.RemoteDesktop/Clipping/BitmapCliper.cs
@@ -30,8 +30,7 @@ namespace Tango.RemoteDesktop.Clipping
//determine top
for (int i = 0; i < rgbValues.Length; i++)
{
- int color = rgbValues[i] & 0xffffff;
- if (color != 0x0)
+ if (rgbValues[i] != 16777215)
{
int r = i / bd.Width;
int c = i % bd.Width;
@@ -53,8 +52,7 @@ namespace Tango.RemoteDesktop.Clipping
//determine bottom
for (int i = rgbValues.Length - 1; i >= 0; i--)
{
- int color = rgbValues[i] & 0xffffff;
- if (color != 0x0)
+ if (rgbValues[i] != 16777215)
{
int r = i / bd.Width;
int c = i % bd.Width;
@@ -79,8 +77,7 @@ namespace Tango.RemoteDesktop.Clipping
//determine left
for (int c = 0; c < left; c++)
{
- int color = rgbValues[r * bd.Width + c] & 0xffffff;
- if (color != 0x0)
+ if (rgbValues[r * bd.Width + c] != 16777215)
{
if (left > c)
{
@@ -93,8 +90,7 @@ namespace Tango.RemoteDesktop.Clipping
//determine right
for (int c = bd.Width - 1; c > right; c--)
{
- int color = rgbValues[r * bd.Width + c] & 0xffffff;
- if (color != 0x0)
+ if (rgbValues[r * bd.Width + c] != 16777215)
{
if (right < c)
{
@@ -128,7 +124,9 @@ namespace Tango.RemoteDesktop.Clipping
//create new image
Bitmap newImage = new Bitmap(width, height, PixelFormat.Format32bppArgb);
- BitmapData nbd = newImage.LockBits(new Rectangle(0, 0, width, height), ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb);
+ BitmapData nbd
+ = newImage.LockBits(new Rectangle(0, 0, width, height),
+ ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb);
Marshal.Copy(imgData, 0, nbd.Scan0, imgData.Length);
newImage.UnlockBits(nbd);
diff --git a/Software/Visual_Studio/Tango.RemoteDesktop/Comparers/RasterBitmapComparer.cs b/Software/Visual_Studio/Tango.RemoteDesktop/Comparers/RasterBitmapComparer.cs
index b1b186065..7aa6a07a0 100644
--- a/Software/Visual_Studio/Tango.RemoteDesktop/Comparers/RasterBitmapComparer.cs
+++ b/Software/Visual_Studio/Tango.RemoteDesktop/Comparers/RasterBitmapComparer.cs
@@ -16,6 +16,12 @@ namespace Tango.RemoteDesktop.Comparers
public class RasterBitmapComparer : IBitmapComparer<RasterFrame>
{
/// <summary>
+ /// When max number of differences reached, the comparer will immediately return the current difference frame.
+ /// This should enforce the screen capture engine to report 'No Difference Available'.
+ /// </summary>
+ public long? MaxDifferencesThrow { get; set; }
+
+ /// <summary>
/// Creates the difference as <see cref="RasterFrame"/>.
/// </summary>
/// <param name="previousBitmap">The previous bitmap.</param>
@@ -94,6 +100,15 @@ namespace Tango.RemoteDesktop.Comparers
if (same != 4)
{
count++;
+
+ if (MaxDifferencesThrow != null && count > MaxDifferencesThrow.Value)
+ {
+ previousBitmap.UnlockBits(data1);
+ currentBitmap.UnlockBits(data2);
+ diffImage.UnlockBits(diffData);
+ diffImage.Dispose();
+ throw new MaxDifferencesReachedException();
+ }
}
}
diff --git a/Software/Visual_Studio/Tango.RemoteDesktop/Comparers/VectorBitmapComparer.cs b/Software/Visual_Studio/Tango.RemoteDesktop/Comparers/VectorBitmapComparer.cs
index 7f6dd9ccf..338318177 100644
--- a/Software/Visual_Studio/Tango.RemoteDesktop/Comparers/VectorBitmapComparer.cs
+++ b/Software/Visual_Studio/Tango.RemoteDesktop/Comparers/VectorBitmapComparer.cs
@@ -17,6 +17,12 @@ namespace Tango.RemoteDesktop.Comparers
public class VectorBitmapComparer : IBitmapComparer<VectorFrame>
{
/// <summary>
+ /// When max number of differences reached, the comparer will immediately return the current difference frame.
+ /// This should enforce the screen capture engine to report 'No Difference Available'.
+ /// </summary>
+ public long? MaxDifferencesThrow { get; set; }
+
+ /// <summary>
/// Creates the difference as <see cref="VectorFrame"/>.
/// </summary>
/// <param name="previousBitmap">The previous bitmap.</param>
@@ -105,6 +111,13 @@ namespace Tango.RemoteDesktop.Comparers
});
count++;
+
+ if (MaxDifferencesThrow != null && count > MaxDifferencesThrow.Value)
+ {
+ previousBitmap.UnlockBits(data1);
+ currentBitmap.UnlockBits(data2);
+ throw new MaxDifferencesReachedException();
+ }
}
}
diff --git a/Software/Visual_Studio/Tango.RemoteDesktop/Encoders/JpegEncoder.cs b/Software/Visual_Studio/Tango.RemoteDesktop/Encoders/JpegEncoder.cs
index 744849977..c72f1afc4 100644
--- a/Software/Visual_Studio/Tango.RemoteDesktop/Encoders/JpegEncoder.cs
+++ b/Software/Visual_Studio/Tango.RemoteDesktop/Encoders/JpegEncoder.cs
@@ -58,11 +58,5 @@ namespace Tango.RemoteDesktop.Encoders
return ms.ToArray();
}
}
-
- private ImageCodecInfo GetEncoder(ImageFormat format)
- {
- ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
- return codecs.Single(codec => codec.FormatID == format.Guid);
- }
}
}
diff --git a/Software/Visual_Studio/Tango.RemoteDesktop/Encoders/TurboJpegEncoder.cs b/Software/Visual_Studio/Tango.RemoteDesktop/Encoders/TurboJpegEncoder.cs
new file mode 100644
index 000000000..b3909911f
--- /dev/null
+++ b/Software/Visual_Studio/Tango.RemoteDesktop/Encoders/TurboJpegEncoder.cs
@@ -0,0 +1,62 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using TurboJpegWrapper;
+
+namespace Tango.RemoteDesktop.Encoders
+{
+ public class TurboJpegEncoder : FrameEncoder
+ {
+ private TJCompressor _compressor;
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="TurboJpegEncoder"/> class.
+ /// </summary>
+ /// <param name="frame">The frame.</param>
+ public TurboJpegEncoder(IFrame frame) : base(frame)
+ {
+ _compressor = new TJCompressor();
+ }
+
+ /// <summary>
+ /// Returns a stream containing the encoded frame.
+ /// </summary>
+ /// <returns></returns>
+ public override MemoryStream ToStream()
+ {
+ return ToStream(100);
+ }
+
+ /// <summary>
+ /// Returns a byte array containing the encoded frame.
+ /// </summary>
+ /// <returns></returns>
+ public override byte[] ToArray()
+ {
+ return ToArray(100);
+ }
+
+ /// <summary>
+ /// Returns a stream containing the encoded frame with the specified quality.
+ /// </summary>
+ /// <param name="quality">The quality.</param>
+ /// <returns></returns>
+ public virtual MemoryStream ToStream(int quality)
+ {
+ return new MemoryStream(ToArray(quality));
+ }
+
+ /// <summary>
+ /// Returns a byte array containing the encoded frame with the specified quality.
+ /// </summary>
+ /// <param name="quality">The quality.</param>
+ /// <returns></returns>
+ public byte[] ToArray(int quality)
+ {
+ return _compressor.Compress(Frame.ToBitmap(), TJSubsamplingOption.Chrominance411, quality, TJFlags.None);
+ }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.RemoteDesktop/Frame.cs b/Software/Visual_Studio/Tango.RemoteDesktop/Frame.cs
index e871d5da2..105a99134 100644
--- a/Software/Visual_Studio/Tango.RemoteDesktop/Frame.cs
+++ b/Software/Visual_Studio/Tango.RemoteDesktop/Frame.cs
@@ -76,9 +76,9 @@ namespace Tango.RemoteDesktop
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
- public IFrameEncoder ToEncoder<T>() where T : IFrameEncoder
+ public T ToEncoder<T>() where T : IFrameEncoder
{
- return Activator.CreateInstance(typeof(T), new object[] { this }) as IFrameEncoder;
+ return (T)Activator.CreateInstance(typeof(T), new object[] { this });
}
/// <summary>
diff --git a/Software/Visual_Studio/Tango.RemoteDesktop/FrameEncoder.cs b/Software/Visual_Studio/Tango.RemoteDesktop/FrameEncoder.cs
index a1413d9c9..dd5f5c064 100644
--- a/Software/Visual_Studio/Tango.RemoteDesktop/FrameEncoder.cs
+++ b/Software/Visual_Studio/Tango.RemoteDesktop/FrameEncoder.cs
@@ -39,7 +39,7 @@ namespace Tango.RemoteDesktop
/// Returns a byte array containing the encoded frame.
/// </summary>
/// <returns></returns>
- public byte[] ToArray()
+ public virtual byte[] ToArray()
{
using (var ms = ToStream())
{
diff --git a/Software/Visual_Studio/Tango.RemoteDesktop/IBitmapComparer.cs b/Software/Visual_Studio/Tango.RemoteDesktop/IBitmapComparer.cs
index 6e1f8e999..21ba15c29 100644
--- a/Software/Visual_Studio/Tango.RemoteDesktop/IBitmapComparer.cs
+++ b/Software/Visual_Studio/Tango.RemoteDesktop/IBitmapComparer.cs
@@ -20,5 +20,12 @@ namespace Tango.RemoteDesktop
/// <param name="currentBitmap">The current bitmap.</param>
/// <returns></returns>
BitmapComparerResult<TFrame> CreateDifference(Bitmap previousBitmap, Bitmap currentBitmap);
+
+ /// <summary>
+ /// When max number of differences reached, the comparer will immediately return the current difference frame.
+ /// This should enforce the screen capture engine to report 'No Difference Available'.
+ /// The value of null (default) means infinite.
+ /// </summary>
+ long? MaxDifferencesThrow { get; set; }
}
}
diff --git a/Software/Visual_Studio/Tango.RemoteDesktop/IFrame.cs b/Software/Visual_Studio/Tango.RemoteDesktop/IFrame.cs
index f5a69218d..1bdfd7650 100644
--- a/Software/Visual_Studio/Tango.RemoteDesktop/IFrame.cs
+++ b/Software/Visual_Studio/Tango.RemoteDesktop/IFrame.cs
@@ -48,6 +48,6 @@ namespace Tango.RemoteDesktop
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
- IFrameEncoder ToEncoder<T>() where T : IFrameEncoder;
+ T ToEncoder<T>() where T : IFrameEncoder;
}
}
diff --git a/Software/Visual_Studio/Tango.RemoteDesktop/MaxDifferencesReachedException.cs b/Software/Visual_Studio/Tango.RemoteDesktop/MaxDifferencesReachedException.cs
new file mode 100644
index 000000000..e93a8eff1
--- /dev/null
+++ b/Software/Visual_Studio/Tango.RemoteDesktop/MaxDifferencesReachedException.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tango.RemoteDesktop
+{
+ public class MaxDifferencesReachedException : Exception
+ {
+ public MaxDifferencesReachedException() : base("The number of differences exceeded the maximum value. You should return the whole frame.")
+ {
+
+ }
+ }
+}
diff --git a/Software/Visual_Studio/Tango.RemoteDesktop/ScreenCaptureEngine.cs b/Software/Visual_Studio/Tango.RemoteDesktop/ScreenCaptureEngine.cs
index 17f54369c..81efb6a30 100644
--- a/Software/Visual_Studio/Tango.RemoteDesktop/ScreenCaptureEngine.cs
+++ b/Software/Visual_Studio/Tango.RemoteDesktop/ScreenCaptureEngine.cs
@@ -157,10 +157,19 @@ namespace Tango.RemoteDesktop
}
else
{
- var result = Comparer.CreateDifference(_previousBitmap, bitmap);
- _previousBitmap.Dispose();
- _previousBitmap = bitmap.Clone() as Bitmap;
- OnFrameReceived(bitmap, result.Frame, result.DifferenceCount);
+ try
+ {
+ BitmapComparerResult<TFrame> result = Comparer.CreateDifference(_previousBitmap, bitmap);
+ _previousBitmap.Dispose();
+ _previousBitmap = bitmap.Clone() as Bitmap;
+ OnFrameReceived(bitmap, result.Frame, result.DifferenceCount);
+ }
+ catch (MaxDifferencesReachedException)
+ {
+ _previousBitmap.Dispose();
+ _previousBitmap = bitmap.Clone() as Bitmap;
+ OnFrameReceived(bitmap, null, (uint)(bitmap.Width * bitmap.Height));
+ }
}
}
else
diff --git a/Software/Visual_Studio/Tango.RemoteDesktop/Tango.RemoteDesktop.csproj b/Software/Visual_Studio/Tango.RemoteDesktop/Tango.RemoteDesktop.csproj
index 87674b42b..b0feb438d 100644
--- a/Software/Visual_Studio/Tango.RemoteDesktop/Tango.RemoteDesktop.csproj
+++ b/Software/Visual_Studio/Tango.RemoteDesktop/Tango.RemoteDesktop.csproj
@@ -34,6 +34,9 @@
<ItemGroup>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
+ <Reference Include="Quamotion.TurboJpegWrapper, Version=1.5.0.0, Culture=neutral, PublicKeyToken=c6aab54697744588, processorArchitecture=MSIL">
+ <HintPath>..\packages\Quamotion.TurboJpegWrapper.1.5.69\lib\net45\Quamotion.TurboJpegWrapper.dll</HintPath>
+ </Reference>
<Reference Include="SharpDX, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b4dcf0f35e5521f1, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\Referenced Assemblies\SharpDX\SharpDX.dll</HintPath>
@@ -75,10 +78,12 @@
<Compile Include="Comparers\VectorBitmapComparer.cs" />
<Compile Include="Encoders\GifEncoder.cs" />
<Compile Include="Encoders\Png8BitEncoder.cs" />
+ <Compile Include="Encoders\TurboJpegEncoder.cs" />
<Compile Include="Engines\RasterScreenCaptureEngine.cs" />
<Compile Include="Engines\VectorScreenCaptureEngine.cs" />
<Compile Include="Frames\VectorFrameColor.cs" />
<Compile Include="IScreenCaptureEngine.cs" />
+ <Compile Include="MaxDifferencesReachedException.cs" />
<Compile Include="Network\RemoteDesktopPacket.cs" />
<Compile Include="Network\StartRemoteDesktopSessionRequest.cs" />
<Compile Include="Network\StartRemoteDesktopSessionResponse.cs" />
@@ -109,5 +114,24 @@
<Compile Include="Frames\VectorFrame.cs" />
<Compile Include="Frames\VectorFramePixel.cs" />
</ItemGroup>
+ <ItemGroup>
+ <Content Include="win7-x64\turbojpeg.dll">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </Content>
+ <Content Include="win7-x86\turbojpeg.dll">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </Content>
+ </ItemGroup>
+ <ItemGroup>
+ <Content Include="win7-x64\turbojpeg.dll.meta">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </Content>
+ <Content Include="win7-x86\turbojpeg.dll.meta">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </Content>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="packages.config" />
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/Tango.RemoteDesktop/packages.config b/Software/Visual_Studio/Tango.RemoteDesktop/packages.config
new file mode 100644
index 000000000..2cbb3038a
--- /dev/null
+++ b/Software/Visual_Studio/Tango.RemoteDesktop/packages.config
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="Quamotion.TurboJpegWrapper" version="1.5.69" targetFramework="net461" />
+</packages> \ No newline at end of file
diff --git a/Software/Visual_Studio/Tango.RemoteDesktop/win7-x64/turbojpeg.dll b/Software/Visual_Studio/Tango.RemoteDesktop/win7-x64/turbojpeg.dll
new file mode 100644
index 000000000..da956aad6
--- /dev/null
+++ b/Software/Visual_Studio/Tango.RemoteDesktop/win7-x64/turbojpeg.dll
Binary files differ
diff --git a/Software/Visual_Studio/Tango.RemoteDesktop/win7-x64/turbojpeg.dll.meta b/Software/Visual_Studio/Tango.RemoteDesktop/win7-x64/turbojpeg.dll.meta
new file mode 100644
index 000000000..9ee42ad7b
--- /dev/null
+++ b/Software/Visual_Studio/Tango.RemoteDesktop/win7-x64/turbojpeg.dll.meta
@@ -0,0 +1,87 @@
+fileFormatVersion: 2
+guid: 8320357f84e101f4bbdd0775df156e89
+timeCreated: 1522943063
+licenseType: Pro
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 1
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ DefaultValueInitialized: true
+ - first:
+ Facebook: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ - first:
+ Facebook: Win64
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ - first:
+ Standalone: Linux
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ - first:
+ Standalone: Linux64
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ - first:
+ Standalone: LinuxUniversal
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ - first:
+ Standalone: OSXIntel
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ - first:
+ Standalone: OSXIntel64
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ - first:
+ Standalone: OSXUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ - first:
+ Standalone: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ - first:
+ Standalone: Win64
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Software/Visual_Studio/Tango.RemoteDesktop/win7-x86/turbojpeg.dll b/Software/Visual_Studio/Tango.RemoteDesktop/win7-x86/turbojpeg.dll
new file mode 100644
index 000000000..4d9f76dff
--- /dev/null
+++ b/Software/Visual_Studio/Tango.RemoteDesktop/win7-x86/turbojpeg.dll
Binary files differ
diff --git a/Software/Visual_Studio/Tango.RemoteDesktop/win7-x86/turbojpeg.dll.meta b/Software/Visual_Studio/Tango.RemoteDesktop/win7-x86/turbojpeg.dll.meta
new file mode 100644
index 000000000..acfd633cc
--- /dev/null
+++ b/Software/Visual_Studio/Tango.RemoteDesktop/win7-x86/turbojpeg.dll.meta
@@ -0,0 +1,87 @@
+fileFormatVersion: 2
+guid: 617193c2aec53e04c844c2c778c162b2
+timeCreated: 1523070844
+licenseType: Pro
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 1
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ CPU: x86
+ DefaultValueInitialized: true
+ - first:
+ Facebook: Win
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ - first:
+ Facebook: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ - first:
+ Standalone: Linux
+ second:
+ enabled: 1
+ settings:
+ CPU: x86
+ - first:
+ Standalone: Linux64
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ - first:
+ Standalone: LinuxUniversal
+ second:
+ enabled: 1
+ settings:
+ CPU: x86
+ - first:
+ Standalone: OSXIntel
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ - first:
+ Standalone: OSXIntel64
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ - first:
+ Standalone: OSXUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: x86
+ - first:
+ Standalone: Win
+ second:
+ enabled: 1
+ settings:
+ CPU: AnyCPU
+ - first:
+ Standalone: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateMachine.xml b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateMachine.xml
index d24d74337..7c4c17ea5 100644
--- a/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateMachine.xml
+++ b/Software/Visual_Studio/Tango.SQLExaminer/SQLExaminer/Configurations/UpdateMachine.xml
Binary files differ
diff --git a/Software/Visual_Studio/Tango.Transport/Adapters/SignalRTransportAdapter.cs b/Software/Visual_Studio/Tango.Transport/Adapters/SignalRTransportAdapter.cs
index f1d3e10aa..c1d3d4967 100644
--- a/Software/Visual_Studio/Tango.Transport/Adapters/SignalRTransportAdapter.cs
+++ b/Software/Visual_Studio/Tango.Transport/Adapters/SignalRTransportAdapter.cs
@@ -60,7 +60,7 @@ namespace Tango.Transport.Adapters
/// </summary>
public SignalRTransportAdapter() : base()
{
- WriteInterval = TimeSpan.FromSeconds(1);
+ WriteInterval = TimeSpan.FromMilliseconds(10);
ComponentName = $"SignalR Adapter {_component_counter++}";
}
diff --git a/Software/Visual_Studio/Tango.Transport/Adapters/TcpTransportAdapter.cs b/Software/Visual_Studio/Tango.Transport/Adapters/TcpTransportAdapter.cs
index 38c577724..831f7c5dc 100644
--- a/Software/Visual_Studio/Tango.Transport/Adapters/TcpTransportAdapter.cs
+++ b/Software/Visual_Studio/Tango.Transport/Adapters/TcpTransportAdapter.cs
@@ -59,7 +59,7 @@ namespace Tango.Transport.Adapters
Address = "127.0.0.1";
Port = 9999;
WriteMode = TcpTransportAdapterWriteMode.Interval;
- WriteInterval = TimeSpan.FromSeconds(1);
+ WriteInterval = TimeSpan.FromMilliseconds(10);
}
/// <summary>
diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Startup.cs b/Software/Visual_Studio/Web/Tango.MachineService/Startup.cs
index 8eeb65b78..2bd4fe872 100644
--- a/Software/Visual_Studio/Web/Tango.MachineService/Startup.cs
+++ b/Software/Visual_Studio/Web/Tango.MachineService/Startup.cs
@@ -1,4 +1,5 @@
-using Microsoft.Owin;
+using Microsoft.AspNet.SignalR;
+using Microsoft.Owin;
using Microsoft.Owin.Cors;
using Owin;
using System;
@@ -15,6 +16,7 @@ namespace Tango.MachineService
{
app.UseCors(CorsOptions.AllowAll);
app.MapSignalR();
+ GlobalHost.Configuration.MaxIncomingWebSocketMessageSize = null;
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=316888
}
}