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