예제 #1
0
        internal virtual IEnumerable <byte> Read(ResponseBuffer buffer, int index, int count, int timeout)
        {
            if (index + count > buffer.Count)
            {
                buffer.Read((uint)(index + count - buffer.Count), timeout);
            }

            return(buffer.Skip(index).Take(count));
        }
예제 #2
0
        internal override byte Read(ResponseBuffer buffer, int index, int timeout)
        {
            if (index * 2 >= buffer.Count - 2)
            {
                buffer.Read((uint)(index * 2 - buffer.Count + 3), timeout);
            }

            return(byte.Parse(Encoding.ASCII.GetString(buffer.Skip(index * 2 + 1).Take(2).ToArray()), System.Globalization.NumberStyles.HexNumber, null));
        }
예제 #3
0
        internal override IEnumerable <byte> Read(ResponseBuffer buffer, int index, int count, int timeout)
        {
            if ((index + count) * 2 > buffer.Count - 1)
            {
                buffer.Read((uint)((index + count) * 2 - buffer.Count + 1), timeout);
            }

            var bytes = buffer.Skip(index * 2 + 1).Take(count * 2).ToArray();

            for (int i = 0; i < count; i++)
            {
                yield return(byte.Parse(Encoding.ASCII.GetString(bytes, i * 2, 2), System.Globalization.NumberStyles.HexNumber, null));
            }
        }