public void FC01Test() { // Arrange _server.Start(_endpoint); lock (_server.Lock) { var buffer = _server.GetCoilBuffer <byte>(); buffer[1] = 9; buffer[2] = 0; buffer[3] = 24; } var client = new ModbusTcpClient(); client.Connect(_endpoint); // Act var actual = client.ReadCoils(0, 8, 25); // Assert var expected = new byte[] { 9, 0, 24, 0 }; Assert.True(expected.SequenceEqual(actual.ToArray())); }
public void FC05Test() { // Arrange var endpoint = EndpointSource.GetNext(); var server = new ModbusTcpServer(); server.Start(endpoint); var client = new ModbusTcpClient(); client.Connect(endpoint); // Act client.WriteSingleCoil(0, 2, true); client.WriteSingleCoil(0, 7, true); client.WriteSingleCoil(0, 9, true); client.WriteSingleCoil(0, 26, true); // Assert var expected = new byte[] { 132, 2, 0, 4 }; lock (server.Lock) { var actual = server.GetCoilBuffer <byte>().Slice(0, 4); Assert.True(expected.SequenceEqual(actual.ToArray())); } }
public async Task FC01Test() { // Arrange var endpoint = EndpointSource.GetNext(); using var server = new ModbusTcpServer(); server.Start(endpoint); void AsyncWorkaround() { var buffer = server.GetCoilBuffer <byte>(); buffer[1] = 9; buffer[2] = 0; buffer[3] = 24; } lock (server.Lock) { AsyncWorkaround(); } var client = new ModbusTcpClient(); client.Connect(endpoint); // Act var actual = await client.ReadCoilsAsync(0, 8, 25); // Assert var expected = new byte[] { 9, 0, 24, 0 }; Assert.True(expected.SequenceEqual(actual.ToArray())); }