Exemple #1
0
        public virtual byte[] Read(int count)
        {
            byte[] frameBytes   = new byte[count];
            int    numBytesRead = 0;

            while (numBytesRead != count)
            {
                numBytesRead += StreamResource.Read(frameBytes, numBytesRead, count - numBytesRead);
            }

            return(frameBytes);
        }
        internal override void Write(IModbusMessage message)
        {
            DiscardInBuffer();

            byte[] frame = BuildMessageFrame(message);
            if (WriteMessage != null)
            {
                WriteMessage(frame);
            }
            Debug.WriteLine($"TX: {string.Join(", ", frame)}");
            StreamResource.Write(frame, 0, frame.Length);
        }
Exemple #3
0
        public virtual async Task <byte[]> ReadAsync(int count)
        {
            byte[] frameBytes = new byte[count];

            int numBytesRead = 0;

            while (numBytesRead != count)
            {
                numBytesRead += await StreamResource.ReadAsync(frameBytes, numBytesRead, count - numBytesRead);
            }

            return(frameBytes);
        }
Exemple #4
0
        public async Task ReadFileResource()
        {
            var linesResource = StreamResource
                                .FromFile("../../../test_data/test_lines_1.txt", FileMode.Open)
                                .SelectAsync(GetLines);

            var countResource     = linesResource.Select(lines => lines.Count);
            var firstLineResource = linesResource.Select(lines => lines.First());

            var count = await countResource.UnsafeGetAsync();

            Assert.Equal(10, count);

            var line1 = await firstLineResource.UnsafeGetAsync();

            Assert.Equal("line1", line1);
        }
Exemple #5
0
        public virtual byte[] Read(int count)
        {
            byte[] frameBytes   = new byte[count];
            int    numBytesRead = 0;

            while ((numBytesRead != count) && (StreamResource.IsOpen))
            {
                numBytesRead += StreamResource.Read(frameBytes, numBytesRead, count - numBytesRead);
                if (numBytesRead == 0)
                {
                    if (StreamResource is TcpClientAdapter)
                    {
                        throw new IOException("There is no connection on TCP.");
                    }
                }
            }

            return(frameBytes);
        }
 internal void DiscardInBuffer()
 {
     StreamResource.DiscardInBuffer();
 }
Exemple #7
0
 internal override void Write(IModbusMessage message)
 {
     byte[] frame = BuildMessageFrame(message);
     Debug.WriteLine($"TX: {string.Join(", ", frame)}");
     StreamResource.Write(frame, 0, frame.Length);
 }