public async Task ClientWriteCoilsTest() { // Function Code 0x0F byte[] expectedRequest = new byte[] { 0, 0, 0, 9, 4, 15, 0, 20, 0, 10, 2, 205, 1 }; using var server = new MiniTestServer { RequestHandler = (request, clientIp) => { CollectionAssert.AreEqual(expectedRequest, request.Skip(2).ToArray(), "Request is incorrect"); Console.WriteLine("Server sending response"); return(new byte[] { request[0], request[1], 0, 0, 0, 6, 4, 15, 0, 20, 0, 10 }); } }; server.Start(); using var client = new ModbusClient(IPAddress.Loopback, server.Port, new ConsoleLogger()); await client.Connect(); Assert.IsTrue(client.IsConnected); var coils = new List <Coil> { new Coil { Address = 20, BoolValue = true }, new Coil { Address = 21, BoolValue = false }, new Coil { Address = 22, BoolValue = true }, new Coil { Address = 23, BoolValue = true }, new Coil { Address = 24, BoolValue = false }, new Coil { Address = 25, BoolValue = false }, new Coil { Address = 26, BoolValue = true }, new Coil { Address = 27, BoolValue = true }, new Coil { Address = 28, BoolValue = true }, new Coil { Address = 29, BoolValue = false }, }; bool success = await client.WriteCoils(4, coils); Assert.IsTrue(string.IsNullOrWhiteSpace(server.LastError), server.LastError); Assert.IsTrue(success); }