diff --git a/Pepperdash Core/CLZ Builds/PepperDash_Core.clz b/Pepperdash Core/CLZ Builds/PepperDash_Core.clz
index 3e3ffc5..1257056 100644
Binary files a/Pepperdash Core/CLZ Builds/PepperDash_Core.clz and b/Pepperdash Core/CLZ Builds/PepperDash_Core.clz differ
diff --git a/Pepperdash Core/CLZ Builds/PepperDash_Core.dll b/Pepperdash Core/CLZ Builds/PepperDash_Core.dll
index 6dffbe3..04c7033 100644
Binary files a/Pepperdash Core/CLZ Builds/PepperDash_Core.dll and b/Pepperdash Core/CLZ Builds/PepperDash_Core.dll differ
diff --git a/Pepperdash Core/Pepperdash Core.suo b/Pepperdash Core/Pepperdash Core.suo
index 7666d3e..474dceb 100644
Binary files a/Pepperdash Core/Pepperdash Core.suo and b/Pepperdash Core/Pepperdash Core.suo differ
diff --git a/Pepperdash Core/Pepperdash Core/Comm/CommunicationGather.cs b/Pepperdash Core/Pepperdash Core/Comm/CommunicationGather.cs
index 2df841c..4e5bf12 100644
--- a/Pepperdash Core/Pepperdash Core/Comm/CommunicationGather.cs
+++ b/Pepperdash Core/Pepperdash Core/Comm/CommunicationGather.cs
@@ -135,10 +135,22 @@ namespace PepperDash.Core
var output = Regex.Replace(args.Text,
@"\p{Cc}",
a => string.Format("[{0:X2}]", (byte)a.Value[0]));
- Debug.Console(2, Port, "RX: '{0}", output);
+ Debug.Console(2, Port, "RX: '{0}'", output);
}
ReceiveBuffer.Append(args.Text);
var str = ReceiveBuffer.ToString();
+
+ // Case: Receiving DEVICE get version\x0d\0x0a+OK "value":"1234"\x0d\x0a
+
+ // RX: DEV
+ // Split: (1) "DEV"
+ // RX: I
+ // Split: (1) "DEVI"
+ // RX: CE get version
+ // Split: (1) "DEVICE get version"
+ // RX: \x0d\x0a+OK "value":"1234"\x0d\x0a
+ // Split: (2) DEVICE get version, +OK "value":"1234"
+
var lines = Regex.Split(str, StringDelimiter);
if (lines.Length > 1)
{
diff --git a/Pepperdash Core/Pepperdash Core/CommunicationExtras.cs b/Pepperdash Core/Pepperdash Core/CommunicationExtras.cs
index e369fa7..2c8c0bc 100644
--- a/Pepperdash Core/Pepperdash Core/CommunicationExtras.cs
+++ b/Pepperdash Core/Pepperdash Core/CommunicationExtras.cs
@@ -10,19 +10,26 @@ using Newtonsoft.Json.Linq;
namespace PepperDash.Core
{
+ ///
+ /// An incoming communication stream
+ ///
+ public interface ICommunicationReceiver : IKeyed
+ {
+ event EventHandler BytesReceived;
+ event EventHandler TextReceived;
+
+ bool IsConnected { get; }
+ void Connect();
+ void Disconnect();
+ }
+
///
/// Represents a device that uses basic connection
///
- public interface IBasicCommunication : IKeyed
+ public interface IBasicCommunication : ICommunicationReceiver
{
- event EventHandler BytesReceived;
- event EventHandler TextReceived;
-
- bool IsConnected { get; }
void SendText(string text);
void SendBytes(byte[] bytes);
- void Connect();
- void Disconnect();
}
///
diff --git a/Pepperdash Core/Pepperdash Core/PepperDash_Core.projectinfo b/Pepperdash Core/Pepperdash Core/PepperDash_Core.projectinfo
index 000a713..354ae33 100644
Binary files a/Pepperdash Core/Pepperdash Core/PepperDash_Core.projectinfo and b/Pepperdash Core/Pepperdash Core/PepperDash_Core.projectinfo differ