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); }
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); }
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); }
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(); }
internal override void Write(IModbusMessage message) { byte[] frame = BuildMessageFrame(message); Debug.WriteLine($"TX: {string.Join(", ", frame)}"); StreamResource.Write(frame, 0, frame.Length); }