/// <summary>
        /// Handler for raw data coming from port
        /// </summary>
        void Port_TextReceived(object sender, GenericCommMethodReceiveTextArgs args)
        {
            var handler = LineReceived;

            if (handler != null)
            {
                if (Debug.Level >= 2)
                {
                    var output = Regex.Replace(args.Text,
                                               @"\p{Cc}",
                                               a => string.Format("[{0:X2}]", (byte)a.Value[0]));
                    Debug.Console(2, Port, "RX: '{0}", output);
                }
                ReceiveBuffer.Append(args.Text);
                var str   = ReceiveBuffer.ToString();
                var lines = str.Split(Delimiter);
                if (lines.Length > 0)
                {
                    for (int i = 0; i < lines.Length - 1; i++)
                    {
                        string strToSend = null;
                        if (IncludeDelimiter)
                        {
                            strToSend = lines[i] + Delimiter;
                        }
                        else
                        {
                            strToSend = lines[i];
                        }
                        handler(this, new GenericCommMethodReceiveTextArgs(strToSend));
                    }
                    ReceiveBuffer = new StringBuilder(lines[lines.Length - 1]);
                }
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        void Port_TextReceivedStringDelimiter(object sender, GenericCommMethodReceiveTextArgs args)
        {
            var handler = LineReceived;

            if (handler != null)
            {
                // Receive buffer should either be empty or not contain the delimiter
                // If the line does not have a delimiter, append the
                if (Debug.Level >= 2)
                {
                    var output = Regex.Replace(args.Text,
                                               @"\p{Cc}",
                                               a => string.Format("[{0:X2}]", (byte)a.Value[0]));
                    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)
                {
                    for (int i = 0; i < lines.Length - 1; i++)
                    {
                        string strToSend = null;
                        if (IncludeDelimiter)
                        {
                            strToSend = lines[i] + StringDelimiter;
                        }
                        else
                        {
                            strToSend = lines[i];
                        }
                        handler(this, new GenericCommMethodReceiveTextArgs(strToSend));
                    }
                    ReceiveBuffer = new StringBuilder(lines[lines.Length - 1]);
                }
            }
        }