diff --git a/Droid/packages.config b/Droid/packages.config
index 045a647..96f034e 100644
--- a/Droid/packages.config
+++ b/Droid/packages.config
@@ -158,11 +158,11 @@
-
-
-
+
+
+
-
+
diff --git a/Droid/qController.Droid.csproj b/Droid/qController.Droid.csproj
index 7a3a5d8..55e76c9 100644
--- a/Droid/qController.Droid.csproj
+++ b/Droid/qController.Droid.csproj
@@ -32,6 +32,7 @@
true
+ true
true
@@ -53,6 +54,7 @@
armeabi-v7a;x86;arm64-v8a;x86_64
+ true
@@ -447,13 +449,13 @@
..\packages\Xamarin.AndroidX.Tracing.Tracing.1.0.0.3\lib\monoandroid90\Xamarin.AndroidX.Tracing.Tracing.dll
- ..\packages\Xamarin.AndroidX.Navigation.Common.2.3.5.1\lib\monoandroid90\Xamarin.AndroidX.Navigation.Common.dll
+ ..\packages\Xamarin.AndroidX.Navigation.Common.2.3.5.3\lib\monoandroid90\Xamarin.AndroidX.Navigation.Common.dll
- ..\packages\Xamarin.AndroidX.Navigation.Runtime.2.3.5.1\lib\monoandroid90\Xamarin.AndroidX.Navigation.Runtime.dll
+ ..\packages\Xamarin.AndroidX.Navigation.Runtime.2.3.5.3\lib\monoandroid90\Xamarin.AndroidX.Navigation.Runtime.dll
- ..\packages\Xamarin.AndroidX.Preference.1.1.1.9\lib\monoandroid90\Xamarin.AndroidX.Preference.dll
+ ..\packages\Xamarin.AndroidX.Preference.1.1.1.11\lib\monoandroid90\Xamarin.AndroidX.Preference.dll
..\packages\Xamarin.Firebase.Encoders.117.0.0.3\lib\monoandroid90\Xamarin.Firebase.Encoders.dll
@@ -462,7 +464,7 @@
..\packages\Xamarin.Firebase.Encoders.JSON.118.0.0.3\lib\monoandroid90\Xamarin.Firebase.Encoders.JSON.dll
- ..\packages\Xamarin.AndroidX.Navigation.UI.2.3.5.1\lib\monoandroid90\Xamarin.AndroidX.Navigation.UI.dll
+ ..\packages\Xamarin.AndroidX.Navigation.UI.2.3.5.3\lib\monoandroid90\Xamarin.AndroidX.Navigation.UI.dll
..\packages\Xamarin.AndroidX.Concurrent.Futures.1.1.0.5\lib\monoandroid90\Xamarin.AndroidX.Concurrent.Futures.dll
@@ -574,8 +576,6 @@
-
-
@@ -589,14 +589,12 @@
-
-
@@ -608,4 +606,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/qController.Standard/Classes/Communication/SharpOSC/TCPClient.cs b/qController.Standard/Classes/Communication/SharpOSC/TCPClient.cs
index b0176b7..4ae1853 100644
--- a/qController.Standard/Classes/Communication/SharpOSC/TCPClient.cs
+++ b/qController.Standard/Classes/Communication/SharpOSC/TCPClient.cs
@@ -31,7 +31,12 @@ namespace SharpOSC
}
public delegate void MessageReceivedHandler(object source, MessageEventArgs args);
public event MessageReceivedHandler MessageReceived;
+
+ private Queue SendQueue = new Queue();
+
private Thread receivingThread;
+ private Thread sendThread;
+
string _address;
TcpClient client;
@@ -54,6 +59,10 @@ namespace SharpOSC
client = new TcpClient(Address, Port);
receivingThread = new Thread(ReceiveLoop);
receivingThread.Start();
+
+ sendThread = new Thread(SendLoop);
+ sendThread.Start();
+
Log.Debug($"[tcpclient] connected to <{Address}:{Port}>");
return true;
}
@@ -65,6 +74,23 @@ namespace SharpOSC
}
+ public void QueueForSending(OscPacket packet)
+ {
+ SendQueue.Enqueue(packet);
+ }
+
+ private void SendLoop()
+ {
+ while (client != null && client.Connected)
+ {
+ if (SendQueue.Count > 0)
+ {
+ OscPacket packet = SendQueue.Dequeue();
+ Send(packet);
+ }
+ }
+ }
+
public void Send(byte[] message)
{
byte[] slipData = SlipEncode(message);
@@ -82,17 +108,20 @@ namespace SharpOSC
{
get
{
- return client.Connected;
+ if (client == null)
+ return false;
+ else
+ return client.Connected;
}
}
public void ReceiveLoop()
{
- while (client.Connected)
+ while (client != null && client.Connected)
{
Receive();
}
- Console.WriteLine("TCPClient - Receive Loop has exited for some reason");
+ //Log.Debug("[tcpclient] - ReceiveLoop has exited");
}
public void Receive()
@@ -121,14 +150,16 @@ namespace SharpOSC
} while (netStream.DataAvailable);
//Console.WriteLine("Raw TCP In: " + System.Text.Encoding.UTF8.GetString(responseData.ToArray()));
- OscMessage response = (OscMessage)OscPacket.GetPacket(responseData.Skip(1).ToArray());
+ OscPacket packet = OscPacket.GetPacket(responseData.Skip(1).ToArray());
+ OscMessage responseMessage = (OscMessage)packet;
//watch.Stop();
//Console.WriteLine($"TCPCLient - message receive took {watch.ElapsedMilliseconds}ms and {reads} reads");
- OnMessageReceived(response);
+ OnMessageReceived(responseMessage);
}
- } catch(Exception e)
+ }
+ catch (Exception e)
{
- //Log.Debug("TCPClient - Receive Exception: " + e.ToString());
+ //Console.WriteLine("TCPSENDER - Receive Exception: " + e.ToString());
}
}
@@ -178,4 +209,4 @@ namespace SharpOSC
MessageReceived?.Invoke(this, new MessageEventArgs() { Message = msg });
}
}
-}
+}
\ No newline at end of file