/// <summary>
        /// Take incoming data and add it to the
        /// buffer to be decoded.
        ///
        /// Then start the thread to start decoding data
        /// </summary>
        /// <param name="data">Data to add to incoming buffer.</param>
        public void AddIncomingData(byte[] data)
        {
            if (data != null)
            {
                //// Add all the data to the buffer
                //for (int x = 0; x < data.Length; x++)
                //{
                //    _incomingDataBuffer.Add(data[x]);
                //}
                _incomingDataBuffer.Write(data, 0, data.Length);
                _incomingDataBuffer.Position = 0;
            }

            // Wake up the thread to process data
            if (!_eventWaitData.SafeWaitHandle.IsClosed)
            {
                _eventWaitData.Set();
            }
        }